Keeping notifications around that show guts
We're now delaying the showing of the guts until the user actually closes them. Test: manual, remove notification while guts are showing Change-Id: Ife75154eab92ba70d62b8a41e3663daea8a92312 Fixes: 62293195
This commit is contained in:
@@ -735,6 +735,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;
|
||||
|
||||
@@ -1782,6 +1783,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);
|
||||
@@ -3456,6 +3464,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());
|
||||
}
|
||||
@@ -6098,6 +6108,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();
|
||||
@@ -7056,9 +7071,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();
|
||||
|
||||
Reference in New Issue
Block a user