Refactor some Preference Controllers to use BasePreferenceController
Test: atest SettingsUnitTests Change-Id: Ic93f29d6c35cb1a43937fa7bf2f1e2d489cdd09f
This commit is contained in:
@@ -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>
|
||||
|
||||
|
@@ -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,14 +94,15 @@
|
||||
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"
|
||||
android:key="confirm_sim_deletion"
|
||||
android:title="@string/confirm_sim_deletion_title"
|
||||
android:summary="@string/confirm_sim_deletion_description"
|
||||
settings:controller="com.android.settings.security.ConfirmSimDeletionPreferenceController"/>
|
||||
settings:controller="com.android.settings.security.ConfirmSimDeletionPreferenceController" />
|
||||
|
||||
<!-- work profile security section -->
|
||||
<PreferenceCategory
|
||||
|
@@ -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;
|
||||
}
|
||||
}
|
||||
|
@@ -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;
|
||||
}
|
||||
}
|
||||
|
@@ -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
|
||||
|
@@ -16,8 +16,6 @@
|
||||
|
||||
package com.android.settings.security;
|
||||
|
||||
import static com.android.settings.security.EncryptionStatusPreferenceController.PREF_KEY_ENCRYPTION_SECURITY_PAGE;
|
||||
|
||||
import android.app.settings.SettingsEnums;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
@@ -27,10 +25,7 @@ import com.android.settings.biometrics.combination.CombinedBiometricProfileStatu
|
||||
import com.android.settings.biometrics.face.FaceProfileStatusPreferenceController;
|
||||
import com.android.settings.biometrics.fingerprint.FingerprintProfileStatusPreferenceController;
|
||||
import com.android.settings.dashboard.DashboardFragment;
|
||||
import com.android.settings.enterprise.EnterprisePrivacyPreferenceController;
|
||||
import com.android.settings.enterprise.FinancedPrivacyPreferenceController;
|
||||
import com.android.settings.search.BaseSearchIndexProvider;
|
||||
import com.android.settings.security.trustagent.ManageTrustAgentsPreferenceController;
|
||||
import com.android.settings.security.trustagent.TrustAgentListPreferenceController;
|
||||
import com.android.settings.widget.PreferenceCategoryController;
|
||||
import com.android.settingslib.core.AbstractPreferenceController;
|
||||
@@ -96,13 +91,6 @@ public class SecurityAdvancedSettings extends DashboardFragment {
|
||||
private static List<AbstractPreferenceController> buildPreferenceControllers(Context context,
|
||||
Lifecycle lifecycle, DashboardFragment host) {
|
||||
final List<AbstractPreferenceController> controllers = new ArrayList<>();
|
||||
controllers.add(new EnterprisePrivacyPreferenceController(context));
|
||||
controllers.add(new FinancedPrivacyPreferenceController(context));
|
||||
controllers.add(new ManageTrustAgentsPreferenceController(context));
|
||||
controllers.add(new ScreenPinningPreferenceController(context));
|
||||
controllers.add(new SimLockPreferenceController(context));
|
||||
controllers.add(new EncryptionStatusPreferenceController(context,
|
||||
PREF_KEY_ENCRYPTION_SECURITY_PAGE));
|
||||
controllers.add(new TrustAgentListPreferenceController(context, host, lifecycle));
|
||||
|
||||
final List<AbstractPreferenceController> profileSecurityControllers = new ArrayList<>();
|
||||
|
@@ -33,17 +33,11 @@ import java.util.List;
|
||||
|
||||
public class SimLockPreferenceController extends BasePreferenceController {
|
||||
|
||||
private static final String KEY_SIM_LOCK = "sim_lock_settings";
|
||||
|
||||
private final CarrierConfigManager mCarrierConfigManager;
|
||||
private final UserManager mUserManager;
|
||||
private final SubscriptionManager mSubscriptionManager;
|
||||
private TelephonyManager mTelephonyManager;
|
||||
|
||||
public SimLockPreferenceController(Context context) {
|
||||
this(context, KEY_SIM_LOCK);
|
||||
}
|
||||
|
||||
public SimLockPreferenceController(Context context, String key) {
|
||||
super(context, key);
|
||||
mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
|
||||
|
@@ -19,7 +19,6 @@ package com.android.settings.security.trustagent;
|
||||
import android.content.Context;
|
||||
import android.os.UserHandle;
|
||||
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
import androidx.preference.Preference;
|
||||
|
||||
import com.android.internal.widget.LockPatternUtils;
|
||||
@@ -30,17 +29,11 @@ import com.android.settings.security.SecurityFeatureProvider;
|
||||
|
||||
public class ManageTrustAgentsPreferenceController extends BasePreferenceController {
|
||||
|
||||
@VisibleForTesting
|
||||
static final String KEY_MANAGE_TRUST_AGENTS = "manage_trust_agents";
|
||||
private static final int MY_USER_ID = UserHandle.myUserId();
|
||||
|
||||
private final LockPatternUtils mLockPatternUtils;
|
||||
private TrustAgentManager mTrustAgentManager;
|
||||
|
||||
public ManageTrustAgentsPreferenceController(Context context) {
|
||||
this(context, KEY_MANAGE_TRUST_AGENTS);
|
||||
}
|
||||
|
||||
public ManageTrustAgentsPreferenceController(Context context, String key) {
|
||||
super(context, key);
|
||||
final SecurityFeatureProvider securityFeatureProvider = FeatureFactory.getFactory(context)
|
||||
|
@@ -46,7 +46,7 @@ public class ScreenPinningPreferenceControllerTest {
|
||||
public void setUp() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
mContext = RuntimeEnvironment.application;
|
||||
mController = new ScreenPinningPreferenceController(mContext);
|
||||
mController = new ScreenPinningPreferenceController(mContext, "key");
|
||||
mPreference = new Preference(mContext);
|
||||
mPreference.setKey(mController.getPreferenceKey());
|
||||
}
|
||||
|
@@ -77,7 +77,7 @@ public class SimLockPreferenceControllerTest {
|
||||
shadowApplication.setSystemService(Context.USER_SERVICE, mUserManager);
|
||||
shadowApplication.setSystemService(Context.TELEPHONY_SERVICE, mTelephonyManager);
|
||||
mContext = RuntimeEnvironment.application;
|
||||
mController = new SimLockPreferenceController(mContext);
|
||||
mController = new SimLockPreferenceController(mContext, "key");
|
||||
mPreference = new Preference(mContext);
|
||||
mPreference.setKey(mController.getPreferenceKey());
|
||||
when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
|
||||
|
@@ -64,7 +64,7 @@ public class ManageTrustAgentsPreferenceControllerTest {
|
||||
.thenReturn(mLockPatternUtils);
|
||||
when(mFeatureFactory.securityFeatureProvider.getTrustAgentManager())
|
||||
.thenReturn(mTrustAgentManager);
|
||||
mController = new ManageTrustAgentsPreferenceController(mContext);
|
||||
mController = new ManageTrustAgentsPreferenceController(mContext, "key");
|
||||
mPreference = new Preference(mContext);
|
||||
mPreference.setKey(mController.getPreferenceKey());
|
||||
}
|
||||
|
Reference in New Issue
Block a user