From 45b8181f46a37907681664fb2e17b87ff8965432 Mon Sep 17 00:00:00 2001 From: Yanting Yang Date: Fri, 15 Jan 2021 20:47:50 +0800 Subject: [PATCH] Refine behaviors of new app page - Make the new app page unsearchable when the silky home is disable. - Add Special app access back since the move action is not confirmed. - Update preference keys to fix the search conflict with old app page. Bug: 174964405 Test: robotest & visual on Settings Search Change-Id: If92b084170ef0694d034ddde786f333b4b576572 --- res/xml/apps.xml | 11 ++++++-- .../applications/AppDashboardFragment.java | 28 ++++++++++++++++++- .../AppsPreferenceController.java | 2 +- 3 files changed, 37 insertions(+), 4 deletions(-) diff --git a/res/xml/apps.xml b/res/xml/apps.xml index 54af67bf986..df295bf745f 100644 --- a/res/xml/apps.xml +++ b/res/xml/apps.xml @@ -22,7 +22,7 @@ android:title="@string/apps_dashboard_title"> @@ -66,4 +66,11 @@ android:key="dashboard_tile_placeholder" android:order="10"/> + + diff --git a/src/com/android/settings/applications/AppDashboardFragment.java b/src/com/android/settings/applications/AppDashboardFragment.java index d513cc7ccd0..fc4bcd0c284 100644 --- a/src/com/android/settings/applications/AppDashboardFragment.java +++ b/src/com/android/settings/applications/AppDashboardFragment.java @@ -18,8 +18,11 @@ package com.android.settings.applications; import android.app.settings.SettingsEnums; import android.content.Context; +import android.provider.SearchIndexableResource; +import android.util.FeatureFlagUtils; import com.android.settings.R; +import com.android.settings.core.FeatureFlags; import com.android.settings.dashboard.DashboardFragment; import com.android.settings.search.BaseSearchIndexProvider; import com.android.settingslib.core.AbstractPreferenceController; @@ -27,6 +30,7 @@ import com.android.settingslib.drawer.CategoryKey; import com.android.settingslib.search.SearchIndexable; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; /** Settings page for apps. */ @@ -65,6 +69,7 @@ public class AppDashboardFragment extends DashboardFragment { @Override public void onAttach(Context context) { super.onAttach(context); + use(SpecialAppAccessPreferenceController.class).setSession(getSettingsLifecycle()); mAppsPreferenceController = use(AppsPreferenceController.class); mAppsPreferenceController.setFragment(this /* fragment */); } @@ -85,5 +90,26 @@ public class AppDashboardFragment extends DashboardFragment { } public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = - new BaseSearchIndexProvider(R.xml.apps); + new BaseSearchIndexProvider() { + @Override + public List getXmlResourcesToIndex( + Context context, boolean enabled) { + final SearchIndexableResource sir = new SearchIndexableResource(context); + sir.xmlResId = R.xml.apps; + return Arrays.asList(sir); + } + + @Override + public List createPreferenceControllers( + Context context) { + return buildPreferenceControllers(context); + } + + @Override + protected boolean isPageSearchEnabled(Context context) { + // TODO(b/174964405): This method should be removed when silky home launched. + // Only allow this page can be searchable when silky home enabled. + return FeatureFlagUtils.isEnabled(context, FeatureFlags.SILKY_HOME); + } + }; } diff --git a/src/com/android/settings/applications/AppsPreferenceController.java b/src/com/android/settings/applications/AppsPreferenceController.java index 08fd9c5385b..72d4492355e 100644 --- a/src/com/android/settings/applications/AppsPreferenceController.java +++ b/src/com/android/settings/applications/AppsPreferenceController.java @@ -54,7 +54,7 @@ public class AppsPreferenceController extends BasePreferenceController { @VisibleForTesting static final String KEY_GENERAL_CATEGORY = "general_category"; @VisibleForTesting - static final String KEY_ALL_APP_INFO = "all_app_info"; + static final String KEY_ALL_APP_INFO = "all_app_infos"; @VisibleForTesting static final String KEY_SEE_ALL = "see_all_apps";