Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 168a8165 authored by Ned Burns's avatar Ned Burns
Browse files

Ignore missing rankings in GroupCoalescer

Companion change to one we made in NotifCollection.

Due to a race condition outside of our control, we have to disable this
check and just accept that rankings may sometimes be malformed.

Test: atest
Fixes: 149912196
Change-Id: Iff53944553d0da22df915b55709b9feef5c8d1a4
parent 4723328c
Loading
Loading
Loading
Loading
+7 −4
Original line number Diff line number Diff line
@@ -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());
            }
        }
    }

+8 −0
Original line number Diff line number Diff line
@@ -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"
 No newline at end of file