From 732514cd5f4b32bf6b033e321f11e51449902431 Mon Sep 17 00:00:00 2001 From: Stanley Wang Date: Mon, 18 May 2020 20:17:19 +0800 Subject: [PATCH] Fix the search result "Google Account" doesn't work. - The "Google Account" item will launch the AccountDetailDashboardFragment. To launch the account detail page, we need the intent extras, account, account label and account type. - Currently, SI doesn't support to index the intent extras, so we launch AccountDashboardFragment instead of AccountDetailDashboardFragment. Fixes: 153626405 Test: manual test the search result and run Settings robotest Change-Id: I081bd447c3f8422fb8859146b1ed4d7fcbc06810 --- .../settings/dashboard/DashboardFragmentRegistry.java | 4 ++++ .../dashboard/DashboardFragmentRegistryTest.java | 11 +++++++++++ 2 files changed, 15 insertions(+) diff --git a/src/com/android/settings/dashboard/DashboardFragmentRegistry.java b/src/com/android/settings/dashboard/DashboardFragmentRegistry.java index f71949455d1..f8a4f39ef77 100644 --- a/src/com/android/settings/dashboard/DashboardFragmentRegistry.java +++ b/src/com/android/settings/dashboard/DashboardFragmentRegistry.java @@ -125,5 +125,9 @@ public class DashboardFragmentRegistry { for (Map.Entry parentToKey : PARENT_TO_CATEGORY_KEY_MAP.entrySet()) { CATEGORY_KEY_TO_PARENT_MAP.put(parentToKey.getValue(), parentToKey.getKey()); } + + // For injection index, redirect CATEGORY_ACCOUNT_DETAIL to AccountDashboardFragment. + CATEGORY_KEY_TO_PARENT_MAP.put(CategoryKey.CATEGORY_ACCOUNT_DETAIL, + AccountDashboardFragment.class.getName()); } } diff --git a/tests/robotests/src/com/android/settings/dashboard/DashboardFragmentRegistryTest.java b/tests/robotests/src/com/android/settings/dashboard/DashboardFragmentRegistryTest.java index c6b24658dbd..10aaad8b2f0 100644 --- a/tests/robotests/src/com/android/settings/dashboard/DashboardFragmentRegistryTest.java +++ b/tests/robotests/src/com/android/settings/dashboard/DashboardFragmentRegistryTest.java @@ -18,6 +18,9 @@ package com.android.settings.dashboard; import static com.google.common.truth.Truth.assertThat; +import com.android.settings.accounts.AccountDashboardFragment; +import com.android.settingslib.drawer.CategoryKey; + import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.RobolectricTestRunner; @@ -29,4 +32,12 @@ public class DashboardFragmentRegistryTest { assertThat(DashboardFragmentRegistry.CATEGORY_KEY_TO_PARENT_MAP.size()) .isEqualTo(DashboardFragmentRegistry.PARENT_TO_CATEGORY_KEY_MAP.size()); } + + @Test + public void accountDetailCategoryShouldRedirectToAccountDashboardFragment() { + final String fragment = DashboardFragmentRegistry.CATEGORY_KEY_TO_PARENT_MAP.get( + CategoryKey.CATEGORY_ACCOUNT_DETAIL); + + assertThat(fragment).isEqualTo(AccountDashboardFragment.class.getName()); + } }