summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/widget
diff options
context:
space:
mode:
authorAmith Yamasani <yamasani@google.com>2011-10-03 11:54:16 -0700
committerAmith Yamasani <yamasani@google.com>2011-10-03 15:22:04 -0700
commita9125d4d59bb3293dd1c92189bec3d0ab9e71d52 (patch)
treedfce305e228ac3bbab385f66d5718a8f3a75f06c /src/com/android/settings/widget
parent326f96c5dca3ad59f9a96326e882eaa55cc7d560 (diff)
downloadpackages_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.java63
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;
}
/**