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

Commit b00811da authored by Fan Zhang's avatar Fan Zhang
Browse files

Let fragment and indexProvider share prefControllers

Bug: 35812240
Test: make RunSettingsRoboTests
Change-Id: Ifd96f935836a52e0a56f170f3cdf9b9ddf7c499a
parent 6c146f2a
Loading
Loading
Loading
Loading
+30 −35
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.settings;

import android.app.Activity;
import android.app.Fragment;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
@@ -24,6 +25,7 @@ import android.provider.SearchIndexableResource;

import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.core.PreferenceController;
import com.android.settings.core.lifecycle.Lifecycle;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.dashboard.SummaryLoader;
import com.android.settings.deviceinfo.AdditionalSystemUpdatePreferenceController;
@@ -38,7 +40,6 @@ import com.android.settings.deviceinfo.ManualPreferenceController;
import com.android.settings.deviceinfo.RegulatoryInfoPreferenceController;
import com.android.settings.deviceinfo.SELinuxStatusPreferenceController;
import com.android.settings.deviceinfo.SafetyInfoPreferenceController;
import com.android.settings.deviceinfo.SafetyLegalPreferenceController;
import com.android.settings.deviceinfo.SecurityPatchPreferenceController;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.search.Indexable;
@@ -51,8 +52,6 @@ public class DeviceInfoSettings extends DashboardFragment implements Indexable {

    private static final String LOG_TAG = "DeviceInfoSettings";

    private BuildNumberPreferenceController mBuildNumberPreferenceController;

    @Override
    public int getMetricsCategory() {
        return MetricsEvent.DEVICEINFO;
@@ -65,7 +64,9 @@ public class DeviceInfoSettings extends DashboardFragment implements Indexable {

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (mBuildNumberPreferenceController.onActivityResult(requestCode, resultCode, data)) {
        final BuildNumberPreferenceController buildNumberPreferenceController =
                getPreferenceController(BuildNumberPreferenceController.class);
        if (buildNumberPreferenceController.onActivityResult(requestCode, resultCode, data)) {
            return;
        }
        super.onActivityResult(requestCode, resultCode, data);
@@ -83,24 +84,8 @@ public class DeviceInfoSettings extends DashboardFragment implements Indexable {

    @Override
    protected List<PreferenceController> getPreferenceControllers(Context context) {
        final List<PreferenceController> controllers = new ArrayList<>();
        mBuildNumberPreferenceController =
                new BuildNumberPreferenceController(context, getActivity(), this /* fragment */);
        getLifecycle().addObserver(mBuildNumberPreferenceController);
        controllers.add(mBuildNumberPreferenceController);
        controllers.add(new AdditionalSystemUpdatePreferenceController(context));
        controllers.add(new ManualPreferenceController(context));
        controllers.add(new FeedbackPreferenceController(this, context));
        controllers.add(new KernelVersionPreferenceController(context));
        controllers.add(new BasebandVersionPreferenceController(context));
        controllers.add(new FirmwareVersionPreferenceController(context, getLifecycle()));
        controllers.add(new RegulatoryInfoPreferenceController(context));
        controllers.add(new DeviceModelPreferenceController(context));
        controllers.add(new SecurityPatchPreferenceController(context));
        controllers.add(new FccEquipmentIdPreferenceController(context));
        controllers.add(new SELinuxStatusPreferenceController(context));
        controllers.add(new SafetyInfoPreferenceController(context));
        return controllers;
        return buildPreferenceControllers(context, getActivity(), this /* fragment */,
                getLifecycle());
    }

    private static class SummaryProvider implements SummaryLoader.SummaryProvider {
@@ -131,6 +116,26 @@ public class DeviceInfoSettings extends DashboardFragment implements Indexable {
        }
    };

    private static List<PreferenceController> buildPreferenceControllers(Context context,
            Activity activity, Fragment fragment, Lifecycle lifecycle) {
        final List<PreferenceController> controllers = new ArrayList<>();
        controllers.add(
                new BuildNumberPreferenceController(context, activity, fragment, lifecycle));
        controllers.add(new AdditionalSystemUpdatePreferenceController(context));
        controllers.add(new ManualPreferenceController(context));
        controllers.add(new FeedbackPreferenceController(fragment, context));
        controllers.add(new KernelVersionPreferenceController(context));
        controllers.add(new BasebandVersionPreferenceController(context));
        controllers.add(new FirmwareVersionPreferenceController(context, lifecycle));
        controllers.add(new RegulatoryInfoPreferenceController(context));
        controllers.add(new DeviceModelPreferenceController(context));
        controllers.add(new SecurityPatchPreferenceController(context));
        controllers.add(new FccEquipmentIdPreferenceController(context));
        controllers.add(new SELinuxStatusPreferenceController(context));
        controllers.add(new SafetyInfoPreferenceController(context));
        return controllers;
    }

    /**
     * For Search.
     */
@@ -146,19 +151,9 @@ public class DeviceInfoSettings extends DashboardFragment implements Indexable {
                }

                @Override
                public List<String> getNonIndexableKeys(Context context) {
                    final List<String> keys = new ArrayList<>();
                    new SafetyLegalPreferenceController(context).updateNonIndexableKeys(keys);
                    new BasebandVersionPreferenceController(context).updateNonIndexableKeys(keys);
                    new FeedbackPreferenceController(null, context).updateNonIndexableKeys(keys);
                    new AdditionalSystemUpdatePreferenceController(context)
                            .updateNonIndexableKeys(keys);
                    new RegulatoryInfoPreferenceController(context).updateNonIndexableKeys(keys);
                    new SecurityPatchPreferenceController(context).updateNonIndexableKeys(keys);
                    new FccEquipmentIdPreferenceController(context).updateNonIndexableKeys(keys);
                    new SELinuxStatusPreferenceController(context).updateNonIndexableKeys(keys);
                    new SafetyInfoPreferenceController(context).updateNonIndexableKeys(keys);
                    return keys;
                public List<PreferenceController> getPreferenceControllers(Context context) {
                    return buildPreferenceControllers(context, null /*activity */,
                            null /* fragment */, null /* lifecycle */);
                }
            };
}
+10 −30
Original line number Diff line number Diff line
@@ -69,6 +69,15 @@ public class DisplaySettings extends DashboardFragment {

    @Override
    protected List<PreferenceController> getPreferenceControllers(Context context) {
        return buildPreferenceControllers(context);
    }

    @Override
    protected int getHelpResource() {
        return R.string.help_uri_display;
    }

    private static List<PreferenceController> buildPreferenceControllers(Context context) {
        final List<PreferenceController> controllers = new ArrayList<>();
        controllers.add(new AutoBrightnessPreferenceController(context));
        controllers.add(new AutoRotatePreferenceController(context));
@@ -87,11 +96,6 @@ public class DisplaySettings extends DashboardFragment {
        return controllers;
    }

    @Override
    protected int getHelpResource() {
        return R.string.help_uri_display;
    }

    public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
            new BaseSearchIndexProvider() {
                @Override
@@ -105,33 +109,9 @@ public class DisplaySettings extends DashboardFragment {
                    return result;
                }

                @Override
                public List<String> getNonIndexableKeys(Context context) {
                    ArrayList<String> result = new ArrayList<>();

                    new AutoBrightnessPreferenceController(context).updateNonIndexableKeys(result);
                    new AutoRotatePreferenceController(context).updateNonIndexableKeys(result);
                    new CameraGesturePreferenceController(context).updateNonIndexableKeys(result);
                    new DozePreferenceController(context).updateNonIndexableKeys(result);
                    new FontSizePreferenceController(context).updateNonIndexableKeys(result);
                    new LiftToWakePreferenceController(context).updateNonIndexableKeys(result);
                    new NightDisplayPreferenceController(context).updateNonIndexableKeys(result);
                    new NightModePreferenceController(context).updateNonIndexableKeys(result);
                    new ScreenSaverPreferenceController(context).updateNonIndexableKeys(result);
                    new TapToWakePreferenceController(context).updateNonIndexableKeys(result);
                    new TimeoutPreferenceController(context).updateNonIndexableKeys(result);
                    new VrDisplayPreferenceController(context).updateNonIndexableKeys(result);
                    new WallpaperPreferenceController(context).updateNonIndexableKeys(result);
                    new ThemePreferenceController(context).updateNonIndexableKeys(result);

                    return result;
                }

                @Override
                public List<PreferenceController> getPreferenceControllers(Context context) {
                    final List<PreferenceController> controllers = new ArrayList<>();
                    controllers.add(new AutoBrightnessPreferenceController(context));
                    return controllers;
                    return buildPreferenceControllers(context);
                }
            };
}
+16 −22
Original line number Diff line number Diff line
@@ -50,15 +50,7 @@ public class ManageAssist extends DashboardFragment {

    @Override
    protected List<PreferenceController> getPreferenceControllers(Context context) {
        final Lifecycle lifecycle = getLifecycle();
        final List<PreferenceController> controllers = new ArrayList<>();
        controllers.add(new DefaultAssistPreferenceController(context));
        controllers.add(new GestureAssistPreferenceController(context));
        controllers.add(new AssistContextPreferenceController(context, lifecycle));
        controllers.add(new AssistScreenshotPreferenceController(context, lifecycle));
        controllers.add(new AssistFlashScreenPreferenceController(context, lifecycle));
        controllers.add(new DefaultVoiceInputPreferenceController(context, lifecycle));
        return controllers;
        return buildPreferenceControllers(context, getLifecycle());
    }

    @Override
@@ -74,6 +66,19 @@ public class ManageAssist extends DashboardFragment {
                .setTitle(R.string.assist_footer);
    }

    private static List<PreferenceController> buildPreferenceControllers(Context context,
            Lifecycle lifecycle) {
        final List<PreferenceController> controllers = new ArrayList<>();
        controllers.add(new DefaultAssistPreferenceController(context));
        controllers.add(new GestureAssistPreferenceController(context));
        controllers.add(new AssistContextPreferenceController(context, lifecycle));
        controllers.add(new AssistScreenshotPreferenceController(context, lifecycle));
        controllers.add(new AssistFlashScreenPreferenceController(context, lifecycle));
        controllers.add(new DefaultVoiceInputPreferenceController(context, lifecycle));
        return controllers;
    }


    public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
            new BaseSearchIndexProvider() {
                @Override
@@ -85,19 +90,8 @@ public class ManageAssist extends DashboardFragment {
                }

                @Override
                public List<String> getNonIndexableKeys(Context context) {
                    List<String> result = new ArrayList<>();
                    new DefaultAssistPreferenceController(context).updateNonIndexableKeys(result);
                    new GestureAssistPreferenceController(context).updateNonIndexableKeys(result);
                    new AssistContextPreferenceController(context, null)
                            .updateNonIndexableKeys(result);
                    new AssistScreenshotPreferenceController(context, null)
                            .updateNonIndexableKeys(result);
                    new AssistFlashScreenPreferenceController(context, null)
                            .updateNonIndexableKeys(result);
                    new DefaultVoiceInputPreferenceController(context, null)
                            .updateNonIndexableKeys(result);
                    return result;
                public List<PreferenceController> getPreferenceControllers(Context context) {
                    return buildPreferenceControllers(context, null /* lifecycle */);
                }
            };
}
+7 −2
Original line number Diff line number Diff line
@@ -36,6 +36,7 @@ import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settings.core.PreferenceController;
import com.android.settings.core.instrumentation.MetricsFeatureProvider;
import com.android.settings.core.lifecycle.Lifecycle;
import com.android.settings.core.lifecycle.LifecycleObserver;
import com.android.settings.core.lifecycle.events.OnResume;
import com.android.settings.overlay.FeatureFactory;
@@ -61,12 +62,16 @@ public class BuildNumberPreferenceController extends PreferenceController
    private int mDevHitCountdown;
    private boolean mProcessingLastDevHit;

    public BuildNumberPreferenceController(Context context, Activity activity, Fragment fragment) {
    public BuildNumberPreferenceController(Context context, Activity activity, Fragment fragment,
            Lifecycle lifecycle) {
        super(context);
        mActivity = activity;
        mFragment = fragment;
        mUm = UserManager.get(activity);
        mUm = UserManager.get(context);
        mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
        if (lifecycle != null) {
            lifecycle.addObserver(this);
        }
    }

    @Override
+13 −10
Original line number Diff line number Diff line
@@ -184,16 +184,19 @@ public class StorageDashboardFragment extends DashboardFragment
                }

                @Override
                public List<String> getNonIndexableKeys(Context context) {
                    if (!FeatureFactory.getFactory(context).getDashboardFeatureProvider(context)
                            .isEnabled()) {
                        return null;
                    }
                    final ManageStoragePreferenceController controller =
                            new ManageStoragePreferenceController(context);
                    final List<String> keys = new ArrayList<>();
                    controller.updateNonIndexableKeys(keys);
                    return keys;
                public List<PreferenceController> getPreferenceControllers(Context context) {
                    final StorageManager sm = context.getSystemService(StorageManager.class);
                    final UserManagerWrapper userManager =
                            new UserManagerWrapperImpl(context.getSystemService(UserManager.class));
                    final List<PreferenceController> controllers = new ArrayList<>();
                    controllers.add(new StorageSummaryDonutPreferenceController(context));
                    controllers.add(new StorageItemPreferenceController(context, null /* host */,
                            null /* volume */, new StorageManagerVolumeProvider(sm)));
                    controllers.addAll(SecondaryUserController.getSecondaryUserControllers(
                            context, userManager));
                    controllers.add(new ManageStoragePreferenceController(context));
                    return controllers;
                }

            };
}
Loading