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
This commit is contained in:
@@ -51,7 +51,6 @@ import com.android.settings.widget.MasterSwitchPreference;
|
|||||||
import com.android.settings.widget.SwitchBar;
|
import com.android.settings.widget.SwitchBar;
|
||||||
import com.android.settingslib.RestrictedSwitchPreference;
|
import com.android.settingslib.RestrictedSwitchPreference;
|
||||||
|
|
||||||
import java.text.Collator;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
@@ -147,6 +146,15 @@ public class AppNotificationSettings extends NotificationSettingsBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void populateChannelList() {
|
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()) {
|
if (mChannelGroupList.isEmpty()) {
|
||||||
PreferenceCategory groupCategory = new PreferenceCategory(getPrefContext());
|
PreferenceCategory groupCategory = new PreferenceCategory(getPrefContext());
|
||||||
groupCategory.setTitle(R.string.notification_channels);
|
groupCategory.setTitle(R.string.notification_channels);
|
||||||
|
Reference in New Issue
Block a user