From 44b5b7c575a79b63d3b6bf06ab7e6697206972fc Mon Sep 17 00:00:00 2001 From: Julia Reynolds Date: Mon, 9 Mar 2020 18:47:45 -0400 Subject: [PATCH] Update empty state for apps bypassing dnd Test: atest Fixes: 150346679 Change-Id: Iccc5f1fb3dd7ee2c114f8757a020833b3b41e91d --- res/values/strings.xml | 3 +++ res/xml/zen_mode_settings.xml | 1 + .../ZenModeAllBypassingAppsPreferenceController.java | 12 +++++++++--- .../ZenModeBypassingAppsPreferenceController.java | 7 +++++-- 4 files changed, 18 insertions(+), 5 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 608eac8b73e..24a25c2cc24 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -8920,6 +8920,9 @@ App exceptions + + No apps can override Do Not Disturb + No apps can override Do Not Disturb diff --git a/res/xml/zen_mode_settings.xml b/res/xml/zen_mode_settings.xml index ce2d1322c9a..f8a3aa59240 100644 --- a/res/xml/zen_mode_settings.xml +++ b/res/xml/zen_mode_settings.xml @@ -43,6 +43,7 @@ diff --git a/src/com/android/settings/notification/zen/ZenModeAllBypassingAppsPreferenceController.java b/src/com/android/settings/notification/zen/ZenModeAllBypassingAppsPreferenceController.java index b3630a0a951..9484a09cb92 100644 --- a/src/com/android/settings/notification/zen/ZenModeAllBypassingAppsPreferenceController.java +++ b/src/com/android/settings/notification/zen/ZenModeAllBypassingAppsPreferenceController.java @@ -105,9 +105,7 @@ public class ZenModeAllBypassingAppsPreferenceController extends AbstractPrefere ApplicationsState.AppFilter filter = ApplicationsState.FILTER_ALL_ENABLED; List apps = mAppSession.rebuild(filter, ApplicationsState.ALPHA_COMPARATOR); - if (apps != null) { - updateNotificationChannelList(apps); - } + updateNotificationChannelList(apps); } @VisibleForTesting @@ -116,6 +114,8 @@ public class ZenModeAllBypassingAppsPreferenceController extends AbstractPrefere return; } + boolean showEmptyState = true; + List channelsBypassingDnd = new ArrayList<>(); for (ApplicationsState.AppEntry entry : apps) { String pkg = entry.info.packageName; @@ -148,6 +148,7 @@ public class ZenModeAllBypassingAppsPreferenceController extends AbstractPrefere return true; }); channelsBypassingDnd.add(pref); + showEmptyState = false; } mPreferenceScreen.removeAll(); @@ -156,6 +157,11 @@ public class ZenModeAllBypassingAppsPreferenceController extends AbstractPrefere mPreferenceScreen.addPreference(prefToAdd); } } + if (showEmptyState) { + Preference pref = new Preference(mPrefContext); + pref.setTitle(R.string.zen_mode_bypassing_apps_subtext_none); + mPreferenceScreen.addPreference(pref); + } } } diff --git a/src/com/android/settings/notification/zen/ZenModeBypassingAppsPreferenceController.java b/src/com/android/settings/notification/zen/ZenModeBypassingAppsPreferenceController.java index 9ef9380a745..a93fa1b9856 100644 --- a/src/com/android/settings/notification/zen/ZenModeBypassingAppsPreferenceController.java +++ b/src/com/android/settings/notification/zen/ZenModeBypassingAppsPreferenceController.java @@ -9,7 +9,7 @@ import com.android.settingslib.core.lifecycle.Lifecycle; public class ZenModeBypassingAppsPreferenceController extends AbstractZenModePreferenceController { - protected static final String KEY = "zen_mode_bypassing_apps"; + protected static final String KEY = "zen_mode_behavior_apps"; private NotificationBackend mNotificationBackend = new NotificationBackend(); public ZenModeBypassingAppsPreferenceController(Context context, Lifecycle lifecycle) { @@ -18,13 +18,16 @@ public class ZenModeBypassingAppsPreferenceController extends AbstractZenModePre @Override public boolean isAvailable() { - return mNotificationBackend.getNumAppsBypassingDnd(UserHandle.getCallingUserId()) != 0; + return true; } @Override public String getSummary() { final int channelsBypassing = mNotificationBackend.getNumAppsBypassingDnd(UserHandle.getCallingUserId()); + if (channelsBypassing == 0) { + return mContext.getResources().getString(R.string.zen_mode_bypassing_apps_subtext_none); + } return mContext.getResources().getQuantityString(R.plurals.zen_mode_bypassing_apps_subtext, channelsBypassing, channelsBypassing); }