diff options
9 files changed, 43 insertions, 58 deletions
diff --git a/packages/SystemUI/res/values/config.xml b/packages/SystemUI/res/values/config.xml index 260d81b1f59f..123ff7824c59 100644 --- a/packages/SystemUI/res/values/config.xml +++ b/packages/SystemUI/res/values/config.xml @@ -260,12 +260,6 @@ <!-- Doze: pulse parameter - how long does it take to fade in after a pickup? --> <integer name="doze_pulse_duration_in_pickup">300</integer> - <!-- Doze: pulse parameter - delay to wait for the screen to wake up --> - <integer name="doze_pulse_delay_in">200</integer> - - <!-- Doze: pulse parameter - delay to wait for the screen to wake up after a pickup --> - <integer name="doze_pulse_delay_in_pickup">200</integer> - <!-- Doze: pulse parameter - once faded in, how long does it stay visible? --> <integer name="doze_pulse_duration_visible">3000</integer> diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java index 70653435def7..98f7bf660244 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java @@ -167,13 +167,7 @@ public abstract class BaseStatusBar extends SystemUI implements // on-screen navigation buttons protected NavigationBarView mNavigationBarView = null; - protected Boolean mScreenOn; - - // The second field is a bit different from the first one because it only listens to screen on/ - // screen of events from Keyguard. We need this so we don't have a race condition with the - // broadcast. In the future, we should remove the first field altogether and rename the second - // field. - protected boolean mScreenOnFromKeyguard; + protected boolean mDeviceInteractive; protected boolean mVisible; @@ -1619,7 +1613,7 @@ public abstract class BaseStatusBar extends SystemUI implements protected void updateVisibleToUser() { boolean oldVisibleToUser = mVisibleToUser; - mVisibleToUser = mVisible && mScreenOnFromKeyguard; + mVisibleToUser = mVisible && mDeviceInteractive; if (oldVisibleToUser != mVisibleToUser) { handleVisibleToUserChanged(mVisibleToUser); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeParameters.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeParameters.java index 6b167b44d655..5a2fa3bad127 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeParameters.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeParameters.java @@ -50,8 +50,6 @@ public class DozeParameters { pw.print(" getPulseDuration(pickup=true): "); pw.println(getPulseDuration(true)); pw.print(" getPulseInDuration(pickup=false): "); pw.println(getPulseInDuration(false)); pw.print(" getPulseInDuration(pickup=true): "); pw.println(getPulseInDuration(true)); - pw.print(" getPulseInDelay(pickup=false): "); pw.println(getPulseInDelay(false)); - pw.print(" getPulseInDelay(pickup=true): "); pw.println(getPulseInDelay(true)); pw.print(" getPulseInVisibleDuration(): "); pw.println(getPulseVisibleDuration()); pw.print(" getPulseOutDuration(): "); pw.println(getPulseOutDuration()); pw.print(" getPulseOnSigMotion(): "); pw.println(getPulseOnSigMotion()); @@ -80,12 +78,6 @@ public class DozeParameters { : getInt("doze.pulse.duration.in", R.integer.doze_pulse_duration_in); } - public int getPulseInDelay(boolean pickup) { - return pickup - ? getInt("doze.pulse.delay.in.pickup", R.integer.doze_pulse_delay_in_pickup) - : getInt("doze.pulse.delay.in", R.integer.doze_pulse_delay_in); - } - public int getPulseVisibleDuration() { return getInt("doze.pulse.duration.visible", R.integer.doze_pulse_duration_visible); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeScrimController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeScrimController.java index 3e1732866c61..86b8972a9a12 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeScrimController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeScrimController.java @@ -100,6 +100,16 @@ public class DozeScrimController { mHandler.post(mPulseIn); } + public void onScreenTurnedOn() { + if (isPulsing()) { + final boolean pickup = mPulseReason == DozeLog.PULSE_REASON_SENSOR_PICKUP; + startScrimAnimation(true /* inFront */, 0f, + mDozeParameters.getPulseInDuration(pickup), + pickup ? mPulseInInterpolatorPickup : mPulseInInterpolator, + mPulseInFinished); + } + } + public boolean isPulsing() { return mPulseCallback != null; } @@ -138,12 +148,11 @@ public class DozeScrimController { private void startScrimAnimation(final boolean inFront, float target, long duration, Interpolator interpolator) { - startScrimAnimation(inFront, target, duration, interpolator, 0 /* delay */, - null /* endRunnable */); + startScrimAnimation(inFront, target, duration, interpolator, null /* endRunnable */); } private void startScrimAnimation(final boolean inFront, float target, long duration, - Interpolator interpolator, long delay, final Runnable endRunnable) { + Interpolator interpolator, final Runnable endRunnable) { Animator current = getCurrentAnimator(inFront); if (current != null) { float currentTarget = getCurrentTarget(inFront); @@ -162,7 +171,6 @@ public class DozeScrimController { }); anim.setInterpolator(interpolator); anim.setDuration(duration); - anim.setStartDelay(delay); anim.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { @@ -222,12 +230,6 @@ public class DozeScrimController { + DozeLog.pulseReasonToString(mPulseReason)); if (!mDozing) return; DozeLog.tracePulseStart(mPulseReason); - final boolean pickup = mPulseReason == DozeLog.PULSE_REASON_SENSOR_PICKUP; - startScrimAnimation(true /* inFront */, 0f, - mDozeParameters.getPulseInDuration(pickup), - pickup ? mPulseInInterpolatorPickup : mPulseInInterpolator, - mDozeParameters.getPulseInDelay(pickup), - mPulseInFinished); // Signal that the pulse is ready to turn the screen on and draw. pulseStarted(); @@ -249,7 +251,7 @@ public class DozeScrimController { if (DEBUG) Log.d(TAG, "Pulse out, mDozing=" + mDozing); if (!mDozing) return; startScrimAnimation(true /* inFront */, 1f, mDozeParameters.getPulseOutDuration(), - mPulseOutInterpolator, 0 /* delay */, mPulseOutFinished); + mPulseOutInterpolator, mPulseOutFinished); } }; 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 373abe5cc00b..a77b8d1f31b6 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java @@ -918,7 +918,7 @@ public class NotificationPanelView extends PanelView implements } private int getFalsingThreshold() { - float factor = mStatusBar.isScreenOnComingFromTouch() ? 1.5f : 1.0f; + float factor = mStatusBar.isWakeUpComingFromTouch() ? 1.5f : 1.0f; return (int) (mQsFalsingThreshold * factor); } @@ -2075,7 +2075,7 @@ public class NotificationPanelView extends PanelView implements @Override public float getAffordanceFalsingFactor() { - return mStatusBar.isScreenOnComingFromTouch() ? 1.5f : 1.0f; + return mStatusBar.isWakeUpComingFromTouch() ? 1.5f : 1.0f; } @Override diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java index 8b25e0814cb5..c6743e772be9 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java @@ -382,7 +382,7 @@ public abstract class PanelView extends FrameLayout { || forceCancel; DozeLog.traceFling(expand, mTouchAboveFalsingThreshold, mStatusBar.isFalsingThresholdNeeded(), - mStatusBar.isScreenOnComingFromTouch()); + mStatusBar.isWakeUpComingFromTouch()); // Log collapse gesture if on lock screen. if (!expand && mStatusBar.getBarState() == StatusBarState.KEYGUARD) { float displayDensity = mStatusBar.getDisplayDensity(); @@ -411,7 +411,7 @@ public abstract class PanelView extends FrameLayout { } private int getFalsingThreshold() { - float factor = mStatusBar.isScreenOnComingFromTouch() ? 1.5f : 1.0f; + float factor = mStatusBar.isWakeUpComingFromTouch() ? 1.5f : 1.0f; return (int) (mUnlockFalsingThreshold * factor); } 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 fbf727ec8f9c..1b9faa3e7355 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java @@ -282,8 +282,8 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, private StatusBarWindowManager mStatusBarWindowManager; private UnlockMethodCache mUnlockMethodCache; private DozeServiceHost mDozeServiceHost; - private boolean mScreenOnComingFromTouch; - private PointF mScreenOnTouchLocation; + private boolean mWakeUpComingFromTouch; + private PointF mWakeUpTouchLocation; int mPixelFormat; Object mQueueLock = new Object(); @@ -1913,8 +1913,8 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, return mNotificationPanel.isQsExpanded(); } - public boolean isScreenOnComingFromTouch() { - return mScreenOnComingFromTouch; + public boolean isWakeUpComingFromTouch() { + return mWakeUpComingFromTouch; } public boolean isFalsingThresholdNeeded() { @@ -2474,7 +2474,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, private void checkBarMode(int mode, int windowState, BarTransitions transitions, boolean noAnimation) { final boolean powerSave = mBatteryController.isPowerSave(); - final boolean anim = !noAnimation && (mScreenOn == null || mScreenOn) + final boolean anim = !noAnimation && mDeviceInteractive && windowState != WINDOW_STATE_HIDDEN && !powerSave; if (powerSave && getBarState() == StatusBarState.SHADE) { mode = MODE_WARNING; @@ -2882,14 +2882,12 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, } } else if (Intent.ACTION_SCREEN_OFF.equals(action)) { - mScreenOn = false; notifyNavigationBarScreenOn(false); notifyHeadsUpScreenOff(); finishBarAnimations(); resetUserExpandedStates(); } else if (Intent.ACTION_SCREEN_ON.equals(action)) { - mScreenOn = true; notifyNavigationBarScreenOn(true); } } @@ -3343,7 +3341,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, mHandler.removeMessages(MSG_LAUNCH_TRANSITION_TIMEOUT); setBarState(StatusBarState.KEYGUARD); updateKeyguardState(false /* goingToFullShade */, false /* fromShadeLocked */); - if (!mScreenOnFromKeyguard) { + if (!mDeviceInteractive) { // If the screen is off already, we need to disable touch events because these might // collapse the panel after we expanded it, and thus we would end up with a blank @@ -3563,7 +3561,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, private void updateDozingState() { boolean animate = !mDozing && mDozeScrimController.isPulsing(); mNotificationPanel.setDozing(mDozing, animate); - mStackScroller.setDark(mDozing, animate, mScreenOnTouchLocation); + mStackScroller.setDark(mDozing, animate, mWakeUpTouchLocation); mScrimController.setDozing(mDozing); mDozeScrimController.setDozing(mDozing, animate); } @@ -3616,7 +3614,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, } public boolean onSpacePressed() { - if (mScreenOn != null && mScreenOn + if (mDeviceInteractive && (mState == StatusBarState.KEYGUARD || mState == StatusBarState.SHADE_LOCKED)) { animateCollapsePanels( CommandQueue.FLAG_EXCLUDE_RECENTS_PANEL /* flags */, true /* force */); @@ -3826,16 +3824,16 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, disable(mDisabledUnmodified1, mDisabledUnmodified2, true /* animate */); } - public void onScreenTurnedOff() { - mScreenOnFromKeyguard = false; - mScreenOnComingFromTouch = false; - mScreenOnTouchLocation = null; + public void onFinishedGoingToSleep() { + mDeviceInteractive = false; + mWakeUpComingFromTouch = false; + mWakeUpTouchLocation = null; mStackScroller.setAnimationsEnabled(false); updateVisibleToUser(); } - public void onScreenTurnedOn() { - mScreenOnFromKeyguard = true; + public void onStartedWakingUp() { + mDeviceInteractive = true; mStackScroller.setAnimationsEnabled(true); mNotificationPanel.setTouchDisabled(false); updateVisibleToUser(); @@ -3845,6 +3843,10 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, mNotificationPanel.onScreenTurningOn(); } + public void onScreenTurnedOn() { + mDozeScrimController.onScreenTurnedOn(); + } + /** * This handles long-press of both back and recents. They are * handled together to capture them both being long-pressed @@ -3959,8 +3961,8 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, if (mDozing && mDozeScrimController.isPulsing()) { PowerManager pm = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE); pm.wakeUp(time, "com.android.systemui:NODOZE"); - mScreenOnComingFromTouch = true; - mScreenOnTouchLocation = new PointF(event.getX(), event.getY()); + mWakeUpComingFromTouch = true; + mWakeUpTouchLocation = new PointF(event.getX(), event.getY()); mNotificationPanel.setTouchDisabled(false); mStatusBarKeyguardViewManager.notifyDeviceWakeUpRequested(); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java index 9543f93bb658..9d4771306e3b 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java @@ -162,14 +162,14 @@ public class StatusBarKeyguardViewManager { public void onFinishedGoingToSleep() { mDeviceInteractive = false; - mPhoneStatusBar.onScreenTurnedOff(); + mPhoneStatusBar.onFinishedGoingToSleep(); mBouncer.onScreenTurnedOff(); } public void onStartedWakingUp() { mDeviceInteractive = true; mDeviceWillWakeUp = false; - mPhoneStatusBar.onScreenTurnedOn(); + mPhoneStatusBar.onStartedWakingUp(); } public void onScreenTurningOn() { @@ -184,6 +184,7 @@ public class StatusBarKeyguardViewManager { animateScrimControllerKeyguardFadingOut(0, 200); updateStates(); } + mPhoneStatusBar.onScreenTurnedOn(); } public void onScreenTurnedOff() { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java index 23d9b9fe94b8..e1a6fa24dbdb 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java @@ -653,7 +653,7 @@ public class NotificationStackScrollLayout extends ViewGroup @Override public float getFalsingThresholdFactor() { - return mPhoneStatusBar.isScreenOnComingFromTouch() ? 1.5f : 1.0f; + return mPhoneStatusBar.isWakeUpComingFromTouch() ? 1.5f : 1.0f; } public View getChildAtPosition(MotionEvent ev) { |