diff --git a/src/com/android/settings/location/LocationSettings.java b/src/com/android/settings/location/LocationSettings.java index fe3cf30c84d..8f9787b08a5 100644 --- a/src/com/android/settings/location/LocationSettings.java +++ b/src/com/android/settings/location/LocationSettings.java @@ -55,11 +55,14 @@ import java.util.List; * implementation. */ @SearchIndexable -public class LocationSettings extends DashboardFragment { +public class LocationSettings extends DashboardFragment implements + LocationEnabler.LocationModeChangeListener { private static final String TAG = "LocationSettings"; + private static final String RECENT_LOCATION_ACCESS_PREF_KEY = "recent_location_access"; private LocationSwitchBarController mSwitchBarController; + private LocationEnabler mLocationEnabler; @Override public int getMetricsCategory() { @@ -75,6 +78,7 @@ public class LocationSettings extends DashboardFragment { switchBar.show(); mSwitchBarController = new LocationSwitchBarController(activity, switchBar, getSettingsLifecycle()); + mLocationEnabler = new LocationEnabler(getContext(), this, getSettingsLifecycle()); } @Override @@ -98,6 +102,13 @@ public class LocationSettings extends DashboardFragment { return TAG; } + @Override + public void onLocationModeChanged(int mode, boolean restricted) { + if (mLocationEnabler.isEnabled(mode)) { + scrollToPreference(RECENT_LOCATION_ACCESS_PREF_KEY); + } + } + static void addPreferencesSorted(List prefs, PreferenceGroup container) { // If there's some items to display, sort the items and add them to the container. Collections.sort(prefs,