Loading core/res/res/values/strings.xml +10 −1 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?> <!-- /* //device/apps/common/assets/res/any/strings.xml ** Loading Loading @@ -3365,4 +3365,13 @@ <!-- Delimeter used between each item in a textual list; for example "Alpha, Beta". [CHAR LIMIT=3] --> <string name="list_delimeter">", "</string> <!-- STK sending DTMF, SMS, USSD, SS --> <string name="sending">Sending...</string> <!-- STK launch Browser --> <string name="launchBrowserDefault">Launch Browser?</string> <!-- STK setup Call --> <string name="SetupCallDefault">Accept Call?</string> </resources> telephony/java/com/android/internal/telephony/cat/CatService.java +33 −4 Original line number Diff line number Diff line Loading @@ -94,6 +94,8 @@ public class CatService extends Handler implements AppInterface { private static final int DEV_ID_TERMINAL = 0x82; private static final int DEV_ID_NETWORK = 0x83; static final String STK_DEFAULT = "Defualt Message"; /* Intentionally private for singleton */ private CatService(CommandsInterface ci, IccRecords ir, Context context, IccFileHandler fh, IccCard ic) { Loading Loading @@ -157,7 +159,15 @@ public class CatService extends Handler implements AppInterface { } break; case MSG_ID_PROACTIVE_COMMAND: try { cmdParams = (CommandParams) rilMsg.mData; } catch (ClassCastException e) { // for error handling : cast exception CatLog.d(this, "Fail to parse proactive command"); sendTerminalResponse(mCurrntCmd.mCmdDet, ResultCode.CMD_DATA_NOT_UNDERSTOOD, false, 0x00, null); break; } if (cmdParams != null) { if (rilMsg.mResCode == ResultCode.OK) { handleProactiveCommand(cmdParams); Loading Loading @@ -194,6 +204,7 @@ public class CatService extends Handler implements AppInterface { private void handleProactiveCommand(CommandParams cmdParams) { CatLog.d(this, cmdParams.getCommandType().name()); CharSequence message; CatCmdMessage cmdMsg = new CatCmdMessage(cmdParams); switch (cmdParams.getCommandType()) { case SET_UP_MENU: Loading Loading @@ -224,26 +235,44 @@ public class CatService extends Handler implements AppInterface { case CommandParamsFactory.DTTZ_SETTING: resp = new DTTZResponseData(null); sendTerminalResponse(cmdParams.cmdDet, ResultCode.OK, false, 0, resp); break; return; case CommandParamsFactory.LANGUAGE_SETTING: resp = new LanguageResponseData(Locale.getDefault().getLanguage()); sendTerminalResponse(cmdParams.cmdDet, ResultCode.OK, false, 0, resp); break; return; default: sendTerminalResponse(cmdParams.cmdDet, ResultCode.OK, false, 0, null); return; } case LAUNCH_BROWSER: if ((((LaunchBrowserParams) cmdParams).confirmMsg.text != null) && (((LaunchBrowserParams) cmdParams).confirmMsg.text.equals(STK_DEFAULT))) { message = mContext.getText(com.android.internal.R.string.launchBrowserDefault); ((LaunchBrowserParams) cmdParams).confirmMsg.text = message.toString(); } break; case SELECT_ITEM: case GET_INPUT: case GET_INKEY: break; case SEND_DTMF: case SEND_SMS: case SEND_SS: case SEND_USSD: if ((((DisplayTextParams)cmdParams).textMsg.text != null) && (((DisplayTextParams)cmdParams).textMsg.text.equals(STK_DEFAULT))) { message = mContext.getText(com.android.internal.R.string.sending); ((DisplayTextParams)cmdParams).textMsg.text = message.toString(); } break; case PLAY_TONE: break; case SET_UP_CALL: // nothing to do on telephony! if ((((CallSetupParams) cmdParams).confirmMsg.text != null) && (((CallSetupParams) cmdParams).confirmMsg.text.equals(STK_DEFAULT))) { message = mContext.getText(com.android.internal.R.string.SetupCallDefault); ((CallSetupParams) cmdParams).confirmMsg.text = message.toString(); } break; default: CatLog.d(this, "Unsupported command"); Loading telephony/java/com/android/internal/telephony/cat/CommandParamsFactory.java +5 −11 Original line number Diff line number Diff line Loading @@ -403,6 +403,7 @@ class CommandParamsFactory extends Handler { input.ucs2 = (cmdDet.commandQualifier & 0x02) != 0; input.yesNo = (cmdDet.commandQualifier & 0x04) != 0; input.helpAvailable = (cmdDet.commandQualifier & 0x80) != 0; input.echo = true; mCmdParams = new GetInputParams(cmdDet, input); Loading Loading @@ -625,11 +626,7 @@ class CommandParamsFactory extends Handler { ComprehensionTlv ctlv = searchForTag(ComprehensionTlvTag.ALPHA_ID, ctlvs); if (ctlv != null) { textMsg.text = ValueParser.retrieveAlphaId(ctlv); } else { throw new ResultException(ResultCode.REQUIRED_VALUES_MISSING); } ctlv = searchForTag(ComprehensionTlvTag.ICON_ID, ctlvs); if (ctlv != null) { Loading Loading @@ -714,9 +711,8 @@ class CommandParamsFactory extends Handler { // parse alpha identifier. ctlv = searchForTag(ComprehensionTlvTag.ALPHA_ID, ctlvs); if (ctlv != null) { confirmMsg.text = ValueParser.retrieveAlphaId(ctlv); } // parse icon identifier ctlv = searchForTag(ComprehensionTlvTag.ICON_ID, ctlvs); if (ctlv != null) { Loading Loading @@ -841,9 +837,7 @@ class CommandParamsFactory extends Handler { // get confirmation message string. ctlv = searchForNextTag(ComprehensionTlvTag.ALPHA_ID, iter); if (ctlv != null) { confirmMsg.text = ValueParser.retrieveAlphaId(ctlv); } ctlv = searchForTag(ComprehensionTlvTag.ICON_ID, ctlvs); if (ctlv != null) { Loading telephony/java/com/android/internal/telephony/cat/ComprehensionTlv.java +5 −1 Original line number Diff line number Diff line Loading @@ -94,6 +94,7 @@ class ComprehensionTlv { startIndex = ctlv.mValueIndex + ctlv.mLength; } else { CatLog.d(LOG_TAG, "decodeMany: ctlv is null, stop decoding"); items.clear(); break; } } Loading Loading @@ -123,7 +124,10 @@ class ComprehensionTlv { case 0: case 0xff: case 0x80: throw new ResultException(ResultCode.CMD_DATA_NOT_UNDERSTOOD); // for error handling // these one make exception while decoding the abnormal command. // (in case of Ghana MTN simcard , JDI simcard) return null; case 0x7f: // tag is in three-byte format tag = ((data[curIndex] & 0xff) << 8) Loading telephony/java/com/android/internal/telephony/cat/ValueParser.java +15 −10 Original line number Diff line number Diff line Loading @@ -273,6 +273,7 @@ abstract class ValueParser { */ static String retrieveAlphaId(ComprehensionTlv ctlv) throws ResultException { if (ctlv != null) { byte[] rawValue = ctlv.getRawValue(); int valueIndex = ctlv.getValueIndex(); int length = ctlv.getLength(); Loading @@ -283,8 +284,12 @@ abstract class ValueParser { } catch (IndexOutOfBoundsException e) { throw new ResultException(ResultCode.CMD_DATA_NOT_UNDERSTOOD); } } else { return CatService.STK_DEFAULT; } } else { return CatService.STK_DEFAULT; } return null; } /** Loading Loading
core/res/res/values/strings.xml +10 −1 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?> <!-- /* //device/apps/common/assets/res/any/strings.xml ** Loading Loading @@ -3365,4 +3365,13 @@ <!-- Delimeter used between each item in a textual list; for example "Alpha, Beta". [CHAR LIMIT=3] --> <string name="list_delimeter">", "</string> <!-- STK sending DTMF, SMS, USSD, SS --> <string name="sending">Sending...</string> <!-- STK launch Browser --> <string name="launchBrowserDefault">Launch Browser?</string> <!-- STK setup Call --> <string name="SetupCallDefault">Accept Call?</string> </resources>
telephony/java/com/android/internal/telephony/cat/CatService.java +33 −4 Original line number Diff line number Diff line Loading @@ -94,6 +94,8 @@ public class CatService extends Handler implements AppInterface { private static final int DEV_ID_TERMINAL = 0x82; private static final int DEV_ID_NETWORK = 0x83; static final String STK_DEFAULT = "Defualt Message"; /* Intentionally private for singleton */ private CatService(CommandsInterface ci, IccRecords ir, Context context, IccFileHandler fh, IccCard ic) { Loading Loading @@ -157,7 +159,15 @@ public class CatService extends Handler implements AppInterface { } break; case MSG_ID_PROACTIVE_COMMAND: try { cmdParams = (CommandParams) rilMsg.mData; } catch (ClassCastException e) { // for error handling : cast exception CatLog.d(this, "Fail to parse proactive command"); sendTerminalResponse(mCurrntCmd.mCmdDet, ResultCode.CMD_DATA_NOT_UNDERSTOOD, false, 0x00, null); break; } if (cmdParams != null) { if (rilMsg.mResCode == ResultCode.OK) { handleProactiveCommand(cmdParams); Loading Loading @@ -194,6 +204,7 @@ public class CatService extends Handler implements AppInterface { private void handleProactiveCommand(CommandParams cmdParams) { CatLog.d(this, cmdParams.getCommandType().name()); CharSequence message; CatCmdMessage cmdMsg = new CatCmdMessage(cmdParams); switch (cmdParams.getCommandType()) { case SET_UP_MENU: Loading Loading @@ -224,26 +235,44 @@ public class CatService extends Handler implements AppInterface { case CommandParamsFactory.DTTZ_SETTING: resp = new DTTZResponseData(null); sendTerminalResponse(cmdParams.cmdDet, ResultCode.OK, false, 0, resp); break; return; case CommandParamsFactory.LANGUAGE_SETTING: resp = new LanguageResponseData(Locale.getDefault().getLanguage()); sendTerminalResponse(cmdParams.cmdDet, ResultCode.OK, false, 0, resp); break; return; default: sendTerminalResponse(cmdParams.cmdDet, ResultCode.OK, false, 0, null); return; } case LAUNCH_BROWSER: if ((((LaunchBrowserParams) cmdParams).confirmMsg.text != null) && (((LaunchBrowserParams) cmdParams).confirmMsg.text.equals(STK_DEFAULT))) { message = mContext.getText(com.android.internal.R.string.launchBrowserDefault); ((LaunchBrowserParams) cmdParams).confirmMsg.text = message.toString(); } break; case SELECT_ITEM: case GET_INPUT: case GET_INKEY: break; case SEND_DTMF: case SEND_SMS: case SEND_SS: case SEND_USSD: if ((((DisplayTextParams)cmdParams).textMsg.text != null) && (((DisplayTextParams)cmdParams).textMsg.text.equals(STK_DEFAULT))) { message = mContext.getText(com.android.internal.R.string.sending); ((DisplayTextParams)cmdParams).textMsg.text = message.toString(); } break; case PLAY_TONE: break; case SET_UP_CALL: // nothing to do on telephony! if ((((CallSetupParams) cmdParams).confirmMsg.text != null) && (((CallSetupParams) cmdParams).confirmMsg.text.equals(STK_DEFAULT))) { message = mContext.getText(com.android.internal.R.string.SetupCallDefault); ((CallSetupParams) cmdParams).confirmMsg.text = message.toString(); } break; default: CatLog.d(this, "Unsupported command"); Loading
telephony/java/com/android/internal/telephony/cat/CommandParamsFactory.java +5 −11 Original line number Diff line number Diff line Loading @@ -403,6 +403,7 @@ class CommandParamsFactory extends Handler { input.ucs2 = (cmdDet.commandQualifier & 0x02) != 0; input.yesNo = (cmdDet.commandQualifier & 0x04) != 0; input.helpAvailable = (cmdDet.commandQualifier & 0x80) != 0; input.echo = true; mCmdParams = new GetInputParams(cmdDet, input); Loading Loading @@ -625,11 +626,7 @@ class CommandParamsFactory extends Handler { ComprehensionTlv ctlv = searchForTag(ComprehensionTlvTag.ALPHA_ID, ctlvs); if (ctlv != null) { textMsg.text = ValueParser.retrieveAlphaId(ctlv); } else { throw new ResultException(ResultCode.REQUIRED_VALUES_MISSING); } ctlv = searchForTag(ComprehensionTlvTag.ICON_ID, ctlvs); if (ctlv != null) { Loading Loading @@ -714,9 +711,8 @@ class CommandParamsFactory extends Handler { // parse alpha identifier. ctlv = searchForTag(ComprehensionTlvTag.ALPHA_ID, ctlvs); if (ctlv != null) { confirmMsg.text = ValueParser.retrieveAlphaId(ctlv); } // parse icon identifier ctlv = searchForTag(ComprehensionTlvTag.ICON_ID, ctlvs); if (ctlv != null) { Loading Loading @@ -841,9 +837,7 @@ class CommandParamsFactory extends Handler { // get confirmation message string. ctlv = searchForNextTag(ComprehensionTlvTag.ALPHA_ID, iter); if (ctlv != null) { confirmMsg.text = ValueParser.retrieveAlphaId(ctlv); } ctlv = searchForTag(ComprehensionTlvTag.ICON_ID, ctlvs); if (ctlv != null) { Loading
telephony/java/com/android/internal/telephony/cat/ComprehensionTlv.java +5 −1 Original line number Diff line number Diff line Loading @@ -94,6 +94,7 @@ class ComprehensionTlv { startIndex = ctlv.mValueIndex + ctlv.mLength; } else { CatLog.d(LOG_TAG, "decodeMany: ctlv is null, stop decoding"); items.clear(); break; } } Loading Loading @@ -123,7 +124,10 @@ class ComprehensionTlv { case 0: case 0xff: case 0x80: throw new ResultException(ResultCode.CMD_DATA_NOT_UNDERSTOOD); // for error handling // these one make exception while decoding the abnormal command. // (in case of Ghana MTN simcard , JDI simcard) return null; case 0x7f: // tag is in three-byte format tag = ((data[curIndex] & 0xff) << 8) Loading
telephony/java/com/android/internal/telephony/cat/ValueParser.java +15 −10 Original line number Diff line number Diff line Loading @@ -273,6 +273,7 @@ abstract class ValueParser { */ static String retrieveAlphaId(ComprehensionTlv ctlv) throws ResultException { if (ctlv != null) { byte[] rawValue = ctlv.getRawValue(); int valueIndex = ctlv.getValueIndex(); int length = ctlv.getLength(); Loading @@ -283,8 +284,12 @@ abstract class ValueParser { } catch (IndexOutOfBoundsException e) { throw new ResultException(ResultCode.CMD_DATA_NOT_UNDERSTOOD); } } else { return CatService.STK_DEFAULT; } } else { return CatService.STK_DEFAULT; } return null; } /** Loading