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

Commit 130a028f authored by Alison Cichowlas's avatar Alison Cichowlas
Browse files

If two groups are posted to settings, remove old group and log.

Bug: 62136650
Test: manual: set debugger in asynctask at line 110 to force
race condition, triggered task twice then released both.
also ran existing tests with no new failures.
Change-Id: I8508fe9f191ca6cd0bb6dfbc62d884420d3fd747
parent 11465af1
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -51,7 +51,6 @@ import com.android.settings.widget.MasterSwitchPreference;
import com.android.settings.widget.SwitchBar;
import com.android.settingslib.RestrictedSwitchPreference;

import java.text.Collator;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
@@ -147,6 +146,15 @@ public class AppNotificationSettings extends NotificationSettingsBase {
    }

    private void populateChannelList() {
        if (!mChannelGroups.isEmpty()) {
            // If there's anything in mChannelGroups, we've called populateChannelList twice.
            // Clear out existing channels and log.
            Log.w(TAG, "Notification channel group posted twice to settings - old size " +
                    mChannelGroups.size() + ", new size " + mChannelGroupList.size());
            for (Preference p : mChannelGroups) {
                getPreferenceScreen().removePreference(p);
            }
        }
        if (mChannelGroupList.isEmpty()) {
            PreferenceCategory groupCategory = new PreferenceCategory(getPrefContext());
            groupCategory.setTitle(R.string.notification_channels);