From 048af1f727dc81a6450e004391d072599ac449ee Mon Sep 17 00:00:00 2001 From: Jorim Jaggi Date: Tue, 11 Nov 2014 22:51:10 +0100 Subject: Fix doze jank by removing a fullscreen layer of overdraw Move all doze related stuff into DozeScrimController, and combine both alpha values from the regular ScrimController and DozeScrimController before applying it to a view. Move the black background from NotificationPanelView to DozeScrimController, which saves a fullscreen layer of overdraw during the transition. Bug: 18238168 Change-Id: Ifb133bf4a0f8255f5c2f5e205509af339cac8c8f --- .../com/android/systemui/statusbar/phone/PhoneStatusBar.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java') diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java index 2f0ce28..d94f122 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java @@ -414,6 +414,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, private ViewMediatorCallback mKeyguardViewMediatorCallback; private ScrimController mScrimController; + private DozeScrimController mDozeScrimController; private final Runnable mAutohide = new Runnable() { @Override @@ -741,6 +742,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, mScrimController = new ScrimController(scrimBehind, scrimInFront, mScrimSrcModeEnabled); mScrimController.setBackDropView(mBackdrop); mStatusBarView.setScrimController(mScrimController); + mDozeScrimController = new DozeScrimController(mScrimController, context); mHeader = (StatusBarHeaderView) mStatusBarWindow.findViewById(R.id.header); mHeader.setActivityStarter(this); @@ -3677,13 +3679,14 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, if (mState != StatusBarState.KEYGUARD && !mNotificationPanel.isDozing()) { return; } - mNotificationPanel.setDozing(mDozing, mScrimController.isPulsing() /*animate*/); + mNotificationPanel.setDozing(mDozing, mDozeScrimController.isPulsing() /*animate*/); if (mDozing) { mStackScroller.setDark(true, false /*animate*/); } else { mStackScroller.setDark(false, false /*animate*/); } - mScrimController.setDozing(mDozing, mScrimController.isPulsing() /*animate*/); + mScrimController.setDozing(mDozing); + mDozeScrimController.setDozing(mDozing, mDozeScrimController.isPulsing() /* animate */); } public void updateStackScrollerState(boolean goingToFullShade) { @@ -4060,7 +4063,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, } public void wakeUpIfDozing(long time, boolean fromTouch) { - if (mDozing && mScrimController.isPulsing()) { + if (mDozing && mDozeScrimController.isPulsing()) { PowerManager pm = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE); pm.wakeUp(time); if (fromTouch) { @@ -4175,7 +4178,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, } private void handlePulseWhileDozing(@NonNull PulseCallback callback) { - mScrimController.pulse(callback); + mDozeScrimController.pulse(callback); } private void handleStopDozing() { -- cgit v1.1