diff options
author | David Morgan <dmorgan81@gmail.com> | 2011-10-25 15:12:29 -0400 |
---|---|---|
committer | David Morgan <dmorgan81@gmail.com> | 2011-11-07 15:08:36 -0500 |
commit | f14f66628bb573d6bd8481729e1751ea8489a69d (patch) | |
tree | 70cdb7dd5d82b4608913029608e9347944ee2a8b /packages | |
parent | 497e8031a48d0ed71835903b836a394ad017c2fc (diff) | |
download | frameworks_base-f14f66628bb573d6bd8481729e1751ea8489a69d.zip frameworks_base-f14f66628bb573d6bd8481729e1751ea8489a69d.tar.gz frameworks_base-f14f66628bb573d6bd8481729e1751ea8489a69d.tar.bz2 |
Power widget defaults (brightness and sound)
Default behavior for the new brightness and sound power widgets
should be to cycle through all options and treat all of them as
selected when first configured.
Change-Id: Ie1831a8b7361bcb2dc6e9cc3c6a7d8e69796e6eb
Diffstat (limited to 'packages')
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/powerwidget/BrightnessButton.java | 11 | ||||
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/powerwidget/SoundButton.java | 42 |
2 files changed, 33 insertions, 20 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/powerwidget/BrightnessButton.java b/packages/SystemUI/src/com/android/systemui/statusbar/powerwidget/BrightnessButton.java index 34c41d7..4968d6d 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/powerwidget/BrightnessButton.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/powerwidget/BrightnessButton.java @@ -173,16 +173,15 @@ public class BrightnessButton extends PowerButton { String[] modes = MultiSelectListPreference.parseStoredValue(Settings.System.getString( resolver, Settings.System.EXPANDED_BRIGHTNESS_MODE)); - if (modes != null) { + if (modes == null || modes.length == 0) { + mBacklightValues = new int[] { + 0, 1, 2, 3, 4, 5 + }; + } else { mBacklightValues = new int[modes.length]; for (int i = 0; i < modes.length; i++) { mBacklightValues[i] = Integer.valueOf(modes[i]); } - } else { - // If no modes configured default to just MAX_BACKLIGHT - mBacklightValues = new int[] { - 5 - }; } mAutoBrightness = (Settings.System.getInt(resolver, Settings.System.SCREEN_BRIGHTNESS_MODE, diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/powerwidget/SoundButton.java b/packages/SystemUI/src/com/android/systemui/statusbar/powerwidget/SoundButton.java index 9f9f7a9..ec69d4d 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/powerwidget/SoundButton.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/powerwidget/SoundButton.java @@ -38,7 +38,7 @@ public class SoundButton extends PowerButton { private final Ringer mSilentRinger = new Ringer(false, AudioManager.VIBRATE_SETTING_OFF, AudioManager.RINGER_MODE_SILENT, false); - private final Ringer mVibrateRinger = new Ringer(true, AudioManager.VIBRATE_SETTING_ON, + private final Ringer mVibrateRinger = new Ringer(true, AudioManager.VIBRATE_SETTING_ONLY_SILENT, AudioManager.RINGER_MODE_VIBRATE, true); private final Ringer mSoundRinger = new Ringer(true, AudioManager.VIBRATE_SETTING_ONLY_SILENT, AudioManager.RINGER_MODE_NORMAL, false); @@ -47,12 +47,12 @@ public class SoundButton extends PowerButton { private final Ringer[] mRingers = new Ringer[] { mSilentRinger, mVibrateRinger, mSoundRinger, mSoundVibrateRinger }; - private int mRingersIndex = 0; + private int mRingersIndex = 2; private int[] mRingerValues = new int[] { 0, 1, 2, 3 }; - private int mRingerValuesIndex = 0; + private int mRingerValuesIndex = 2; private boolean mHapticFeedbackEnabled = false; @@ -95,6 +95,12 @@ public class SoundButton extends PowerButton { mState = STATE_ENABLED; break; } + for (int i = 0; i < mRingerValues.length; i++) { + if (mRingersIndex == mRingerValues[i]) { + mRingerValuesIndex = i; + break; + } + } } @Override @@ -149,24 +155,18 @@ public class SoundButton extends PowerButton { String[] modes = MultiSelectListPreference.parseStoredValue(Settings.System.getString( resolver, Settings.System.EXPANDED_RING_MODE)); - if (modes != null) { + if (modes == null || modes.length == 0) { + mRingerValues = new int[] { + 0, 1, 2, 3 + }; + } else { mRingerValues = new int[modes.length]; for (int i = 0; i < modes.length; i++) { mRingerValues[i] = Integer.valueOf(modes[i]); } - } else { - mRingerValues = new int[] { - 2 - }; } updateState(); - for (int i = 0; i < mRingerValues.length; i++) { - if (mRingersIndex == mRingerValues[i]) { - mRingerValuesIndex = i; - break; - } - } } private void findCurrentState() { @@ -175,6 +175,20 @@ public class SoundButton extends PowerButton { Settings.System.VIBRATE_IN_SILENT, 0) == 1; int vibrateSetting = mAudioManager.getVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER); int ringerMode = mAudioManager.getRingerMode(); + // Sometimes the setting don't quite match up to the states we've defined. + // In that case, override the reported settings to get us "close" to the + // defined settings. This bit is a little ugly but oh well. + if (!vibrateInSilent && ringerMode == AudioManager.RINGER_MODE_SILENT) { + vibrateSetting = AudioManager.VIBRATE_SETTING_OFF; // match Silent ringer + } else if (!vibrateInSilent && ringerMode == AudioManager.RINGER_MODE_NORMAL) { + vibrateInSilent = true; // match either Sound or SoundVibrate ringer + if (vibrateSetting == AudioManager.VIBRATE_SETTING_OFF) { + vibrateSetting = AudioManager.VIBRATE_SETTING_ONLY_SILENT; // match Sound ringer + } + } else if (vibrateInSilent && ringerMode == AudioManager.RINGER_MODE_VIBRATE) { + vibrateSetting = AudioManager.VIBRATE_SETTING_ONLY_SILENT; // match Vibrate ringer + } + Ringer ringer = new Ringer(vibrateInSilent, vibrateSetting, ringerMode, false); for (int i = 0; i < mRingers.length; i++) { if (mRingers[i].equals(ringer)) { |