Add mono audio to AccessibilitySettings
Bug: 15283594
Change-Id: If5ca14a800e1932b17ef479589beb8a5d1489b5d
diff --git a/res/values/strings.xml b/res/values/strings.xml
index a925a0e..18b541b 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -3868,6 +3868,10 @@
<string name="accessibility_toggle_speak_password_preference_title">Speak passwords</string>
<!-- Title for the accessibility preference for enabling/disabling large icons for mouse/trackpad pointers. [CHAR LIMIT=35] -->
<string name="accessibility_toggle_large_pointer_icon_title">Large mouse pointer</string>
+ <!-- Title for the accessibility preference for master mono. [CHAR LIMIT=35] -->
+ <string name="accessibility_toggle_master_mono_title">Mono audio</string>
+ <!-- Summary for the accessibility preference for master mono. [CHAR LIMIT=50] -->
+ <string name="accessibility_toggle_master_mono_summary">Combine channels when playing audio</string>
<!-- Title for accessibility preference to choose long-press delay i.e. timeout before it is detected. [CHAR LIMIT=35] -->
<string name="accessibility_long_press_timeout_preference_title">Tap & hold delay</string>
<!-- Title for the accessibility preference to configure display color inversion. [CHAR LIMIT=NONE] -->
diff --git a/res/xml/accessibility_settings.xml b/res/xml/accessibility_settings.xml
index 32b78c5..11cde5e 100644
--- a/res/xml/accessibility_settings.xml
+++ b/res/xml/accessibility_settings.xml
@@ -76,6 +76,12 @@
android:key="toggle_large_pointer_icon"
android:title="@string/accessibility_toggle_large_pointer_icon_title" />
+ <SwitchPreference
+ android:key="toggle_master_mono"
+ android:title="@string/accessibility_toggle_master_mono_title"
+ android:summary="@string/accessibility_toggle_master_mono_summary"
+ android:persistent="false"/>
+
<PreferenceScreen
android:fragment="com.android.settings.accessibility.ToggleGlobalGesturePreferenceFragment"
android:key="enable_global_gesture_preference_screen"
diff --git a/src/com/android/settings/accessibility/AccessibilitySettings.java b/src/com/android/settings/accessibility/AccessibilitySettings.java
index c918831..ef841d3 100644
--- a/src/com/android/settings/accessibility/AccessibilitySettings.java
+++ b/src/com/android/settings/accessibility/AccessibilitySettings.java
@@ -86,6 +86,8 @@
"toggle_speak_password_preference";
private static final String TOGGLE_LARGE_POINTER_ICON =
"toggle_large_pointer_icon";
+ private static final String TOGGLE_MASTER_MONO =
+ "toggle_master_mono";
private static final String SELECT_LONG_PRESS_TIMEOUT_PREFERENCE =
"select_long_press_timeout_preference";
private static final String ENABLE_ACCESSIBILITY_GESTURE_PREFERENCE_SCREEN =
@@ -182,6 +184,7 @@
private SwitchPreference mToggleLockScreenRotationPreference;
private SwitchPreference mToggleSpeakPasswordPreference;
private SwitchPreference mToggleLargePointerIconPreference;
+ private SwitchPreference mToggleMasterMonoPreference;
private ListPreference mSelectLongPressTimeoutPreference;
private Preference mNoServicesMessagePreference;
private PreferenceScreen mCaptioningPreferenceScreen;
@@ -280,6 +283,9 @@
} else if (mToggleLargePointerIconPreference == preference) {
handleToggleLargePointerIconPreferenceClick();
return true;
+ } else if (mToggleMasterMonoPreference == preference) {
+ handleToggleMasterMonoPreferenceClick();
+ return true;
} else if (mGlobalGesturePreferenceScreen == preference) {
handleToggleEnableAccessibilityGesturePreferenceClick();
return true;
@@ -321,6 +327,11 @@
mToggleLargePointerIconPreference.isChecked() ? 1 : 0);
}
+ private void handleToggleMasterMonoPreferenceClick() {
+ Settings.System.putIntForUser(getContentResolver(), Settings.System.MASTER_MONO,
+ mToggleMasterMonoPreference.isChecked() ? 1 : 0, UserHandle.USER_CURRENT);
+ }
+
private void handleToggleEnableAccessibilityGesturePreferenceClick() {
Bundle extras = mGlobalGesturePreferenceScreen.getExtras();
extras.putString(EXTRA_TITLE, getString(
@@ -378,6 +389,10 @@
mToggleLargePointerIconPreference =
(SwitchPreference) findPreference(TOGGLE_LARGE_POINTER_ICON);
+ // Master Mono
+ mToggleMasterMonoPreference =
+ (SwitchPreference) findPreference(TOGGLE_MASTER_MONO);
+
// Long press timeout.
mSelectLongPressTimeoutPreference =
(ListPreference) findPreference(SELECT_LONG_PRESS_TIMEOUT_PREFERENCE);
@@ -571,6 +586,9 @@
mToggleLargePointerIconPreference.setChecked(Settings.Secure.getInt(getContentResolver(),
Settings.Secure.ACCESSIBILITY_LARGE_POINTER_ICON, 0) != 0);
+ // Master mono
+ updateMasterMono();
+
// Long press timeout.
final int longPressTimeout = Settings.Secure.getInt(getContentResolver(),
Settings.Secure.LONG_PRESS_TIMEOUT, mLongPressTimeoutDefault);
@@ -640,6 +658,13 @@
}
}
+ private void updateMasterMono() {
+ final boolean masterMono = Settings.System.getIntForUser(
+ getContentResolver(), Settings.System.MASTER_MONO,
+ 0 /* default */, UserHandle.USER_CURRENT) == 1;
+ mToggleMasterMonoPreference.setChecked(masterMono);
+ }
+
public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
new BaseSearchIndexProvider() {
@Override