summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java10
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/LockIcon.java20
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java8
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java9
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java9
5 files changed, 38 insertions, 18 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java
index 5001006d1aa6..d7f67cef033e 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java
@@ -93,7 +93,6 @@ public class KeyguardBouncer {
private int mBouncerPromptReason;
private boolean mIsAnimatingAway;
private boolean mIsScrimmed;
- private ViewGroup mLockIconContainer;
public KeyguardBouncer(Context context, ViewMediatorCallback callback,
LockPatternUtils lockPatternUtils, ViewGroup container,
@@ -190,10 +189,6 @@ public class KeyguardBouncer {
return mIsScrimmed;
}
- public ViewGroup getLockIconContainer() {
- return mRoot == null || mRoot.getVisibility() != View.VISIBLE ? null : mLockIconContainer;
- }
-
/**
* This method must be called at the end of the bouncer animation when
* the translation is performed manually by the user, otherwise FalsingManager
@@ -374,11 +369,6 @@ public class KeyguardBouncer {
private void showPrimarySecurityScreen() {
mKeyguardView.showPrimarySecurityScreen();
- KeyguardSecurityView keyguardSecurityView = mKeyguardView.getCurrentSecurityView();
- if (keyguardSecurityView != null) {
- mLockIconContainer = ((ViewGroup) keyguardSecurityView)
- .findViewById(R.id.lock_icon_container);
- }
}
/**
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockIcon.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockIcon.java
index 62d855dfd14c..67810738b17e 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockIcon.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockIcon.java
@@ -105,6 +105,7 @@ public class LockIcon extends KeyguardAffordanceView implements OnUserInfoChange
private boolean mShowingLaunchAffordance;
private boolean mKeyguardJustShown;
private boolean mUpdatePending;
+ private boolean mBouncerPreHideAnimation;
private final KeyguardMonitor.Callback mKeyguardMonitorCallback =
new KeyguardMonitor.Callback() {
@@ -125,9 +126,12 @@ public class LockIcon extends KeyguardAffordanceView implements OnUserInfoChange
@Override
public void onKeyguardFadingAwayChanged() {
- if (!mKeyguardMonitor.isKeyguardFadingAway() && mBlockUpdates) {
- mBlockUpdates = false;
- update(true /* force */);
+ if (!mKeyguardMonitor.isKeyguardFadingAway()) {
+ mBouncerPreHideAnimation = false;
+ if (mBlockUpdates) {
+ mBlockUpdates = false;
+ update(true /* force */);
+ }
}
}
};
@@ -464,6 +468,14 @@ public class LockIcon extends KeyguardAffordanceView implements OnUserInfoChange
}
}
+ /**
+ * Animate padlock opening when bouncer challenge is solved.
+ */
+ public void onBouncerPreHideAnimation() {
+ mBouncerPreHideAnimation = true;
+ update();
+ }
+
@Retention(RetentionPolicy.SOURCE)
@IntDef({ERROR, UNLOCK, LOCK, SCANNING})
@interface LockAnimIndex {}
@@ -511,7 +523,7 @@ public class LockIcon extends KeyguardAffordanceView implements OnUserInfoChange
private int getState() {
KeyguardUpdateMonitor updateMonitor = Dependency.get(KeyguardUpdateMonitor.class);
- if ((mUnlockMethodCache.canSkipBouncer() || !mKeyguardShowing
+ if ((mUnlockMethodCache.canSkipBouncer() || !mKeyguardShowing || mBouncerPreHideAnimation
|| mKeyguardMonitor.isKeyguardGoingAway()) && !mSimLocked) {
return STATE_LOCK_OPEN;
} else if (mTransientBiometricsError) {
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 6b12c6158948..7bc849d28c53 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
@@ -4539,6 +4539,14 @@ public class StatusBar extends SystemUI implements DemoMode,
}
/**
+ * When {@link KeyguardBouncer} starts to be dismissed, playing its animation.
+ */
+ public void onBouncerPreHideAnimation() {
+ mNotificationPanel.onBouncerPreHideAnimation();
+ mStatusBarWindow.onBouncerPreHideAnimation();
+ }
+
+ /**
* @return a PackageManger for userId or if userId is < 0 (USER_ALL etc) then
* return PackageManager for mContext
*/
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java
index 50c356139fd3..bb8ba055276a 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java
@@ -279,14 +279,15 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
0 /* delay */);
} else {
final long duration;
+ final int delay;
if (needsBypassFading()) {
duration = KeyguardBypassController.BYPASS_PANEL_FADE_DURATION;
+ delay = 0;
} else {
duration = AppearAnimationUtils.DEFAULT_APPEAR_DURATION / 2;
+ delay = 120;
}
- CrossFadeHelper.fadeOut(mLockIconContainer,
- duration /* duration */,
- 0 /* delay */, null /* runnable */);
+ CrossFadeHelper.fadeOut(mLockIconContainer, duration, delay, null /* runnable */);
}
}
}
@@ -516,7 +517,7 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
public void startPreHideAnimation(Runnable finishRunnable) {
if (mBouncer.isShowing()) {
mBouncer.startPreHideAnimation(finishRunnable);
- mNotificationPanelView.onBouncerPreHideAnimation();
+ mStatusBar.onBouncerPreHideAnimation();
} else if (finishRunnable != null) {
finishRunnable.run();
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java
index 7a81ed419fff..a9e818df6bc3 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java
@@ -527,6 +527,15 @@ public class StatusBarWindowView extends FrameLayout {
}
}
+ /**
+ * When {@link KeyguardBouncer} starts to be dismissed and starts to play its animation.
+ */
+ public void onBouncerPreHideAnimation() {
+ if (mLockIcon != null) {
+ mLockIcon.onBouncerPreHideAnimation();
+ }
+ }
+
public class LayoutParams extends FrameLayout.LayoutParams {
public boolean ignoreRightInset;