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

Commit 44b5b7c5 authored by Julia Reynolds's avatar Julia Reynolds
Browse files

Update empty state for apps bypassing dnd

Test: atest
Fixes: 150346679
Change-Id: Iccc5f1fb3dd7ee2c114f8757a020833b3b41e91d
parent ed3fc862
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -8920,6 +8920,9 @@
    <!-- [CHAR LIMIT=100] Zen mode settings: Allow apps to bypass DND title-->
    <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 -->
    <plurals name="zen_mode_bypassing_apps_subtext">
        <item quantity="zero">No apps can override Do Not Disturb</item>
+1 −0
Original line number Diff line number Diff line
@@ -43,6 +43,7 @@
        <Preference
            android:key="zen_mode_behavior_apps"
            android:title="@string/zen_category_apps"
            settings:controller="com.android.settings.notification.zen.ZenModeBypassingAppsPreferenceController"
            android:fragment="com.android.settings.notification.zen.ZenModeBypassingAppsSettings" />

        <!-- All sounds -->
+9 −3
Original line number Diff line number Diff line
@@ -105,10 +105,8 @@ public class ZenModeAllBypassingAppsPreferenceController extends AbstractPrefere
        ApplicationsState.AppFilter filter = ApplicationsState.FILTER_ALL_ENABLED;
        List<ApplicationsState.AppEntry> apps = mAppSession.rebuild(filter,
                ApplicationsState.ALPHA_COMPARATOR);
        if (apps != null) {
        updateNotificationChannelList(apps);
    }
    }

    @VisibleForTesting
    void updateNotificationChannelList(List<ApplicationsState.AppEntry> apps) {
@@ -116,6 +114,8 @@ public class ZenModeAllBypassingAppsPreferenceController extends AbstractPrefere
            return;
        }

        boolean showEmptyState = true;

        List<Preference> 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);
            }
        }
    }

+5 −2
Original line number Diff line number Diff line
@@ -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);
    }