OSDN Git Service

Shows correct state when location sharing disabled
authorLifu Tang <lifu@google.com>
Fri, 30 Aug 2013 01:06:30 +0000 (18:06 -0700)
committerLifu Tang <lifu@google.com>
Sat, 31 Aug 2013 00:19:09 +0000 (17:19 -0700)
- Fix b/10553306

Change-Id: I01f69aaeb79e18ddf29da5aef7ea00938e674429

src/com/android/settings/location/LocationSettings.java

index 815be41..22bf42b 100644 (file)
@@ -233,9 +233,12 @@ public class LocationSettings extends LocationSettingsBase
                 break;
         }
 
-        boolean enabled = (mode != Settings.Secure.LOCATION_MODE_OFF) && !restricted;
+        // Restricted user can't change the location mode, so disable the master switch. But in some
+        // corner cases, the location might still be enabled. In such case the master switch should
+        // be disabled but checked.
+        boolean enabled = (mode != Settings.Secure.LOCATION_MODE_OFF);
         mSwitch.setEnabled(!restricted);
-        mLocationMode.setEnabled(enabled);
+        mLocationMode.setEnabled(enabled && !restricted);
 
         if (enabled != mSwitch.isChecked()) {
             // set listener to null so that that code below doesn't trigger onCheckedChanged()