Merge "Ignore missing rankings in GroupCoalescer" into rvc-dev am: 24257d5755 am: f215813c54

Change-Id: I323680e56a3e87a5cc827f4b831d97c7129c1970
This commit is contained in:
Automerger Merge Worker
2020-03-16 23:26:14 +00:00
2 changed files with 15 additions and 4 deletions

View File

@@ -260,11 +260,14 @@ public class GroupCoalescer implements Dumpable {
private void applyRanking(RankingMap rankingMap) {
for (CoalescedEvent event : mCoalescedEvents.values()) {
Ranking ranking = new Ranking();
if (!rankingMap.getRanking(event.getKey(), ranking)) {
throw new IllegalStateException(
"Ranking map doesn't contain key: " + event.getKey());
if (rankingMap.getRanking(event.getKey(), ranking)) {
event.setRanking(ranking);
} else {
// TODO: (b/148791039) We should crash if we are ever handed a ranking with
// incomplete entries. Right now, there's a race condition in NotificationListener
// that means this might occur when SystemUI is starting up.
mLogger.logMissingRanking(event.getKey());
}
event.setRanking(ranking);
}
}

View File

@@ -57,6 +57,14 @@ class GroupCoalescerLogger @Inject constructor(
"Modification of notif $str1 triggered TIMEOUT emit of batched group $str2"
})
}
fun logMissingRanking(forKey: String) {
buffer.log(TAG, LogLevel.WARNING, {
str1 = forKey
}, {
"RankingMap is missing an entry for coalesced notification $str1"
})
}
}
private const val TAG = "GroupCoalescer"