From fdff6af031e37390ac35cdb7b27b45d0aef79f56 Mon Sep 17 00:00:00 2001 From: Yu-Han Yang Date: Tue, 25 May 2021 14:29:40 -0700 Subject: [PATCH] Fix scrolling issue after MLS switches Bug: 187546020 Test: on device Change-Id: Ie1c573396cbc8b3256db5e350c622e566a44495c --- .../android/settings/location/LocationSettings.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) 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,