diff options
author | Jorim Jaggi <jjaggi@google.com> | 2016-10-06 20:51:08 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2016-10-06 20:51:08 +0000 |
commit | 2a30b7600992d136f63b26aa28204e8e97730e10 (patch) | |
tree | 040be63294860ecb04814ab40fe3c2e5f839c0ae | |
parent | 5ab84cff1a21c897d0789b964edbfaaf4896e8e6 (diff) | |
parent | 1ad950823b8494324f5b32fc03553e62b5e50fbf (diff) |
Reload state when user unlocks am: dadafd4109
am: 1ad950823b
Change-Id: I26b1826986ccba9d0c7fc1a6adb6f9118795557a
5 files changed, 45 insertions, 7 deletions
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java index 8b220d4d63df..a9f6dc9052b3 100644 --- a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java +++ b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java @@ -16,6 +16,7 @@ package com.android.keyguard; +import static android.content.Intent.ACTION_USER_UNLOCKED; import static android.os.BatteryManager.BATTERY_HEALTH_UNKNOWN; import static android.os.BatteryManager.BATTERY_STATUS_FULL; import static android.os.BatteryManager.BATTERY_STATUS_UNKNOWN; @@ -136,6 +137,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { private static final int MSG_SCREEN_TURNED_ON = 331; private static final int MSG_SCREEN_TURNED_OFF = 332; private static final int MSG_DREAMING_STATE_CHANGED = 333; + private static final int MSG_USER_UNLOCKED = 334; /** Fingerprint state: Not listening to fingerprint. */ private static final int FINGERPRINT_STATE_STOPPED = 0; @@ -291,6 +293,9 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { case MSG_DREAMING_STATE_CHANGED: handleDreamingStateChanged(msg.arg1); break; + case MSG_USER_UNLOCKED: + handleUserUnlocked(); + break; } } }; @@ -723,6 +728,8 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } else if (DevicePolicyManager.ACTION_DEVICE_POLICY_MANAGER_STATE_CHANGED .equals(action)) { mHandler.sendEmptyMessage(MSG_DPM_STATE_CHANGED); + } else if (ACTION_USER_UNLOCKED.equals(action)) { + mHandler.sendEmptyMessage(MSG_USER_UNLOCKED); } } }; @@ -1025,6 +1032,16 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } } + private void handleUserUnlocked() { + mNeedsSlowUnlockTransition = resolveNeedsSlowUnlockTransition(); + for (int i = 0; i < mCallbacks.size(); i++) { + KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); + if (cb != null) { + cb.onUserUnlocked(); + } + } + } + private KeyguardUpdateMonitor(Context context) { mContext = context; mSubscriptionManager = SubscriptionManager.from(context); @@ -1065,6 +1082,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { allUserFilter.addAction(ACTION_FACE_UNLOCK_STARTED); allUserFilter.addAction(ACTION_FACE_UNLOCK_STOPPED); allUserFilter.addAction(DevicePolicyManager.ACTION_DEVICE_POLICY_MANAGER_STATE_CHANGED); + allUserFilter.addAction(ACTION_USER_UNLOCKED); context.registerReceiverAsUser(mBroadcastAllReceiver, UserHandle.ALL, allUserFilter, null, null); diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java index eb29d9b550e3..14d6b599a9b5 100644 --- a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java +++ b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java @@ -128,6 +128,11 @@ public class KeyguardUpdateMonitorCallback { public void onUserInfoChanged(int userId) { } /** + * Called when a user got unlocked. + */ + public void onUserUnlocked() { } + + /** * Called when boot completed. * * Note, this callback will only be received if boot complete occurs after registering with diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java b/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java index cf962df64dd9..0ef9715259c2 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java @@ -95,8 +95,6 @@ public class KeyguardIndicationController { KeyguardUpdateMonitor.getInstance(context).registerCallback(mUpdateMonitor); context.registerReceiverAsUser(mTickReceiver, UserHandle.SYSTEM, new IntentFilter(Intent.ACTION_TIME_TICK), null, null); - context.registerReceiverAsUser(mUnlockReceiver, UserHandle.ALL, - new IntentFilter(Intent.ACTION_USER_UNLOCKED), null, null); } public void setVisible(boolean visible) { @@ -322,18 +320,16 @@ public class KeyguardIndicationController { super.onFingerprintAuthFailed(); mLastSuccessiveErrorMessage = -1; } - }; - BroadcastReceiver mTickReceiver = new BroadcastReceiver() { @Override - public void onReceive(Context context, Intent intent) { + public void onUserUnlocked() { if (mVisible) { updateIndication(); } } }; - BroadcastReceiver mUnlockReceiver = new BroadcastReceiver() { + BroadcastReceiver mTickReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { if (mVisible) { @@ -342,6 +338,7 @@ public class KeyguardIndicationController { } }; + private final Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java index 8cabfb93bf32..4d0e5d34761b 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java @@ -111,6 +111,7 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL private KeyguardIndicationController mIndicationController; private AccessibilityController mAccessibilityController; private PhoneStatusBar mPhoneStatusBar; + private KeyguardAffordanceHelper mAffordanceHelper; private boolean mUserSetupComplete; private boolean mPrewarmBound; @@ -271,6 +272,10 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL updateCameraVisibility(); // in case onFinishInflate() was called too early } + public void setAffordanceHelper(KeyguardAffordanceHelper affordanceHelper) { + mAffordanceHelper = affordanceHelper; + } + public void setUserSetupComplete(boolean userSetupComplete) { mUserSetupComplete = userSetupComplete; updateCameraVisibility(); @@ -601,6 +606,9 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL mPreviewContainer.addView(mCameraPreview); mCameraPreview.setVisibility(visibleBefore ? View.VISIBLE : View.INVISIBLE); } + if (mAffordanceHelper != null) { + mAffordanceHelper.updatePreviews(); + } } private void updateLeftPreview() { @@ -618,6 +626,9 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL mPreviewContainer.addView(mLeftPreview); mLeftPreview.setVisibility(View.INVISIBLE); } + if (mAffordanceHelper != null) { + mAffordanceHelper.updatePreviews(); + } } public void startFinishDozeAnimation() { @@ -702,6 +713,13 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL public void onStrongAuthStateChanged(int userId) { mLockIcon.update(); } + + @Override + public void onUserUnlocked() { + inflateCameraPreview(); + updateCameraVisibility(); + updateLeftAffordance(); + } }; public void setKeyguardIndicationController( diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java index ae752293a423..1cf7a23e6b40 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java @@ -233,6 +233,7 @@ public class NotificationPanelView extends PanelView implements mKeyguardBottomArea = (KeyguardBottomAreaView) findViewById(R.id.keyguard_bottom_area); mQsNavbarScrim = findViewById(R.id.qs_navbar_scrim); mAfforanceHelper = new KeyguardAffordanceHelper(this, getContext()); + mKeyguardBottomArea.setAffordanceHelper(mAfforanceHelper); mLastOrientation = getResources().getConfiguration().orientation; mQsAutoReinflateContainer = @@ -1016,7 +1017,6 @@ public class NotificationPanelView extends PanelView implements mKeyguardStatusBar.setVisibility(keyguardShowing ? View.VISIBLE : View.INVISIBLE); if (keyguardShowing && oldState != mStatusBarState) { mKeyguardBottomArea.onKeyguardShowingChanged(); - mAfforanceHelper.updatePreviews(); } } if (keyguardShowing) { |