diff options
author | Amith Yamasani <yamasani@google.com> | 2011-10-03 11:54:16 -0700 |
---|---|---|
committer | Amith Yamasani <yamasani@google.com> | 2011-10-03 15:22:04 -0700 |
commit | a9125d4d59bb3293dd1c92189bec3d0ab9e71d52 (patch) | |
tree | dfce305e228ac3bbab385f66d5718a8f3a75f06c /src/com/android/settings/widget | |
parent | 326f96c5dca3ad59f9a96326e882eaa55cc7d560 (diff) | |
download | packages_apps_settings-a9125d4d59bb3293dd1c92189bec3d0ab9e71d52.zip packages_apps_settings-a9125d4d59bb3293dd1c92189bec3d0ab9e71d52.tar.gz packages_apps_settings-a9125d4d59bb3293dd1c92189bec3d0ab9e71d52.tar.bz2 |
Introduce half-brightness icon in Power Control widget.
Bug: 5358696
Change-Id: Iae484e786f4dd7a5e88078b69053f01425b79aef
Diffstat (limited to 'src/com/android/settings/widget')
-rw-r--r-- | src/com/android/settings/widget/SettingsAppWidgetProvider.java | 63 |
1 files changed, 41 insertions, 22 deletions
diff --git a/src/com/android/settings/widget/SettingsAppWidgetProvider.java b/src/com/android/settings/widget/SettingsAppWidgetProvider.java index 656bf47..656d072 100644 --- a/src/com/android/settings/widget/SettingsAppWidgetProvider.java +++ b/src/com/android/settings/widget/SettingsAppWidgetProvider.java @@ -100,6 +100,10 @@ public class SettingsAppWidgetProvider extends AppWidgetProvider { private static final int MINIMUM_BACKLIGHT = android.os.Power.BRIGHTNESS_DIM + 10; private static final int MAXIMUM_BACKLIGHT = android.os.Power.BRIGHTNESS_ON; private static final int DEFAULT_BACKLIGHT = (int) (android.os.Power.BRIGHTNESS_ON * 0.4f); + /** Minimum brightness at which the indicator is shown at half-full and ON */ + private static final int HALF_BRIGHTNESS_THRESHOLD = (int) (0.3 * MAXIMUM_BACKLIGHT); + /** Minimum brightness at which the indicator is shown at full */ + private static final int FULL_BRIGHTNESS_THRESHOLD = (int) (0.8 * MAXIMUM_BACKLIGHT); private static final StateTracker sWifiState = new WifiStateTracker(); private static final StateTracker sBluetoothState = new BluetoothStateTracker(); @@ -580,6 +584,14 @@ public class SettingsAppWidgetProvider extends AppWidgetProvider { } } + private static void checkObserver(Context context) { + if (sSettingsObserver == null) { + sSettingsObserver = new SettingsObserver(new Handler(), + context.getApplicationContext()); + sSettingsObserver.startObserving(); + } + } + @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { @@ -598,11 +610,7 @@ public class SettingsAppWidgetProvider extends AppWidgetProvider { new ComponentName("com.android.settings", ".widget.SettingsAppWidgetProvider"), PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP); - if (sSettingsObserver == null) { - sSettingsObserver = new SettingsObserver(new Handler(), - context.getApplicationContext()); - sSettingsObserver.startObserving(); - } + checkObserver(context); } @Override @@ -653,6 +661,7 @@ public class SettingsAppWidgetProvider extends AppWidgetProvider { // Update specific list of appWidgetIds if given, otherwise default to all final AppWidgetManager gm = AppWidgetManager.getInstance(context); gm.updateAppWidget(THIS_APPWIDGET, views); + checkObserver(context); } /** @@ -669,19 +678,30 @@ public class SettingsAppWidgetProvider extends AppWidgetProvider { if (getBrightnessMode(context)) { views.setImageViewResource(R.id.img_brightness, - R.drawable.ic_appwidget_settings_brightness_auto_holo); - views.setImageViewResource(R.id.ind_brightness, - R.drawable.appwidget_settings_ind_on_r_holo); - } else if (getBrightness(context)) { - views.setImageViewResource(R.id.img_brightness, - R.drawable.ic_appwidget_settings_brightness_full_holo); + R.drawable.ic_appwidget_settings_brightness_auto_holo); views.setImageViewResource(R.id.ind_brightness, - R.drawable.appwidget_settings_ind_on_r_holo); + R.drawable.appwidget_settings_ind_on_r_holo); } else { - views.setImageViewResource(R.id.img_brightness, - R.drawable.ic_appwidget_settings_brightness_off_holo); - views.setImageViewResource(R.id.ind_brightness, - R.drawable.appwidget_settings_ind_off_r_holo); + final int brightness = getBrightness(context); + // Set the icon + if (brightness > FULL_BRIGHTNESS_THRESHOLD) { + views.setImageViewResource(R.id.img_brightness, + R.drawable.ic_appwidget_settings_brightness_full_holo); + } else if (brightness > HALF_BRIGHTNESS_THRESHOLD) { + views.setImageViewResource(R.id.img_brightness, + R.drawable.ic_appwidget_settings_brightness_half_holo); + } else { + views.setImageViewResource(R.id.img_brightness, + R.drawable.ic_appwidget_settings_brightness_off_holo); + } + // Set the ON state + if (brightness > HALF_BRIGHTNESS_THRESHOLD) { + views.setImageViewResource(R.id.ind_brightness, + R.drawable.appwidget_settings_ind_on_r_holo); + } else { + views.setImageViewResource(R.id.ind_brightness, + R.drawable.appwidget_settings_ind_off_r_holo); + } } } @@ -747,24 +767,23 @@ public class SettingsAppWidgetProvider extends AppWidgetProvider { } /** - * Gets state of brightness. + * Gets brightness level. * * @param context - * @return true if more than moderately bright. + * @return brightness level between 0 and 255. */ - private static boolean getBrightness(Context context) { + private static int getBrightness(Context context) { try { IPowerManager power = IPowerManager.Stub.asInterface( ServiceManager.getService("power")); if (power != null) { int brightness = Settings.System.getInt(context.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS); - return brightness > 100; + return brightness; } } catch (Exception e) { - Log.d(TAG, "getBrightness: " + e); } - return false; + return 0; } /** |