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

Commit b42ac40b authored by Julia Reynolds's avatar Julia Reynolds Committed by Android (Google) Code Review
Browse files

Merge "Support showing notifications as badges."

parents 999a5bed d6835a20
Loading
Loading
Loading
Loading
+15 −23
Original line number Diff line number Diff line
@@ -6226,25 +6226,19 @@
    <string name="notification_importance_none">Not set</string>
    <!-- [CHAR LIMIT=100] Notification Importance slider: blocked importance level description -->
    <string name="notification_importance_blocked">Never show notifications from this app</string>
    <string name="notification_importance_blocked">Never show notifications</string>
    <!-- [CHAR LIMIT=100] Notification Importance slider: min importance level description -->
    <string name="notification_importance_min">No full screen interruption, peeking, sound, or vibration. Show at the bottom of the notification list. Hide from lock screen and status bar.</string>
    <string name="notification_importance_min">No sound or visual interruption</string>
    <!-- [CHAR LIMIT=100] Notification Importance slider: low importance level description -->
    <string name="notification_importance_low">No full screen interruption, peeking, sound, or vibration.</string>
    <string name="notification_importance_low">Show silently</string>
    <!-- [CHAR LIMIT=100] Notification Importance slider: normal importance level description -->
    <string name="notification_importance_default">No full screen interruption or peeking.</string>
    <string name="notification_importance_default">Make sound</string>
    <!-- [CHAR LIMIT=100] Notification Importance slider: high importance level description -->
    <string name="notification_importance_high">Always peek. No full screen interruption.</string>
    <!-- [CHAR LIMIT=100] Notification Importance slider: max importance level description -->
    <string name="notification_importance_max">Always peek, and allow full screen interruption. Show at the top of the notification list.</string>
    <!-- [CHAR LIMIT=100] Notification Importance slider: max importance level description -->
    <string name="notification_importance_unspecified">App determines importance for each notification</string>
    <string name="notification_importance_high">Make sound and pop on screen</string>
    <!-- [CHAR LIMIT=60] Notification importance reset button -->
    <string name="importance_reset">Reset</string>
@@ -6335,13 +6329,19 @@
    <string name="app_notification_block_title">Block all</string>
    <!-- [CHAR LIMIT=NONE] App notification settings: Block option description-->
    <string name="app_notification_block_summary">Never show notifications from this app</string>
    <string name="app_notification_block_summary">Never show these notifications</string>
    <!-- [CHAR LIMIT=NONE] Channel notification settings: Block option title -->
    <string name="channel_notification_block_title">Block all</string>
    <string name="notification_content_block_title">Show notifications</string>
    <!-- [CHAR LIMIT=NONE] Channel notification settings: Block option description-->
    <string name="channel_notification_block_summary">Never show notifications from this channel</string>
    <string name="notification_content_block_summary">Never show notifications in the shade or on peripheral devices</string>
    <!-- [CHAR LIMIT=NONE] Channel notification settings: Badging option title -->
    <string name="notification_badge_title">Show badge</string>
    <!-- [CHAR LIMIT=NONE] Channel notification settings: Badge option description-->
    <string name="notification_badge_summary">Show notifications as badges on the Home app, if supported.</string>
    <!-- [CHAR LIMIT=NONE] App notification settings: Override DND option title -->
    <string name="app_notification_override_dnd_title">Override Do Not Disturb</string>
@@ -6352,7 +6352,7 @@
    <!-- [CHAR LIMIT=NONE] App notification settings: Visibility override option title -->
    <string name="app_notification_visibility_override_title">On the lock screen</string>
    <!-- [CHAR LIMIT=20] Notification settings: App notifications row summary when banned -->
    <!-- [CHAR LIMIT=20] Notification settings: App notifications row summary when allowed -->
    <string name="app_notification_row_banned">Blocked</string>
    <!-- [CHAR LIMIT=40] Notification settings: App notifications row summary when high priority -->
@@ -6794,14 +6794,6 @@
    <string name="filter_notif_blocked_apps">Blocked</string>
    <!-- Label for showing apps with domain URLs (data URI with http or https) in list [CHAR LIMIT=30] -->
    <string name="filter_with_domain_urls_apps">With domain URLs</string>
    <!-- Label for showing apps with priority notifications in list [CHAR LIMIT=50] -->
    <string name="filter_notif_priority_apps">Overrides Do Not Disturb</string>
    <!-- Label for showing apps redacting sensitive notifications in list [CHAR LIMIT=50] -->
    <string name="filter_notif_sensitive_apps">No sensitive content on lock screen</string>
    <!-- Label for showing apps hiding notifications from lockscreen [CHAR LIMIT=50] -->
    <string name="filter_notif_hide_notifications_apps">Never shown on lock screen</string>
    <!-- Filter label for apps that the user has silenced [CHAR LIMIT=40] -->
    <string name="filter_notif_silent">Shown silently</string>
    <!-- Title for advanced application management settings [CHAR LIMIT=30] -->
    <string name="advanced_apps">Advanced</string>
+7 −35
Original line number Diff line number Diff line
@@ -18,8 +18,6 @@
        xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
        android:title="@string/app_notifications_title"
        android:key="app_notification_settings">

    <!-- Importance -->
    <!-- Block -->
    <com.android.settingslib.RestrictedSwitchPreference
        android:key="block"
@@ -28,36 +26,10 @@
        android:order="2"
        settings:useAdditionalSummary="true"
        settings:restrictedSwitchSummary="@string/enabled_by_admin" />
    <!-- Silent -->
    <com.android.settingslib.RestrictedSwitchPreference
            android:key="silent"
            android:title="@string/show_silently"
            android:summary="@string/show_silently_summary"
            android:order="3"
            settings:useAdditionalSummary="true" />
    <!-- Slider -->
    <com.android.settings.notification.ImportanceSeekBarPreference
            android:key="importance"
            android:title="@string/notification_importance_title"
            android:order="4"/>

    <!-- Visibility Override -->
    <com.android.settings.notification.RestrictedDropDownPreference
            android:key="visibility_override"
            android:title="@string/app_notification_visibility_override_title"
            android:order="5" />

    <!-- Bypass DND -->
    <com.android.settingslib.RestrictedSwitchPreference
            android:key="bypass_dnd"
            android:title="@string/app_notification_override_dnd_title"
            android:summary="@string/app_notification_override_dnd_summary"
            android:order="6"
            settings:useAdditionalSummary="true" />

    <PreferenceCategory
            android:key="channels"
            android:title="@string/notification_channels"
            android:order="7" />
            android:order="3" />

</PreferenceScreen>
+26 −14
Original line number Diff line number Diff line
@@ -21,20 +21,32 @@
    <!-- Block -->
    <com.android.settingslib.RestrictedSwitchPreference
        android:key="block"
            android:title="@string/channel_notification_block_title"
        android:title="@string/app_notification_block_title"
        android:summary="@string/app_notification_block_summary"
        android:order="1"
        settings:useAdditionalSummary="true"
        settings:restrictedSwitchSummary="@string/enabled_by_admin" />

    <!-- Show notification -->
    <com.android.settingslib.RestrictedSwitchPreference
        android:key="show"
        android:title="@string/notification_content_block_title"
        android:summary="@string/notification_content_block_summary"
        android:order="2"
        settings:useAdditionalSummary="true"
        settings:restrictedSwitchSummary="@string/enabled_by_admin" />
    <!-- Silent -->

    <!-- Show badge -->
    <com.android.settingslib.RestrictedSwitchPreference
            android:key="silent"
            android:title="@string/show_silently"
            android:summary="@string/show_silently_summary"
        android:key="badge"
        android:title="@string/notification_badge_title"
        android:summary="@string/notification_badge_summary"
        android:order="3"
            settings:useAdditionalSummary="true" />
    <!-- Slider -->
    <com.android.settings.notification.ImportanceSeekBarPreference
        settings:useAdditionalSummary="true"
        settings:restrictedSwitchSummary="@string/enabled_by_admin" />

    <!-- Importance -->
    <com.android.settings.notification.RestrictedDropDownPreference
            android:key="importance"
            android:title="@string/notification_importance_title"
            android:order="4"/>
+0 −60
Original line number Diff line number Diff line
@@ -81,64 +81,4 @@ public class AppStateNotificationBridge extends AppStateBaseBridge {
            return false;
        }
    };

    public static final AppFilter FILTER_APP_NOTIFICATION_SILENCED = new AppFilter() {
        @Override
        public void init() {
        }

        @Override
        public boolean filterApp(AppEntry info) {
            if (info == null || info.extraInfo == null) {
                return false;
            }
            AppRow row = (AppRow) info.extraInfo;
            return row.appImportance > NotificationManager.IMPORTANCE_NONE
                    && row.appImportance < NotificationManager.IMPORTANCE_DEFAULT;
        }
    };

    public static final AppFilter FILTER_APP_NOTIFICATION_PRIORITY = new AppFilter() {
        @Override
        public void init() {
        }

        @Override
        public boolean filterApp(AppEntry info) {
            if (info == null || info.extraInfo == null) {
                return false;
            }
            return ((AppRow) info.extraInfo).appBypassDnd;
        }
    };

    public static final AppFilter FILTER_APP_NOTIFICATION_HIDE_SENSITIVE = new AppFilter() {
        @Override
        public void init() {
        }

        @Override
        public boolean filterApp(AppEntry info) {
            if (info == null || info.extraInfo == null) {
                return false;
            }
            return ((AppRow) info.extraInfo).lockScreenSecure
                    && ((AppRow) info.extraInfo).appVisOverride == Notification.VISIBILITY_PRIVATE;
        }
    };

    public static final AppFilter FILTER_APP_NOTIFICATION_HIDE_ALL = new AppFilter() {
        @Override
        public void init() {
        }

        @Override
        public boolean filterApp(AppEntry info) {
            if (info == null || info.extraInfo == null) {
                return false;
            }
            return ((AppRow) info.extraInfo).lockScreenSecure
                    && ((AppRow) info.extraInfo).appVisOverride == Notification.VISIBILITY_SECRET;
        }
    };
}
+2 −41
Original line number Diff line number Diff line
@@ -1088,10 +1088,6 @@ public class InstalledAppDetails extends AppInfoBase
        return NetworkTemplate.buildTemplateEthernet();
    }

    public static CharSequence getNotificationSummary(AppEntry appEntry, Context context) {
        return getNotificationSummary(appEntry, context, new NotificationBackend());
    }

    public static CharSequence getNotificationSummary(AppEntry appEntry, Context context,
            NotificationBackend backend) {
        AppRow appRow = backend.loadAppRow(context, context.getPackageManager(), appEntry.info);
@@ -1099,43 +1095,8 @@ public class InstalledAppDetails extends AppInfoBase
    }

    public static CharSequence getNotificationSummary(AppRow appRow, Context context) {
        boolean showSlider = Settings.Secure.getInt(
                context.getContentResolver(), NOTIFICATION_TUNER_SETTING, 0) == 1;
        List<String> summaryAttributes = new ArrayList<>();
        StringBuffer summary = new StringBuffer();
        if (showSlider) {
            if (appRow.appImportance != NotificationManager.IMPORTANCE_UNSPECIFIED) {
                summaryAttributes.add(context.getString(
                        R.string.notification_summary_level, appRow.appImportance));
            }
        } else {
            if (appRow.banned) {
                summaryAttributes.add(context.getString(R.string.notifications_disabled));
            } else if (appRow.appImportance > NotificationManager.IMPORTANCE_NONE
                    && appRow.appImportance < NotificationManager.IMPORTANCE_DEFAULT) {
                summaryAttributes.add(context.getString(R.string.notifications_silenced));
            }
        }
        final boolean lockscreenSecure = new LockPatternUtils(context).isSecure(
                UserHandle.myUserId());
        if (lockscreenSecure) {
            if (appRow.appVisOverride == Notification.VISIBILITY_PRIVATE) {
                summaryAttributes.add(context.getString(R.string.notifications_redacted));
            } else if (appRow.appVisOverride == Notification.VISIBILITY_SECRET) {
                summaryAttributes.add(context.getString(R.string.notifications_hidden));
            }
        }
        if (appRow.appBypassDnd) {
            summaryAttributes.add(context.getString(R.string.notifications_priority));
        }
        final int N = summaryAttributes.size();
        for (int i = 0; i < N; i++) {
            if (i > 0) {
                summary.append(context.getString(R.string.notifications_summary_divider));
            }
            summary.append(summaryAttributes.get(i));
        }
        return summary.toString();
        // TODO: implement summary when it is known what it should say
        return "";
    }

    @Override
Loading