From 5eed792a76970e4271e03547e61dbbd6fabbf2f4 Mon Sep 17 00:00:00 2001 From: David Christie Date: Wed, 21 Aug 2013 17:18:51 -0700 Subject: [PATCH] Update power widget to represent gps instead of location master. Change-Id: I62f701b612db2e31f9ad8b016dbf37ed7fd4ef26 --- .../widget/SettingsAppWidgetProvider.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/com/android/settings/widget/SettingsAppWidgetProvider.java b/src/com/android/settings/widget/SettingsAppWidgetProvider.java index 50f66718b94..71994a987cb 100644 --- a/src/com/android/settings/widget/SettingsAppWidgetProvider.java +++ b/src/com/android/settings/widget/SettingsAppWidgetProvider.java @@ -521,8 +521,14 @@ public class SettingsAppWidgetProvider extends AppWidgetProvider { @Override public int getActualState(Context context) { ContentResolver resolver = context.getContentResolver(); - return Settings.Secure.getLocationMode(resolver) != Settings.Secure.LOCATION_MODE_OFF - ? STATE_ENABLED : STATE_DISABLED; + int currentLocationMode = Settings.Secure.getLocationMode(resolver); + switch (currentLocationMode) { + case Settings.Secure.LOCATION_MODE_BATTERY_SAVING: + case Settings.Secure.LOCATION_MODE_OFF: + return STATE_DISABLED; + } + + return STATE_ENABLED; } @Override @@ -543,13 +549,12 @@ public class SettingsAppWidgetProvider extends AppWidgetProvider { if (!um.hasUserRestriction(UserManager.DISALLOW_SHARE_LOCATION)) { int mode = desiredState ? Settings.Secure.LOCATION_MODE_HIGH_ACCURACY - : Settings.Secure.LOCATION_MODE_OFF; + : Settings.Secure.LOCATION_MODE_BATTERY_SAVING; Settings.Secure.setLocationMode(resolver, mode); return desiredState; } - return Settings.Secure.getLocationMode(resolver) - != Settings.Secure.LOCATION_MODE_OFF; + return getActualState(context) == STATE_ENABLED; } @Override