Use DashboardFeatureProvider to load homepage tiles.
Adding support to homepage category.
Test: SettingsRoboTests for regression. Will write tests for new feature
soon once we are set on the data structure.
Bug: 31781480
Change-Id: I25fa367fecb643f17e23f0182df7585bf1fcdd02
diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java
index 69b86fe..ecfc373 100644
--- a/src/com/android/settings/SettingsActivity.java
+++ b/src/com/android/settings/SettingsActivity.java
@@ -55,6 +55,7 @@
import com.android.settings.accessibility.AccessibilitySettings;
import com.android.settings.accessibility.AccessibilitySettingsForSetupWizard;
import com.android.settings.accessibility.CaptionPropertiesFragment;
+import com.android.settings.accessibility.ToggleDaltonizerPreferenceFragment;
import com.android.settings.accounts.AccountSettings;
import com.android.settings.accounts.AccountSyncSettings;
import com.android.settings.accounts.ChooseAccountActivity;
@@ -74,7 +75,10 @@
import com.android.settings.bluetooth.BluetoothSettings;
import com.android.settings.core.instrumentation.SharedPreferencesLogger;
import com.android.settings.dashboard.DashboardContainerFragment;
+import com.android.settings.dashboard.DashboardFeatureProvider;
+import com.android.settings.dashboard.DashboardSummary;
import com.android.settings.dashboard.SearchResultsSummary;
+import com.android.settings.dashboard.SupportFragment;
import com.android.settings.datausage.DataUsageSummary;
import com.android.settings.deletionhelper.AutomaticStorageManagerSettings;
import com.android.settings.deviceinfo.ImeiInformation;
@@ -113,6 +117,7 @@
import com.android.settings.notification.ZenModeScheduleRuleSettings;
import com.android.settings.notification.ZenModeSettings;
import com.android.settings.notification.ZenModeVisualInterruptionSettings;
+import com.android.settings.overlay.FeatureFactory;
import com.android.settings.print.PrintJobSettingsFragment;
import com.android.settings.print.PrintSettingsFragment;
import com.android.settings.qstile.DevelopmentTiles;
@@ -294,7 +299,7 @@
AccessibilitySettings.class.getName(),
AccessibilitySettingsForSetupWizard.class.getName(),
CaptionPropertiesFragment.class.getName(),
- com.android.settings.accessibility.ToggleDaltonizerPreferenceFragment.class.getName(),
+ ToggleDaltonizerPreferenceFragment.class.getName(),
TextToSpeechSettings.class.getName(),
StorageSettings.class.getName(),
PrivateVolumeForget.class.getName(),
@@ -357,7 +362,8 @@
MasterClear.class.getName(),
NightDisplaySettings.class.getName(),
ManageDomainUrls.class.getName(),
- AutomaticStorageManagerSettings.class.getName()
+ AutomaticStorageManagerSettings.class.getName(),
+ SupportFragment.class.getName()
};
@@ -424,6 +430,7 @@
private boolean mNeedToRevertToInitialFragment = false;
+ private DashboardFeatureProvider mDashboardFeatureProvider;
private Intent mResultIntentData;
private ComponentName mCurrentSuggestion;
@@ -533,7 +540,8 @@
protected void onCreate(Bundle savedState) {
super.onCreate(savedState);
long startTime = System.currentTimeMillis();
-
+ mDashboardFeatureProvider =
+ FeatureFactory.getFactory(this).getDashboardFeatureProvider(this);
// Should happen before any call to getIntent()
getMetaData();
@@ -643,9 +651,13 @@
final Bundle args = new Bundle();
final String extraName = DashboardContainerFragment.EXTRA_SELECT_SETTINGS_TAB;
args.putString(extraName, intent.getStringExtra(extraName));
-
- switchToFragment(DashboardContainerFragment.class.getName(), args, false, false,
- mInitialTitleResId, mInitialTitle, false);
+ if (isDashboardFeatureEnabled()) {
+ switchToFragment(DashboardSummary.class.getName(), args, false, false,
+ mInitialTitleResId, mInitialTitle, false);
+ } else {
+ switchToFragment(DashboardContainerFragment.class.getName(), args, false, false,
+ mInitialTitleResId, mInitialTitle, false);
+ }
}
}
@@ -1114,7 +1126,13 @@
if (UserHandle.MU_ENABLED && !isAdmin) {
// When on restricted users, disable all extra categories (but only the settings ones).
- List<DashboardCategory> categories = getDashboardCategories();
+ List<DashboardCategory> categories;
+ if (isDashboardFeatureEnabled()) {
+ categories = mDashboardFeatureProvider.getAllCategories();
+ } else {
+ categories = getDashboardCategories();
+ }
+
for (DashboardCategory category : categories) {
for (Tile tile : category.tiles) {
ComponentName component = tile.intent.getComponent();
@@ -1165,6 +1183,15 @@
}
}
+ @Override
+ protected boolean isDashboardFeatureEnabled() {
+ if (mDashboardFeatureProvider == null) {
+ mDashboardFeatureProvider =
+ FeatureFactory.getFactory(this).getDashboardFeatureProvider(this);
+ }
+ return mDashboardFeatureProvider.isEnabled();
+ }
+
// give subclasses access to the Next button
public boolean hasNextButton() {
return mNextButton != null;