From b7e1ececead371a233e615560fb3fbb86373ed75 Mon Sep 17 00:00:00 2001 From: Yanting Yang Date: Fri, 10 Apr 2020 20:08:38 +0800 Subject: [PATCH] Fix breadcrumb of search results provided by Settings 1. Settings Search need Settings to provide custom site map pairs to build up full breadcrumb for the search results from below pages. - PowerUsageAdvanced - RecentLocationRequestSeeAllFragment - UsbDetailsFragment - UserBackupSettingsActivity 2. Update the screen title of Backup raw index data from Settings to Backup to display correct breadcrumb in Settings Search. Bug: 147851992 Bug: 151206664 Fixes: 152368059 Test: visual and robotests Change-Id: Iaebab8d549bba6be7623708f9833349654e7f2a7 --- .../backup/UserBackupSettingsActivity.java | 4 +-- .../search/CustomSiteMapRegistry.java | 15 ++++++++ .../search/CustomSiteMapRegistryTest.java | 35 +++++++++++++++++++ 3 files changed, 52 insertions(+), 2 deletions(-) diff --git a/src/com/android/settings/backup/UserBackupSettingsActivity.java b/src/com/android/settings/backup/UserBackupSettingsActivity.java index 08461ad787a..e6d313c61ca 100644 --- a/src/com/android/settings/backup/UserBackupSettingsActivity.java +++ b/src/com/android/settings/backup/UserBackupSettingsActivity.java @@ -29,8 +29,8 @@ import androidx.fragment.app.FragmentManager; import com.android.settings.R; import com.android.settings.search.BaseSearchIndexProvider; import com.android.settingslib.search.Indexable; -import com.android.settingslib.search.SearchIndexableRaw; import com.android.settingslib.search.SearchIndexable; +import com.android.settingslib.search.SearchIndexableRaw; import java.util.ArrayList; import java.util.List; @@ -109,7 +109,7 @@ public class UserBackupSettingsActivity extends FragmentActivity implements Inde // Add the activity title SearchIndexableRaw data = new SearchIndexableRaw(context); data.title = context.getString(R.string.privacy_settings_title); - data.screenTitle = context.getString(R.string.settings_label); + data.screenTitle = context.getString(R.string.privacy_settings_title); data.keywords = context.getString(R.string.keywords_backup); data.intentTargetPackage = context.getPackageName(); data.intentTargetClass = UserBackupSettingsActivity.class.getName(); diff --git a/src/com/android/settings/search/CustomSiteMapRegistry.java b/src/com/android/settings/search/CustomSiteMapRegistry.java index 300cf17211d..756479b2495 100644 --- a/src/com/android/settings/search/CustomSiteMapRegistry.java +++ b/src/com/android/settings/search/CustomSiteMapRegistry.java @@ -19,9 +19,17 @@ package com.android.settings.search; import android.util.ArrayMap; import com.android.settings.DisplaySettings; +import com.android.settings.backup.UserBackupSettingsActivity; +import com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment; +import com.android.settings.connecteddevice.usb.UsbDetailsFragment; +import com.android.settings.fuelgauge.PowerUsageAdvanced; +import com.android.settings.fuelgauge.PowerUsageSummary; +import com.android.settings.location.LocationSettings; +import com.android.settings.location.RecentLocationRequestSeeAllFragment; import com.android.settings.network.NetworkDashboardFragment; import com.android.settings.security.SecuritySettings; import com.android.settings.security.screenlock.ScreenLockSettings; +import com.android.settings.system.SystemDashboardFragment; import com.android.settings.wallpaper.WallpaperSuggestionActivity; import com.android.settings.wifi.WifiSettings2; @@ -44,5 +52,12 @@ public class CustomSiteMapRegistry { WallpaperSuggestionActivity.class.getName(), DisplaySettings.class.getName()); CUSTOM_SITE_MAP.put( WifiSettings2.class.getName(), NetworkDashboardFragment.class.getName()); + CUSTOM_SITE_MAP.put(PowerUsageAdvanced.class.getName(), PowerUsageSummary.class.getName()); + CUSTOM_SITE_MAP.put(RecentLocationRequestSeeAllFragment.class.getName(), + LocationSettings.class.getName()); + CUSTOM_SITE_MAP.put(UsbDetailsFragment.class.getName(), + ConnectedDeviceDashboardFragment.class.getName()); + CUSTOM_SITE_MAP.put(UserBackupSettingsActivity.class.getName(), + SystemDashboardFragment.class.getName()); } } diff --git a/tests/robotests/src/com/android/settings/search/CustomSiteMapRegistryTest.java b/tests/robotests/src/com/android/settings/search/CustomSiteMapRegistryTest.java index 5bd4538dfa5..5c78a6bde68 100644 --- a/tests/robotests/src/com/android/settings/search/CustomSiteMapRegistryTest.java +++ b/tests/robotests/src/com/android/settings/search/CustomSiteMapRegistryTest.java @@ -19,9 +19,17 @@ package com.android.settings.search; import static com.google.common.truth.Truth.assertThat; import com.android.settings.DisplaySettings; +import com.android.settings.backup.UserBackupSettingsActivity; +import com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment; +import com.android.settings.connecteddevice.usb.UsbDetailsFragment; +import com.android.settings.fuelgauge.PowerUsageAdvanced; +import com.android.settings.fuelgauge.PowerUsageSummary; +import com.android.settings.location.LocationSettings; +import com.android.settings.location.RecentLocationRequestSeeAllFragment; import com.android.settings.network.NetworkDashboardFragment; import com.android.settings.security.SecuritySettings; import com.android.settings.security.screenlock.ScreenLockSettings; +import com.android.settings.system.SystemDashboardFragment; import com.android.settings.wallpaper.WallpaperSuggestionActivity; import com.android.settings.wifi.WifiSettings2; @@ -50,4 +58,31 @@ public class CustomSiteMapRegistryTest { assertThat(CustomSiteMapRegistry.CUSTOM_SITE_MAP.get(WifiSettings2.class.getName())) .isEqualTo(NetworkDashboardFragment.class.getName()); } + + @Test + public void shouldContainPowerUsageAdvancedPairs() { + assertThat(CustomSiteMapRegistry.CUSTOM_SITE_MAP.get(PowerUsageAdvanced.class.getName())) + .isEqualTo(PowerUsageSummary.class.getName()); + } + + @Test + public void shouldContainRecentLocationRequestSeeAllFragmentPairs() { + assertThat(CustomSiteMapRegistry.CUSTOM_SITE_MAP.get( + RecentLocationRequestSeeAllFragment.class.getName())).isEqualTo( + LocationSettings.class.getName()); + } + + @Test + public void shouldContainUsbDetailsFragmentPairs() { + assertThat(CustomSiteMapRegistry.CUSTOM_SITE_MAP.get( + UsbDetailsFragment.class.getName())).isEqualTo( + ConnectedDeviceDashboardFragment.class.getName()); + } + + @Test + public void shouldContainUserBackupSettingsActivityPairs() { + assertThat(CustomSiteMapRegistry.CUSTOM_SITE_MAP.get( + UserBackupSettingsActivity.class.getName())).isEqualTo( + SystemDashboardFragment.class.getName()); + } }