diff --git a/res/values/strings.xml b/res/values/strings.xml
index 41865ecdfaa..c6c0510d37f 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -3998,7 +3998,7 @@
Location for work profile
- App access to location
+ Manage location permissions
Location is off
- Recent location access
+ Past 24 hour access
+
+ See all
View details
+
+
+
diff --git a/res/xml/location_settings.xml b/res/xml/location_settings.xml
index 7a791360b28..cf80debc695 100644
--- a/res/xml/location_settings.xml
+++ b/res/xml/location_settings.xml
@@ -27,6 +27,13 @@
settings:controller=
"com.android.settings.location.RecentLocationAccessPreferenceController"/>
+
+
+
+
+
+
recentLocationAccesses = new ArrayList<>();
+ for (RecentLocationAccesses.Access access : mRecentLocationAccesses.getAppListSorted(
+ mShowSystem)) {
+ if (isRequestMatchesProfileType(userManager, access, mType)) {
+ recentLocationAccesses.add(access);
+ }
+ }
+
+ if (recentLocationAccesses.isEmpty()) {
+ // If there's no item to display, add a "No recent apps" item.
+ final Preference banner = new AppPreference(mContext);
+ banner.setTitle(R.string.location_no_recent_apps);
+ banner.setSelectable(false);
+ mCategoryAllRecentLocationAccess.addPreference(banner);
+ } else {
+ for (RecentLocationAccesses.Access request : recentLocationAccesses) {
+ final Preference appPreference = createAppPreference(
+ preference.getContext(),
+ request, mFragment);
+ mCategoryAllRecentLocationAccess.addPreference(appPreference);
+ }
+ }
+ }
+
+ /**
+ * Initialize {@link ProfileSelectFragment.ProfileType} of the controller
+ *
+ * @param type {@link ProfileSelectFragment.ProfileType} of the controller.
+ */
+ public void setProfileType(@ProfileSelectFragment.ProfileType int type) {
+ mType = type;
+ }
+
+ /**
+ * Set the value of {@link #mShowSystem}.
+ */
+ public void setShowSystem(boolean showSystem) {
+ mShowSystem = showSystem;
+ if (mPreference != null) {
+ updateState(mPreference);
+ }
+ }
+}
diff --git a/src/com/android/settings/search/CustomSiteMapRegistry.java b/src/com/android/settings/search/CustomSiteMapRegistry.java
index cd716fafd2c..84488469807 100644
--- a/src/com/android/settings/search/CustomSiteMapRegistry.java
+++ b/src/com/android/settings/search/CustomSiteMapRegistry.java
@@ -27,7 +27,7 @@ import com.android.settings.fuelgauge.PowerUsageSummary;
import com.android.settings.gestures.GestureNavigationSettingsFragment;
import com.android.settings.gestures.SystemNavigationGestureSettings;
import com.android.settings.location.LocationSettings;
-import com.android.settings.location.RecentLocationRequestSeeAllFragment;
+import com.android.settings.location.RecentLocationAccessSeeAllFragment;
import com.android.settings.network.NetworkDashboardFragment;
import com.android.settings.notification.zen.ZenModeBlockedEffectsSettings;
import com.android.settings.notification.zen.ZenModeRestrictNotificationsSettings;
@@ -57,7 +57,7 @@ public class CustomSiteMapRegistry {
CUSTOM_SITE_MAP.put(
WifiSettings.class.getName(), NetworkDashboardFragment.class.getName());
CUSTOM_SITE_MAP.put(PowerUsageAdvanced.class.getName(), PowerUsageSummary.class.getName());
- CUSTOM_SITE_MAP.put(RecentLocationRequestSeeAllFragment.class.getName(),
+ CUSTOM_SITE_MAP.put(RecentLocationAccessSeeAllFragment.class.getName(),
LocationSettings.class.getName());
CUSTOM_SITE_MAP.put(UsbDetailsFragment.class.getName(),
ConnectedDeviceDashboardFragment.class.getName());
diff --git a/tests/unit/src/com/android/settings/search/CustomSiteMapRegistryTest.java b/tests/unit/src/com/android/settings/search/CustomSiteMapRegistryTest.java
index 1a4737b2876..b8c3d57f445 100644
--- a/tests/unit/src/com/android/settings/search/CustomSiteMapRegistryTest.java
+++ b/tests/unit/src/com/android/settings/search/CustomSiteMapRegistryTest.java
@@ -29,7 +29,7 @@ import com.android.settings.fuelgauge.PowerUsageSummary;
import com.android.settings.gestures.GestureNavigationSettingsFragment;
import com.android.settings.gestures.SystemNavigationGestureSettings;
import com.android.settings.location.LocationSettings;
-import com.android.settings.location.RecentLocationRequestSeeAllFragment;
+import com.android.settings.location.RecentLocationAccessSeeAllFragment;
import com.android.settings.network.NetworkDashboardFragment;
import com.android.settings.notification.zen.ZenModeBlockedEffectsSettings;
import com.android.settings.notification.zen.ZenModeRestrictNotificationsSettings;
@@ -73,7 +73,7 @@ public class CustomSiteMapRegistryTest {
@Test
public void shouldContainRecentLocationRequestSeeAllFragmentPairs() {
assertThat(CustomSiteMapRegistry.CUSTOM_SITE_MAP.get(
- RecentLocationRequestSeeAllFragment.class.getName())).isEqualTo(
+ RecentLocationAccessSeeAllFragment.class.getName())).isEqualTo(
LocationSettings.class.getName());
}