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 "";
+ }
}
/**