diff options
author | David Christie <dnchrist@google.com> | 2013-10-31 11:03:36 -0700 |
---|---|---|
committer | David Christie <dnchrist@google.com> | 2013-11-07 11:20:35 -0800 |
commit | 587e6bf3fcfc8dffb4cf021227d896ffcb5488a9 (patch) | |
tree | 9f4d768bea0eb50da9456e53d3921df98ff00f10 /src/com/android/settings/widget | |
parent | 741bc054243576dcfff17bf3a807dc8732bca332 (diff) | |
download | packages_apps_Settings-587e6bf3fcfc8dffb4cf021227d896ffcb5488a9.zip packages_apps_Settings-587e6bf3fcfc8dffb4cf021227d896ffcb5488a9.tar.gz packages_apps_Settings-587e6bf3fcfc8dffb4cf021227d896ffcb5488a9.tar.bz2 |
Update power widget icons and fix location behavior
Bug: 11242129
Change-Id: I29f5b4cf914ece4b0991229f384012eb66ba3820
Diffstat (limited to 'src/com/android/settings/widget')
-rw-r--r-- | src/com/android/settings/widget/SettingsAppWidgetProvider.java | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/src/com/android/settings/widget/SettingsAppWidgetProvider.java b/src/com/android/settings/widget/SettingsAppWidgetProvider.java index 85a0494..a5d3658 100644 --- a/src/com/android/settings/widget/SettingsAppWidgetProvider.java +++ b/src/com/android/settings/widget/SettingsAppWidgetProvider.java @@ -509,27 +509,33 @@ public class SettingsAppWidgetProvider extends AppWidgetProvider { * Subclass of StateTracker for location state. */ private static final class LocationStateTracker extends StateTracker { + private int mCurrentLocationMode = Settings.Secure.LOCATION_MODE_OFF; + public int getContainerId() { return R.id.btn_location; } public int getButtonId() { return R.id.img_location; } public int getIndicatorId() { return R.id.ind_location; } public int getButtonDescription() { return R.string.gadget_location; } public int getButtonImageId(boolean on) { - return on ? R.drawable.ic_appwidget_settings_location_on_holo - : R.drawable.ic_appwidget_settings_location_off_holo; + if (on) { + switch (mCurrentLocationMode) { + case Settings.Secure.LOCATION_MODE_HIGH_ACCURACY: + case Settings.Secure.LOCATION_MODE_SENSORS_ONLY: + return R.drawable.ic_appwidget_settings_location_on_holo; + default: + return R.drawable.ic_appwidget_settings_location_saving_holo; + } + } + + return R.drawable.ic_appwidget_settings_location_off_holo; } @Override public int getActualState(Context context) { ContentResolver resolver = context.getContentResolver(); - int currentLocationMode = Settings.Secure.getInt(resolver, + mCurrentLocationMode = Settings.Secure.getInt(resolver, Settings.Secure.LOCATION_MODE, Settings.Secure.LOCATION_MODE_OFF); - switch (currentLocationMode) { - case Settings.Secure.LOCATION_MODE_BATTERY_SAVING: - case Settings.Secure.LOCATION_MODE_OFF: - return STATE_DISABLED; - } - - return STATE_ENABLED; + return (mCurrentLocationMode == Settings.Secure.LOCATION_MODE_OFF) + ? STATE_DISABLED : STATE_ENABLED; } @Override @@ -566,7 +572,7 @@ public class SettingsAppWidgetProvider extends AppWidgetProvider { break; } Settings.Secure.putInt(resolver, Settings.Secure.LOCATION_MODE, mode); - return desiredState; + return mode != Settings.Secure.LOCATION_MODE_OFF; } return getActualState(context) == STATE_ENABLED; |