diff options
Diffstat (limited to 'core')
-rw-r--r-- | core/java/android/service/notification/ZenModeConfig.java | 23 | ||||
-rw-r--r-- | core/res/res/values/strings.xml | 15 | ||||
-rw-r--r-- | core/res/res/values/symbols.xml | 3 |
3 files changed, 41 insertions, 0 deletions
diff --git a/core/java/android/service/notification/ZenModeConfig.java b/core/java/android/service/notification/ZenModeConfig.java index 872f911..9cbedab 100644 --- a/core/java/android/service/notification/ZenModeConfig.java +++ b/core/java/android/service/notification/ZenModeConfig.java @@ -17,6 +17,7 @@ package android.service.notification; import android.content.ComponentName; +import android.content.res.Resources; import android.net.Uri; import android.os.Parcel; import android.os.Parcelable; @@ -55,6 +56,11 @@ public class ZenModeConfig implements Parcelable { public static final int[] WEEKNIGHT_DAYS = { Calendar.SUNDAY, Calendar.MONDAY, Calendar.TUESDAY, Calendar.WEDNESDAY, Calendar.THURSDAY }; + public static final int[] MINUTE_BUCKETS = new int[] { 15, 30, 45, 60, 120, 180, 240, 480 }; + private static final int SECONDS_MS = 1000; + private static final int MINUTES_MS = 60 * SECONDS_MS; + private static final int ZERO_VALUE_MS = 20 * SECONDS_MS; + private static final int XML_VERSION = 1; private static final String ZEN_TAG = "zen"; private static final String ZEN_ATT_VERSION = "version"; @@ -445,6 +451,23 @@ public class ZenModeConfig implements Parcelable { return downtime; } + public static Condition toTimeCondition(int minutesFromNow) { + final long now = System.currentTimeMillis(); + final long millis = minutesFromNow == 0 ? ZERO_VALUE_MS : minutesFromNow * MINUTES_MS; + return toTimeCondition(now + millis, minutesFromNow); + } + + public static Condition toTimeCondition(long time, int minutes) { + final int num = minutes < 60 ? minutes : Math.round(minutes / 60f); + final int resId = minutes < 60 + ? com.android.internal.R.plurals.zen_mode_duration_minutes + : com.android.internal.R.plurals.zen_mode_duration_hours; + final String caption = Resources.getSystem().getQuantityString(resId, num, num); + final Uri id = toCountdownConditionId(time); + return new Condition(id, caption, "", "", 0, Condition.STATE_TRUE, + Condition.FLAG_RELEVANT_NOW); + } + // For built-in conditions private static final String SYSTEM_AUTHORITY = "android"; diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml index 5c932fd..50da1fa 100644 --- a/core/res/res/values/strings.xml +++ b/core/res/res/values/strings.xml @@ -4877,4 +4877,19 @@ <!-- [CHAR_LIMIT=NONE] Zen mode: Condition summary for built-in downtime condition, if active --> <string name="downtime_condition_summary">Until your downtime ends at <xliff:g id="formattedTime" example="10.00 PM">%1$s</xliff:g></string> + + <!-- Zen mode condition: 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> + + <!-- Zen mode condition: time duration in hours. [CHAR LIMIT=NONE] --> + <plurals name="zen_mode_duration_hours"> + <item quantity="one">For one hour</item> + <item quantity="other">For %d hours</item> + </plurals> + + <!-- Zen mode condition: no exit criteria. [CHAR LIMIT=NONE] --> + <string name="zen_mode_forever">Indefinitely</string> </resources> diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index c28f3a6..556c07f 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -1918,6 +1918,9 @@ <java-symbol type="string" name="timepicker_transition_end_radius_multiplier" /> <java-symbol type="string" name="battery_saver_description" /> <java-symbol type="string" name="downtime_condition_summary" /> + <java-symbol type="string" name="zen_mode_forever" /> + <java-symbol type="plurals" name="zen_mode_duration_minutes" /> + <java-symbol type="plurals" name="zen_mode_duration_hours" /> <java-symbol type="string" name="item_is_selected" /> <java-symbol type="string" name="day_of_week_label_typeface" /> |