From 9082be89bfabf6a3e34d7f8cc7d3181ba29da680 Mon Sep 17 00:00:00 2001 From: Kate Montgomery Date: Sat, 5 Feb 2022 00:29:28 +0000 Subject: [PATCH] Clear recent access list when fragment is paused. When the fragment is resumed, the recent access list will be reloaded. Clearing the list ahead of time results in a nicer animation and matches the animtion when the fragment is first open. Bug: 191503437 Test: manual Change-Id: I91d01057acc601e6b2a40401f8bd69c5f5aa3579 --- .../android/settings/location/LocationSettings.java | 12 +++++++++++- .../RecentLocationAccessPreferenceController.java | 9 +++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/location/LocationSettings.java b/src/com/android/settings/location/LocationSettings.java index 8f9787b08a5..13300c93c36 100644 --- a/src/com/android/settings/location/LocationSettings.java +++ b/src/com/android/settings/location/LocationSettings.java @@ -63,6 +63,7 @@ public class LocationSettings extends DashboardFragment implements private LocationSwitchBarController mSwitchBarController; private LocationEnabler mLocationEnabler; + private RecentLocationAccessPreferenceController mController; @Override public int getMetricsCategory() { @@ -86,12 +87,21 @@ public class LocationSettings extends DashboardFragment implements super.onAttach(context); use(AppLocationPermissionPreferenceController.class).init(this); - use(RecentLocationAccessPreferenceController.class).init(this); + mController = use(RecentLocationAccessPreferenceController.class); + mController.init(this); use(RecentLocationAccessSeeAllButtonPreferenceController.class).init(this); use(LocationForWorkPreferenceController.class).init(this); use(LocationSettingsFooterPreferenceController.class).init(this); } + @Override + public void onPause() { + super.onPause(); + if (mController != null) { + mController.clearPreferenceList(); + } + } + @Override protected int getPreferenceScreenResId() { return R.xml.location_settings; diff --git a/src/com/android/settings/location/RecentLocationAccessPreferenceController.java b/src/com/android/settings/location/RecentLocationAccessPreferenceController.java index ba660ee3c6d..ea3704cccc0 100644 --- a/src/com/android/settings/location/RecentLocationAccessPreferenceController.java +++ b/src/com/android/settings/location/RecentLocationAccessPreferenceController.java @@ -126,6 +126,15 @@ public class RecentLocationAccessPreferenceController extends LocationBasePrefer mCategoryRecentLocationRequests.setVisible(enabled); } + /** + * Clears the list of apps which recently accessed location from the screen. + */ + public void clearPreferenceList() { + if (mCategoryRecentLocationRequests != null) { + mCategoryRecentLocationRequests.removeAll(); + } + } + /** * Initialize {@link ProfileSelectFragment.ProfileType} of the controller *