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
This commit is contained in:
Fan Zhang
2016-09-27 17:51:11 -07:00
parent 43d4c41c8b
commit a96a2d8d60
9 changed files with 185 additions and 39 deletions

View File

@@ -55,6 +55,7 @@ import com.android.settings.Settings.WifiSettingsActivity;
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.applications.WriteSettingsDetails;
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.ZenModePrioritySettings;
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 @@ public class SettingsActivity extends SettingsDrawerActivity
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 @@ public class SettingsActivity extends SettingsDrawerActivity
MasterClear.class.getName(),
NightDisplaySettings.class.getName(),
ManageDomainUrls.class.getName(),
AutomaticStorageManagerSettings.class.getName()
AutomaticStorageManagerSettings.class.getName(),
SupportFragment.class.getName()
};
@@ -424,6 +430,7 @@ public class SettingsActivity extends SettingsDrawerActivity
private boolean mNeedToRevertToInitialFragment = false;
private DashboardFeatureProvider mDashboardFeatureProvider;
private Intent mResultIntentData;
private ComponentName mCurrentSuggestion;
@@ -533,7 +540,8 @@ public class SettingsActivity extends SettingsDrawerActivity
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 @@ public class SettingsActivity extends SettingsDrawerActivity
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 @@ public class SettingsActivity extends SettingsDrawerActivity
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 @@ public class SettingsActivity extends SettingsDrawerActivity
}
}
@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;