From 51465ea3b667a4123baf7eebb8f590aeaec2aafe Mon Sep 17 00:00:00 2001 From: Adrian Roos Date: Thu, 27 Jul 2017 13:57:35 +0200 Subject: [PATCH] AOD: Fix wakeup transition jank No longer do the upwards animation from AOD1, because there is a fade in instead now. Also, because the DozeService gets finished when waking up, we were disallowing animations again. Instead, we now ignore disallowing animations while waking up. Also don't cancel the NotificationPanelView wakeup animation when another identical request comes in. Also adds tracing for various SystemUI states. Bug: 63531607 Test: Wake up from AOD1. Ensure there is no jank or flicker Change-Id: I383ffa320f28ac4bf5432e4f4f5c06372717f66f --- .../src/com/android/systemui/doze/DozeUi.java | 1 - .../systemui/keyguard/ScreenLifecycle.java | 15 +++++++++++---- .../systemui/keyguard/WakefulnessLifecycle.java | 15 +++++++++++---- .../statusbar/phone/NotificationPanelView.java | 8 +++++++- .../systemui/statusbar/phone/StatusBar.java | 6 ++++++ 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 1dc37cdbca7ad..8847452133500 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 3f39dfe5d9368..b6fce4408bcf2 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 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 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 578e6fb1ab011..951c0ea6a26b3 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