Loading packages/SystemUI/src/com/android/systemui/statusbar/policy/BaseHeadsUpManager.java +30 −8 Original line number Diff line number Diff line Loading @@ -171,7 +171,6 @@ public abstract class BaseHeadsUpManager implements HeadsUpManager { mLogger.logShowNotificationRequest(entry); Runnable runnable = () -> { // TODO(b/315362456) log outside runnable too mLogger.logShowNotification(entry); // Add new entry and begin managing it Loading Loading @@ -244,8 +243,10 @@ public abstract class BaseHeadsUpManager implements HeadsUpManager { return; } // TODO(b/328390331) move accessibility events to the view layer headsUpEntry.mEntry.sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED); if (headsUpEntry.mEntry != null) { headsUpEntry.mEntry.sendAccessibilityEvent( AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED); } if (shouldHeadsUpAgain) { headsUpEntry.updateEntry(true /* updatePostTime */, "updateNotification"); if (headsUpEntry != null) { Loading Loading @@ -334,6 +335,9 @@ public abstract class BaseHeadsUpManager implements HeadsUpManager { } protected boolean shouldHeadsUpBecomePinned(@NonNull NotificationEntry entry) { if (entry == null) { return false; } final HeadsUpEntry headsUpEntry = getHeadsUpEntry(entry.getKey()); if (headsUpEntry == null) { // This should not happen since shouldHeadsUpBecomePinned is always called after adding Loading Loading @@ -508,6 +512,9 @@ public abstract class BaseHeadsUpManager implements HeadsUpManager { keySet.addAll(mAvalancheController.getWaitingKeys()); for (String key : keySet) { HeadsUpEntry entry = getHeadsUpEntry(key); if (entry.mEntry == null) { continue; } String packageName = entry.mEntry.getSbn().getPackageName(); String snoozeKey = snoozeKey(packageName, mUser); mLogger.logPackageSnoozed(snoozeKey); Loading Loading @@ -575,7 +582,7 @@ public abstract class BaseHeadsUpManager implements HeadsUpManager { pw.print(" now="); pw.println(mSystemClock.elapsedRealtime()); pw.print(" mUser="); pw.println(mUser); for (HeadsUpEntry entry: mHeadsUpEntryMap.values()) { pw.print(" HeadsUpEntry="); pw.println(entry.mEntry); pw.println(entry.mEntry == null ? "null" : entry.mEntry); } int n = mSnoozedPackages.size(); pw.println(" snoozed packages: " + n); Loading @@ -595,7 +602,7 @@ public abstract class BaseHeadsUpManager implements HeadsUpManager { private boolean hasPinnedNotificationInternal() { for (String key : mHeadsUpEntryMap.keySet()) { HeadsUpEntry entry = getHeadsUpEntry(key); if (entry.mEntry.isRowPinned()) { if (entry.mEntry != null && entry.mEntry.isRowPinned()) { return true; } } Loading @@ -620,7 +627,7 @@ public abstract class BaseHeadsUpManager implements HeadsUpManager { // when the user unpinned all of HUNs by moving one HUN, all of HUNs should not stay // on the screen. if (userUnPinned && headsUpEntry.mEntry != null) { if (headsUpEntry.mEntry.mustStayOnScreen()) { if (headsUpEntry.mEntry != null && headsUpEntry.mEntry.mustStayOnScreen()) { headsUpEntry.mEntry.setHeadsUpIsVisible(); } } Loading Loading @@ -696,7 +703,7 @@ public abstract class BaseHeadsUpManager implements HeadsUpManager { return true; } return headsUpEntry == null || headsUpEntry.wasShownLongEnough() || headsUpEntry.mEntry.isRowDismissed(); || (headsUpEntry.mEntry != null && headsUpEntry.mEntry.isRowDismissed()); } /** Loading Loading @@ -875,6 +882,14 @@ public abstract class BaseHeadsUpManager implements HeadsUpManager { } public int compareNonTimeFields(HeadsUpEntry headsUpEntry) { if (mEntry == null && headsUpEntry.mEntry == null) { return 0; } else if (headsUpEntry.mEntry == null) { return -1; } else if (mEntry == null) { return 1; } boolean selfFullscreen = hasFullScreenIntent(mEntry); boolean otherFullscreen = hasFullScreenIntent(headsUpEntry.mEntry); if (selfFullscreen && !otherFullscreen) { Loading @@ -901,6 +916,13 @@ public abstract class BaseHeadsUpManager implements HeadsUpManager { } public int compareTo(@NonNull HeadsUpEntry headsUpEntry) { if (mEntry == null && headsUpEntry.mEntry == null) { return 0; } else if (headsUpEntry.mEntry == null) { return -1; } else if (mEntry == null) { return 1; } boolean isPinned = mEntry.isRowPinned(); boolean otherPinned = headsUpEntry.mEntry.isRowPinned(); if (isPinned && !otherPinned) { Loading Loading @@ -965,7 +987,7 @@ public abstract class BaseHeadsUpManager implements HeadsUpManager { mLogger.logAutoRemoveCanceled(mEntry, reason); } }; if (isHeadsUpEntry(this.mEntry.getKey())) { if (mEntry != null && isHeadsUpEntry(mEntry.getKey())) { mAvalancheController.update(this, runnable, reason + " cancelAutoRemovalCallbacks"); } else { // Just removed Loading Loading
packages/SystemUI/src/com/android/systemui/statusbar/policy/BaseHeadsUpManager.java +30 −8 Original line number Diff line number Diff line Loading @@ -171,7 +171,6 @@ public abstract class BaseHeadsUpManager implements HeadsUpManager { mLogger.logShowNotificationRequest(entry); Runnable runnable = () -> { // TODO(b/315362456) log outside runnable too mLogger.logShowNotification(entry); // Add new entry and begin managing it Loading Loading @@ -244,8 +243,10 @@ public abstract class BaseHeadsUpManager implements HeadsUpManager { return; } // TODO(b/328390331) move accessibility events to the view layer headsUpEntry.mEntry.sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED); if (headsUpEntry.mEntry != null) { headsUpEntry.mEntry.sendAccessibilityEvent( AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED); } if (shouldHeadsUpAgain) { headsUpEntry.updateEntry(true /* updatePostTime */, "updateNotification"); if (headsUpEntry != null) { Loading Loading @@ -334,6 +335,9 @@ public abstract class BaseHeadsUpManager implements HeadsUpManager { } protected boolean shouldHeadsUpBecomePinned(@NonNull NotificationEntry entry) { if (entry == null) { return false; } final HeadsUpEntry headsUpEntry = getHeadsUpEntry(entry.getKey()); if (headsUpEntry == null) { // This should not happen since shouldHeadsUpBecomePinned is always called after adding Loading Loading @@ -508,6 +512,9 @@ public abstract class BaseHeadsUpManager implements HeadsUpManager { keySet.addAll(mAvalancheController.getWaitingKeys()); for (String key : keySet) { HeadsUpEntry entry = getHeadsUpEntry(key); if (entry.mEntry == null) { continue; } String packageName = entry.mEntry.getSbn().getPackageName(); String snoozeKey = snoozeKey(packageName, mUser); mLogger.logPackageSnoozed(snoozeKey); Loading Loading @@ -575,7 +582,7 @@ public abstract class BaseHeadsUpManager implements HeadsUpManager { pw.print(" now="); pw.println(mSystemClock.elapsedRealtime()); pw.print(" mUser="); pw.println(mUser); for (HeadsUpEntry entry: mHeadsUpEntryMap.values()) { pw.print(" HeadsUpEntry="); pw.println(entry.mEntry); pw.println(entry.mEntry == null ? "null" : entry.mEntry); } int n = mSnoozedPackages.size(); pw.println(" snoozed packages: " + n); Loading @@ -595,7 +602,7 @@ public abstract class BaseHeadsUpManager implements HeadsUpManager { private boolean hasPinnedNotificationInternal() { for (String key : mHeadsUpEntryMap.keySet()) { HeadsUpEntry entry = getHeadsUpEntry(key); if (entry.mEntry.isRowPinned()) { if (entry.mEntry != null && entry.mEntry.isRowPinned()) { return true; } } Loading @@ -620,7 +627,7 @@ public abstract class BaseHeadsUpManager implements HeadsUpManager { // when the user unpinned all of HUNs by moving one HUN, all of HUNs should not stay // on the screen. if (userUnPinned && headsUpEntry.mEntry != null) { if (headsUpEntry.mEntry.mustStayOnScreen()) { if (headsUpEntry.mEntry != null && headsUpEntry.mEntry.mustStayOnScreen()) { headsUpEntry.mEntry.setHeadsUpIsVisible(); } } Loading Loading @@ -696,7 +703,7 @@ public abstract class BaseHeadsUpManager implements HeadsUpManager { return true; } return headsUpEntry == null || headsUpEntry.wasShownLongEnough() || headsUpEntry.mEntry.isRowDismissed(); || (headsUpEntry.mEntry != null && headsUpEntry.mEntry.isRowDismissed()); } /** Loading Loading @@ -875,6 +882,14 @@ public abstract class BaseHeadsUpManager implements HeadsUpManager { } public int compareNonTimeFields(HeadsUpEntry headsUpEntry) { if (mEntry == null && headsUpEntry.mEntry == null) { return 0; } else if (headsUpEntry.mEntry == null) { return -1; } else if (mEntry == null) { return 1; } boolean selfFullscreen = hasFullScreenIntent(mEntry); boolean otherFullscreen = hasFullScreenIntent(headsUpEntry.mEntry); if (selfFullscreen && !otherFullscreen) { Loading @@ -901,6 +916,13 @@ public abstract class BaseHeadsUpManager implements HeadsUpManager { } public int compareTo(@NonNull HeadsUpEntry headsUpEntry) { if (mEntry == null && headsUpEntry.mEntry == null) { return 0; } else if (headsUpEntry.mEntry == null) { return -1; } else if (mEntry == null) { return 1; } boolean isPinned = mEntry.isRowPinned(); boolean otherPinned = headsUpEntry.mEntry.isRowPinned(); if (isPinned && !otherPinned) { Loading Loading @@ -965,7 +987,7 @@ public abstract class BaseHeadsUpManager implements HeadsUpManager { mLogger.logAutoRemoveCanceled(mEntry, reason); } }; if (isHeadsUpEntry(this.mEntry.getKey())) { if (mEntry != null && isHeadsUpEntry(mEntry.getKey())) { mAvalancheController.update(this, runnable, reason + " cancelAutoRemovalCallbacks"); } else { // Just removed Loading