diff options
| author | 2017-07-27 17:23:00 +0000 | |
|---|---|---|
| committer | 2017-07-27 17:23:00 +0000 | |
| commit | 0dbe7df15e2efe1c713c00a4ae9c3ef0ff97df6f (patch) | |
| tree | a89056f4f3e8815be80dfe2de03965e4bf66625d | |
| parent | 985fad4d15766747eaa2515d145da3492541e5f4 (diff) | |
| parent | 6efe4863973a3fd877cfcbe3a850021fb3bdf09e (diff) | |
Merge "AOD: Fix wakeup transition jank" into oc-dr1-dev
am: 6efe486397
Change-Id: I016efc215fa8fcf66a814f7cdf25a8ae0cc13e75
5 files changed, 35 insertions, 10 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeUi.java b/packages/SystemUI/src/com/android/systemui/doze/DozeUi.java index 1dc37cdbca7a..884745213350 100644 --- a/packages/SystemUI/src/com/android/systemui/doze/DozeUi.java +++ b/packages/SystemUI/src/com/android/systemui/doze/DozeUi.java @@ -100,7 +100,6 @@ public class DozeUi implements DozeMachine.Part { private boolean shouldAnimateWakeup(DozeMachine.State state) { switch (state) { - case DOZE_AOD: case DOZE_REQUEST_PULSE: case DOZE_PULSING: case DOZE_PULSE_DONE: diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ScreenLifecycle.java b/packages/SystemUI/src/com/android/systemui/keyguard/ScreenLifecycle.java index 3f39dfe5d936..b6fce4408bcf 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/ScreenLifecycle.java +++ b/packages/SystemUI/src/com/android/systemui/keyguard/ScreenLifecycle.java @@ -16,6 +16,8 @@ package com.android.systemui.keyguard; +import android.os.Trace; + import com.android.systemui.Dumpable; import java.io.FileDescriptor; @@ -38,22 +40,22 @@ public class ScreenLifecycle extends Lifecycle<ScreenLifecycle.Observer> impleme } public void dispatchScreenTurningOn() { - mScreenState = SCREEN_TURNING_ON; + setScreenState(SCREEN_TURNING_ON); dispatch(Observer::onScreenTurningOn); } public void dispatchScreenTurnedOn() { - mScreenState = SCREEN_ON; + setScreenState(SCREEN_ON); dispatch(Observer::onScreenTurnedOn); } public void dispatchScreenTurningOff() { - mScreenState = SCREEN_TURNING_OFF; + setScreenState(SCREEN_TURNING_OFF); dispatch(Observer::onScreenTurningOff); } public void dispatchScreenTurnedOff() { - mScreenState = SCREEN_OFF; + setScreenState(SCREEN_OFF); dispatch(Observer::onScreenTurnedOff); } @@ -63,6 +65,11 @@ public class ScreenLifecycle extends Lifecycle<ScreenLifecycle.Observer> impleme pw.println(" mScreenState=" + mScreenState); } + private void setScreenState(int screenState) { + mScreenState = screenState; + Trace.traceCounter(Trace.TRACE_TAG_APP, "screenState", screenState); + } + public interface Observer { default void onScreenTurningOn() {} default void onScreenTurnedOn() {} diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/WakefulnessLifecycle.java b/packages/SystemUI/src/com/android/systemui/keyguard/WakefulnessLifecycle.java index 578e6fb1ab01..951c0ea6a26b 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/WakefulnessLifecycle.java +++ b/packages/SystemUI/src/com/android/systemui/keyguard/WakefulnessLifecycle.java @@ -16,6 +16,8 @@ package com.android.systemui.keyguard; +import android.os.Trace; + import com.android.systemui.Dumpable; import java.io.FileDescriptor; @@ -39,22 +41,22 @@ public class WakefulnessLifecycle extends Lifecycle<WakefulnessLifecycle.Observe } public void dispatchStartedWakingUp() { - mWakefulness = WAKEFULNESS_WAKING; + setWakefulness(WAKEFULNESS_WAKING); dispatch(Observer::onStartedWakingUp); } public void dispatchFinishedWakingUp() { - mWakefulness = WAKEFULNESS_AWAKE; + setWakefulness(WAKEFULNESS_AWAKE); dispatch(Observer::onFinishedWakingUp); } public void dispatchStartedGoingToSleep() { - mWakefulness = WAKEFULNESS_GOING_TO_SLEEP; + setWakefulness(WAKEFULNESS_GOING_TO_SLEEP); dispatch(Observer::onStartedGoingToSleep); } public void dispatchFinishedGoingToSleep() { - mWakefulness = WAKEFULNESS_ASLEEP; + setWakefulness(WAKEFULNESS_ASLEEP); dispatch(Observer::onFinishedGoingToSleep); } @@ -64,6 +66,11 @@ public class WakefulnessLifecycle extends Lifecycle<WakefulnessLifecycle.Observe pw.println(" mWakefulness=" + mWakefulness); } + private void setWakefulness(int wakefulness) { + mWakefulness = wakefulness; + Trace.traceCounter(Trace.TRACE_TAG_APP, "wakefulness", wakefulness); + } + public interface Observer { default void onStartedWakingUp() {} default void onFinishedWakingUp() {} 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 4ffc15fb3d4a..04be35789807 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java @@ -231,6 +231,7 @@ public class NotificationPanelView extends PanelView implements private int mAmbientIndicationBottomPadding; private boolean mIsFullWidth; private float mDarkAmount; + private float mDarkAmountTarget; private LockscreenGestureLogger mLockscreenGestureLogger = new LockscreenGestureLogger(); private boolean mNoVisibleNotifications = true; private ValueAnimator mDarkAnimator; @@ -2578,8 +2579,13 @@ public class NotificationPanelView extends PanelView implements return; } if (mDarkAnimator != null && mDarkAnimator.isRunning()) { - mDarkAnimator.cancel(); + if (animate && mDarkAmountTarget == darkAmount) { + return; + } else { + mDarkAnimator.cancel(); + } } + mDarkAmountTarget = darkAmount; if (animate) { mDarkAnimator = ObjectAnimator.ofFloat(this, SET_DARK_AMOUNT_PROPERTY, darkAmount); mDarkAnimator.setInterpolator(Interpolators.LINEAR_OUT_SLOW_IN); 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 ea84c30e4eba..9c591edad3a3 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java @@ -4631,6 +4631,7 @@ public class StatusBar extends SystemUI implements DemoMode, } private void updateDozingState() { + Trace.traceCounter(Trace.TRACE_TAG_APP, "dozing", mDozing ? 1 : 0); Trace.beginSection("StatusBar#updateDozingState"); boolean animate = !mDozing && mDozeServiceHost.shouldAnimateWakeup(); mNotificationPanel.setDozing(mDozing, animate); @@ -5513,6 +5514,11 @@ public class StatusBar extends SystemUI implements DemoMode, @Override public void setAnimateWakeup(boolean animateWakeup) { + if (mWakefulnessLifecycle.getWakefulness() == WAKEFULNESS_AWAKE + || mWakefulnessLifecycle.getWakefulness() == WAKEFULNESS_WAKING) { + // Too late to change the wakeup animation. + return; + } mAnimateWakeup = animateWakeup; } |