Alarm can end time-based rule.

Bug: 21069008
Change-Id: I83527f787b7daaf936029674202a27900550b652
This commit is contained in:
Julia Reynolds
2016-02-11 13:58:48 -05:00
parent 4d2186a9b3
commit 97d9100fde
3 changed files with 27 additions and 0 deletions

View File

@@ -6094,6 +6094,12 @@
<!-- [CHAR LIMIT=40] Zen mode settings: Downtime days option value, all days set --> <!-- [CHAR LIMIT=40] Zen mode settings: Downtime days option value, all days set -->
<string name="zen_mode_schedule_rule_days_all">Every day</string> <string name="zen_mode_schedule_rule_days_all">Every day</string>
<!-- [CHAR LIMIT=60] Zen mode settings: Downtime rule setting -->
<string name="zen_mode_schedule_alarm_title">Alarm can override end time</string>
<!-- [CHAR LIMIT=NONE] Zen mode settings: Downtime rule setting -->
<string name="zen_mode_schedule_alarm_summary">Stop at the end time or next alarm, whichever comes first</string>
<!-- [CHAR LIMIT=40] General divider text when concatenating multiple items in a text summary --> <!-- [CHAR LIMIT=40] General divider text when concatenating multiple items in a text summary -->
<string name="summary_divider_text">,\u0020</string> <string name="summary_divider_text">,\u0020</string>

View File

@@ -32,6 +32,13 @@
<!-- Start time/End time added and removed here! :-) --> <!-- Start time/End time added and removed here! :-) -->
<!-- Exit DND mode with alarm -->
<SwitchPreference
android:key="exit_at_alarm"
android:title="@string/zen_mode_schedule_alarm_title"
android:summary="@string/zen_mode_schedule_alarm_summary"
android:order="99" />
<!-- Zen mode --> <!-- Zen mode -->
<DropDownPreference <DropDownPreference
android:key="zen_mode" android:key="zen_mode"

View File

@@ -29,6 +29,7 @@ import android.os.Bundle;
import android.provider.Settings; import android.provider.Settings;
import android.service.notification.ZenModeConfig; import android.service.notification.ZenModeConfig;
import android.service.notification.ZenModeConfig.ScheduleInfo; import android.service.notification.ZenModeConfig.ScheduleInfo;
import android.support.v14.preference.SwitchPreference;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import android.support.v7.preference.Preference.OnPreferenceClickListener; import android.support.v7.preference.Preference.OnPreferenceClickListener;
import android.support.v7.preference.PreferenceScreen; import android.support.v7.preference.PreferenceScreen;
@@ -49,6 +50,7 @@ public class ZenModeScheduleRuleSettings extends ZenModeRuleSettingsBase {
private static final String KEY_DAYS = "days"; private static final String KEY_DAYS = "days";
private static final String KEY_START_TIME = "start_time"; private static final String KEY_START_TIME = "start_time";
private static final String KEY_END_TIME = "end_time"; private static final String KEY_END_TIME = "end_time";
private static final String KEY_EXIT_AT_ALARM = "exit_at_alarm";
public static final String ACTION = Settings.ACTION_ZEN_MODE_SCHEDULE_RULE_SETTINGS; public static final String ACTION = Settings.ACTION_ZEN_MODE_SCHEDULE_RULE_SETTINGS;
@@ -58,6 +60,7 @@ public class ZenModeScheduleRuleSettings extends ZenModeRuleSettingsBase {
private Preference mDays; private Preference mDays;
private TimePickerPreference mStart; private TimePickerPreference mStart;
private TimePickerPreference mEnd; private TimePickerPreference mEnd;
private SwitchPreference mExitAtAlarm;
private ScheduleInfo mSchedule; private ScheduleInfo mSchedule;
@@ -137,6 +140,16 @@ public class ZenModeScheduleRuleSettings extends ZenModeRuleSettingsBase {
}); });
root.addPreference(mEnd); root.addPreference(mEnd);
mEnd.setDependency(mDays.getKey()); mEnd.setDependency(mDays.getKey());
mExitAtAlarm = (SwitchPreference) root.findPreference(KEY_EXIT_AT_ALARM);
mExitAtAlarm.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object o) {
mSchedule.exitAtAlarm = (Boolean) o;
updateRule(ZenModeConfig.toScheduleConditionId(mSchedule));
return true;
}
});
} }
private void updateDays() { private void updateDays() {
@@ -181,6 +194,7 @@ public class ZenModeScheduleRuleSettings extends ZenModeRuleSettingsBase {
updateDays(); updateDays();
mStart.setTime(mSchedule.startHour, mSchedule.startMinute); mStart.setTime(mSchedule.startHour, mSchedule.startMinute);
mEnd.setTime(mSchedule.endHour, mSchedule.endMinute); mEnd.setTime(mSchedule.endHour, mSchedule.endMinute);
mExitAtAlarm.setChecked(mSchedule.exitAtAlarm);
updateEndSummary(); updateEndSummary();
} }