diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifInflaterImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifInflaterImpl.java index 6a3799b38dc50..d1aa01bb21255 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifInflaterImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifInflaterImpl.java @@ -75,8 +75,8 @@ public class NotifInflaterImpl implements NotifInflater { } @Override - public void abortInflation(NotificationEntry entry) { - entry.abortTask(); + public boolean abortInflation(NotificationEntry entry) { + return entry.abortTask(); } @Override diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotificationEntry.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotificationEntry.java index 0a16fb65b1ac3..b6392f705c49c 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotificationEntry.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotificationEntry.java @@ -476,11 +476,13 @@ public final class NotificationEntry extends ListEntry { /** * Abort all existing inflation tasks */ - public void abortTask() { + public boolean abortTask() { if (mRunningTask != null) { mRunningTask.abort(); mRunningTask = null; + return true; } + return false; } public void setInflationTask(InflationTask abortableTask) { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinator.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinator.java index a2506d554e7f6..ef1e57b4cd3b3 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinator.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinator.java @@ -363,9 +363,11 @@ public class PreparationCoordinator implements Coordinator { } private void abortInflation(NotificationEntry entry, String reason) { - mLogger.logInflationAborted(entry, reason); - mNotifInflater.abortInflation(entry); - mInflatingNotifs.remove(entry); + final boolean taskAborted = mNotifInflater.abortInflation(entry); + final boolean wasInflating = mInflatingNotifs.remove(entry); + if (taskAborted || wasInflating) { + mLogger.logInflationAborted(entry, reason); + } } private void onInflationFinished(NotificationEntry entry, NotifViewController controller) { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/inflation/NotifInflater.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/inflation/NotifInflater.kt index 567ec85cf6c76..08e21e8f668ee 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/inflation/NotifInflater.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/inflation/NotifInflater.kt @@ -42,9 +42,9 @@ interface NotifInflater { /** * Request to stop the inflation of an entry. For example, called when a notification is - * removed and no longer needs to be inflated. + * removed and no longer needs to be inflated. Returns whether anything may have been aborted. */ - fun abortInflation(entry: NotificationEntry) + fun abortInflation(entry: NotificationEntry): Boolean /** * Called to let the system remove the content views from the notification row. @@ -62,4 +62,4 @@ interface NotifInflater { * A class holding parameters used when inflating the notification row */ class Params(val isLowPriority: Boolean, val reason: String) -} \ No newline at end of file +} diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinatorTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinatorTest.java index a6d3719de5ccd..f4adf6927e315 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinatorTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinatorTest.java @@ -463,7 +463,8 @@ public class PreparationCoordinatorTest extends SysuiTestCase { } @Override - public void abortInflation(@NonNull NotificationEntry entry) { + public boolean abortInflation(@NonNull NotificationEntry entry) { + return false; } public InflationCallback getInflateCallback(NotificationEntry entry) {