diff --git a/res/values/strings.xml b/res/values/strings.xml
index 9569b5c19ce..4babac7311d 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -6246,22 +6246,25 @@
%s next day
-
- Change to alarms only indefinitely
+
+ Change to alarms only indefinitely
-
+
- Change to alarms only for one minute until %2$s
- Change to alarms only for %1$d minutes (until %2$s)
-
+
- Change to alarms only for one hour until %2$s
- Change to alarms only for %1$d hours until %2$s
-
+
+ Change to alarms only until %1$s
+
+
Change to always interrupt
diff --git a/src/com/android/settings/notification/ZenModeVoiceActivity.java b/src/com/android/settings/notification/ZenModeVoiceActivity.java
index 71e56b099a5..270633a9a6f 100644
--- a/src/com/android/settings/notification/ZenModeVoiceActivity.java
+++ b/src/com/android/settings/notification/ZenModeVoiceActivity.java
@@ -58,7 +58,6 @@ public class ZenModeVoiceActivity extends VoiceSettingsActivity {
mode = Global.ZEN_MODE_ALARMS;
}
setZenModeConfig(mode, condition);
- notifySuccess(getChangeSummary(mode, minutes));
AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
if (audioManager != null) {
@@ -67,10 +66,12 @@ public class ZenModeVoiceActivity extends VoiceSettingsActivity {
AudioManager.ADJUST_SAME,
AudioManager.FLAG_SHOW_UI);
}
+ notifySuccess(getChangeSummary(mode, minutes));
} else {
Log.v(TAG, "Missing extra android.provider.Settings.EXTRA_DO_NOT_DISTURB_MODE_ENABLED");
+ finish();
}
- return true;
+ return false;
}
private void setZenModeConfig(int mode, Condition condition) {
@@ -88,12 +89,14 @@ public class ZenModeVoiceActivity extends VoiceSettingsActivity {
int indefinite = -1;
int byMinute = -1;
int byHour = -1;
+ int byTime = -1;
switch (mode) {
case Global.ZEN_MODE_ALARMS:
- indefinite = R.string.zen_mode_summary_alarams_only_indefinite;
+ indefinite = R.string.zen_mode_summary_alarms_only_indefinite;
byMinute = R.plurals.zen_mode_summary_alarms_only_by_minute;
byHour = R.plurals.zen_mode_summary_alarms_only_by_hour;
+ byTime = R.string.zen_mode_summary_alarms_only_by_time;
break;
case Global.ZEN_MODE_OFF:
indefinite = R.string.zen_mode_summary_always;
@@ -112,6 +115,8 @@ public class ZenModeVoiceActivity extends VoiceSettingsActivity {
if (minutes < 60) {
return res.getQuantityString(byMinute, minutes, minutes, formattedTime);
+ } else if (minutes % 60 != 0) {
+ return res.getString(byTime, formattedTime);
} else {
int hours = minutes / 60;
return res.getQuantityString(byHour, hours, hours, formattedTime);
diff --git a/src/com/android/settings/utils/VoiceSettingsActivity.java b/src/com/android/settings/utils/VoiceSettingsActivity.java
index e81c7e8a284..4477e929cda 100644
--- a/src/com/android/settings/utils/VoiceSettingsActivity.java
+++ b/src/com/android/settings/utils/VoiceSettingsActivity.java
@@ -65,7 +65,12 @@ abstract public class VoiceSettingsActivity extends Activity {
*/
protected void notifySuccess(CharSequence prompt) {
if (getVoiceInteractor() != null) {
- getVoiceInteractor().submitRequest(new CompleteVoiceRequest(prompt, null));
+ getVoiceInteractor().submitRequest(new CompleteVoiceRequest(prompt, null) {
+ @Override
+ public void onCompleteResult(Bundle options) {
+ finish();
+ }
+ });
}
}