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()); }