Fix vibrate and silent mode toggle dependency.
This commit is contained in:
@@ -216,33 +216,29 @@ public class SoundAndDisplaySettings extends PreferenceActivity implements
|
|||||||
Settings.System.ACCELEROMETER_ROTATION, 0) != 0);
|
Settings.System.ACCELEROMETER_ROTATION, 0) != 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void setRingerMode(boolean silent, boolean vibrate) {
|
||||||
|
if (silent) {
|
||||||
|
mAudioManager.setRingerMode(vibrate ? AudioManager.RINGER_MODE_VIBRATE :
|
||||||
|
AudioManager.RINGER_MODE_SILENT);
|
||||||
|
} else {
|
||||||
|
mAudioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
|
||||||
|
mAudioManager.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER,
|
||||||
|
vibrate ? AudioManager.VIBRATE_SETTING_ON
|
||||||
|
: AudioManager.VIBRATE_SETTING_OFF);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
|
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
|
||||||
|
|
||||||
if (preference == mSilent) {
|
if (preference == mSilent || preference == mVibrate) {
|
||||||
final boolean silent = mSilent.isChecked();
|
setRingerMode(mSilent.isChecked(), mVibrate.isChecked());
|
||||||
mAudioManager.setRingerMode(silent ? AudioManager.RINGER_MODE_SILENT
|
if (preference == mSilent) updateState(false);
|
||||||
: AudioManager.RINGER_MODE_NORMAL);
|
|
||||||
updateState(false);
|
|
||||||
|
|
||||||
} else if (preference == mPlayMediaNotificationSounds) {
|
} else if (preference == mPlayMediaNotificationSounds) {
|
||||||
try {
|
try {
|
||||||
mMountService.setPlayNotificationSounds(mPlayMediaNotificationSounds.isChecked());
|
mMountService.setPlayNotificationSounds(mPlayMediaNotificationSounds.isChecked());
|
||||||
} catch (RemoteException e) {
|
} catch (RemoteException e) {
|
||||||
}
|
}
|
||||||
} else if (preference == mVibrate) {
|
|
||||||
final boolean vibrate = mVibrate.isChecked();
|
|
||||||
final boolean silent = mSilent.isChecked();
|
|
||||||
|
|
||||||
if (silent) {
|
|
||||||
mAudioManager.setRingerMode(vibrate ? AudioManager.RINGER_MODE_VIBRATE :
|
|
||||||
AudioManager.RINGER_MODE_SILENT);
|
|
||||||
} else {
|
|
||||||
mAudioManager.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER,
|
|
||||||
vibrate ? AudioManager.VIBRATE_SETTING_ON
|
|
||||||
: AudioManager.VIBRATE_SETTING_OFF);
|
|
||||||
}
|
|
||||||
|
|
||||||
} else if (preference == mDtmfTone) {
|
} else if (preference == mDtmfTone) {
|
||||||
Settings.System.putInt(getContentResolver(), Settings.System.DTMF_TONE_WHEN_DIALING,
|
Settings.System.putInt(getContentResolver(), Settings.System.DTMF_TONE_WHEN_DIALING,
|
||||||
mDtmfTone.isChecked() ? 1 : 0);
|
mDtmfTone.isChecked() ? 1 : 0);
|
||||||
|
Reference in New Issue
Block a user