Loading core/java/android/service/notification/ZenModeConfig.java +20 −12 Original line number Diff line number Diff line Loading @@ -46,6 +46,7 @@ import android.text.TextUtils; import android.text.format.DateFormat; import android.util.ArrayMap; import android.util.ArraySet; import android.util.PluralsMessageFormatter; import android.util.Slog; import android.util.TypedXmlPullParser; import android.util.TypedXmlSerializer; Loading @@ -63,8 +64,10 @@ import java.util.Arrays; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.HashMap; import java.util.List; import java.util.Locale; import java.util.Map; import java.util.Objects; import java.util.TimeZone; import java.util.UUID; Loading Loading @@ -1333,25 +1336,30 @@ public class ZenModeConfig implements Parcelable { final CharSequence formattedTime = getFormattedTime(context, time, isToday(time), userHandle); final Resources res = context.getResources(); final Map<String, Object> arguments = new HashMap<>(); if (minutes < 60) { // display as minutes num = minutes; int summaryResId = shortVersion ? R.plurals.zen_mode_duration_minutes_summary_short : R.plurals.zen_mode_duration_minutes_summary; summary = res.getQuantityString(summaryResId, num, num, formattedTime); int line1ResId = shortVersion ? R.plurals.zen_mode_duration_minutes_short : R.plurals.zen_mode_duration_minutes; line1 = res.getQuantityString(line1ResId, num, num, formattedTime); int summaryResId = shortVersion ? R.string.zen_mode_duration_minutes_summary_short : R.string.zen_mode_duration_minutes_summary; arguments.put("count", num); arguments.put("formattedTime", formattedTime); summary = PluralsMessageFormatter.format(res, arguments, summaryResId); int line1ResId = shortVersion ? R.string.zen_mode_duration_minutes_short : R.string.zen_mode_duration_minutes; line1 = PluralsMessageFormatter.format(res, arguments, line1ResId); line2 = res.getString(R.string.zen_mode_until, formattedTime); } else if (minutes < DAY_MINUTES) { // display as hours num = Math.round(minutes / 60f); int summaryResId = shortVersion ? R.plurals.zen_mode_duration_hours_summary_short : R.plurals.zen_mode_duration_hours_summary; summary = res.getQuantityString(summaryResId, num, num, formattedTime); int line1ResId = shortVersion ? R.plurals.zen_mode_duration_hours_short : R.plurals.zen_mode_duration_hours; line1 = res.getQuantityString(line1ResId, num, num, formattedTime); int summaryResId = shortVersion ? R.string.zen_mode_duration_hours_summary_short : R.string.zen_mode_duration_hours_summary; arguments.put("count", num); arguments.put("formattedTime", formattedTime); summary = PluralsMessageFormatter.format(res, arguments, summaryResId); int line1ResId = shortVersion ? R.string.zen_mode_duration_hours_short : R.string.zen_mode_duration_hours; line1 = PluralsMessageFormatter.format(res, arguments, line1ResId); line2 = res.getString(R.string.zen_mode_until, formattedTime); } else { // display as day/time Loading core/res/res/values/strings.xml +40 −32 Original line number Diff line number Diff line Loading @@ -5197,52 +5197,60 @@ <string name="data_saver_enable_button">Turn on</string> <!-- Zen mode condition - summary: time duration in minutes. [CHAR LIMIT=NONE] --> <plurals name="zen_mode_duration_minutes_summary"> <item quantity="one">For one minute (until <xliff:g id="formattedTime" example="10:00 PM">%2$s</xliff:g>)</item> <item quantity="other">For %1$d minutes (until <xliff:g id="formattedTime" example="10:00 PM">%2$s</xliff:g>)</item> </plurals> <string name="zen_mode_duration_minutes_summary">{count, plural, =1 {For one minute (until {formattedTime})} other {For # minutes (until {formattedTime})} } </string> <!-- Zen mode condition - summary: time duration in minutes (short version). [CHAR LIMIT=NONE] --> <plurals name="zen_mode_duration_minutes_summary_short"> <item quantity="one">For 1 min (until <xliff:g id="formattedTime" example="10:00 PM">%2$s</xliff:g>)</item> <item quantity="other">For %1$d min (until <xliff:g id="formattedTime" example="10:00 PM">%2$s</xliff:g>)</item> </plurals> <string name="zen_mode_duration_minutes_summary_short">{count, plural, =1 {For 1 min (until {formattedTime})} other {For # min (until {formattedTime})} } </string> <!-- Zen mode condition - summary: time duration in hours. [CHAR LIMIT=NONE] --> <plurals name="zen_mode_duration_hours_summary"> <item quantity="one">For 1 hour (until <xliff:g id="formattedTime" example="10:00 PM">%2$s</xliff:g>)</item> <item quantity="other">For %1$d hours (until <xliff:g id="formattedTime" example="10:00 PM">%2$s</xliff:g>)</item> </plurals> <string name="zen_mode_duration_hours_summary">{count, plural, =1 {For 1 hour (until {formattedTime})} other {For # hours (until {formattedTime})} } </string> <!-- Zen mode condition - summary: time duration in hours (short version). [CHAR LIMIT=NONE] --> <plurals name="zen_mode_duration_hours_summary_short"> <item quantity="one">For 1 hr (until <xliff:g id="formattedTime" example="10:00 PM">%2$s</xliff:g>)</item> <item quantity="other">For %1$d hr (until <xliff:g id="formattedTime" example="10:00 PM">%2$s</xliff:g>)</item> </plurals> <string name="zen_mode_duration_hours_summary_short">{count, plural, =1 {For 1 hr (until {formattedTime})} other {For # hr (until {formattedTime})} } </string> <!-- Zen mode condition - line one: time duration in minutes. [CHAR LIMIT=NONE] --> <plurals name="zen_mode_duration_minutes"> <item quantity="one">For one minute</item> <item quantity="other">For %d minutes</item> </plurals> <string name="zen_mode_duration_minutes">{count, plural, =1 {For one minute} other {For # minutes} } </string> <!-- Zen mode condition - line one: time duration in minutes (short version). [CHAR LIMIT=NONE] --> <plurals name="zen_mode_duration_minutes_short"> <item quantity="one">For 1 min</item> <item quantity="other">For %d min</item> </plurals> <string name="zen_mode_duration_minutes_short">{count, plural, =1 {For 1 min} other {For # min} } </string> <!-- Zen mode condition - line one: time duration in hours. [CHAR LIMIT=NONE] --> <plurals name="zen_mode_duration_hours"> <item quantity="one">For 1 hour</item> <item quantity="other">For %d hours</item> </plurals> <string name="zen_mode_duration_hours">{count, plural, =1 {For 1 hour} other {For # hours} } </string> <!-- Zen mode condition - line one: time duration in hours (short version). [CHAR LIMIT=NONE] --> <plurals name="zen_mode_duration_hours_short"> <item quantity="one">For 1 hr</item> <item quantity="other">For %d hr</item> </plurals> <string name="zen_mode_duration_hours_short">{count, plural, =1 {For 1 hr} other {For # hr} } </string> <!-- Zen mode condition - line two: ending time indicating the next day. [CHAR LIMIT=NONE] --> <string name="zen_mode_until_next_day">Until <xliff:g id="formattedTime" example="Tue, 10 PM">%1$s</xliff:g></string> Loading core/res/res/values/symbols.xml +8 −8 Original line number Diff line number Diff line Loading @@ -2489,14 +2489,14 @@ <java-symbol type="string" name="zen_mode_forever" /> <java-symbol type="string" name="zen_mode_forever_dnd" /> <java-symbol type="string" name="zen_mode_rule_name_combination" /> <java-symbol type="plurals" name="zen_mode_duration_minutes" /> <java-symbol type="plurals" name="zen_mode_duration_hours" /> <java-symbol type="plurals" name="zen_mode_duration_minutes_summary" /> <java-symbol type="plurals" name="zen_mode_duration_hours_summary" /> <java-symbol type="plurals" name="zen_mode_duration_minutes_short" /> <java-symbol type="plurals" name="zen_mode_duration_hours_short" /> <java-symbol type="plurals" name="zen_mode_duration_minutes_summary_short" /> <java-symbol type="plurals" name="zen_mode_duration_hours_summary_short" /> <java-symbol type="string" name="zen_mode_duration_minutes" /> <java-symbol type="string" name="zen_mode_duration_hours" /> <java-symbol type="string" name="zen_mode_duration_minutes_summary" /> <java-symbol type="string" name="zen_mode_duration_hours_summary" /> <java-symbol type="string" name="zen_mode_duration_minutes_short" /> <java-symbol type="string" name="zen_mode_duration_hours_short" /> <java-symbol type="string" name="zen_mode_duration_minutes_summary_short" /> <java-symbol type="string" name="zen_mode_duration_hours_summary_short" /> <java-symbol type="string" name="zen_mode_until_next_day" /> <java-symbol type="string" name="zen_mode_until" /> <java-symbol type="string" name="zen_mode_feature_name" /> Loading Loading
core/java/android/service/notification/ZenModeConfig.java +20 −12 Original line number Diff line number Diff line Loading @@ -46,6 +46,7 @@ import android.text.TextUtils; import android.text.format.DateFormat; import android.util.ArrayMap; import android.util.ArraySet; import android.util.PluralsMessageFormatter; import android.util.Slog; import android.util.TypedXmlPullParser; import android.util.TypedXmlSerializer; Loading @@ -63,8 +64,10 @@ import java.util.Arrays; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.HashMap; import java.util.List; import java.util.Locale; import java.util.Map; import java.util.Objects; import java.util.TimeZone; import java.util.UUID; Loading Loading @@ -1333,25 +1336,30 @@ public class ZenModeConfig implements Parcelable { final CharSequence formattedTime = getFormattedTime(context, time, isToday(time), userHandle); final Resources res = context.getResources(); final Map<String, Object> arguments = new HashMap<>(); if (minutes < 60) { // display as minutes num = minutes; int summaryResId = shortVersion ? R.plurals.zen_mode_duration_minutes_summary_short : R.plurals.zen_mode_duration_minutes_summary; summary = res.getQuantityString(summaryResId, num, num, formattedTime); int line1ResId = shortVersion ? R.plurals.zen_mode_duration_minutes_short : R.plurals.zen_mode_duration_minutes; line1 = res.getQuantityString(line1ResId, num, num, formattedTime); int summaryResId = shortVersion ? R.string.zen_mode_duration_minutes_summary_short : R.string.zen_mode_duration_minutes_summary; arguments.put("count", num); arguments.put("formattedTime", formattedTime); summary = PluralsMessageFormatter.format(res, arguments, summaryResId); int line1ResId = shortVersion ? R.string.zen_mode_duration_minutes_short : R.string.zen_mode_duration_minutes; line1 = PluralsMessageFormatter.format(res, arguments, line1ResId); line2 = res.getString(R.string.zen_mode_until, formattedTime); } else if (minutes < DAY_MINUTES) { // display as hours num = Math.round(minutes / 60f); int summaryResId = shortVersion ? R.plurals.zen_mode_duration_hours_summary_short : R.plurals.zen_mode_duration_hours_summary; summary = res.getQuantityString(summaryResId, num, num, formattedTime); int line1ResId = shortVersion ? R.plurals.zen_mode_duration_hours_short : R.plurals.zen_mode_duration_hours; line1 = res.getQuantityString(line1ResId, num, num, formattedTime); int summaryResId = shortVersion ? R.string.zen_mode_duration_hours_summary_short : R.string.zen_mode_duration_hours_summary; arguments.put("count", num); arguments.put("formattedTime", formattedTime); summary = PluralsMessageFormatter.format(res, arguments, summaryResId); int line1ResId = shortVersion ? R.string.zen_mode_duration_hours_short : R.string.zen_mode_duration_hours; line1 = PluralsMessageFormatter.format(res, arguments, line1ResId); line2 = res.getString(R.string.zen_mode_until, formattedTime); } else { // display as day/time Loading
core/res/res/values/strings.xml +40 −32 Original line number Diff line number Diff line Loading @@ -5197,52 +5197,60 @@ <string name="data_saver_enable_button">Turn on</string> <!-- Zen mode condition - summary: time duration in minutes. [CHAR LIMIT=NONE] --> <plurals name="zen_mode_duration_minutes_summary"> <item quantity="one">For one minute (until <xliff:g id="formattedTime" example="10:00 PM">%2$s</xliff:g>)</item> <item quantity="other">For %1$d minutes (until <xliff:g id="formattedTime" example="10:00 PM">%2$s</xliff:g>)</item> </plurals> <string name="zen_mode_duration_minutes_summary">{count, plural, =1 {For one minute (until {formattedTime})} other {For # minutes (until {formattedTime})} } </string> <!-- Zen mode condition - summary: time duration in minutes (short version). [CHAR LIMIT=NONE] --> <plurals name="zen_mode_duration_minutes_summary_short"> <item quantity="one">For 1 min (until <xliff:g id="formattedTime" example="10:00 PM">%2$s</xliff:g>)</item> <item quantity="other">For %1$d min (until <xliff:g id="formattedTime" example="10:00 PM">%2$s</xliff:g>)</item> </plurals> <string name="zen_mode_duration_minutes_summary_short">{count, plural, =1 {For 1 min (until {formattedTime})} other {For # min (until {formattedTime})} } </string> <!-- Zen mode condition - summary: time duration in hours. [CHAR LIMIT=NONE] --> <plurals name="zen_mode_duration_hours_summary"> <item quantity="one">For 1 hour (until <xliff:g id="formattedTime" example="10:00 PM">%2$s</xliff:g>)</item> <item quantity="other">For %1$d hours (until <xliff:g id="formattedTime" example="10:00 PM">%2$s</xliff:g>)</item> </plurals> <string name="zen_mode_duration_hours_summary">{count, plural, =1 {For 1 hour (until {formattedTime})} other {For # hours (until {formattedTime})} } </string> <!-- Zen mode condition - summary: time duration in hours (short version). [CHAR LIMIT=NONE] --> <plurals name="zen_mode_duration_hours_summary_short"> <item quantity="one">For 1 hr (until <xliff:g id="formattedTime" example="10:00 PM">%2$s</xliff:g>)</item> <item quantity="other">For %1$d hr (until <xliff:g id="formattedTime" example="10:00 PM">%2$s</xliff:g>)</item> </plurals> <string name="zen_mode_duration_hours_summary_short">{count, plural, =1 {For 1 hr (until {formattedTime})} other {For # hr (until {formattedTime})} } </string> <!-- Zen mode condition - line one: time duration in minutes. [CHAR LIMIT=NONE] --> <plurals name="zen_mode_duration_minutes"> <item quantity="one">For one minute</item> <item quantity="other">For %d minutes</item> </plurals> <string name="zen_mode_duration_minutes">{count, plural, =1 {For one minute} other {For # minutes} } </string> <!-- Zen mode condition - line one: time duration in minutes (short version). [CHAR LIMIT=NONE] --> <plurals name="zen_mode_duration_minutes_short"> <item quantity="one">For 1 min</item> <item quantity="other">For %d min</item> </plurals> <string name="zen_mode_duration_minutes_short">{count, plural, =1 {For 1 min} other {For # min} } </string> <!-- Zen mode condition - line one: time duration in hours. [CHAR LIMIT=NONE] --> <plurals name="zen_mode_duration_hours"> <item quantity="one">For 1 hour</item> <item quantity="other">For %d hours</item> </plurals> <string name="zen_mode_duration_hours">{count, plural, =1 {For 1 hour} other {For # hours} } </string> <!-- Zen mode condition - line one: time duration in hours (short version). [CHAR LIMIT=NONE] --> <plurals name="zen_mode_duration_hours_short"> <item quantity="one">For 1 hr</item> <item quantity="other">For %d hr</item> </plurals> <string name="zen_mode_duration_hours_short">{count, plural, =1 {For 1 hr} other {For # hr} } </string> <!-- Zen mode condition - line two: ending time indicating the next day. [CHAR LIMIT=NONE] --> <string name="zen_mode_until_next_day">Until <xliff:g id="formattedTime" example="Tue, 10 PM">%1$s</xliff:g></string> Loading
core/res/res/values/symbols.xml +8 −8 Original line number Diff line number Diff line Loading @@ -2489,14 +2489,14 @@ <java-symbol type="string" name="zen_mode_forever" /> <java-symbol type="string" name="zen_mode_forever_dnd" /> <java-symbol type="string" name="zen_mode_rule_name_combination" /> <java-symbol type="plurals" name="zen_mode_duration_minutes" /> <java-symbol type="plurals" name="zen_mode_duration_hours" /> <java-symbol type="plurals" name="zen_mode_duration_minutes_summary" /> <java-symbol type="plurals" name="zen_mode_duration_hours_summary" /> <java-symbol type="plurals" name="zen_mode_duration_minutes_short" /> <java-symbol type="plurals" name="zen_mode_duration_hours_short" /> <java-symbol type="plurals" name="zen_mode_duration_minutes_summary_short" /> <java-symbol type="plurals" name="zen_mode_duration_hours_summary_short" /> <java-symbol type="string" name="zen_mode_duration_minutes" /> <java-symbol type="string" name="zen_mode_duration_hours" /> <java-symbol type="string" name="zen_mode_duration_minutes_summary" /> <java-symbol type="string" name="zen_mode_duration_hours_summary" /> <java-symbol type="string" name="zen_mode_duration_minutes_short" /> <java-symbol type="string" name="zen_mode_duration_hours_short" /> <java-symbol type="string" name="zen_mode_duration_minutes_summary_short" /> <java-symbol type="string" name="zen_mode_duration_hours_summary_short" /> <java-symbol type="string" name="zen_mode_until_next_day" /> <java-symbol type="string" name="zen_mode_until" /> <java-symbol type="string" name="zen_mode_feature_name" /> Loading