summaryrefslogtreecommitdiff
path: root/packages/SystemUI/src/com/android/keyguard/KeyguardStatusViewController.java
diff options
context:
space:
mode:
authorDaniel Norman <danielnorman@google.com>2021-02-08 11:11:18 -0800
committerDaniel Norman <danielnorman@google.com>2021-02-17 08:39:59 -0800
commit337095f9d277c566cb888bc3adbac16576f1ae70 (patch)
tree8818a5cd44fdfa89f7ef4d8570dbc67239e087dd /packages/SystemUI/src/com/android/keyguard/KeyguardStatusViewController.java
parent80b7ed3f7373212a33fe42af8a7b7fc0ebcb187c (diff)
parenta66768631e6f47e1f7ffcf4ec86f96d6e8f35282 (diff)
Merge SP1A.210208.001
Change-Id: I7d4929024872b369444e276a60ded06e37b1fefb
Diffstat (limited to 'packages/SystemUI/src/com/android/keyguard/KeyguardStatusViewController.java')
-rw-r--r--packages/SystemUI/src/com/android/keyguard/KeyguardStatusViewController.java48
1 files changed, 36 insertions, 12 deletions
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardStatusViewController.java b/packages/SystemUI/src/com/android/keyguard/KeyguardStatusViewController.java
index 826020c71159..973b49384c09 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardStatusViewController.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardStatusViewController.java
@@ -27,6 +27,7 @@ import com.android.systemui.statusbar.notification.AnimatableProperty;
import com.android.systemui.statusbar.notification.PropertyAnimator;
import com.android.systemui.statusbar.notification.stack.AnimationProperties;
import com.android.systemui.statusbar.notification.stack.StackStateAnimator;
+import com.android.systemui.statusbar.phone.DozeParameters;
import com.android.systemui.statusbar.phone.NotificationIconAreaController;
import com.android.systemui.statusbar.phone.NotificationIconContainer;
import com.android.systemui.statusbar.policy.ConfigurationController;
@@ -53,8 +54,9 @@ public class KeyguardStatusViewController extends ViewController<KeyguardStatusV
private final KeyguardUpdateMonitor mKeyguardUpdateMonitor;
private final ConfigurationController mConfigurationController;
private final NotificationIconAreaController mNotificationIconAreaController;
+ private final DozeParameters mDozeParameters;
- private boolean mKeyguardStatusViewAnimating;
+ private boolean mKeyguardStatusViewVisibilityAnimating;
private int mLockScreenMode = KeyguardUpdateMonitor.LOCK_SCREEN_MODE_NORMAL;
@Inject
@@ -65,7 +67,8 @@ public class KeyguardStatusViewController extends ViewController<KeyguardStatusV
KeyguardStateController keyguardStateController,
KeyguardUpdateMonitor keyguardUpdateMonitor,
ConfigurationController configurationController,
- NotificationIconAreaController notificationIconAreaController) {
+ NotificationIconAreaController notificationIconAreaController,
+ DozeParameters dozeParameters) {
super(keyguardStatusView);
mKeyguardSliceViewController = keyguardSliceViewController;
mKeyguardClockSwitchController = keyguardClockSwitchController;
@@ -73,6 +76,7 @@ public class KeyguardStatusViewController extends ViewController<KeyguardStatusV
mKeyguardUpdateMonitor = keyguardUpdateMonitor;
mConfigurationController = configurationController;
mNotificationIconAreaController = notificationIconAreaController;
+ mDozeParameters = dozeParameters;
}
@Override
@@ -140,7 +144,7 @@ public class KeyguardStatusViewController extends ViewController<KeyguardStatusV
* Set keyguard status view alpha.
*/
public void setAlpha(float alpha) {
- if (!mKeyguardStatusViewAnimating) {
+ if (!mKeyguardStatusViewVisibilityAnimating) {
mView.setAlpha(alpha);
}
}
@@ -194,8 +198,12 @@ public class KeyguardStatusViewController extends ViewController<KeyguardStatusV
* Update position of the view with an optional animation
*/
public void updatePosition(int x, int y, float scale, boolean animate) {
- PropertyAnimator.setProperty(mView, AnimatableProperty.Y, y, CLOCK_ANIMATION_PROPERTIES,
- animate);
+ // We animate the status view visible/invisible using Y translation, so don't change it
+ // while the animation is running.
+ if (!mKeyguardStatusViewVisibilityAnimating) {
+ PropertyAnimator.setProperty(mView, AnimatableProperty.Y, y, CLOCK_ANIMATION_PROPERTIES,
+ animate);
+ }
if (mLockScreenMode == KeyguardUpdateMonitor.LOCK_SCREEN_MODE_LAYOUT_1) {
// reset any prior movement
@@ -223,10 +231,10 @@ public class KeyguardStatusViewController extends ViewController<KeyguardStatusV
boolean goingToFullShade,
int oldStatusBarState) {
mView.animate().cancel();
- mKeyguardStatusViewAnimating = false;
+ mKeyguardStatusViewVisibilityAnimating = false;
if ((!keyguardFadingAway && oldStatusBarState == KEYGUARD
&& statusBarState != KEYGUARD) || goingToFullShade) {
- mKeyguardStatusViewAnimating = true;
+ mKeyguardStatusViewVisibilityAnimating = true;
mView.animate()
.alpha(0f)
.setStartDelay(0)
@@ -242,7 +250,7 @@ public class KeyguardStatusViewController extends ViewController<KeyguardStatusV
}
} else if (oldStatusBarState == StatusBarState.SHADE_LOCKED && statusBarState == KEYGUARD) {
mView.setVisibility(View.VISIBLE);
- mKeyguardStatusViewAnimating = true;
+ mKeyguardStatusViewVisibilityAnimating = true;
mView.setAlpha(0f);
mView.animate()
.alpha(1f)
@@ -252,7 +260,7 @@ public class KeyguardStatusViewController extends ViewController<KeyguardStatusV
.withEndAction(mAnimateKeyguardStatusViewVisibleEndRunnable);
} else if (statusBarState == KEYGUARD) {
if (keyguardFadingAway) {
- mKeyguardStatusViewAnimating = true;
+ mKeyguardStatusViewVisibilityAnimating = true;
mView.animate()
.alpha(0)
.translationYBy(-getHeight() * 0.05f)
@@ -261,6 +269,22 @@ public class KeyguardStatusViewController extends ViewController<KeyguardStatusV
.setStartDelay(0)
.withEndAction(mAnimateKeyguardStatusViewInvisibleEndRunnable)
.start();
+ } else if (mDozeParameters.shouldControlUnlockedScreenOff()) {
+ mKeyguardStatusViewVisibilityAnimating = true;
+
+ mView.setVisibility(View.VISIBLE);
+ mView.setAlpha(0f);
+
+ float curTranslationY = mView.getTranslationY();
+ mView.setTranslationY(curTranslationY - getHeight() * 0.1f);
+ mView.animate()
+ .setStartDelay((int) (StackStateAnimator.ANIMATION_DURATION_WAKEUP * .6f))
+ .setDuration(StackStateAnimator.ANIMATION_DURATION_WAKEUP)
+ .setInterpolator(Interpolators.FAST_OUT_SLOW_IN)
+ .alpha(1f)
+ .translationY(curTranslationY)
+ .withEndAction(mAnimateKeyguardStatusViewVisibleEndRunnable)
+ .start();
} else {
mView.setVisibility(View.VISIBLE);
mView.setAlpha(1f);
@@ -367,17 +391,17 @@ public class KeyguardStatusViewController extends ViewController<KeyguardStatusV
};
private final Runnable mAnimateKeyguardStatusViewInvisibleEndRunnable = () -> {
- mKeyguardStatusViewAnimating = false;
+ mKeyguardStatusViewVisibilityAnimating = false;
mView.setVisibility(View.INVISIBLE);
};
private final Runnable mAnimateKeyguardStatusViewGoneEndRunnable = () -> {
- mKeyguardStatusViewAnimating = false;
+ mKeyguardStatusViewVisibilityAnimating = false;
mView.setVisibility(View.GONE);
};
private final Runnable mAnimateKeyguardStatusViewVisibleEndRunnable = () -> {
- mKeyguardStatusViewAnimating = false;
+ mKeyguardStatusViewVisibilityAnimating = false;
};
}