Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 96fa06eb authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Use DashboardFeatureProvider to load homepage tiles."

parents 4a42f242 a96a2d8d
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -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>
@@ -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"
+4 −0
Original line number Diff line number Diff line
@@ -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 {}

}
+34 −7
Original line number Diff line number Diff line
@@ -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,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) {
@@ -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;
+17 −2
Original line number Diff line number Diff line
@@ -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();
}
+25 −1
Original line number Diff line number Diff line
@@ -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