From 940503e02a2aa40a3ae57f5a3814881b455c5bd7 Mon Sep 17 00:00:00 2001 From: Lucas Dupin Date: Tue, 25 Jun 2019 18:22:14 -0700 Subject: [PATCH] Fix notification stuck on AOD Clear current pulse timeout and transfer ownership to HeadsUpManagerPhone. Test: manual Fixes: 135086380 Change-Id: I45997ef908cda1df4aae6d528bffbedbea579ace --- .../systemui/statusbar/phone/DozeScrimController.java | 8 ++++++++ .../com/android/systemui/statusbar/phone/StatusBar.java | 7 ++++--- 2 files changed, 12 insertions(+), 3 deletions(-) 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 a2438552e8af6..60e381a776d24 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeScrimController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeScrimController.java @@ -149,6 +149,14 @@ public class DozeScrimController implements StateListener { mHandler.removeCallbacks(mPulseOut); } + /** + * When pulsing, cancel any timeouts that would take you out of the pulsing state. + */ + public void cancelPendingPulseTimeout() { + mHandler.removeCallbacks(mPulseOut); + mHandler.removeCallbacks(mPulseOutExtended); + } + private void cancelPulsing() { if (mPulseCallback != null) { if (DEBUG) Log.d(TAG, "Cancel pulsing"); 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 213475fe3ca69..81e1d76a8cce0 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java @@ -1568,9 +1568,10 @@ public class StatusBar extends SystemUI implements DemoMode, @Override public void onHeadsUpStateChanged(NotificationEntry entry, boolean isHeadsUp) { mEntryManager.updateNotifications(); - if (isDozing()) { - if (isHeadsUp) { - mDozeServiceHost.fireNotificationPulse(); + if (isDozing() && isHeadsUp) { + mDozeServiceHost.fireNotificationPulse(); + if (mPulsing) { + mDozeScrimController.cancelPendingPulseTimeout(); } } if (!isHeadsUp && !mHeadsUpManager.hasNotifications()) {