diff options
| author | 2018-09-20 16:15:52 +0000 | |
|---|---|---|
| committer | 2018-09-20 16:15:52 +0000 | |
| commit | 838337d0d0a2f61e843a8d53b215038f02be1605 (patch) | |
| tree | 935a316a3e5c8578ae7a56187fc3edc0f1c0570f | |
| parent | bf954233c66155146371867b4f95a30a032cc62e (diff) | |
| parent | 6d48eabe6b2b474bfc774ee10488a79ceffc5753 (diff) | |
Merge "Hide bouncer after unlocking SIM card"
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java index 1655c01f5e8e..757c821f37e3 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java +++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java @@ -20,6 +20,9 @@ import static android.provider.Settings.System.SCREEN_OFF_TIMEOUT; import static android.view.Display.INVALID_DISPLAY; import static com.android.internal.telephony.IccCardConstants.State.ABSENT; +import static com.android.internal.telephony.IccCardConstants.State.PIN_REQUIRED; +import static com.android.internal.telephony.IccCardConstants.State.PUK_REQUIRED; +import static com.android.internal.telephony.IccCardConstants.State.READY; import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.SOME_AUTH_REQUIRED_AFTER_USER_REQUEST; import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.STRONG_AUTH_REQUIRED_AFTER_DPM_LOCK_NOW; import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.STRONG_AUTH_REQUIRED_AFTER_LOCKOUT; @@ -30,7 +33,6 @@ import android.app.ActivityTaskManager; import android.app.AlarmManager; import android.app.PendingIntent; import android.app.StatusBarManager; -import android.hardware.biometrics.BiometricSourceType; import android.app.trust.TrustManager; import android.content.BroadcastReceiver; import android.content.ContentResolver; @@ -38,6 +40,7 @@ import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.pm.UserInfo; +import android.hardware.biometrics.BiometricSourceType; import android.media.AudioManager; import android.media.SoundPool; import android.os.Bundle; @@ -58,6 +61,7 @@ import android.telephony.TelephonyManager; import android.util.EventLog; import android.util.Log; import android.util.Slog; +import android.util.SparseArray; import android.view.ViewGroup; import android.view.WindowManagerPolicyConstants; import android.view.animation.Animation; @@ -70,21 +74,21 @@ import com.android.internal.policy.IKeyguardDrawnCallback; import com.android.internal.policy.IKeyguardExitCallback; import com.android.internal.policy.IKeyguardStateCallback; import com.android.internal.telephony.IccCardConstants; +import com.android.internal.util.LatencyTracker; import com.android.internal.widget.LockPatternUtils; import com.android.keyguard.KeyguardConstants; import com.android.keyguard.KeyguardDisplayManager; import com.android.keyguard.KeyguardSecurityView; import com.android.keyguard.KeyguardUpdateMonitor; import com.android.keyguard.KeyguardUpdateMonitorCallback; -import com.android.internal.util.LatencyTracker; import com.android.keyguard.ViewMediatorCallback; import com.android.systemui.Dependency; import com.android.systemui.SystemUI; import com.android.systemui.SystemUIFactory; import com.android.systemui.UiOffloadThread; import com.android.systemui.classifier.FalsingManager; -import com.android.systemui.statusbar.phone.NotificationPanelView; import com.android.systemui.statusbar.phone.BiometricUnlockController; +import com.android.systemui.statusbar.phone.NotificationPanelView; import com.android.systemui.statusbar.phone.StatusBar; import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager; @@ -274,6 +278,12 @@ public class KeyguardViewMediator extends SystemUI { private KeyguardUpdateMonitor mUpdateMonitor; + /** + * Last SIM state reported by the telephony system. + * Index is the slotId - in case of multiple SIM cards. + */ + private final SparseArray<IccCardConstants.State> mLastSimStates = new SparseArray<>(); + private boolean mDeviceInteractive; private boolean mGoingToSleep; @@ -450,6 +460,14 @@ public class KeyguardViewMediator extends SystemUI { } } + boolean simWasLocked; + synchronized (KeyguardViewMediator.this) { + IccCardConstants.State lastState = mLastSimStates.get(slotId); + simWasLocked = (lastState == PIN_REQUIRED || lastState == PUK_REQUIRED) + && simState == READY; + mLastSimStates.append(slotId, simState); + } + switch (simState) { case NOT_READY: case ABSENT: @@ -503,6 +521,9 @@ public class KeyguardViewMediator extends SystemUI { case READY: synchronized (KeyguardViewMediator.this) { if (DEBUG_SIM_STATES) Log.d(TAG, "READY, reset state? " + mShowing); + if (mShowing && simWasLocked) { + resetStateLocked(); + } mLockWhenSimRemoved = true; } break; |