summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosh Tsuji <tsuji@google.com>2022-01-13 15:45:29 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2022-01-13 15:45:29 +0000
commitbbfe4b8fcdc2b9e55ec2aa5c1263816e617462e2 (patch)
tree91325d663c9e30b921dab59e0dbcad38d5f6b8f2
parent68fe893dd5cf56085b53e62270a90cfa1b4cc1f0 (diff)
parent9d5f970c7638d9951bf95d9aed6a0f627fb20da0 (diff)
downloadbase-bbfe4b8fcdc2b9e55ec2aa5c1263816e617462e2.tar.gz
Merge "Check if the SIM is secure before dispatching swipe to unlock." into sc-v2-dev
-rw-r--r--packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java15
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java4
2 files changed, 19 insertions, 0 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java
index 7a53fd1152fe..e9f288d51317 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java
@@ -1727,6 +1727,21 @@ public class KeyguardViewMediator extends SystemUI implements Dumpable,
|| mUpdateMonitor.isSimPinSecure();
}
+ /**
+ * Whether any of the SIMs on the device are secured with a PIN. If so, the keyguard should not
+ * be dismissable until the PIN is entered, even if the device itself has no lock set.
+ */
+ public boolean isAnySimPinSecure() {
+ for (int i = 0; i < mLastSimStates.size(); i++) {
+ final int key = mLastSimStates.keyAt(i);
+ if (KeyguardUpdateMonitor.isSimPinSecure(mLastSimStates.get(key))) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
public void setSwitchingUser(boolean switching) {
mUpdateMonitor.setSwitchingUser(switching);
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
index 7a68b9616fa3..778a1e36392e 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
@@ -1354,10 +1354,14 @@ public class StatusBar extends SystemUI implements
// Things that mean we're not dismissing the keyguard, and should ignore this expansion:
// - Keyguard isn't even visible.
// - Keyguard is visible, but can't be dismissed (swiping up will show PIN/password prompt).
+ // - The SIM is locked, you can't swipe to unlock. If the SIM is locked but there is no
+ // device lock set, canDismissLockScreen returns true even though you should not be able
+ // to dismiss the lock screen until entering the SIM PIN.
// - QS is expanded and we're swiping - swiping up now will hide QS, not dismiss the
// keyguard.
if (!isKeyguardShowing()
|| !mKeyguardStateController.canDismissLockScreen()
+ || mKeyguardViewMediator.isAnySimPinSecure()
|| (mNotificationPanelViewController.isQsExpanded() && trackingTouch)) {
return;
}