diff options
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/NotificationData.java | 38 | ||||
| -rw-r--r-- | packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationDataTest.java | 6 |
2 files changed, 33 insertions, 11 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationData.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationData.java index ddc7dd063d4e..d0417b59448d 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationData.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationData.java @@ -292,8 +292,8 @@ public class NotificationData { if (mRankingMap != null) { // RankingMap as received from NoMan - mRankingMap.getRanking(a.key, mRankingA); - mRankingMap.getRanking(b.key, mRankingB); + getRanking(a.key, mRankingA); + getRanking(b.key, mRankingB); aImportance = mRankingA.getImportance(); bImportance = mRankingB.getImportance(); aRank = mRankingA.getRank(); @@ -381,7 +381,7 @@ public class NotificationData { public boolean isAmbient(String key) { if (mRankingMap != null) { - mRankingMap.getRanking(key, mTmpRanking); + getRanking(key, mTmpRanking); return mTmpRanking.isAmbient(); } return false; @@ -389,7 +389,7 @@ public class NotificationData { public int getVisibilityOverride(String key) { if (mRankingMap != null) { - mRankingMap.getRanking(key, mTmpRanking); + getRanking(key, mTmpRanking); return mTmpRanking.getVisibilityOverride(); } return Ranking.VISIBILITY_NO_OVERRIDE; @@ -397,7 +397,7 @@ public class NotificationData { public boolean shouldSuppressScreenOff(String key) { if (mRankingMap != null) { - mRankingMap.getRanking(key, mTmpRanking); + getRanking(key, mTmpRanking); return (mTmpRanking.getSuppressedVisualEffects() & NotificationListenerService.SUPPRESSED_EFFECT_SCREEN_OFF) != 0; } @@ -406,7 +406,7 @@ public class NotificationData { public boolean shouldSuppressScreenOn(String key) { if (mRankingMap != null) { - mRankingMap.getRanking(key, mTmpRanking); + getRanking(key, mTmpRanking); return (mTmpRanking.getSuppressedVisualEffects() & NotificationListenerService.SUPPRESSED_EFFECT_SCREEN_ON) != 0; } @@ -415,7 +415,7 @@ public class NotificationData { public int getImportance(String key) { if (mRankingMap != null) { - mRankingMap.getRanking(key, mTmpRanking); + getRanking(key, mTmpRanking); return mTmpRanking.getImportance(); } return NotificationManager.IMPORTANCE_UNSPECIFIED; @@ -423,7 +423,7 @@ public class NotificationData { public String getOverrideGroupKey(String key) { if (mRankingMap != null) { - mRankingMap.getRanking(key, mTmpRanking); + getRanking(key, mTmpRanking); return mTmpRanking.getOverrideGroupKey(); } return null; @@ -431,7 +431,7 @@ public class NotificationData { public List<SnoozeCriterion> getSnoozeCriteria(String key) { if (mRankingMap != null) { - mRankingMap.getRanking(key, mTmpRanking); + getRanking(key, mTmpRanking); return mTmpRanking.getSnoozeCriteria(); } return null; @@ -439,7 +439,7 @@ public class NotificationData { public NotificationChannel getChannel(String key) { if (mRankingMap != null) { - mRankingMap.getRanking(key, mTmpRanking); + getRanking(key, mTmpRanking); return mTmpRanking.getChannel(); } return null; @@ -452,6 +452,9 @@ public class NotificationData { final int N = mEntries.size(); for (int i = 0; i < N; i++) { Entry entry = mEntries.valueAt(i); + if (!getRanking(entry.key, mTmpRanking)) { + continue; + } final StatusBarNotification oldSbn = entry.notification.cloneLight(); final String overrideGroupKey = getOverrideGroupKey(entry.key); if (!Objects.equals(oldSbn.getOverrideGroupKey(), overrideGroupKey)) { @@ -466,6 +469,19 @@ public class NotificationData { filterAndSort(); } + /** + * Get the ranking from the current ranking map. + * + * @param key the key to look up + * @param outRanking the ranking to populate + * + * @return {@code true} if the ranking was properly obtained. + */ + @VisibleForTesting + protected boolean getRanking(String key, Ranking outRanking) { + return mRankingMap.getRanking(key, outRanking); + } + // TODO: This should not be public. Instead the Environment should notify this class when // anything changed, and this class should call back the UI so it updates itself. public void filterAndSort() { @@ -573,7 +589,7 @@ public class NotificationData { } private void dumpEntry(PrintWriter pw, String indent, int i, Entry e) { - mRankingMap.getRanking(e.key, mTmpRanking); + getRanking(e.key, mTmpRanking); pw.print(indent); pw.println(" [" + i + "] key=" + e.key + " icon=" + e.icon); StatusBarNotification n = e.notification; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationDataTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationDataTest.java index 18c5756b3fb6..972eddb46901 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationDataTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationDataTest.java @@ -135,5 +135,11 @@ public class NotificationDataTest extends SysuiTestCase { public NotificationChannel getChannel(String key) { return new NotificationChannel(null, null, 0); } + + @Override + protected boolean getRanking(String key, NotificationListenerService.Ranking outRanking) { + super.getRanking(key, outRanking); + return true; + } } } |