diff --git a/res/values/evolution_strings.xml b/res/values/evolution_strings.xml
index e3901f1e384..3411cbea774 100644
--- a/res/values/evolution_strings.xml
+++ b/res/values/evolution_strings.xml
@@ -262,4 +262,8 @@
Disable for VPN
Disable the private DNS when connected to a VPN\nWill restore upon disconnecting
+
+
+ Cycle through modes
+ On (cycle through modes)
diff --git a/src/com/android/settings/gestures/PreventRingingGesturePreferenceController.java b/src/com/android/settings/gestures/PreventRingingGesturePreferenceController.java
index d171677d72a..4f69cd6701c 100644
--- a/src/com/android/settings/gestures/PreventRingingGesturePreferenceController.java
+++ b/src/com/android/settings/gestures/PreventRingingGesturePreferenceController.java
@@ -47,6 +47,8 @@ public class PreventRingingGesturePreferenceController extends AbstractPreferenc
@VisibleForTesting
static final String KEY_MUTE = "prevent_ringing_option_mute";
+ static final String KEY_CYCLE = "prevent_ringing_option_cycle";
+
private final String PREF_KEY_VIDEO = "gesture_prevent_ringing_video";
private final String KEY = "gesture_prevent_ringing_category";
private final Context mContext;
@@ -57,6 +59,7 @@ public class PreventRingingGesturePreferenceController extends AbstractPreferenc
SelectorWithWidgetPreference mVibratePref;
@VisibleForTesting
SelectorWithWidgetPreference mMutePref;
+ SelectorWithWidgetPreference mCyclePref;
private SettingObserver mSettingObserver;
@@ -78,6 +81,9 @@ public class PreventRingingGesturePreferenceController extends AbstractPreferenc
mPreferenceCategory = screen.findPreference(getPreferenceKey());
mVibratePref = makeRadioPreference(KEY_VIBRATE, R.string.prevent_ringing_option_vibrate);
mMutePref = makeRadioPreference(KEY_MUTE, R.string.prevent_ringing_option_mute);
+ if (!mContext.getResources().getBoolean(com.android.internal.R.bool.config_hasAlertSlider)) {
+ mCyclePref = makeRadioPreference(KEY_CYCLE, R.string.prevent_ringing_option_cycle);
+ }
if (mPreferenceCategory != null) {
mSettingObserver = new SettingObserver(mPreferenceCategory);
@@ -115,19 +121,29 @@ public class PreventRingingGesturePreferenceController extends AbstractPreferenc
Settings.Secure.VOLUME_HUSH_GESTURE, Settings.Secure.VOLUME_HUSH_VIBRATE);
final boolean isVibrate = preventRingingSetting == Settings.Secure.VOLUME_HUSH_VIBRATE;
final boolean isMute = preventRingingSetting == Settings.Secure.VOLUME_HUSH_MUTE;
+ final boolean isCycle = preventRingingSetting == Settings.Secure.VOLUME_HUSH_CYCLE;
if (mVibratePref != null && mVibratePref.isChecked() != isVibrate) {
mVibratePref.setChecked(isVibrate);
}
if (mMutePref != null && mMutePref.isChecked() != isMute) {
mMutePref.setChecked(isMute);
}
+ if (mCyclePref != null && mCyclePref.isChecked() != isCycle) {
+ mCyclePref.setChecked(isCycle);
+ }
if (preventRingingSetting == Settings.Secure.VOLUME_HUSH_OFF) {
mVibratePref.setEnabled(false);
mMutePref.setEnabled(false);
+ if (mCyclePref != null) {
+ mCyclePref.setEnabled(false);
+ }
} else {
mVibratePref.setEnabled(true);
mMutePref.setEnabled(true);
+ if (mCyclePref != null) {
+ mCyclePref.setEnabled(true);
+ }
}
}
@@ -152,6 +168,8 @@ public class PreventRingingGesturePreferenceController extends AbstractPreferenc
return Settings.Secure.VOLUME_HUSH_MUTE;
case KEY_VIBRATE:
return Settings.Secure.VOLUME_HUSH_VIBRATE;
+ case KEY_CYCLE:
+ return Settings.Secure.VOLUME_HUSH_CYCLE;
default:
return Settings.Secure.VOLUME_HUSH_OFF;
}
diff --git a/src/com/android/settings/gestures/PreventRingingParentPreferenceController.java b/src/com/android/settings/gestures/PreventRingingParentPreferenceController.java
index 03b0259449c..2be63fe949c 100644
--- a/src/com/android/settings/gestures/PreventRingingParentPreferenceController.java
+++ b/src/com/android/settings/gestures/PreventRingingParentPreferenceController.java
@@ -16,6 +16,7 @@
package com.android.settings.gestures;
+import static android.provider.Settings.Secure.VOLUME_HUSH_CYCLE;
import static android.provider.Settings.Secure.VOLUME_HUSH_GESTURE;
import static android.provider.Settings.Secure.VOLUME_HUSH_MUTE;
import static android.provider.Settings.Secure.VOLUME_HUSH_VIBRATE;
@@ -102,6 +103,9 @@ public class PreventRingingParentPreferenceController extends TogglePreferenceCo
case VOLUME_HUSH_MUTE:
summary = mContext.getText(R.string.prevent_ringing_option_mute_summary);
break;
+ case VOLUME_HUSH_CYCLE:
+ summary = mContext.getText(R.string.prevent_ringing_option_cycle_summary);
+ break;
// VOLUME_HUSH_OFF
default:
summary = mContext.getText(R.string.switch_off_text);