Merge changes from topic 'update mono audio' into nyc-dev

* changes:
  Add mono audio to AccessibilitySettings
  Remove mono audio from SoundSettings
This commit is contained in:
Andy Hung
2016-02-27 02:50:04 +00:00
committed by Android (Google) Code Review
5 changed files with 36 additions and 53 deletions

View File

@@ -3868,6 +3868,10 @@
<string name="accessibility_toggle_speak_password_preference_title">Speak passwords</string> <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] --> <!-- 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> <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] --> <!-- 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 &amp; hold delay</string> <string name="accessibility_long_press_timeout_preference_title">Tap &amp; hold delay</string>
<!-- Title for the accessibility preference to configure display color inversion. [CHAR LIMIT=NONE] --> <!-- Title for the accessibility preference to configure display color inversion. [CHAR LIMIT=NONE] -->
@@ -5823,15 +5827,6 @@
<!-- Sound: Title for the option managing whether or not to vibrate when ringing. [CHAR LIMIT=30] --> <!-- Sound: Title for the option managing whether or not to vibrate when ringing. [CHAR LIMIT=30] -->
<string name="vibrate_when_ringing_title">Also vibrate for calls</string> <string name="vibrate_when_ringing_title">Also vibrate for calls</string>
<!-- Sound: Title for the option managing mono audio output. [CHAR LIMIT=30] -->
<string name="master_mono_title">Mono playback</string>
<!-- Sound: Mono audio: Summary for mono audio output when enabled. [CHAR LIMIT=40] -->
<string name="master_mono_on">Always play back audio in mono</string>
<!-- Sound: Mono audio: Summary for mono audio output when disabled. [CHAR LIMIT=40] -->
<string name="master_mono_off">Always play back audio in mono</string>
<!-- Sound: Title for the other sounds option and associated settings page. [CHAR LIMIT=30] --> <!-- Sound: Title for the other sounds option and associated settings page. [CHAR LIMIT=30] -->
<string name="other_sound_settings">Other sounds</string> <string name="other_sound_settings">Other sounds</string>

View File

@@ -76,6 +76,12 @@
android:key="toggle_large_pointer_icon" android:key="toggle_large_pointer_icon"
android:title="@string/accessibility_toggle_large_pointer_icon_title" /> 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 <PreferenceScreen
android:fragment="com.android.settings.accessibility.ToggleGlobalGesturePreferenceFragment" android:fragment="com.android.settings.accessibility.ToggleGlobalGesturePreferenceFragment"
android:key="enable_global_gesture_preference_screen" android:key="enable_global_gesture_preference_screen"

View File

@@ -49,12 +49,6 @@
android:key="vibrate_when_ringing" android:key="vibrate_when_ringing"
android:title="@string/vibrate_when_ringing_title" /> android:title="@string/vibrate_when_ringing_title" />
<!-- Master mono -->
<SwitchPreference
android:key="master_mono"
android:title="@string/master_mono_title"
android:summaryOn="@string/master_mono_on"
android:summaryOff="@string/master_mono_off" />
<!-- Interruptions --> <!-- Interruptions -->
<com.android.settingslib.RestrictedPreference <com.android.settingslib.RestrictedPreference

View File

@@ -86,6 +86,8 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
"toggle_speak_password_preference"; "toggle_speak_password_preference";
private static final String TOGGLE_LARGE_POINTER_ICON = private static final String TOGGLE_LARGE_POINTER_ICON =
"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 = private static final String SELECT_LONG_PRESS_TIMEOUT_PREFERENCE =
"select_long_press_timeout_preference"; "select_long_press_timeout_preference";
private static final String ENABLE_ACCESSIBILITY_GESTURE_PREFERENCE_SCREEN = private static final String ENABLE_ACCESSIBILITY_GESTURE_PREFERENCE_SCREEN =
@@ -182,6 +184,7 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
private SwitchPreference mToggleLockScreenRotationPreference; private SwitchPreference mToggleLockScreenRotationPreference;
private SwitchPreference mToggleSpeakPasswordPreference; private SwitchPreference mToggleSpeakPasswordPreference;
private SwitchPreference mToggleLargePointerIconPreference; private SwitchPreference mToggleLargePointerIconPreference;
private SwitchPreference mToggleMasterMonoPreference;
private ListPreference mSelectLongPressTimeoutPreference; private ListPreference mSelectLongPressTimeoutPreference;
private Preference mNoServicesMessagePreference; private Preference mNoServicesMessagePreference;
private PreferenceScreen mCaptioningPreferenceScreen; private PreferenceScreen mCaptioningPreferenceScreen;
@@ -280,6 +283,9 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
} else if (mToggleLargePointerIconPreference == preference) { } else if (mToggleLargePointerIconPreference == preference) {
handleToggleLargePointerIconPreferenceClick(); handleToggleLargePointerIconPreferenceClick();
return true; return true;
} else if (mToggleMasterMonoPreference == preference) {
handleToggleMasterMonoPreferenceClick();
return true;
} else if (mGlobalGesturePreferenceScreen == preference) { } else if (mGlobalGesturePreferenceScreen == preference) {
handleToggleEnableAccessibilityGesturePreferenceClick(); handleToggleEnableAccessibilityGesturePreferenceClick();
return true; return true;
@@ -321,6 +327,11 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
mToggleLargePointerIconPreference.isChecked() ? 1 : 0); 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() { private void handleToggleEnableAccessibilityGesturePreferenceClick() {
Bundle extras = mGlobalGesturePreferenceScreen.getExtras(); Bundle extras = mGlobalGesturePreferenceScreen.getExtras();
extras.putString(EXTRA_TITLE, getString( extras.putString(EXTRA_TITLE, getString(
@@ -378,6 +389,10 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
mToggleLargePointerIconPreference = mToggleLargePointerIconPreference =
(SwitchPreference) findPreference(TOGGLE_LARGE_POINTER_ICON); (SwitchPreference) findPreference(TOGGLE_LARGE_POINTER_ICON);
// Master Mono
mToggleMasterMonoPreference =
(SwitchPreference) findPreference(TOGGLE_MASTER_MONO);
// Long press timeout. // Long press timeout.
mSelectLongPressTimeoutPreference = mSelectLongPressTimeoutPreference =
(ListPreference) findPreference(SELECT_LONG_PRESS_TIMEOUT_PREFERENCE); (ListPreference) findPreference(SELECT_LONG_PRESS_TIMEOUT_PREFERENCE);
@@ -571,6 +586,9 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
mToggleLargePointerIconPreference.setChecked(Settings.Secure.getInt(getContentResolver(), mToggleLargePointerIconPreference.setChecked(Settings.Secure.getInt(getContentResolver(),
Settings.Secure.ACCESSIBILITY_LARGE_POINTER_ICON, 0) != 0); Settings.Secure.ACCESSIBILITY_LARGE_POINTER_ICON, 0) != 0);
// Master mono
updateMasterMono();
// Long press timeout. // Long press timeout.
final int longPressTimeout = Settings.Secure.getInt(getContentResolver(), final int longPressTimeout = Settings.Secure.getInt(getContentResolver(),
Settings.Secure.LONG_PRESS_TIMEOUT, mLongPressTimeoutDefault); Settings.Secure.LONG_PRESS_TIMEOUT, mLongPressTimeoutDefault);
@@ -640,6 +658,13 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
} }
} }
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 = public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
new BaseSearchIndexProvider() { new BaseSearchIndexProvider() {
@Override @Override

View File

@@ -80,7 +80,6 @@ public class SoundSettings extends SettingsPreferenceFragment implements Indexab
private static final String KEY_NOTIFICATION_RINGTONE = "notification_ringtone"; private static final String KEY_NOTIFICATION_RINGTONE = "notification_ringtone";
private static final String KEY_ALARM_RINGTONE = "alarm_ringtone"; private static final String KEY_ALARM_RINGTONE = "alarm_ringtone";
private static final String KEY_VIBRATE_WHEN_RINGING = "vibrate_when_ringing"; private static final String KEY_VIBRATE_WHEN_RINGING = "vibrate_when_ringing";
private static final String KEY_MASTER_MONO = "master_mono";
private static final String KEY_WIFI_DISPLAY = "wifi_display"; private static final String KEY_WIFI_DISPLAY = "wifi_display";
private static final String KEY_ZEN_MODE = "zen_mode"; private static final String KEY_ZEN_MODE = "zen_mode";
private static final String KEY_CELL_BROADCAST_SETTINGS = "cell_broadcast_settings"; private static final String KEY_CELL_BROADCAST_SETTINGS = "cell_broadcast_settings";
@@ -111,7 +110,6 @@ public class SoundSettings extends SettingsPreferenceFragment implements Indexab
private Preference mNotificationRingtonePreference; private Preference mNotificationRingtonePreference;
private Preference mAlarmRingtonePreference; private Preference mAlarmRingtonePreference;
private TwoStatePreference mVibrateWhenRinging; private TwoStatePreference mVibrateWhenRinging;
private TwoStatePreference mMasterMono;
private ComponentName mSuppressor; private ComponentName mSuppressor;
private int mRingerMode = -1; private int mRingerMode = -1;
@@ -176,7 +174,6 @@ public class SoundSettings extends SettingsPreferenceFragment implements Indexab
} }
initRingtones(); initRingtones();
initVibrateWhenRinging(); initVibrateWhenRinging();
initMasterMono();
updateRingerMode(); updateRingerMode();
updateEffectsSuppressor(); updateEffectsSuppressor();
} }
@@ -451,33 +448,6 @@ public class SoundSettings extends SettingsPreferenceFragment implements Indexab
Settings.System.VIBRATE_WHEN_RINGING, 0) != 0); Settings.System.VIBRATE_WHEN_RINGING, 0) != 0);
} }
// === Master mono ===
private void initMasterMono() {
mMasterMono =
(TwoStatePreference) getPreferenceScreen().findPreference(KEY_MASTER_MONO);
if (mMasterMono == null) {
Log.i(TAG, "Preference not found: " + KEY_MASTER_MONO);
return;
}
mMasterMono.setPersistent(false);
updateMasterMono();
mMasterMono.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
final boolean val = (Boolean) newValue;
mAudioManager.setMasterMono(val);
return true;
}
});
}
private void updateMasterMono() {
if (mMasterMono == null) return;
mMasterMono.setChecked(mAudioManager.isMasterMono());
}
// === Callbacks === // === Callbacks ===
private final class SettingsObserver extends ContentObserver { private final class SettingsObserver extends ContentObserver {
@@ -512,8 +482,7 @@ public class SoundSettings extends SettingsPreferenceFragment implements Indexab
private static final int STOP_SAMPLE = 3; private static final int STOP_SAMPLE = 3;
private static final int UPDATE_EFFECTS_SUPPRESSOR = 4; private static final int UPDATE_EFFECTS_SUPPRESSOR = 4;
private static final int UPDATE_RINGER_MODE = 5; private static final int UPDATE_RINGER_MODE = 5;
private static final int UPDATE_MASTER_MONO = 6; private static final int UPDATE_ALARM_RINGTONE = 6;
private static final int UPDATE_ALARM_RINGTONE = 7;
private H() { private H() {
super(Looper.getMainLooper()); super(Looper.getMainLooper());
@@ -537,9 +506,6 @@ public class SoundSettings extends SettingsPreferenceFragment implements Indexab
case UPDATE_RINGER_MODE: case UPDATE_RINGER_MODE:
updateRingerMode(); updateRingerMode();
break; break;
case UPDATE_MASTER_MONO:
updateMasterMono();
break;
case UPDATE_ALARM_RINGTONE: case UPDATE_ALARM_RINGTONE:
mAlarmRingtonePreference.setSummary((CharSequence) msg.obj); mAlarmRingtonePreference.setSummary((CharSequence) msg.obj);
break; break;
@@ -556,7 +522,6 @@ public class SoundSettings extends SettingsPreferenceFragment implements Indexab
final IntentFilter filter = new IntentFilter(); final IntentFilter filter = new IntentFilter();
filter.addAction(NotificationManager.ACTION_EFFECTS_SUPPRESSOR_CHANGED); filter.addAction(NotificationManager.ACTION_EFFECTS_SUPPRESSOR_CHANGED);
filter.addAction(AudioManager.INTERNAL_RINGER_MODE_CHANGED_ACTION); filter.addAction(AudioManager.INTERNAL_RINGER_MODE_CHANGED_ACTION);
filter.addAction(AudioManager.MASTER_MONO_CHANGED_ACTION);
mContext.registerReceiver(this, filter); mContext.registerReceiver(this, filter);
} else { } else {
mContext.unregisterReceiver(this); mContext.unregisterReceiver(this);
@@ -571,8 +536,6 @@ public class SoundSettings extends SettingsPreferenceFragment implements Indexab
mHandler.sendEmptyMessage(H.UPDATE_EFFECTS_SUPPRESSOR); mHandler.sendEmptyMessage(H.UPDATE_EFFECTS_SUPPRESSOR);
} else if (AudioManager.INTERNAL_RINGER_MODE_CHANGED_ACTION.equals(action)) { } else if (AudioManager.INTERNAL_RINGER_MODE_CHANGED_ACTION.equals(action)) {
mHandler.sendEmptyMessage(H.UPDATE_RINGER_MODE); mHandler.sendEmptyMessage(H.UPDATE_RINGER_MODE);
} else if (AudioManager.MASTER_MONO_CHANGED_ACTION.equals(action)) {
mHandler.sendEmptyMessage(H.UPDATE_MASTER_MONO);
} }
} }
} }