AOD: Anchor clock at a third of the height
Change-Id: Ie9074be76f23f9c353e38b515fd5a3cd9702696d
Fixes: 37646086
Test: Trigger AOD, observe that clock does not shift in response to notifications.
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 f7480bc..c5853ca 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
@@ -31,6 +31,7 @@
import android.graphics.Paint;
import android.graphics.Rect;
import android.util.AttributeSet;
+import android.util.FloatProperty;
import android.util.MathUtils;
import android.view.MotionEvent;
import android.view.VelocityTracker;
@@ -91,6 +92,19 @@
public static final long DOZE_ANIMATION_DURATION = 700;
+ private static final FloatProperty<NotificationPanelView> SET_DARK_AMOUNT_PROPERTY =
+ new FloatProperty<NotificationPanelView>("mDarkAmount") {
+ @Override
+ public void setValue(NotificationPanelView object, float value) {
+ object.setDarkAmount(value);
+ }
+
+ @Override
+ public Float get(NotificationPanelView object) {
+ return object.mDarkAmount;
+ }
+ };
+
private KeyguardAffordanceHelper mAffordanceHelper;
private KeyguardUserSwitcher mKeyguardUserSwitcher;
private KeyguardStatusBarView mKeyguardStatusBar;
@@ -211,9 +225,10 @@
private boolean mShowIconsWhenExpanded;
private int mIndicationBottomPadding;
private boolean mIsFullWidth;
- private boolean mDark;
+ private float mDarkAmount;
private LockscreenGestureLogger mLockscreenGestureLogger = new LockscreenGestureLogger();
private boolean mNoVisibleNotifications = true;
+ private ValueAnimator mDarkAnimator;
public NotificationPanelView(Context context, AttributeSet attrs) {
super(context, attrs);
@@ -397,7 +412,7 @@
mKeyguardStatusView.getHeight(),
mEmptyDragAmount,
mKeyguardStatusView.getClockBottom(),
- mDark);
+ mDarkAmount);
mClockPositionAlgorithm.run(mClockPositionResult);
if (animate || mClockAnimator != null) {
startClockAnimation(mClockPositionResult.clockY);
@@ -2473,9 +2488,27 @@
}
}
- public void setDark(boolean dark) {
- mDark = dark;
- mKeyguardStatusView.setDark(dark);
+ public void setDark(boolean dark, boolean animate) {
+ float darkAmount = dark ? 1 : 0;
+ if (mDarkAmount == darkAmount) {
+ return;
+ }
+ if (mDarkAnimator != null && mDarkAnimator.isRunning()) {
+ mDarkAnimator.cancel();
+ }
+ if (animate) {
+ mDarkAnimator = ObjectAnimator.ofFloat(this, SET_DARK_AMOUNT_PROPERTY, darkAmount);
+ mDarkAnimator.setInterpolator(Interpolators.LINEAR_OUT_SLOW_IN);
+ mDarkAnimator.setDuration(StackStateAnimator.ANIMATION_DURATION_STANDARD);
+ mDarkAnimator.start();
+ } else {
+ setDarkAmount(darkAmount);
+ }
+ }
+
+ private void setDarkAmount(float amount) {
+ mDarkAmount = amount;
+ mKeyguardStatusView.setDark(amount == 1);
positionClockAndNotifications();
}