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

Commit 542644e8 authored by Darrell Shi's avatar Darrell Shi
Browse files

Change screensaver ctrlr to base pref ctrlr.

This change makes it that the ScreenSaverPreferenceController extends
BasePreferenceController so that it can be readily used and pointed to
from an xml file.

Bug: 261627295
Test: atest ScreenSaverPreferenceControllerTest

Change-Id: I95487f2f49a23422fff46f30b0cfa287582a547b
parent 0b0d8ace
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -146,7 +146,8 @@
            android:key="screensaver"
            android:title="@string/screensaver_settings_title"
            android:fragment="com.android.settings.dream.DreamSettings"
            settings:keywords="@string/keywords_screensaver"/>
            settings:keywords="@string/keywords_screensaver"
            settings:controller="com.android.settings.display.ScreenSaverPreferenceController"/>

        <SwitchPreference
            android:key="camera_gesture"
+0 −2
Original line number Diff line number Diff line
@@ -24,7 +24,6 @@ import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.display.BrightnessLevelPreferenceController;
import com.android.settings.display.CameraGesturePreferenceController;
import com.android.settings.display.LiftToWakePreferenceController;
import com.android.settings.display.ScreenSaverPreferenceController;
import com.android.settings.display.ShowOperatorNamePreferenceController;
import com.android.settings.display.TapToWakePreferenceController;
import com.android.settings.display.ThemePreferenceController;
@@ -76,7 +75,6 @@ public class DisplaySettings extends DashboardFragment {
        final List<AbstractPreferenceController> controllers = new ArrayList<>();
        controllers.add(new CameraGesturePreferenceController(context));
        controllers.add(new LiftToWakePreferenceController(context));
        controllers.add(new ScreenSaverPreferenceController(context));
        controllers.add(new TapToWakePreferenceController(context));
        controllers.add(new VrDisplayPreferenceController(context));
        controllers.add(new ShowOperatorNamePreferenceController(context));
+11 −17
Original line number Diff line number Diff line
@@ -16,47 +16,41 @@ package com.android.settings.display;
import android.content.Context;
import android.os.UserManager;

import androidx.preference.Preference;

import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.dream.DreamSettings;
import com.android.settingslib.core.AbstractPreferenceController;

public class ScreenSaverPreferenceController extends AbstractPreferenceController implements
public class ScreenSaverPreferenceController extends BasePreferenceController implements
        PreferenceControllerMixin {

    private static final String KEY_SCREEN_SAVER = "screensaver";
    private final boolean mDreamsDisabledByAmbientModeSuppression;

    public ScreenSaverPreferenceController(Context context) {
        super(context);
    public ScreenSaverPreferenceController(Context context, String preferenceKey) {
        super(context, preferenceKey);

        mDreamsDisabledByAmbientModeSuppression = context.getResources().getBoolean(
                com.android.internal.R.bool.config_dreamsDisabledByAmbientModeSuppressionConfig);
    }

    @Override
    public boolean isAvailable() {
    public int getAvailabilityStatus() {
        final boolean dreamsSupported = mContext.getResources().getBoolean(
                com.android.internal.R.bool.config_dreamsSupported);
        final boolean dreamsOnlyEnabledForDockUser = mContext.getResources().getBoolean(
                com.android.internal.R.bool.config_dreamsOnlyEnabledForDockUser);
        // TODO(b/257333623): Allow the Dock User to be non-SystemUser user in HSUM.
        return dreamsSupported && (!dreamsOnlyEnabledForDockUser || isSystemUser());
    }

    @Override
    public String getPreferenceKey() {
        return KEY_SCREEN_SAVER;
        return (dreamsSupported && (!dreamsOnlyEnabledForDockUser || isSystemUser()))
                ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
    }

    @Override
    public void updateState(Preference preference) {
    public CharSequence getSummary() {
        if (mDreamsDisabledByAmbientModeSuppression
                && AmbientDisplayAlwaysOnPreferenceController.isAodSuppressedByBedtime(mContext)) {
            preference.setSummary(R.string.screensaver_settings_when_to_dream_bedtime);
            return mContext.getString(R.string.screensaver_settings_when_to_dream_bedtime);
        } else {
            preference.setSummary(DreamSettings.getSummaryTextWithDreamName(mContext));
            return DreamSettings.getSummaryTextWithDreamName(mContext);
        }
    }

+3 −1
Original line number Diff line number Diff line
@@ -45,11 +45,13 @@ public class ScreenSaverPreferenceControllerTest {

    private ScreenSaverPreferenceController mController;

    private final String mPrefKey = "test_screensaver";

    @Before
    public void setup() {
        MockitoAnnotations.initMocks(this);

        mController = new ScreenSaverPreferenceController(mContext);
        mController = new ScreenSaverPreferenceController(mContext, mPrefKey);

        when(mContext.getResources()).thenReturn(mResources);
        when(mContext.getSystemService(UserManager.class)).thenReturn(mUserManager);