auto import from //branches/cupcake/...@130745

This commit is contained in:
The Android Open Source Project
2009-02-10 15:44:05 -08:00
parent 590c0a97ff
commit 1feaa85791
122 changed files with 5734 additions and 4925 deletions

View File

@@ -25,6 +25,7 @@ import android.content.Intent;
import android.content.IntentFilter;
import android.media.AudioManager;
import android.os.Bundle;
import android.os.IMountService;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.preference.ListPreference;
@@ -49,8 +50,21 @@ public class SoundAndDisplaySettings extends PreferenceActivity implements
private static final String KEY_DTMF_TONE = "dtmf_tone";
private static final String KEY_SOUND_EFFECTS = "sound_effects";
private static final String KEY_ANIMATIONS = "animations";
private static final String KEY_PLAY_MEDIA_NOTIFICATION_SOUNDS = "play_media_notification_sounds";
private CheckBoxPreference mSilent;
private CheckBoxPreference mPlayMediaNotificationSounds;
private IMountService mMountService = null;
/*
* If we are currently in one of the silent modes (the ringer mode is set to either
* "silent mode" or "vibrate mode"), then toggling the "Phone vibrate"
* preference will switch between "silent mode" and "vibrate mode".
* Otherwise, it will adjust the normal ringer mode's ring or ring+vibrate
* setting.
*/
private CheckBoxPreference mVibrate;
private CheckBoxPreference mDtmfTone;
private CheckBoxPreference mSoundEffects;
@@ -64,14 +78,7 @@ public class SoundAndDisplaySettings extends PreferenceActivity implements
private BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
int ringerMode = intent
.getIntExtra(AudioManager.EXTRA_RINGER_MODE, AudioManager.RINGER_MODE_NORMAL);
boolean isSilentMode = ringerMode != AudioManager.RINGER_MODE_NORMAL;
if (mSilent.isChecked() != isSilentMode) {
mSilent.setChecked(isSilentMode);
}
updateState(false);
}
};
@@ -82,10 +89,14 @@ public class SoundAndDisplaySettings extends PreferenceActivity implements
mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
mWindowManager = IWindowManager.Stub.asInterface(ServiceManager.getService("window"));
mMountService = IMountService.Stub.asInterface(ServiceManager.getService("mount"));
addPreferencesFromResource(R.xml.sound_and_display_settings);
mSilent = (CheckBoxPreference) findPreference(KEY_SILENT);
mPlayMediaNotificationSounds = (CheckBoxPreference) findPreference(KEY_PLAY_MEDIA_NOTIFICATION_SOUNDS);
mVibrate = (CheckBoxPreference) findPreference(KEY_VIBRATE);
mDtmfTone = (CheckBoxPreference) findPreference(KEY_DTMF_TONE);
mDtmfTone.setPersistent(false);
@@ -123,17 +134,28 @@ public class SoundAndDisplaySettings extends PreferenceActivity implements
}
private void updateState(boolean force) {
final boolean silent = mAudioManager.getRingerMode() != AudioManager.RINGER_MODE_NORMAL;
final boolean phoneVibrate = mAudioManager
.getVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER)
== AudioManager.VIBRATE_SETTING_ON;
final int ringerMode = mAudioManager.getRingerMode();
final boolean silentOrVibrateMode =
ringerMode != AudioManager.RINGER_MODE_NORMAL;
if (silent != mSilent.isChecked() || force) {
mSilent.setChecked(silent);
if (silentOrVibrateMode != mSilent.isChecked() || force) {
mSilent.setChecked(silentOrVibrateMode);
}
if (phoneVibrate != mVibrate.isChecked() || force) {
mVibrate.setChecked(phoneVibrate);
try {
mPlayMediaNotificationSounds.setChecked(mMountService.getPlayNotificationSounds());
} catch (RemoteException e) {
}
boolean vibrateSetting;
if (silentOrVibrateMode) {
vibrateSetting = ringerMode == AudioManager.RINGER_MODE_VIBRATE;
} else {
vibrateSetting = mAudioManager.getVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER)
== AudioManager.VIBRATE_SETTING_ON;
}
if (vibrateSetting != mVibrate.isChecked() || force) {
mVibrate.setChecked(vibrateSetting);
}
boolean animations = true;
@@ -161,12 +183,26 @@ public class SoundAndDisplaySettings extends PreferenceActivity implements
final boolean silent = mSilent.isChecked();
mAudioManager.setRingerMode(silent ? AudioManager.RINGER_MODE_SILENT
: AudioManager.RINGER_MODE_NORMAL);
updateState(false);
} else if (preference == mPlayMediaNotificationSounds) {
try {
mMountService.setPlayNotificationSounds(mPlayMediaNotificationSounds.isChecked());
} catch (RemoteException e) {
}
} else if (preference == mVibrate) {
final boolean vibrate = mVibrate.isChecked();
mAudioManager.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER,
vibrate ? AudioManager.VIBRATE_SETTING_ON
: AudioManager.VIBRATE_SETTING_OFF);
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) {
Settings.System.putInt(getContentResolver(), Settings.System.DTMF_TONE_WHEN_DIALING,
mDtmfTone.isChecked() ? 1 : 0);