Loading src/com/android/settings/location/LocationMode.java +3 −2 Original line number Diff line number Diff line Loading @@ -110,7 +110,7 @@ public class LocationMode extends LocationSettingsBase } @Override public void onModeChanged(int mode) { public void onModeChanged(int mode, boolean restricted) { switch (mode) { case Settings.Secure.LOCATION_MODE_OFF: Intent intent = new Intent(); Loading @@ -129,7 +129,8 @@ public class LocationMode extends LocationSettingsBase default: break; } boolean enabled = (mode != Settings.Secure.LOCATION_MODE_OFF); boolean enabled = (mode != Settings.Secure.LOCATION_MODE_OFF) && !restricted; mHighAccuracy.setEnabled(enabled); mBatterySaving.setEnabled(enabled); mSensorsOnly.setEnabled(enabled); Loading src/com/android/settings/location/LocationSettings.java +3 −3 Original line number Diff line number Diff line Loading @@ -28,7 +28,6 @@ import android.preference.Preference; import android.preference.PreferenceActivity; import android.preference.PreferenceCategory; import android.preference.PreferenceGroup; import android.preference.PreferenceManager; import android.preference.PreferenceScreen; import android.provider.Settings; import android.util.Log; Loading Loading @@ -216,7 +215,7 @@ public class LocationSettings extends LocationSettingsBase } @Override public void onModeChanged(int mode) { public void onModeChanged(int mode, boolean restricted) { switch (mode) { case Settings.Secure.LOCATION_MODE_OFF: mLocationMode.setSummary(R.string.location_mode_location_off_title); Loading @@ -234,7 +233,8 @@ public class LocationSettings extends LocationSettingsBase break; } boolean enabled = (mode != Settings.Secure.LOCATION_MODE_OFF); boolean enabled = (mode != Settings.Secure.LOCATION_MODE_OFF) && !restricted; mSwitch.setEnabled(!restricted); mLocationMode.setEnabled(enabled); if (enabled != mSwitch.isChecked()) { Loading src/com/android/settings/location/LocationSettingsBase.java +13 −4 Original line number Diff line number Diff line Loading @@ -71,11 +71,20 @@ public abstract class LocationSettingsBase extends SettingsPreferenceFragment { } /** Called when location mode has changed. */ public abstract void onModeChanged(int mode); public abstract void onModeChanged(int mode, boolean restricted); public void setLocationMode(int mode) { private boolean isRestricted() { final UserManager um = (UserManager) getActivity().getSystemService(Context.USER_SERVICE); if (um.hasUserRestriction(UserManager.DISALLOW_SHARE_LOCATION)) { return um.hasUserRestriction(UserManager.DISALLOW_SHARE_LOCATION); } public void setLocationMode(int mode) { if (isRestricted()) { // Location toggling disabled by user restriction. Read the current location mode to // update the location master switch. mode = Settings.Secure.getInt(getContentResolver(), Settings.Secure.LOCATION_MODE, Settings.Secure.LOCATION_MODE_OFF); onModeChanged(mode, true); return; } Settings.Secure.putInt(getContentResolver(), Settings.Secure.LOCATION_MODE, mode); Loading @@ -85,6 +94,6 @@ public abstract class LocationSettingsBase extends SettingsPreferenceFragment { public void refreshLocationMode() { int mode = Settings.Secure.getInt(getContentResolver(), Settings.Secure.LOCATION_MODE, Settings.Secure.LOCATION_MODE_OFF); onModeChanged(mode); onModeChanged(mode, isRestricted()); } } Loading
src/com/android/settings/location/LocationMode.java +3 −2 Original line number Diff line number Diff line Loading @@ -110,7 +110,7 @@ public class LocationMode extends LocationSettingsBase } @Override public void onModeChanged(int mode) { public void onModeChanged(int mode, boolean restricted) { switch (mode) { case Settings.Secure.LOCATION_MODE_OFF: Intent intent = new Intent(); Loading @@ -129,7 +129,8 @@ public class LocationMode extends LocationSettingsBase default: break; } boolean enabled = (mode != Settings.Secure.LOCATION_MODE_OFF); boolean enabled = (mode != Settings.Secure.LOCATION_MODE_OFF) && !restricted; mHighAccuracy.setEnabled(enabled); mBatterySaving.setEnabled(enabled); mSensorsOnly.setEnabled(enabled); Loading
src/com/android/settings/location/LocationSettings.java +3 −3 Original line number Diff line number Diff line Loading @@ -28,7 +28,6 @@ import android.preference.Preference; import android.preference.PreferenceActivity; import android.preference.PreferenceCategory; import android.preference.PreferenceGroup; import android.preference.PreferenceManager; import android.preference.PreferenceScreen; import android.provider.Settings; import android.util.Log; Loading Loading @@ -216,7 +215,7 @@ public class LocationSettings extends LocationSettingsBase } @Override public void onModeChanged(int mode) { public void onModeChanged(int mode, boolean restricted) { switch (mode) { case Settings.Secure.LOCATION_MODE_OFF: mLocationMode.setSummary(R.string.location_mode_location_off_title); Loading @@ -234,7 +233,8 @@ public class LocationSettings extends LocationSettingsBase break; } boolean enabled = (mode != Settings.Secure.LOCATION_MODE_OFF); boolean enabled = (mode != Settings.Secure.LOCATION_MODE_OFF) && !restricted; mSwitch.setEnabled(!restricted); mLocationMode.setEnabled(enabled); if (enabled != mSwitch.isChecked()) { Loading
src/com/android/settings/location/LocationSettingsBase.java +13 −4 Original line number Diff line number Diff line Loading @@ -71,11 +71,20 @@ public abstract class LocationSettingsBase extends SettingsPreferenceFragment { } /** Called when location mode has changed. */ public abstract void onModeChanged(int mode); public abstract void onModeChanged(int mode, boolean restricted); public void setLocationMode(int mode) { private boolean isRestricted() { final UserManager um = (UserManager) getActivity().getSystemService(Context.USER_SERVICE); if (um.hasUserRestriction(UserManager.DISALLOW_SHARE_LOCATION)) { return um.hasUserRestriction(UserManager.DISALLOW_SHARE_LOCATION); } public void setLocationMode(int mode) { if (isRestricted()) { // Location toggling disabled by user restriction. Read the current location mode to // update the location master switch. mode = Settings.Secure.getInt(getContentResolver(), Settings.Secure.LOCATION_MODE, Settings.Secure.LOCATION_MODE_OFF); onModeChanged(mode, true); return; } Settings.Secure.putInt(getContentResolver(), Settings.Secure.LOCATION_MODE, mode); Loading @@ -85,6 +94,6 @@ public abstract class LocationSettingsBase extends SettingsPreferenceFragment { public void refreshLocationMode() { int mode = Settings.Secure.getInt(getContentResolver(), Settings.Secure.LOCATION_MODE, Settings.Secure.LOCATION_MODE_OFF); onModeChanged(mode); onModeChanged(mode, isRestricted()); } }