Loading AndroidManifest.xml +18 −0 Original line number Diff line number Diff line Loading @@ -2275,6 +2275,8 @@ </intent-filter> <meta-data android:name="com.android.settings.category" android:value="com.android.settings.category.device" /> <meta-data android:name="com.android.settings.iacategory" android:value="com.android.settings.category.homepage" /> <meta-data android:name="com.android.settings.FRAGMENT_CLASS" android:value="com.android.settings.fuelgauge.PowerUsageSummary" /> </activity> Loading Loading @@ -3030,6 +3032,22 @@ android:value="com.android.settings.deletionhelper.AutomaticStorageManagerSettings" /> </activity> <!-- Information architecture host activities --> <activity android:name=".Settings$SupportActivity" android:label="@string/page_tab_title_support" android:icon="@drawable/ic_help_24dp"> <intent-filter android:priority="-1"> <action android:name="com.android.settings.action.SETTINGS" /> </intent-filter> <meta-data android:name="com.android.settings.iacategory" android:value="com.android.settings.category.homepage" /> <meta-data android:name="com.android.settings.FRAGMENT_CLASS" android:value="com.android.settings.dashboard.SupportFragment"/> <meta-data android:name="com.android.settings.summary" android:resource="@string/help_label" /> </activity> <service android:name=".SettingsDumpService" android:exported="true" Loading src/com/android/settings/Settings.java +4 −0 Original line number Diff line number Diff line Loading @@ -159,4 +159,8 @@ public class Settings extends SettingsActivity { public static class DeviceSettings extends SettingsActivity { /* empty */ } public static class PersonalSettings extends SettingsActivity { /* empty */ } public static class SystemSettings extends SettingsActivity { /* empty */ } // Top level categories for new IA public static class SupportActivity extends SettingsActivity {} } src/com/android/settings/SettingsActivity.java +34 −7 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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(), Loading Loading @@ -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() }; Loading Loading @@ -424,6 +430,7 @@ public class SettingsActivity extends SettingsDrawerActivity private boolean mNeedToRevertToInitialFragment = false; private DashboardFeatureProvider mDashboardFeatureProvider; private Intent mResultIntentData; private ComponentName mCurrentSuggestion; Loading Loading @@ -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(); Loading Loading @@ -643,11 +651,15 @@ public class SettingsActivity extends SettingsDrawerActivity final Bundle args = new Bundle(); final String extraName = DashboardContainerFragment.EXTRA_SELECT_SETTINGS_TAB; args.putString(extraName, intent.getStringExtra(extraName)); if (isDashboardFeatureEnabled()) { switchToFragment(DashboardSummary.class.getName(), args, false, false, mInitialTitleResId, mInitialTitle, false); } else { switchToFragment(DashboardContainerFragment.class.getName(), args, false, false, mInitialTitleResId, mInitialTitle, false); } } } mActionBar = getActionBar(); if (mActionBar != null) { Loading Loading @@ -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(); Loading Loading @@ -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; Loading src/com/android/settings/dashboard/DashboardFeatureProvider.java +17 −2 Original line number Diff line number Diff line Loading @@ -15,12 +15,27 @@ */ package com.android.settings.dashboard; import android.content.Context; import com.android.settingslib.drawer.DashboardCategory; import java.util.List; /** * FeatureProvider for dashboard (aka settings homepage). */ public interface DashboardFeatureProvider { boolean shouldUseNewIALayout(Context context); /** * Whether or not this feature is enabled. */ boolean isEnabled(); /** * Get tiles (wrapped in {@link DashboardCategory}) for homepage. */ DashboardCategory getTilesForHomepage(); /** * Get all tiles, grouped by category. */ List<DashboardCategory> getAllCategories(); } src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java +25 −1 Original line number Diff line number Diff line Loading @@ -18,14 +18,38 @@ package com.android.settings.dashboard; import android.content.Context; import com.android.settingslib.drawer.CategoryKey; import com.android.settingslib.drawer.CategoryManager; import com.android.settingslib.drawer.DashboardCategory; import java.util.List; /** * Impl for {@code DashboardFeatureProvider}. */ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider { protected final Context mContext; private final CategoryManager mCategoryManager; public DashboardFeatureProviderImpl(Context context) { mContext = context; mCategoryManager = CategoryManager.get(); } @Override public boolean shouldUseNewIALayout(Context context) { public boolean isEnabled() { return false; } @Override public DashboardCategory getTilesForHomepage() { return mCategoryManager.getTilesByCategory(mContext, CategoryKey.CATEGORY_HOMEPAGE); } @Override public List<DashboardCategory> getAllCategories() { return mCategoryManager.getCategories(mContext); } } Loading
AndroidManifest.xml +18 −0 Original line number Diff line number Diff line Loading @@ -2275,6 +2275,8 @@ </intent-filter> <meta-data android:name="com.android.settings.category" android:value="com.android.settings.category.device" /> <meta-data android:name="com.android.settings.iacategory" android:value="com.android.settings.category.homepage" /> <meta-data android:name="com.android.settings.FRAGMENT_CLASS" android:value="com.android.settings.fuelgauge.PowerUsageSummary" /> </activity> Loading Loading @@ -3030,6 +3032,22 @@ android:value="com.android.settings.deletionhelper.AutomaticStorageManagerSettings" /> </activity> <!-- Information architecture host activities --> <activity android:name=".Settings$SupportActivity" android:label="@string/page_tab_title_support" android:icon="@drawable/ic_help_24dp"> <intent-filter android:priority="-1"> <action android:name="com.android.settings.action.SETTINGS" /> </intent-filter> <meta-data android:name="com.android.settings.iacategory" android:value="com.android.settings.category.homepage" /> <meta-data android:name="com.android.settings.FRAGMENT_CLASS" android:value="com.android.settings.dashboard.SupportFragment"/> <meta-data android:name="com.android.settings.summary" android:resource="@string/help_label" /> </activity> <service android:name=".SettingsDumpService" android:exported="true" Loading
src/com/android/settings/Settings.java +4 −0 Original line number Diff line number Diff line Loading @@ -159,4 +159,8 @@ public class Settings extends SettingsActivity { public static class DeviceSettings extends SettingsActivity { /* empty */ } public static class PersonalSettings extends SettingsActivity { /* empty */ } public static class SystemSettings extends SettingsActivity { /* empty */ } // Top level categories for new IA public static class SupportActivity extends SettingsActivity {} }
src/com/android/settings/SettingsActivity.java +34 −7 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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(), Loading Loading @@ -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() }; Loading Loading @@ -424,6 +430,7 @@ public class SettingsActivity extends SettingsDrawerActivity private boolean mNeedToRevertToInitialFragment = false; private DashboardFeatureProvider mDashboardFeatureProvider; private Intent mResultIntentData; private ComponentName mCurrentSuggestion; Loading Loading @@ -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(); Loading Loading @@ -643,11 +651,15 @@ public class SettingsActivity extends SettingsDrawerActivity final Bundle args = new Bundle(); final String extraName = DashboardContainerFragment.EXTRA_SELECT_SETTINGS_TAB; args.putString(extraName, intent.getStringExtra(extraName)); if (isDashboardFeatureEnabled()) { switchToFragment(DashboardSummary.class.getName(), args, false, false, mInitialTitleResId, mInitialTitle, false); } else { switchToFragment(DashboardContainerFragment.class.getName(), args, false, false, mInitialTitleResId, mInitialTitle, false); } } } mActionBar = getActionBar(); if (mActionBar != null) { Loading Loading @@ -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(); Loading Loading @@ -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; Loading
src/com/android/settings/dashboard/DashboardFeatureProvider.java +17 −2 Original line number Diff line number Diff line Loading @@ -15,12 +15,27 @@ */ package com.android.settings.dashboard; import android.content.Context; import com.android.settingslib.drawer.DashboardCategory; import java.util.List; /** * FeatureProvider for dashboard (aka settings homepage). */ public interface DashboardFeatureProvider { boolean shouldUseNewIALayout(Context context); /** * Whether or not this feature is enabled. */ boolean isEnabled(); /** * Get tiles (wrapped in {@link DashboardCategory}) for homepage. */ DashboardCategory getTilesForHomepage(); /** * Get all tiles, grouped by category. */ List<DashboardCategory> getAllCategories(); }
src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java +25 −1 Original line number Diff line number Diff line Loading @@ -18,14 +18,38 @@ package com.android.settings.dashboard; import android.content.Context; import com.android.settingslib.drawer.CategoryKey; import com.android.settingslib.drawer.CategoryManager; import com.android.settingslib.drawer.DashboardCategory; import java.util.List; /** * Impl for {@code DashboardFeatureProvider}. */ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider { protected final Context mContext; private final CategoryManager mCategoryManager; public DashboardFeatureProviderImpl(Context context) { mContext = context; mCategoryManager = CategoryManager.get(); } @Override public boolean shouldUseNewIALayout(Context context) { public boolean isEnabled() { return false; } @Override public DashboardCategory getTilesForHomepage() { return mCategoryManager.getTilesByCategory(mContext, CategoryKey.CATEGORY_HOMEPAGE); } @Override public List<DashboardCategory> getAllCategories() { return mCategoryManager.getCategories(mContext); } }