Merge "Modify Power Widget Gps Icon To Represent Location. Instead of directly controlling gps on/off, it will control master location switch on/off." into klp-dev
diff --git a/res/drawable-hdpi/ic_appwidget_settings_gps_off_holo.png b/res/drawable-hdpi/ic_appwidget_settings_location_off_holo.png
similarity index 100%
rename from res/drawable-hdpi/ic_appwidget_settings_gps_off_holo.png
rename to res/drawable-hdpi/ic_appwidget_settings_location_off_holo.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_appwidget_settings_gps_on_holo.png b/res/drawable-hdpi/ic_appwidget_settings_location_on_holo.png
similarity index 100%
rename from res/drawable-hdpi/ic_appwidget_settings_gps_on_holo.png
rename to res/drawable-hdpi/ic_appwidget_settings_location_on_holo.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_appwidget_settings_gps_off_holo.png b/res/drawable-mdpi/ic_appwidget_settings_location_off_holo.png
similarity index 100%
rename from res/drawable-mdpi/ic_appwidget_settings_gps_off_holo.png
rename to res/drawable-mdpi/ic_appwidget_settings_location_off_holo.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_appwidget_settings_gps_on_holo.png b/res/drawable-mdpi/ic_appwidget_settings_location_on_holo.png
similarity index 100%
rename from res/drawable-mdpi/ic_appwidget_settings_gps_on_holo.png
rename to res/drawable-mdpi/ic_appwidget_settings_location_on_holo.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_appwidget_settings_gps_off_holo.png b/res/drawable-xhdpi/ic_appwidget_settings_location_off_holo.png
similarity index 100%
rename from res/drawable-xhdpi/ic_appwidget_settings_gps_off_holo.png
rename to res/drawable-xhdpi/ic_appwidget_settings_location_off_holo.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_appwidget_settings_gps_on_holo.png b/res/drawable-xhdpi/ic_appwidget_settings_location_on_holo.png
similarity index 100%
rename from res/drawable-xhdpi/ic_appwidget_settings_gps_on_holo.png
rename to res/drawable-xhdpi/ic_appwidget_settings_location_on_holo.png
Binary files differ
diff --git a/res/layout/widget.xml b/res/layout/widget.xml
index d000a46..a125d80 100644
--- a/res/layout/widget.xml
+++ b/res/layout/widget.xml
@@ -95,7 +95,7 @@
         />
 
     <LinearLayout
-        android:id="@+id/btn_gps"
+        android:id="@+id/btn_location"
         android:layout_width="0dip"
         android:layout_weight="1"
         android:layout_height="match_parent"
@@ -106,7 +106,7 @@
         android:orientation="vertical">
 
         <ImageView
-            android:id="@+id/img_gps"
+            android:id="@+id/img_location"
             android:layout_width="match_parent"
             android:layout_height="0dip"
             android:layout_weight="1"
@@ -115,7 +115,7 @@
             />
 
         <ImageView
-            android:id="@+id/ind_gps"
+            android:id="@+id/ind_location"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:scaleType="fitXY"
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 2211f4f..a906040 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -3698,8 +3698,8 @@
     <string name="gadget_wifi">Wi\u2011Fi</string>
     <!-- Spoken description for the Bluetooth power control gadget. -->
     <string name="gadget_bluetooth">Bluetooth</string>
-    <!-- Spoken description for the GPS power control gadget. -->
-    <string name="gadget_gps">GPS</string>
+    <!-- Spoken description for the Location power control gadget. -->
+    <string name="gadget_location">Location</string>
     <!-- Spoken description for the data synchronization gadget. -->
     <string name="gadget_sync">Sync</string>
     <!-- Template for brightness gadget toggle button description. -->
diff --git a/src/com/android/settings/widget/SettingsAppWidgetProvider.java b/src/com/android/settings/widget/SettingsAppWidgetProvider.java
index 5d581d8..7beb17c 100644
--- a/src/com/android/settings/widget/SettingsAppWidgetProvider.java
+++ b/src/com/android/settings/widget/SettingsAppWidgetProvider.java
@@ -59,7 +59,7 @@
     private static final int BUTTON_WIFI = 0;
     private static final int BUTTON_BRIGHTNESS = 1;
     private static final int BUTTON_SYNC = 2;
-    private static final int BUTTON_GPS = 3;
+    private static final int BUTTON_LOCATION = 3;
     private static final int BUTTON_BLUETOOTH = 4;
 
     // This widget keeps track of two sets of states:
@@ -102,7 +102,7 @@
 
     private static final StateTracker sWifiState = new WifiStateTracker();
     private static final StateTracker sBluetoothState = new BluetoothStateTracker();
-    private static final StateTracker sGpsState = new GpsStateTracker();
+    private static final StateTracker sLocationState = new LocationStateTracker();
     private static final StateTracker sSyncState = new SyncStateTracker();
     private static SettingsObserver sSettingsObserver;
 
@@ -506,24 +506,23 @@
     }
 
     /**
-     * Subclass of StateTracker for GPS state.
+     * Subclass of StateTracker for location state.
      */
-    private static final class GpsStateTracker extends StateTracker {
-        public int getContainerId() { return R.id.btn_gps; }
-        public int getButtonId() { return R.id.img_gps; }
-        public int getIndicatorId() { return R.id.ind_gps; }
-        public int getButtonDescription() { return R.string.gadget_gps; }
+    private static final class LocationStateTracker extends StateTracker {
+        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_gps_on_holo
-                    : R.drawable.ic_appwidget_settings_gps_off_holo;
+            return on ? R.drawable.ic_appwidget_settings_location_on_holo
+                    : R.drawable.ic_appwidget_settings_location_off_holo;
         }
 
         @Override
         public int getActualState(Context context) {
             ContentResolver resolver = context.getContentResolver();
-            boolean on = Settings.Secure.isLocationProviderEnabled(
-                resolver, LocationManager.GPS_PROVIDER);
-            return on ? STATE_ENABLED : STATE_DISABLED;
+            return Settings.Secure.isLocationMasterSwitchEnabled(resolver)
+                    ? STATE_ENABLED : STATE_DISABLED;
         }
 
         @Override
@@ -542,15 +541,11 @@
                     final UserManager um =
                             (UserManager) context.getSystemService(Context.USER_SERVICE);
                     if (!um.hasUserRestriction(UserManager.DISALLOW_SHARE_LOCATION)) {
-                        Settings.Secure.setLocationProviderEnabled(
-                            resolver,
-                            LocationManager.GPS_PROVIDER,
-                            desiredState);
+                        Settings.Secure.setLocationMasterSwitchEnabled(resolver, desiredState);
                         return desiredState;
                     }
-                    return Settings.Secure.isLocationProviderEnabled(
-                            resolver,
-                            LocationManager.GPS_PROVIDER);
+
+                    return Settings.Secure.isLocationMasterSwitchEnabled(resolver);
                 }
 
                 @Override
@@ -669,8 +664,8 @@
         views.setOnClickPendingIntent(R.id.btn_sync,
                 getLaunchPendingIntent(context,
                         BUTTON_SYNC));
-        views.setOnClickPendingIntent(R.id.btn_gps,
-                getLaunchPendingIntent(context, BUTTON_GPS));
+        views.setOnClickPendingIntent(R.id.btn_location,
+                getLaunchPendingIntent(context, BUTTON_LOCATION));
         views.setOnClickPendingIntent(R.id.btn_bluetooth,
                 getLaunchPendingIntent(context,
                         BUTTON_BLUETOOTH));
@@ -701,7 +696,7 @@
     private static void updateButtons(RemoteViews views, Context context) {
         sWifiState.setImageViewResources(context, views);
         sBluetoothState.setImageViewResources(context, views);
-        sGpsState.setImageViewResources(context, views);
+        sLocationState.setImageViewResources(context, views);
         sSyncState.setImageViewResources(context, views);
 
         if (getBrightnessMode(context)) {
@@ -782,7 +777,7 @@
         } else if (BluetoothAdapter.ACTION_STATE_CHANGED.equals(action)) {
             sBluetoothState.onActualStateChange(context, intent);
         } else if (LocationManager.PROVIDERS_CHANGED_ACTION.equals(action)) {
-            sGpsState.onActualStateChange(context, intent);
+            sLocationState.onActualStateChange(context, intent);
         } else if (ContentResolver.ACTION_SYNC_CONN_STATUS_CHANGED.equals(action)) {
             sSyncState.onActualStateChange(context, intent);
         } else if (intent.hasCategory(Intent.CATEGORY_ALTERNATIVE)) {
@@ -794,8 +789,8 @@
                 toggleBrightness(context);
             } else if (buttonId == BUTTON_SYNC) {
                 sSyncState.toggleState(context);
-            } else if (buttonId == BUTTON_GPS) {
-                sGpsState.toggleState(context);
+            } else if (buttonId == BUTTON_LOCATION) {
+                sLocationState.toggleState(context);
             } else if (buttonId == BUTTON_BLUETOOTH) {
                 sBluetoothState.toggleState(context);
             }