diff options
| author | Christopher Tate <ctate@android.com> | 2009-09-28 01:10:40 -0700 |
|---|---|---|
| committer | Android Git Automerger <android-git-automerger@android.com> | 2009-09-28 01:10:40 -0700 |
| commit | cfe771500a74f25ccdae876be05f471613fd3b8c (patch) | |
| tree | 634f2d77a4cc06630ca30b7aed7175c86accbed7 | |
| parent | d14db943d3c2ea12014ce2b642c70356312ba6c7 (diff) | |
| parent | 2d5168f650b1865812b1174ea1c37df9bfda6390 (diff) | |
| download | frameworks_base-cfe771500a74f25ccdae876be05f471613fd3b8c.zip frameworks_base-cfe771500a74f25ccdae876be05f471613fd3b8c.tar.gz frameworks_base-cfe771500a74f25ccdae876be05f471613fd3b8c.tar.bz2 | |
am 2d5168f6: am 141e4f1d: Merge change 27177 into eclair
Merge commit '2d5168f650b1865812b1174ea1c37df9bfda6390'
* commit '2d5168f650b1865812b1174ea1c37df9bfda6390':
Add auto-brightness mode to the list of backed-up settings
| -rw-r--r-- | core/java/android/provider/Settings.java | 1 | ||||
| -rw-r--r-- | packages/SettingsProvider/src/com/android/providers/settings/SettingsHelper.java | 29 |
2 files changed, 30 insertions, 0 deletions
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index e3fc72d..2b6313d 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -1416,6 +1416,7 @@ public final class Settings { DIM_SCREEN, SCREEN_OFF_TIMEOUT, SCREEN_BRIGHTNESS, + SCREEN_BRIGHTNESS_MODE, VIBRATE_ON, NOTIFICATIONS_USE_RING_VOLUME, MODE_RINGER, diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsHelper.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsHelper.java index 77da8f1..3b91a38 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsHelper.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsHelper.java @@ -40,16 +40,23 @@ public class SettingsHelper { private Context mContext; private AudioManager mAudioManager; private IContentService mContentService; + private IPowerManager mPowerManager; private static final String[] PROVIDERS = { "gmail-ls", "calendar", "contacts" }; private boolean mSilent; private boolean mVibrate; + private boolean mHasAutoBrightness; public SettingsHelper(Context context) { mContext = context; mAudioManager = (AudioManager) context .getSystemService(Context.AUDIO_SERVICE); mContentService = ContentResolver.getContentService(); + mPowerManager = IPowerManager.Stub.asInterface( + ServiceManager.getService("power")); + + mHasAutoBrightness = context.getResources().getBoolean( + com.android.internal.R.bool.config_automatic_brightness_available); } /** @@ -64,6 +71,18 @@ public class SettingsHelper { public boolean restoreValue(String name, String value) { if (Settings.System.SCREEN_BRIGHTNESS.equals(name)) { setBrightness(Integer.parseInt(value)); + } else if (Settings.System.SCREEN_BRIGHTNESS_MODE.equals(name)) { + if (mHasAutoBrightness) { + // When setting auto-brightness, must reset the brightness afterwards + try { + int curBrightness = Settings.System.getInt(mContext.getContentResolver(), + Settings.System.SCREEN_BRIGHTNESS); + setAutoBrightness(Integer.parseInt(value) != 0); + setBrightness(curBrightness); + } catch (Settings.SettingNotFoundException e) { + // no brightness setting at all? weird. skip this then. + } + } } else if (Settings.System.SOUND_EFFECTS_ENABLED.equals(name)) { setSoundEffects(Integer.parseInt(value) == 1); } else if (Settings.Secure.LOCATION_PROVIDERS_ALLOWED.equals(name)) { @@ -73,6 +92,16 @@ public class SettingsHelper { return true; } + private void setAutoBrightness(boolean value) { + if (mPowerManager != null) { + try { + mPowerManager.setAutoBrightness(value); + } catch (RemoteException e) { + // unable to reach the power manager; skip + } + } + } + private void setGpsLocation(String value) { final String GPS = LocationManager.GPS_PROVIDER; boolean enabled = |
