Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b622447f authored by Selim Cinek's avatar Selim Cinek
Browse files

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
parent d43bc31e
Loading
Loading
Loading
Loading
+21 −3
Original line number Diff line number Diff line
@@ -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);
        if (key.equals(mKeyToRemoveOnGutsClosed)) {
            mKeyToRemoveOnGutsClosed = null;
            Log.w(TAG, "Notification that was kept for guts was updated. " + key);
        }

        Notification n = notification.getNotification();