From 4dd4567bfc5b0080e20a0c9ef73163124ca64d3a Mon Sep 17 00:00:00 2001 From: Yanting Yang Date: Tue, 6 Oct 2020 16:17:01 +0800 Subject: [PATCH] Preliminary classification for homepage IA grouping Bug: 168166015 Test: robotest & visual Change-Id: If02639d8a5b8886e036b30c5c654c27db5837b62 --- res/xml/top_level_settings_grouped.xml | 183 ++++++++++++++++++ .../settings/homepage/TopLevelSettings.java | 20 +- .../homepage/TopLevelSettingsTest.java | 17 ++ 3 files changed, 219 insertions(+), 1 deletion(-) create mode 100644 res/xml/top_level_settings_grouped.xml diff --git a/res/xml/top_level_settings_grouped.xml b/res/xml/top_level_settings_grouped.xml new file mode 100644 index 00000000000..964c1980a0e --- /dev/null +++ b/res/xml/top_level_settings_grouped.xml @@ -0,0 +1,183 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/com/android/settings/homepage/TopLevelSettings.java b/src/com/android/settings/homepage/TopLevelSettings.java index 8a7f4bdf43f..47a46f2912f 100644 --- a/src/com/android/settings/homepage/TopLevelSettings.java +++ b/src/com/android/settings/homepage/TopLevelSettings.java @@ -22,12 +22,15 @@ import static com.android.settingslib.search.SearchIndexable.MOBILE; import android.app.settings.SettingsEnums; import android.content.Context; import android.os.Bundle; +import android.provider.SearchIndexableResource; +import android.util.FeatureFlagUtils; import androidx.fragment.app.Fragment; import androidx.preference.Preference; import androidx.preference.PreferenceFragmentCompat; import com.android.settings.R; +import com.android.settings.core.FeatureFlags; import com.android.settings.core.SubSettingLauncher; import com.android.settings.dashboard.DashboardFragment; import com.android.settings.search.BaseSearchIndexProvider; @@ -35,6 +38,9 @@ import com.android.settings.support.SupportPreferenceController; import com.android.settingslib.core.instrumentation.Instrumentable; import com.android.settingslib.search.SearchIndexable; +import java.util.Arrays; +import java.util.List; + @SearchIndexable(forTarget = MOBILE) public class TopLevelSettings extends DashboardFragment implements PreferenceFragmentCompat.OnPreferenceStartFragmentCallback { @@ -50,6 +56,9 @@ public class TopLevelSettings extends DashboardFragment implements @Override protected int getPreferenceScreenResId() { + if (FeatureFlagUtils.isEnabled(getContext(), FeatureFlags.SILKY_HOME)) { + return R.xml.top_level_settings_grouped; + } return R.xml.top_level_settings; } @@ -100,7 +109,16 @@ public class TopLevelSettings extends DashboardFragment implements } public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = - new BaseSearchIndexProvider(R.xml.top_level_settings) { + new BaseSearchIndexProvider() { + + @Override + public List getXmlResourcesToIndex( + Context context, boolean enabled) { + final SearchIndexableResource sir = new SearchIndexableResource(context); + sir.xmlResId = FeatureFlagUtils.isEnabled(context, FeatureFlags.SILKY_HOME) + ? R.xml.top_level_settings_grouped : R.xml.top_level_settings; + return Arrays.asList(sir); + } @Override protected boolean isPageSearchEnabled(Context context) { diff --git a/tests/robotests/src/com/android/settings/homepage/TopLevelSettingsTest.java b/tests/robotests/src/com/android/settings/homepage/TopLevelSettingsTest.java index 5a6ca86aa18..0cc6b434614 100644 --- a/tests/robotests/src/com/android/settings/homepage/TopLevelSettingsTest.java +++ b/tests/robotests/src/com/android/settings/homepage/TopLevelSettingsTest.java @@ -22,6 +22,10 @@ import static org.mockito.Mockito.spy; import static org.mockito.Mockito.when; import android.content.Context; +import android.util.FeatureFlagUtils; + +import com.android.settings.R; +import com.android.settings.core.FeatureFlags; import org.junit.Before; import org.junit.Test; @@ -45,4 +49,17 @@ public class TopLevelSettingsTest { public void shouldForceRoundedIcon_true() { assertThat(mSettings.shouldForceRoundedIcon()).isTrue(); } + + @Test + public void getPreferenceScreenResId_silkyHomeDisabled_defaultSettings() { + FeatureFlagUtils.setEnabled(mContext, FeatureFlags.SILKY_HOME, false); + assertThat(mSettings.getPreferenceScreenResId()).isEqualTo(R.xml.top_level_settings); + } + + @Test + public void getPreferenceScreenResId_silkyHomeEnabled_groupedSettings() { + FeatureFlagUtils.setEnabled(mContext, FeatureFlags.SILKY_HOME, true); + assertThat(mSettings.getPreferenceScreenResId()).isEqualTo( + R.xml.top_level_settings_grouped); + } }