Merge "AOD: Fix wakeup transition jank" into oc-dr1-dev

This commit is contained in:
TreeHugger Robot
2017-07-27 17:05:31 +00:00
committed by Android (Google) Code Review
5 changed files with 35 additions and 10 deletions

View File

@@ -100,7 +100,6 @@ public class DozeUi implements DozeMachine.Part {
private boolean shouldAnimateWakeup(DozeMachine.State state) { private boolean shouldAnimateWakeup(DozeMachine.State state) {
switch (state) { switch (state) {
case DOZE_AOD:
case DOZE_REQUEST_PULSE: case DOZE_REQUEST_PULSE:
case DOZE_PULSING: case DOZE_PULSING:
case DOZE_PULSE_DONE: case DOZE_PULSE_DONE:

View File

@@ -16,6 +16,8 @@
package com.android.systemui.keyguard; package com.android.systemui.keyguard;
import android.os.Trace;
import com.android.systemui.Dumpable; import com.android.systemui.Dumpable;
import java.io.FileDescriptor; import java.io.FileDescriptor;
@@ -38,22 +40,22 @@ public class ScreenLifecycle extends Lifecycle<ScreenLifecycle.Observer> impleme
} }
public void dispatchScreenTurningOn() { public void dispatchScreenTurningOn() {
mScreenState = SCREEN_TURNING_ON; setScreenState(SCREEN_TURNING_ON);
dispatch(Observer::onScreenTurningOn); dispatch(Observer::onScreenTurningOn);
} }
public void dispatchScreenTurnedOn() { public void dispatchScreenTurnedOn() {
mScreenState = SCREEN_ON; setScreenState(SCREEN_ON);
dispatch(Observer::onScreenTurnedOn); dispatch(Observer::onScreenTurnedOn);
} }
public void dispatchScreenTurningOff() { public void dispatchScreenTurningOff() {
mScreenState = SCREEN_TURNING_OFF; setScreenState(SCREEN_TURNING_OFF);
dispatch(Observer::onScreenTurningOff); dispatch(Observer::onScreenTurningOff);
} }
public void dispatchScreenTurnedOff() { public void dispatchScreenTurnedOff() {
mScreenState = SCREEN_OFF; setScreenState(SCREEN_OFF);
dispatch(Observer::onScreenTurnedOff); dispatch(Observer::onScreenTurnedOff);
} }
@@ -63,6 +65,11 @@ public class ScreenLifecycle extends Lifecycle<ScreenLifecycle.Observer> impleme
pw.println(" mScreenState=" + mScreenState); pw.println(" mScreenState=" + mScreenState);
} }
private void setScreenState(int screenState) {
mScreenState = screenState;
Trace.traceCounter(Trace.TRACE_TAG_APP, "screenState", screenState);
}
public interface Observer { public interface Observer {
default void onScreenTurningOn() {} default void onScreenTurningOn() {}
default void onScreenTurnedOn() {} default void onScreenTurnedOn() {}

View File

@@ -16,6 +16,8 @@
package com.android.systemui.keyguard; package com.android.systemui.keyguard;
import android.os.Trace;
import com.android.systemui.Dumpable; import com.android.systemui.Dumpable;
import java.io.FileDescriptor; import java.io.FileDescriptor;
@@ -39,22 +41,22 @@ public class WakefulnessLifecycle extends Lifecycle<WakefulnessLifecycle.Observe
} }
public void dispatchStartedWakingUp() { public void dispatchStartedWakingUp() {
mWakefulness = WAKEFULNESS_WAKING; setWakefulness(WAKEFULNESS_WAKING);
dispatch(Observer::onStartedWakingUp); dispatch(Observer::onStartedWakingUp);
} }
public void dispatchFinishedWakingUp() { public void dispatchFinishedWakingUp() {
mWakefulness = WAKEFULNESS_AWAKE; setWakefulness(WAKEFULNESS_AWAKE);
dispatch(Observer::onFinishedWakingUp); dispatch(Observer::onFinishedWakingUp);
} }
public void dispatchStartedGoingToSleep() { public void dispatchStartedGoingToSleep() {
mWakefulness = WAKEFULNESS_GOING_TO_SLEEP; setWakefulness(WAKEFULNESS_GOING_TO_SLEEP);
dispatch(Observer::onStartedGoingToSleep); dispatch(Observer::onStartedGoingToSleep);
} }
public void dispatchFinishedGoingToSleep() { public void dispatchFinishedGoingToSleep() {
mWakefulness = WAKEFULNESS_ASLEEP; setWakefulness(WAKEFULNESS_ASLEEP);
dispatch(Observer::onFinishedGoingToSleep); dispatch(Observer::onFinishedGoingToSleep);
} }
@@ -64,6 +66,11 @@ public class WakefulnessLifecycle extends Lifecycle<WakefulnessLifecycle.Observe
pw.println(" mWakefulness=" + mWakefulness); pw.println(" mWakefulness=" + mWakefulness);
} }
private void setWakefulness(int wakefulness) {
mWakefulness = wakefulness;
Trace.traceCounter(Trace.TRACE_TAG_APP, "wakefulness", wakefulness);
}
public interface Observer { public interface Observer {
default void onStartedWakingUp() {} default void onStartedWakingUp() {}
default void onFinishedWakingUp() {} default void onFinishedWakingUp() {}

View File

@@ -232,6 +232,7 @@ public class NotificationPanelView extends PanelView implements
private int mAmbientIndicationBottomPadding; private int mAmbientIndicationBottomPadding;
private boolean mIsFullWidth; private boolean mIsFullWidth;
private float mDarkAmount; private float mDarkAmount;
private float mDarkAmountTarget;
private LockscreenGestureLogger mLockscreenGestureLogger = new LockscreenGestureLogger(); private LockscreenGestureLogger mLockscreenGestureLogger = new LockscreenGestureLogger();
private boolean mNoVisibleNotifications = true; private boolean mNoVisibleNotifications = true;
private ValueAnimator mDarkAnimator; private ValueAnimator mDarkAnimator;
@@ -2590,8 +2591,13 @@ public class NotificationPanelView extends PanelView implements
return; return;
} }
if (mDarkAnimator != null && mDarkAnimator.isRunning()) { if (mDarkAnimator != null && mDarkAnimator.isRunning()) {
mDarkAnimator.cancel(); if (animate && mDarkAmountTarget == darkAmount) {
return;
} else {
mDarkAnimator.cancel();
}
} }
mDarkAmountTarget = darkAmount;
if (animate) { if (animate) {
mDarkAnimator = ObjectAnimator.ofFloat(this, SET_DARK_AMOUNT_PROPERTY, darkAmount); mDarkAnimator = ObjectAnimator.ofFloat(this, SET_DARK_AMOUNT_PROPERTY, darkAmount);
mDarkAnimator.setInterpolator(Interpolators.LINEAR_OUT_SLOW_IN); mDarkAnimator.setInterpolator(Interpolators.LINEAR_OUT_SLOW_IN);

View File

@@ -4620,6 +4620,7 @@ public class StatusBar extends SystemUI implements DemoMode,
} }
private void updateDozingState() { private void updateDozingState() {
Trace.traceCounter(Trace.TRACE_TAG_APP, "dozing", mDozing ? 1 : 0);
Trace.beginSection("StatusBar#updateDozingState"); Trace.beginSection("StatusBar#updateDozingState");
boolean animate = !mDozing && mDozeServiceHost.shouldAnimateWakeup(); boolean animate = !mDozing && mDozeServiceHost.shouldAnimateWakeup();
mNotificationPanel.setDozing(mDozing, animate); mNotificationPanel.setDozing(mDozing, animate);
@@ -5502,6 +5503,11 @@ public class StatusBar extends SystemUI implements DemoMode,
@Override @Override
public void setAnimateWakeup(boolean animateWakeup) { public void setAnimateWakeup(boolean animateWakeup) {
if (mWakefulnessLifecycle.getWakefulness() == WAKEFULNESS_AWAKE
|| mWakefulnessLifecycle.getWakefulness() == WAKEFULNESS_WAKING) {
// Too late to change the wakeup animation.
return;
}
mAnimateWakeup = animateWakeup; mAnimateWakeup = animateWakeup;
} }