diff --git a/res/values/strings.xml b/res/values/strings.xml index 773e17f8a4a..826783e1bd8 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -7975,9 +7975,15 @@ Messages + + messages + Some messages + + some messages + From anyone @@ -8002,21 +8008,36 @@ Alarms + + alarms + Media + + media + Touch sounds + + touch sounds + Reminders + + reminders + Allow reminders Events + + events + Allow events @@ -8032,6 +8053,9 @@ Repeat callers + + repeat callers + Allow repeat callers diff --git a/src/com/android/settings/notification/ZenModeSettings.java b/src/com/android/settings/notification/ZenModeSettings.java index 240ab68c93a..e05dabe2b61 100644 --- a/src/com/android/settings/notification/ZenModeSettings.java +++ b/src/com/android/settings/notification/ZenModeSettings.java @@ -119,22 +119,22 @@ public class ZenModeSettings extends ZenModeSettingsBase { List enabledCategories = getEnabledCategories(policy, category -> PRIORITY_CATEGORY_ALARMS == category || PRIORITY_CATEGORY_MEDIA == category - || PRIORITY_CATEGORY_SYSTEM == category); + || PRIORITY_CATEGORY_SYSTEM == category, false); int numCategories = enabledCategories.size(); if (numCategories == 0) { return mContext.getString(R.string.zen_sound_all_muted); } else if (numCategories == 1) { return mContext.getString(R.string.zen_sound_one_allowed, - enabledCategories.get(0).toLowerCase()); + enabledCategories.get(0)); } else if (numCategories == 2) { return mContext.getString(R.string.zen_sound_two_allowed, - enabledCategories.get(0).toLowerCase(), - enabledCategories.get(1).toLowerCase()); + enabledCategories.get(0), + enabledCategories.get(1)); } else if (numCategories == 3) { return mContext.getString(R.string.zen_sound_three_allowed, - enabledCategories.get(0).toLowerCase(), - enabledCategories.get(1).toLowerCase(), - enabledCategories.get(2).toLowerCase()); + enabledCategories.get(0), + enabledCategories.get(1), + enabledCategories.get(2)); } else { return mContext.getString(R.string.zen_sound_none_muted); } @@ -143,17 +143,17 @@ public class ZenModeSettings extends ZenModeSettingsBase { String getCallsSettingSummary(Policy policy) { List enabledCategories = getEnabledCategories(policy, category -> PRIORITY_CATEGORY_CALLS == category - || PRIORITY_CATEGORY_REPEAT_CALLERS == category); + || PRIORITY_CATEGORY_REPEAT_CALLERS == category, false); int numCategories = enabledCategories.size(); if (numCategories == 0) { return mContext.getString(R.string.zen_mode_no_exceptions); } else if (numCategories == 1) { return mContext.getString(R.string.zen_mode_calls_summary_one, - enabledCategories.get(0).toLowerCase()); + enabledCategories.get(0)); } else { return mContext.getString(R.string.zen_mode_calls_summary_two, - enabledCategories.get(0).toLowerCase(), - enabledCategories.get(1).toLowerCase()); + enabledCategories.get(0), + enabledCategories.get(1)); } } @@ -161,7 +161,7 @@ public class ZenModeSettings extends ZenModeSettingsBase { List enabledCategories = getEnabledCategories(policy, category -> PRIORITY_CATEGORY_EVENTS == category || PRIORITY_CATEGORY_REMINDERS == category - || PRIORITY_CATEGORY_MESSAGES == category); + || PRIORITY_CATEGORY_MESSAGES == category, true); int numCategories = enabledCategories.size(); if (numCategories == 0) { return mContext.getString(R.string.zen_mode_no_exceptions); @@ -169,19 +169,19 @@ public class ZenModeSettings extends ZenModeSettingsBase { return enabledCategories.get(0); } else if (numCategories == 2) { return mContext.getString(R.string.join_two_items, enabledCategories.get(0), - enabledCategories.get(1).toLowerCase()); + enabledCategories.get(1)); } else if (numCategories == 3){ final List summaries = new ArrayList<>(); summaries.add(enabledCategories.get(0)); - summaries.add(enabledCategories.get(1).toLowerCase()); - summaries.add(enabledCategories.get(2).toLowerCase()); + summaries.add(enabledCategories.get(1)); + summaries.add(enabledCategories.get(2)); return ListFormatter.getInstance().format(summaries); } else { final List summaries = new ArrayList<>(); summaries.add(enabledCategories.get(0)); - summaries.add(enabledCategories.get(1).toLowerCase()); - summaries.add(enabledCategories.get(2).toLowerCase()); + summaries.add(enabledCategories.get(1)); + summaries.add(enabledCategories.get(2)); summaries.add(mContext.getString(R.string.zen_mode_other_options)); return ListFormatter.getInstance().format(summaries); @@ -251,48 +251,18 @@ public class ZenModeSettings extends ZenModeSettingsBase { } private List getEnabledCategories(Policy policy, - Predicate filteredCategories) { + Predicate filteredCategories, boolean capitalizeFirstInList) { List enabledCategories = new ArrayList<>(); for (int category : ALL_PRIORITY_CATEGORIES) { + boolean isFirst = capitalizeFirstInList && enabledCategories.isEmpty(); if (filteredCategories.test(category) && isCategoryEnabled(policy, category)) { - if (category == PRIORITY_CATEGORY_ALARMS) { - enabledCategories.add(mContext.getString(R.string.zen_mode_alarms)); - } else if (category == PRIORITY_CATEGORY_MEDIA) { - enabledCategories.add(mContext.getString( - R.string.zen_mode_media)); - } else if (category == PRIORITY_CATEGORY_SYSTEM) { - enabledCategories.add(mContext.getString( - R.string.zen_mode_system)); - } else if (category == Policy.PRIORITY_CATEGORY_MESSAGES) { - if (policy.priorityMessageSenders == Policy.PRIORITY_SENDERS_ANY) { - enabledCategories.add(mContext.getString( - R.string.zen_mode_all_messages)); - } else { - enabledCategories.add(mContext.getString( - R.string.zen_mode_selected_messages)); - } - } else if (category == Policy.PRIORITY_CATEGORY_EVENTS) { - enabledCategories.add(mContext.getString(R.string.zen_mode_events)); - } else if (category == Policy.PRIORITY_CATEGORY_REMINDERS) { - enabledCategories.add(mContext.getString(R.string.zen_mode_reminders)); - } else if (category == Policy.PRIORITY_CATEGORY_CALLS) { - if (policy.priorityCallSenders == Policy.PRIORITY_SENDERS_ANY) { - enabledCategories.add(mContext.getString( - R.string.zen_mode_all_callers)); - } else if (policy.priorityCallSenders == Policy.PRIORITY_SENDERS_CONTACTS){ - enabledCategories.add(mContext.getString( - R.string.zen_mode_contacts_callers)); - } else { - enabledCategories.add(mContext.getString( - R.string.zen_mode_starred_callers)); - } - } else if (category == Policy.PRIORITY_CATEGORY_REPEAT_CALLERS) { - if (!enabledCategories.contains(mContext.getString( - R.string.zen_mode_all_callers))) { - enabledCategories.add(mContext.getString( - R.string.zen_mode_repeat_callers)); - } + if (category == Policy.PRIORITY_CATEGORY_REPEAT_CALLERS + && isCategoryEnabled(policy, Policy.PRIORITY_CATEGORY_CALLS) + && policy.priorityCallSenders == Policy.PRIORITY_SENDERS_ANY) { + continue; } + + enabledCategories.add(getCategory(category, policy, isFirst)); } } return enabledCategories; @@ -301,6 +271,70 @@ public class ZenModeSettings extends ZenModeSettingsBase { private boolean isCategoryEnabled(Policy policy, int categoryType) { return (policy.priorityCategories & categoryType) != 0; } + + private String getCategory(int category, Policy policy, boolean isFirst) { + if (category == PRIORITY_CATEGORY_ALARMS) { + if (isFirst) { + return mContext.getString(R.string.zen_mode_alarms); + } else { + return mContext.getString(R.string.zen_mode_alarms_list); + } + } else if (category == PRIORITY_CATEGORY_MEDIA) { + if (isFirst) { + return mContext.getString(R.string.zen_mode_media); + } else { + return mContext.getString(R.string.zen_mode_media_list); + } + } else if (category == PRIORITY_CATEGORY_SYSTEM) { + if (isFirst) { + return mContext.getString(R.string.zen_mode_system); + } else { + return mContext.getString(R.string.zen_mode_system_list); + } + } else if (category == Policy.PRIORITY_CATEGORY_MESSAGES) { + if (policy.priorityMessageSenders == Policy.PRIORITY_SENDERS_ANY) { + if (isFirst) { + return mContext.getString(R.string.zen_mode_all_messages); + } else { + return mContext.getString(R.string.zen_mode_all_messages_list); + } + } else { + if (isFirst) { + return mContext.getString(R.string.zen_mode_selected_messages); + } else { + return mContext.getString(R.string.zen_mode_selected_messages_list); + } + } + } else if (category == Policy.PRIORITY_CATEGORY_EVENTS) { + if (isFirst) { + return mContext.getString(R.string.zen_mode_events); + } else { + return mContext.getString(R.string.zen_mode_events_list); + } + } else if (category == Policy.PRIORITY_CATEGORY_REMINDERS) { + if (isFirst) { + return mContext.getString(R.string.zen_mode_reminders); + } else { + return mContext.getString(R.string.zen_mode_reminders_list); + } + } else if (category == Policy.PRIORITY_CATEGORY_CALLS) { + if (policy.priorityCallSenders == Policy.PRIORITY_SENDERS_ANY) { + return mContext.getString(R.string.zen_mode_all_callers); + } else if (policy.priorityCallSenders == Policy.PRIORITY_SENDERS_CONTACTS){ + return mContext.getString(R.string.zen_mode_contacts_callers); + } else { + return mContext.getString(R.string.zen_mode_starred_callers); + } + } else if (category == Policy.PRIORITY_CATEGORY_REPEAT_CALLERS) { + if (isFirst) { + return mContext.getString(R.string.zen_mode_repeat_callers); + } else { + return mContext.getString(R.string.zen_mode_repeat_callers_list); + } + } + + return ""; + } } /**