Merge cherrypicks of ['googleplex-android-review.googlesource.com/35620472'] into udc-platform-release. Change-Id: I9cc9b64facbde8bee6f5c4dc1fcec13870c550dc
diff --git a/src/java/com/android/internal/telephony/cat/CommandParamsFactory.java b/src/java/com/android/internal/telephony/cat/CommandParamsFactory.java index 65f3c4a..a351e34 100644 --- a/src/java/com/android/internal/telephony/cat/CommandParamsFactory.java +++ b/src/java/com/android/internal/telephony/cat/CommandParamsFactory.java
@@ -22,6 +22,7 @@ import static com.android.internal.telephony.cat.CatCmdMessage.SetupEventListConstants.LANGUAGE_SELECTION_EVENT; import static com.android.internal.telephony.cat.CatCmdMessage.SetupEventListConstants.USER_ACTIVITY_EVENT; +import android.app.KeyguardManager; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; import android.content.res.Resources.NotFoundException; @@ -88,6 +89,7 @@ private static final int MAX_GSM7_DEFAULT_CHARS = 239; private static final int MAX_UCS2_CHARS = 118; + private Context mContext; /** * Returns a singleton instance of CommandParamsFactory * @param caller Class used for queuing raw ril messages, decoding them into @@ -109,6 +111,7 @@ private CommandParamsFactory(RilMessageDecoder caller, IccFileHandler fh, Context context) { mCaller = caller; + mContext = context; mIconLoader = IconLoader.getInstance(this, fh); try { mNoAlphaUsrCnf = context.getResources().getBoolean( @@ -875,7 +878,12 @@ */ private boolean processLaunchBrowser(CommandDetails cmdDet, List<ComprehensionTlv> ctlvs) throws ResultException { - + KeyguardManager keyguardManager = mContext.getSystemService(KeyguardManager.class); + if (keyguardManager != null && keyguardManager.isDeviceLocked()) { + CatLog.d(this, "The device is locked, cannot launch the Browser"); + throw new ResultException(ResultCode.LAUNCH_BROWSER_ERROR, + "The device is locked, unable to process the command."); + } CatLog.d(this, "process LaunchBrowser"); TextMessage confirmMsg = new TextMessage();
diff --git a/src/java/com/android/internal/telephony/cat/ResultException.java b/src/java/com/android/internal/telephony/cat/ResultException.java index 0de9ffe..a0f1406 100644 --- a/src/java/com/android/internal/telephony/cat/ResultException.java +++ b/src/java/com/android/internal/telephony/cat/ResultException.java
@@ -34,13 +34,12 @@ public ResultException(ResultCode result) { super(); - // ETSI TS 102 223, 8.12 -- For the general results '20', '21', '26', + // ETSI TS 102 223, 8.12 -- For the general results '20', '21', // '38', '39', '3A', '3C', and '3D', it is mandatory for the terminal // to provide a specific cause value as additional information. switch (result) { case TERMINAL_CRNTLY_UNABLE_TO_PROCESS: // 0x20 case NETWORK_CRNTLY_UNABLE_TO_PROCESS: // 0x21 - case LAUNCH_BROWSER_ERROR: // 0x26 case MULTI_CARDS_CMD_ERROR: // 0x38 case USIM_CALL_CONTROL_PERMANENT: // 0x39 case BIP_ERROR: // 0x3a