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

Commit cdc2677c authored by Yuri Ufimtsev's avatar Yuri Ufimtsev
Browse files

Refactor some Preference Controllers to use BasePreferenceController

Test: atest SettingsUnitTests
Change-Id: Ic93f29d6c35cb1a43937fa7bf2f1e2d489cdd09f
parent fe76826c
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -27,7 +27,8 @@
            android:key="encryption_and_credentials_encryption_status"
            android:title="@string/crypt_keeper_encrypt_title"
            android:fragment="com.android.settings.security.CryptKeeperSettings"
            android:summary="@string/summary_placeholder" />
            android:summary="@string/summary_placeholder"
            settings:controller="com.android.settings.security.EncryptionStatusPreferenceController"/>

    </PreferenceCategory>

+13 −7
Original line number Diff line number Diff line
@@ -47,20 +47,23 @@
            android:key="enterprise_privacy"
            android:title="@string/enterprise_privacy_settings"
            android:summary="@string/summary_placeholder"
            android:fragment="com.android.settings.enterprise.EnterprisePrivacySettings" />
            android:fragment="com.android.settings.enterprise.EnterprisePrivacySettings"
            settings:controller="com.android.settings.enterprise.EnterprisePrivacyPreferenceController"/>

        <Preference
            android:key="financed_privacy"
            android:title="@string/financed_privacy_settings"
            android:summary="@string/summary_placeholder"
            android:fragment="com.android.settings.enterprise.EnterprisePrivacySettings" />
            android:fragment="com.android.settings.enterprise.EnterprisePrivacySettings"
            settings:controller="com.android.settings.enterprise.FinancedPrivacyPreferenceController"/>

    </PreferenceCategory>

    <Preference
        android:order="50"
        android:key="sim_lock_settings"
        android:title="@string/sim_lock_settings_category">
        android:title="@string/sim_lock_settings_category"
        settings:controller="com.android.settings.security.SimLockPreferenceController">

        <intent
            android:action="android.intent.action.MAIN"
@@ -74,14 +77,16 @@
        android:key="encryption_and_credential"
        android:title="@string/encryption_and_credential_settings_title"
        android:summary="@string/encryption_and_credential_settings_summary"
        android:fragment="com.android.settings.security.EncryptionAndCredential" />
        android:fragment="com.android.settings.security.EncryptionAndCredential"
        settings:controller="com.android.settings.security.EncryptionStatusPreferenceController" />

    <Preference
        android:order="70"
        android:key="manage_trust_agents"
        android:title="@string/manage_trust_agents"
        android:summary="@string/summary_placeholder"
        android:fragment="com.android.settings.security.trustagent.TrustAgentSettings" />
        android:fragment="com.android.settings.security.trustagent.TrustAgentSettings"
        settings:controller="com.android.settings.security.trustagent.ManageTrustAgentsPreferenceController" />

    <Preference
        android:order="80"
@@ -89,7 +94,8 @@
        android:title="@string/screen_pinning_title"
        android:summary="@string/summary_placeholder"
        android:fragment="com.android.settings.security.ScreenPinningSettings"
        settings:keywords="@string/keywords_app_pinning" />
        settings:keywords="@string/keywords_app_pinning"
        settings:controller="com.android.settings.security.ScreenPinningPreferenceController" />

    <SwitchPreference
        android:order="90"
+7 −17
Original line number Diff line number Diff line
@@ -18,21 +18,15 @@ import android.content.Context;
import androidx.preference.Preference;

import com.android.internal.annotations.VisibleForTesting;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;

import java.util.Objects;

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

    private static final String KEY_ENTERPRISE_PRIVACY = "enterprise_privacy";
    private final PrivacyPreferenceControllerHelper mPrivacyPreferenceControllerHelper;
    private final String mPreferenceKey;

    public EnterprisePrivacyPreferenceController(Context context) {
        this(Objects.requireNonNull(context), KEY_ENTERPRISE_PRIVACY);
    }

    public EnterprisePrivacyPreferenceController(Context context, String key) {
        this(Objects.requireNonNull(context), new PrivacyPreferenceControllerHelper(context), key);
@@ -41,10 +35,9 @@ public class EnterprisePrivacyPreferenceController extends AbstractPreferenceCon
    @VisibleForTesting
    EnterprisePrivacyPreferenceController(Context context,
            PrivacyPreferenceControllerHelper privacyPreferenceControllerHelper, String key) {
        super(Objects.requireNonNull(context));
        super(Objects.requireNonNull(context), key);
        mPrivacyPreferenceControllerHelper = Objects.requireNonNull(
                privacyPreferenceControllerHelper);
        this.mPreferenceKey = key;
    }

    @Override
@@ -53,13 +46,10 @@ public class EnterprisePrivacyPreferenceController extends AbstractPreferenceCon
    }

    @Override
    public boolean isAvailable() {
    public int getAvailabilityStatus() {
        return mPrivacyPreferenceControllerHelper.hasDeviceOwner()
                && !mPrivacyPreferenceControllerHelper.isFinancedDevice();
    }

    @Override
    public String getPreferenceKey() {
        return mPreferenceKey;
                && !mPrivacyPreferenceControllerHelper.isFinancedDevice()
                ? AVAILABLE
                : UNSUPPORTED_ON_DEVICE;
    }
}
+7 −17
Original line number Diff line number Diff line
@@ -21,22 +21,16 @@ import android.content.Context;
import androidx.preference.Preference;

import com.android.internal.annotations.VisibleForTesting;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;

import java.util.Objects;

/** Preference controller which displays a financed preference for financed devices. */
public class FinancedPrivacyPreferenceController extends AbstractPreferenceController implements
public class FinancedPrivacyPreferenceController extends BasePreferenceController implements
        PreferenceControllerMixin {

    private static final String PREF_KEY_FINANCED_PRIVACY = "financed_privacy";
    private final PrivacyPreferenceControllerHelper mPrivacyPreferenceControllerHelper;
    private final String mPreferenceKey;

    public FinancedPrivacyPreferenceController(Context context) {
        this(Objects.requireNonNull(context), PREF_KEY_FINANCED_PRIVACY);
    }

    public FinancedPrivacyPreferenceController(Context context, String key) {
        this(Objects.requireNonNull(context), new PrivacyPreferenceControllerHelper(context), key);
@@ -45,10 +39,9 @@ public class FinancedPrivacyPreferenceController extends AbstractPreferenceContr
    @VisibleForTesting
    FinancedPrivacyPreferenceController(Context context,
            PrivacyPreferenceControllerHelper privacyPreferenceControllerHelper, String key) {
        super(Objects.requireNonNull(context));
        super(Objects.requireNonNull(context), key);
        mPrivacyPreferenceControllerHelper = Objects.requireNonNull(
                privacyPreferenceControllerHelper);
        this.mPreferenceKey = key;
    }

    @Override
@@ -57,12 +50,9 @@ public class FinancedPrivacyPreferenceController extends AbstractPreferenceContr
    }

    @Override
    public boolean isAvailable() {
        return mPrivacyPreferenceControllerHelper.isFinancedDevice();
    }

    @Override
    public String getPreferenceKey() {
        return mPreferenceKey;
    public int getAvailabilityStatus() {
        return mPrivacyPreferenceControllerHelper.isFinancedDevice()
                ? AVAILABLE
                : CONDITIONALLY_UNAVAILABLE;
    }
}
+1 −7
Original line number Diff line number Diff line
@@ -24,12 +24,6 @@ import com.android.settings.core.BasePreferenceController;

public class ScreenPinningPreferenceController extends BasePreferenceController {

    private static final String KEY_SCREEN_PINNING = "screen_pinning_settings";

    public ScreenPinningPreferenceController(Context context) {
        this(context, KEY_SCREEN_PINNING);
    }

    public ScreenPinningPreferenceController(Context context, String key) {
        super(context, key);
    }
@@ -37,7 +31,7 @@ public class ScreenPinningPreferenceController extends BasePreferenceController
    @Override
    public int getAvailabilityStatus() {
        return mContext.getResources().getBoolean(R.bool.config_show_screen_pinning_settings)
                ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
                ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
    }

    @Override
Loading