Fixed an issue where the notification wouldn't go away
When autocancelling, the logic wasn't working anymore after we kept a notification around for a while. This is now properly working. Change-Id: I73f5485577e6ae081411638a4e3bd4f08cffc23c Fixes: 27851227 Bug: 63708826 Test: add notification with auto-cancel, reply from it, click on it again
This commit is contained in:
@@ -272,6 +272,11 @@ public class NotificationData {
|
||||
public Throwable getDebugThrowable() {
|
||||
return mDebugThrowable;
|
||||
}
|
||||
|
||||
public void onRemoteInputInserted() {
|
||||
lastRemoteInputSent = NOT_LAUNCHED_YET;
|
||||
remoteInputTextWhenReset = null;
|
||||
}
|
||||
}
|
||||
|
||||
private final ArrayMap<String, Entry> mEntries = new ArrayMap<>();
|
||||
|
||||
@@ -498,6 +498,7 @@ public class NotificationEntryManager implements Dumpable, NotificationInflater.
|
||||
sbn.getId(), sbn.getTag(), sbn.getUid(), sbn.getInitialPid(),
|
||||
newNotification, sbn.getUser(), sbn.getOverrideGroupKey(), sbn.getPostTime());
|
||||
boolean updated = false;
|
||||
entry.onRemoteInputInserted();
|
||||
try {
|
||||
updateNotificationInternal(newSbn, null);
|
||||
updated = true;
|
||||
|
||||
@@ -4931,18 +4931,11 @@ public class StatusBar extends SystemUI implements DemoMode,
|
||||
// system process is dead if we're here.
|
||||
}
|
||||
if (parentToCancelFinal != null) {
|
||||
// We have to post it to the UI thread for synchronization
|
||||
mHandler.post(() -> {
|
||||
Runnable removeRunnable =
|
||||
() -> mEntryManager.performRemoveNotification(parentToCancelFinal);
|
||||
if (isCollapsing()) {
|
||||
// To avoid lags we're only performing the remove
|
||||
// after the shade was collapsed
|
||||
addPostCollapseAction(removeRunnable);
|
||||
} else {
|
||||
removeRunnable.run();
|
||||
}
|
||||
});
|
||||
removeNotification(parentToCancelFinal);
|
||||
}
|
||||
if (shouldAutoCancel(sbn)) {
|
||||
// Automatically remove all notifications that we may have kept around longer
|
||||
removeNotification(sbn);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -4966,6 +4959,21 @@ public class StatusBar extends SystemUI implements DemoMode,
|
||||
}, afterKeyguardGone);
|
||||
}
|
||||
|
||||
private void removeNotification(StatusBarNotification notification) {
|
||||
// We have to post it to the UI thread for synchronization
|
||||
mHandler.post(() -> {
|
||||
Runnable removeRunnable =
|
||||
() -> mEntryManager.performRemoveNotification(notification);
|
||||
if (isCollapsing()) {
|
||||
// To avoid lags we're only performing the remove
|
||||
// after the shade was collapsed
|
||||
addPostCollapseAction(removeRunnable);
|
||||
} else {
|
||||
removeRunnable.run();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
protected NotificationListener mNotificationListener;
|
||||
|
||||
protected void notifyUserAboutHiddenNotifications() {
|
||||
|
||||
Reference in New Issue
Block a user