Merge "Update empty state for apps bypassing dnd" into rvc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
79336396df
@@ -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>
|
||||||
|
@@ -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 -->
|
||||||
|
@@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -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);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user