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

Commit 6eccf001 authored by Geoffrey Pitsch's avatar Geoffrey Pitsch
Browse files

Don't delete new notification channels not present in backup

Test: runtest systemui-notification
Change-Id: Ib25a680487b20700b9936926c1769a4d8f81b62a
Fixes: 36785228
parent a441da15
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -152,7 +152,8 @@ public class RankingHelper implements RankingConfig {
        if (type != XmlPullParser.START_TAG) return;
        String tag = parser.getName();
        if (!TAG_RANKING.equals(tag)) return;
        mRecords.clear();
        // Clobber groups and channels with the xml, but don't delete other data that wasn't present
        // at the time of serialization.
        mRestoredWithoutUids.clear();
        while ((type = parser.next()) != XmlPullParser.END_DOCUMENT) {
            tag = parser.getName();
+13 −0
Original line number Diff line number Diff line
@@ -489,6 +489,19 @@ public class RankingHelperTest {
                NotificationChannel.DEFAULT_CHANNEL_ID, false));
    }

    @Test
    public void testLoadingOldChannelsDoesNotDeleteNewlyCreatedChannels() throws Exception {
        ByteArrayOutputStream baos = writeXmlAndPurge(PKG, UID, false,
                NotificationChannel.DEFAULT_CHANNEL_ID, "bananas");
        mHelper.createNotificationChannel(PKG, UID,
                new NotificationChannel("bananas", "bananas", IMPORTANCE_LOW), true);

        loadStreamXml(baos);

        // Should still have the newly created channel that wasn't in the xml.
        assertTrue(mHelper.getNotificationChannel(PKG, UID, "bananas", false) != null);
    }

    @Test
    public void testCreateChannel_blocked() throws Exception {
        mHelper.setImportance(PKG, UID, NotificationManager.IMPORTANCE_NONE);