diff options
| author | 2017-07-07 11:27:15 +0000 | |
|---|---|---|
| committer | 2017-07-07 11:27:15 +0000 | |
| commit | b42d05d64f35f86ce2e859bcd01c616cc8dca3e1 (patch) | |
| tree | 925a3231c8e3b679fc2fe467789852ec5344148a | |
| parent | dd14195538c3ec54652124856e2b31f6ab6d4632 (diff) | |
| parent | ea2cbdeccaa2157315bbdd9a4832351a1ecb706b (diff) | |
Merge "Keeping notifications around that show guts" into oc-dr1-dev
am: ea2cbdecca
Change-Id: Ie9e2152a7aadf1f9b3cd42aa6a3791cb62ab34bc
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java | 24 |
1 files changed, 21 insertions, 3 deletions
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 1cb759151785..877c3d2d1afe 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java @@ -736,6 +736,7 @@ public class StatusBar extends SystemUI implements DemoMode, private HashMap<String, Entry> mPendingNotifications = new HashMap<>(); private boolean mClearAllEnabled; @Nullable private View mAmbientIndicationContainer; + private String mKeyToRemoveOnGutsClosed; private SysuiColorExtractor mColorExtractor; private ForegroundServiceController mForegroundServiceController; @@ -1789,6 +1790,13 @@ public class StatusBar extends SystemUI implements DemoMode, mRemoteInputEntriesToRemoveOnCollapse.add(entry); return; } + if (entry != null && mNotificationGutsExposed != null + && mNotificationGutsExposed == entry.row.getGuts()) { + Log.w(TAG, "Keeping notification because it's showing guts. " + key); + mLatestRankingMap = ranking; + mKeyToRemoveOnGutsClosed = key; + return; + } if (entry != null) { mForegroundServiceController.removeNotification(entry.notification); @@ -3465,6 +3473,8 @@ public class StatusBar extends SystemUI implements DemoMode, pw.println(Settings.Global.zenModeToString(mZenMode)); pw.print(" mUseHeadsUp="); pw.println(mUseHeadsUp); + pw.print(" mKeyToRemoveOnGutsClosed="); + pw.println(mKeyToRemoveOnGutsClosed); if (mStatusBarView != null) { dumpBarTransitions(pw, "mStatusBarView", mStatusBarView.getBarTransitions()); } @@ -6130,6 +6140,11 @@ public class StatusBar extends SystemUI implements DemoMode, mNotificationGutsExposed = null; mGutsMenuItem = null; } + String key = sbn.getKey(); + if (key.equals(mKeyToRemoveOnGutsClosed)) { + mKeyToRemoveOnGutsClosed = null; + removeNotification(key, mLatestRankingMap); + } }); View gutsView = item.getGutsView(); @@ -7088,9 +7103,12 @@ public class StatusBar extends SystemUI implements DemoMode, Entry entry = mNotificationData.get(key); if (entry == null) { return; - } else { - mHeadsUpEntriesToRemoveOnSwitch.remove(entry); - mRemoteInputEntriesToRemoveOnCollapse.remove(entry); + } + mHeadsUpEntriesToRemoveOnSwitch.remove(entry); + mRemoteInputEntriesToRemoveOnCollapse.remove(entry); + if (key.equals(mKeyToRemoveOnGutsClosed)) { + mKeyToRemoveOnGutsClosed = null; + Log.w(TAG, "Notification that was kept for guts was updated. " + key); } Notification n = notification.getNotification(); |