Merge "Update empty state for apps bypassing dnd" into rvc-dev

This commit is contained in:
TreeHugger Robot
2020-03-11 20:33:15 +00:00
committed by Android (Google) Code Review
4 changed files with 18 additions and 5 deletions

View File

@@ -8924,6 +8924,9 @@
<!-- [CHAR LIMIT=100] Zen mode settings: Allow apps to bypass DND title--> <!-- [CHAR LIMIT=100] Zen mode settings: Allow apps to bypass DND title-->
<string name="zen_mode_bypassing_apps_title">App exceptions</string> <string name="zen_mode_bypassing_apps_title">App exceptions</string>
<!-- [CHAR LIMIT=120] Zen mode settings: No apps are bypassing DND -->
<string name="zen_mode_bypassing_apps_subtext_none">No apps can override Do Not Disturb</string>
<!-- [CHAR LIMIT=120] Zen mode settings: Allow apps to bypass DND --> <!-- [CHAR LIMIT=120] Zen mode settings: Allow apps to bypass DND -->
<plurals name="zen_mode_bypassing_apps_subtext"> <plurals name="zen_mode_bypassing_apps_subtext">
<item quantity="zero">No apps can override Do Not Disturb</item> <item quantity="zero">No apps can override Do Not Disturb</item>

View File

@@ -43,6 +43,7 @@
<Preference <Preference
android:key="zen_mode_behavior_apps" android:key="zen_mode_behavior_apps"
android:title="@string/zen_category_apps" android:title="@string/zen_category_apps"
settings:controller="com.android.settings.notification.zen.ZenModeBypassingAppsPreferenceController"
android:fragment="com.android.settings.notification.zen.ZenModeBypassingAppsSettings" /> android:fragment="com.android.settings.notification.zen.ZenModeBypassingAppsSettings" />
<!-- All sounds --> <!-- All sounds -->

View File

@@ -105,9 +105,7 @@ public class ZenModeAllBypassingAppsPreferenceController extends AbstractPrefere
ApplicationsState.AppFilter filter = ApplicationsState.FILTER_ALL_ENABLED; ApplicationsState.AppFilter filter = ApplicationsState.FILTER_ALL_ENABLED;
List<ApplicationsState.AppEntry> apps = mAppSession.rebuild(filter, List<ApplicationsState.AppEntry> apps = mAppSession.rebuild(filter,
ApplicationsState.ALPHA_COMPARATOR); ApplicationsState.ALPHA_COMPARATOR);
if (apps != null) { updateNotificationChannelList(apps);
updateNotificationChannelList(apps);
}
} }
@VisibleForTesting @VisibleForTesting
@@ -116,6 +114,8 @@ public class ZenModeAllBypassingAppsPreferenceController extends AbstractPrefere
return; return;
} }
boolean showEmptyState = true;
List<Preference> channelsBypassingDnd = new ArrayList<>(); List<Preference> channelsBypassingDnd = new ArrayList<>();
for (ApplicationsState.AppEntry entry : apps) { for (ApplicationsState.AppEntry entry : apps) {
String pkg = entry.info.packageName; String pkg = entry.info.packageName;
@@ -148,6 +148,7 @@ public class ZenModeAllBypassingAppsPreferenceController extends AbstractPrefere
return true; return true;
}); });
channelsBypassingDnd.add(pref); channelsBypassingDnd.add(pref);
showEmptyState = false;
} }
mPreferenceScreen.removeAll(); mPreferenceScreen.removeAll();
@@ -156,6 +157,11 @@ public class ZenModeAllBypassingAppsPreferenceController extends AbstractPrefere
mPreferenceScreen.addPreference(prefToAdd); mPreferenceScreen.addPreference(prefToAdd);
} }
} }
if (showEmptyState) {
Preference pref = new Preference(mPrefContext);
pref.setTitle(R.string.zen_mode_bypassing_apps_subtext_none);
mPreferenceScreen.addPreference(pref);
}
} }
} }

View File

@@ -9,7 +9,7 @@ import com.android.settingslib.core.lifecycle.Lifecycle;
public class ZenModeBypassingAppsPreferenceController extends AbstractZenModePreferenceController { 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(); private NotificationBackend mNotificationBackend = new NotificationBackend();
public ZenModeBypassingAppsPreferenceController(Context context, Lifecycle lifecycle) { public ZenModeBypassingAppsPreferenceController(Context context, Lifecycle lifecycle) {
@@ -18,13 +18,16 @@ public class ZenModeBypassingAppsPreferenceController extends AbstractZenModePre
@Override @Override
public boolean isAvailable() { public boolean isAvailable() {
return mNotificationBackend.getNumAppsBypassingDnd(UserHandle.getCallingUserId()) != 0; return true;
} }
@Override @Override
public String getSummary() { public String getSummary() {
final int channelsBypassing = final int channelsBypassing =
mNotificationBackend.getNumAppsBypassingDnd(UserHandle.getCallingUserId()); 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, return mContext.getResources().getQuantityString(R.plurals.zen_mode_bypassing_apps_subtext,
channelsBypassing, channelsBypassing); channelsBypassing, channelsBypassing);
} }