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
This commit is contained in:
Kate Montgomery
2022-02-05 00:29:28 +00:00
parent 24d67e9a09
commit 9082be89bf
2 changed files with 20 additions and 1 deletions

View File

@@ -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;

View File

@@ -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
*