Fixed a bug with encryption where the keyguard was never shown with PIN
This led to the network being unusable. We now ensure that the Keyguard is not notified of the SIM PIN changes until after the initial dismissal logic is done. In addition, the fullscreen PIN is now always shown immediately and not until the user swipes up, which was an error before. Also made sure that the Keyguard Scrim is correctly visible when shown. Bug: 21850021 Change-Id: I81804124bae30adf0e17e26cc42f67e48fc446e8
This commit is contained in:
@@ -622,9 +622,8 @@ public class KeyguardViewMediator extends SystemUI {
|
||||
synchronized (this) {
|
||||
if (DEBUG) Log.d(TAG, "onSystemReady");
|
||||
mSystemReady = true;
|
||||
mUpdateMonitor.registerCallback(mUpdateCallback);
|
||||
|
||||
doKeyguardLocked(null);
|
||||
mUpdateMonitor.registerCallback(mUpdateCallback);
|
||||
}
|
||||
// Most services aren't available until the system reaches the ready state, so we
|
||||
// send it here when the device first boots.
|
||||
|
||||
@@ -200,6 +200,7 @@ public class KeyguardBouncer {
|
||||
* notifications on Keyguard, like SIM PIN/PUK.
|
||||
*/
|
||||
public boolean needsFullscreenBouncer() {
|
||||
ensureView();
|
||||
if (mKeyguardView != null) {
|
||||
SecurityMode mode = mKeyguardView.getSecurityMode();
|
||||
return mode == SecurityMode.SimPin || mode == SecurityMode.SimPuk;
|
||||
|
||||
@@ -137,6 +137,12 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener,
|
||||
scheduleUpdate();
|
||||
}
|
||||
|
||||
public void abortKeyguardFadingOut() {
|
||||
if (mAnimateKeyguardFadingOut) {
|
||||
endAnimateKeyguardFadingOut();
|
||||
}
|
||||
}
|
||||
|
||||
public void animateGoingToFullShade(long delay, long duration) {
|
||||
mDurationOverride = duration;
|
||||
mAnimationDelay = delay;
|
||||
@@ -321,17 +327,21 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener,
|
||||
mScrimBehind.getViewTreeObserver().removeOnPreDrawListener(this);
|
||||
mUpdatePending = false;
|
||||
updateScrims();
|
||||
mAnimateKeyguardFadingOut = false;
|
||||
mDurationOverride = -1;
|
||||
mAnimationDelay = 0;
|
||||
|
||||
// Make sure that we always call the listener even if we didn't start an animation.
|
||||
endAnimateKeyguardFadingOut();
|
||||
mAnimationStarted = false;
|
||||
return true;
|
||||
}
|
||||
|
||||
private void endAnimateKeyguardFadingOut() {
|
||||
mAnimateKeyguardFadingOut = false;
|
||||
if (!mAnimationStarted && mOnAnimationFinished != null) {
|
||||
mOnAnimationFinished.run();
|
||||
mOnAnimationFinished = null;
|
||||
}
|
||||
mAnimationStarted = false;
|
||||
return true;
|
||||
}
|
||||
|
||||
public void setBackDropView(BackDropView backDropView) {
|
||||
|
||||
@@ -100,6 +100,7 @@ public class StatusBarKeyguardViewManager {
|
||||
public void show(Bundle options) {
|
||||
mShowing = true;
|
||||
mStatusBarWindowManager.setKeyguardShowing(true);
|
||||
mScrimController.abortKeyguardFadingOut();
|
||||
reset();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user