Build system schedule mode summary using string resource
Rather than making a concatenated string, make the combined summary using a templated string resource in order to allow for more translation flexibility.
Bug: 379726340
Test: SystemZenRulesTest
Change-Id: Ic5960aab3dcd041a07db7957cc173e4c941b71d8
diff --git a/core/java/android/service/notification/SystemZenRules.java b/core/java/android/service/notification/SystemZenRules.java
index ebb8569..f11ce16 100644
--- a/core/java/android/service/notification/SystemZenRules.java
+++ b/core/java/android/service/notification/SystemZenRules.java
@@ -122,17 +122,16 @@
@Nullable
public static String getTriggerDescriptionForScheduleTime(Context context,
@NonNull ScheduleInfo schedule) {
- final StringBuilder sb = new StringBuilder();
String daysSummary = getDaysOfWeekShort(context, schedule);
if (daysSummary == null) {
// no use outputting times without dates
return null;
}
- sb.append(daysSummary);
- sb.append(context.getString(R.string.zen_mode_trigger_summary_divider_text));
- sb.append(getTimeSummary(context, schedule));
-
- return sb.toString();
+ return context.getString(
+ R.string.zen_mode_trigger_summary_combined,
+ daysSummary,
+ getTimeSummary(context, schedule)
+ );
}
/**
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index c13fdb1..413f0c3 100644
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -5357,6 +5357,8 @@
<string name="zen_mode_trigger_summary_range_symbol_combination"><xliff:g id="start" example="Sun">%1$s</xliff:g> - <xliff:g id="end" example="Thu">%2$s</xliff:g></string>
<!-- [CHAR LIMIT=40] General template for a start - end range in a text summary, used for the trigger description of a Zen mode -->
<string name="zen_mode_trigger_summary_range_words"><xliff:g id="start" example="Sunday">%1$s</xliff:g> to <xliff:g id="end" example="Thursday">%2$s</xliff:g></string>
+ <!-- [CHAR LIMIT=NONE] General template for combining a days of week start-end range with a time-based start-end range, for example: "Sun-Thurs, 10:00 PM - 7:00 AM" -->
+ <string name="zen_mode_trigger_summary_combined"><xliff:g id="days" example="Sat-Thurs">%1$s</xliff:g>,\u0020<xliff:g id="times" example="10:00 PM - 7:00 AM">%2$s</xliff:g></string>
<!-- [CHAR LIMIT=40] Event-based rule calendar option value for any calendar, used for the trigger description of a Zen mode -->
<string name="zen_mode_trigger_event_calendar_any">Any calendar</string>
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index 5a6b66c..4c55e2e 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -2666,6 +2666,7 @@
<java-symbol type="string" name="zen_mode_trigger_summary_divider_text" />
<java-symbol type="string" name="zen_mode_trigger_summary_range_symbol_combination" />
<java-symbol type="string" name="zen_mode_trigger_summary_range_words" />
+ <java-symbol type="string" name="zen_mode_trigger_summary_combined" />
<java-symbol type="string" name="zen_mode_trigger_event_calendar_any" />
<java-symbol type="string" name="display_rotation_camera_compat_toast_after_rotation" />
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/SystemZenRulesTest.java b/services/tests/uiservicestests/src/com/android/server/notification/SystemZenRulesTest.java
index 4d82c3c..949c5e2 100644
--- a/services/tests/uiservicestests/src/com/android/server/notification/SystemZenRulesTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/SystemZenRulesTest.java
@@ -69,6 +69,8 @@
R.string.zen_mode_trigger_summary_range_symbol_combination, "%1$s-%2$s");
mContext.getOrCreateTestableResources().addOverride(
R.string.zen_mode_trigger_summary_divider_text, ",");
+ mContext.getOrCreateTestableResources().addOverride(
+ R.string.zen_mode_trigger_summary_combined, "%1$s,%2$s");
}
@Test