Enable controllers to use a custom key.
Test: atest SettingsUnitTests
Test: m -j45 RunSettingsRoboTests
Bug: 191763369
Change-Id: I48eea95613600580c80c8850f0a3fd543a7e0a43
diff --git a/src/com/android/settings/biometrics/face/FaceProfileStatusPreferenceController.java b/src/com/android/settings/biometrics/face/FaceProfileStatusPreferenceController.java
index 56b325b..c46ddcf 100644
--- a/src/com/android/settings/biometrics/face/FaceProfileStatusPreferenceController.java
+++ b/src/com/android/settings/biometrics/face/FaceProfileStatusPreferenceController.java
@@ -19,16 +19,20 @@
import android.content.Context;
import android.os.UserHandle;
-import com.android.settings.R;
-
import androidx.preference.Preference;
+import com.android.settings.R;
+
public class FaceProfileStatusPreferenceController extends FaceStatusPreferenceController {
private static final String KEY_FACE_SETTINGS = "face_settings_profile";
public FaceProfileStatusPreferenceController(Context context) {
- super(context, KEY_FACE_SETTINGS);
+ this(context, KEY_FACE_SETTINGS);
+ }
+
+ public FaceProfileStatusPreferenceController(Context context, String key) {
+ super(context, key);
}
@Override
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintProfileStatusPreferenceController.java b/src/com/android/settings/biometrics/fingerprint/FingerprintProfileStatusPreferenceController.java
index 23873f9..0d9893d 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintProfileStatusPreferenceController.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintProfileStatusPreferenceController.java
@@ -25,7 +25,11 @@
public static final String KEY_FINGERPRINT_SETTINGS = "fingerprint_settings_profile";
public FingerprintProfileStatusPreferenceController(Context context) {
- super(context, KEY_FINGERPRINT_SETTINGS);
+ this(context, KEY_FINGERPRINT_SETTINGS);
+ }
+
+ public FingerprintProfileStatusPreferenceController(Context context, String key) {
+ super(context, key);
}
@Override
diff --git a/src/com/android/settings/enterprise/EnterprisePrivacyPreferenceController.java b/src/com/android/settings/enterprise/EnterprisePrivacyPreferenceController.java
index ca8a982..7575066 100644
--- a/src/com/android/settings/enterprise/EnterprisePrivacyPreferenceController.java
+++ b/src/com/android/settings/enterprise/EnterprisePrivacyPreferenceController.java
@@ -28,17 +28,23 @@
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), new PrivacyPreferenceControllerHelper(context));
+ this(Objects.requireNonNull(context), KEY_ENTERPRISE_PRIVACY);
+ }
+
+ public EnterprisePrivacyPreferenceController(Context context, String key) {
+ this(Objects.requireNonNull(context), new PrivacyPreferenceControllerHelper(context), key);
}
@VisibleForTesting
- EnterprisePrivacyPreferenceController(
- Context context, PrivacyPreferenceControllerHelper privacyPreferenceControllerHelper) {
+ EnterprisePrivacyPreferenceController(Context context,
+ PrivacyPreferenceControllerHelper privacyPreferenceControllerHelper, String key) {
super(Objects.requireNonNull(context));
mPrivacyPreferenceControllerHelper = Objects.requireNonNull(
privacyPreferenceControllerHelper);
+ this.mPreferenceKey = key;
}
@Override
@@ -54,6 +60,6 @@
@Override
public String getPreferenceKey() {
- return KEY_ENTERPRISE_PRIVACY;
+ return mPreferenceKey;
}
}
diff --git a/src/com/android/settings/enterprise/FinancedPrivacyPreferenceController.java b/src/com/android/settings/enterprise/FinancedPrivacyPreferenceController.java
index aca21b6..dd7b2e7 100644
--- a/src/com/android/settings/enterprise/FinancedPrivacyPreferenceController.java
+++ b/src/com/android/settings/enterprise/FinancedPrivacyPreferenceController.java
@@ -32,17 +32,23 @@
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), new PrivacyPreferenceControllerHelper(context));
+ this(Objects.requireNonNull(context), PREF_KEY_FINANCED_PRIVACY);
+ }
+
+ public FinancedPrivacyPreferenceController(Context context, String key) {
+ this(Objects.requireNonNull(context), new PrivacyPreferenceControllerHelper(context), key);
}
@VisibleForTesting
- FinancedPrivacyPreferenceController(
- Context context, PrivacyPreferenceControllerHelper privacyPreferenceControllerHelper) {
+ FinancedPrivacyPreferenceController(Context context,
+ PrivacyPreferenceControllerHelper privacyPreferenceControllerHelper, String key) {
super(Objects.requireNonNull(context));
mPrivacyPreferenceControllerHelper = Objects.requireNonNull(
privacyPreferenceControllerHelper);
+ this.mPreferenceKey = key;
}
@Override
@@ -57,6 +63,6 @@
@Override
public String getPreferenceKey() {
- return PREF_KEY_FINANCED_PRIVACY;
+ return mPreferenceKey;
}
}
diff --git a/src/com/android/settings/security/ChangeProfileScreenLockPreferenceController.java b/src/com/android/settings/security/ChangeProfileScreenLockPreferenceController.java
index 8e1a4f8..d44c100 100644
--- a/src/com/android/settings/security/ChangeProfileScreenLockPreferenceController.java
+++ b/src/com/android/settings/security/ChangeProfileScreenLockPreferenceController.java
@@ -37,9 +37,17 @@
private static final String KEY_UNLOCK_SET_OR_CHANGE_PROFILE = "unlock_set_or_change_profile";
+ private final String mPreferenceKey;
+
public ChangeProfileScreenLockPreferenceController(Context context,
SettingsPreferenceFragment host) {
+ this(context, host, KEY_UNLOCK_SET_OR_CHANGE_PROFILE);
+ }
+
+ public ChangeProfileScreenLockPreferenceController(Context context,
+ SettingsPreferenceFragment host, String key) {
super(context, host);
+ this.mPreferenceKey = key;
}
public boolean isAvailable() {
@@ -65,7 +73,7 @@
@Override
public String getPreferenceKey() {
- return KEY_UNLOCK_SET_OR_CHANGE_PROFILE;
+ return mPreferenceKey;
}
@Override
diff --git a/src/com/android/settings/security/LockUnificationPreferenceController.java b/src/com/android/settings/security/LockUnificationPreferenceController.java
index b6e215c..2a9fced 100644
--- a/src/com/android/settings/security/LockUnificationPreferenceController.java
+++ b/src/com/android/settings/security/LockUnificationPreferenceController.java
@@ -26,7 +26,6 @@
import android.os.Bundle;
import android.os.UserHandle;
import android.os.UserManager;
-import android.util.Log;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
@@ -74,6 +73,7 @@
private RestrictedSwitchPreference mUnifyProfile;
+ private final String mPreferenceKey;
private LockscreenCredential mCurrentDevicePassword;
private LockscreenCredential mCurrentProfilePassword;
@@ -82,10 +82,15 @@
@Override
public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen);
- mUnifyProfile = screen.findPreference(KEY_UNIFICATION);
+ mUnifyProfile = screen.findPreference(mPreferenceKey);
}
public LockUnificationPreferenceController(Context context, SettingsPreferenceFragment host) {
+ this(context, host, KEY_UNIFICATION);
+ }
+
+ public LockUnificationPreferenceController(
+ Context context, SettingsPreferenceFragment host, String key) {
super(context);
mHost = host;
mUm = context.getSystemService(UserManager.class);
@@ -96,6 +101,7 @@
mProfileUserId = Utils.getManagedProfileId(mUm, MY_USER_ID);
mCurrentDevicePassword = LockscreenCredential.createNone();
mCurrentProfilePassword = LockscreenCredential.createNone();
+ this.mPreferenceKey = key;
}
@Override
@@ -106,7 +112,7 @@
@Override
public String getPreferenceKey() {
- return KEY_UNIFICATION;
+ return mPreferenceKey;
}
@Override
diff --git a/src/com/android/settings/security/ScreenPinningPreferenceController.java b/src/com/android/settings/security/ScreenPinningPreferenceController.java
index 442380d..a5fdf8b 100644
--- a/src/com/android/settings/security/ScreenPinningPreferenceController.java
+++ b/src/com/android/settings/security/ScreenPinningPreferenceController.java
@@ -27,7 +27,11 @@
private static final String KEY_SCREEN_PINNING = "screen_pinning_settings";
public ScreenPinningPreferenceController(Context context) {
- super(context, KEY_SCREEN_PINNING);
+ this(context, KEY_SCREEN_PINNING);
+ }
+
+ public ScreenPinningPreferenceController(Context context, String key) {
+ super(context, key);
}
@Override
diff --git a/src/com/android/settings/security/SimLockPreferenceController.java b/src/com/android/settings/security/SimLockPreferenceController.java
index 03983b5..3b85888 100644
--- a/src/com/android/settings/security/SimLockPreferenceController.java
+++ b/src/com/android/settings/security/SimLockPreferenceController.java
@@ -41,7 +41,11 @@
private TelephonyManager mTelephonyManager;
public SimLockPreferenceController(Context context) {
- super(context, KEY_SIM_LOCK);
+ this(context, KEY_SIM_LOCK);
+ }
+
+ public SimLockPreferenceController(Context context, String key) {
+ super(context, key);
mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
mCarrierConfigManager = (CarrierConfigManager)
mContext.getSystemService(Context.CARRIER_CONFIG_SERVICE);
diff --git a/src/com/android/settings/security/VisiblePatternProfilePreferenceController.java b/src/com/android/settings/security/VisiblePatternProfilePreferenceController.java
index 2db8c24..64ca853 100644
--- a/src/com/android/settings/security/VisiblePatternProfilePreferenceController.java
+++ b/src/com/android/settings/security/VisiblePatternProfilePreferenceController.java
@@ -55,9 +55,15 @@
this(context, null /* lifecycle */);
}
- // TODO (b/73074893) Replace this constructor without Lifecycle using setter method instead.
public VisiblePatternProfilePreferenceController(Context context, Lifecycle lifecycle) {
- super(context, KEY_VISIBLE_PATTERN_PROFILE);
+ this(context, lifecycle, KEY_VISIBLE_PATTERN_PROFILE);
+ }
+
+
+ // TODO (b/73074893) Replace this constructor without Lifecycle using setter method instead.
+ public VisiblePatternProfilePreferenceController(
+ Context context, Lifecycle lifecycle, String key) {
+ super(context, key);
mUm = (UserManager) context.getSystemService(Context.USER_SERVICE);
mLockPatternUtils = FeatureFactory.getFactory(context)
.getSecurityFeatureProvider()
diff --git a/src/com/android/settings/security/trustagent/ManageTrustAgentsPreferenceController.java b/src/com/android/settings/security/trustagent/ManageTrustAgentsPreferenceController.java
index 056c1f2..b0f991e 100644
--- a/src/com/android/settings/security/trustagent/ManageTrustAgentsPreferenceController.java
+++ b/src/com/android/settings/security/trustagent/ManageTrustAgentsPreferenceController.java
@@ -38,7 +38,11 @@
private TrustAgentManager mTrustAgentManager;
public ManageTrustAgentsPreferenceController(Context context) {
- super(context, KEY_MANAGE_TRUST_AGENTS);
+ this(context, KEY_MANAGE_TRUST_AGENTS);
+ }
+
+ public ManageTrustAgentsPreferenceController(Context context, String key) {
+ super(context, key);
final SecurityFeatureProvider securityFeatureProvider = FeatureFactory.getFactory(context)
.getSecurityFeatureProvider();
mLockPatternUtils = securityFeatureProvider.getLockPatternUtils(context);
diff --git a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintProfileStatusPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintProfileStatusPreferenceControllerTest.java
index f4410a3..0fa4a9c 100644
--- a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintProfileStatusPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintProfileStatusPreferenceControllerTest.java
@@ -101,4 +101,16 @@
assertThat(mController.getAvailabilityStatus()).isEqualTo(DISABLED_FOR_USER);
}
+
+ @Test
+ public void getPreferenceKey_byDefault_returnsDefaultValue() {
+ assertThat(mController.getPreferenceKey()).isEqualTo("fingerprint_settings_profile");
+ }
+
+ @Test
+ public void getPreferenceKey_whenGivenValue_returnsGivenValue() {
+ mController = new FingerprintProfileStatusPreferenceController(mContext, "key");
+
+ assertThat(mController.getPreferenceKey()).isEqualTo("key");
+ }
}
diff --git a/tests/robotests/src/com/android/settings/enterprise/EnterprisePrivacyPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/enterprise/EnterprisePrivacyPreferenceControllerTest.java
index 2bac8f1..afb1971 100644
--- a/tests/robotests/src/com/android/settings/enterprise/EnterprisePrivacyPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/enterprise/EnterprisePrivacyPreferenceControllerTest.java
@@ -48,7 +48,7 @@
public void setUp() {
MockitoAnnotations.initMocks(this);
mController = new EnterprisePrivacyPreferenceController(
- mContext, mPrivacyPreferenceControllerHelper);
+ mContext, mPrivacyPreferenceControllerHelper, KEY_ENTERPRISE_PRIVACY);
}
@Test
@@ -90,7 +90,15 @@
}
@Test
- public void testGetPreferenceKey() {
+ public void getPreferenceKey_byDefault_returnsDefaultValue() {
assertThat(mController.getPreferenceKey()).isEqualTo(KEY_ENTERPRISE_PRIVACY);
}
+
+ @Test
+ public void getPreferenceKey_whenGivenValue_returnsGivenValue() {
+ mController = new EnterprisePrivacyPreferenceController(
+ mContext, mPrivacyPreferenceControllerHelper, "key");
+
+ assertThat(mController.getPreferenceKey()).isEqualTo("key");
+ }
}
diff --git a/tests/robotests/src/com/android/settings/enterprise/FinancedPrivacyPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/enterprise/FinancedPrivacyPreferenceControllerTest.java
index f8adf6f..61da68e 100644
--- a/tests/robotests/src/com/android/settings/enterprise/FinancedPrivacyPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/enterprise/FinancedPrivacyPreferenceControllerTest.java
@@ -48,7 +48,7 @@
public void setUp() {
MockitoAnnotations.initMocks(this);
mController = new FinancedPrivacyPreferenceController(
- mContext, mPrivacyPreferenceControllerHelper);
+ mContext, mPrivacyPreferenceControllerHelper, PREF_KEY_FINANCED_PRIVACY);
}
@Test
@@ -81,7 +81,15 @@
}
@Test
- public void testGetPreferenceKey() {
+ public void getPreferenceKey_byDefault_returnsDefaultValue() {
assertThat(mController.getPreferenceKey()).isEqualTo(PREF_KEY_FINANCED_PRIVACY);
}
+
+ @Test
+ public void getPreferenceKey_whenGivenValue_returnsGivenValue() {
+ mController = new FinancedPrivacyPreferenceController(
+ mContext, mPrivacyPreferenceControllerHelper, "key");
+
+ assertThat(mController.getPreferenceKey()).isEqualTo("key");
+ }
}
diff --git a/tests/robotests/src/com/android/settings/security/LockUnificationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/security/LockUnificationPreferenceControllerTest.java
index be5593f..8a65e14 100644
--- a/tests/robotests/src/com/android/settings/security/LockUnificationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/security/LockUnificationPreferenceControllerTest.java
@@ -98,4 +98,18 @@
assertThat(mController.isAvailable()).isTrue();
}
+
+ @Test
+ public void getPreferenceKey_byDefault_returnsDefaultValue() {
+ init();
+
+ assertThat(mController.getPreferenceKey()).isEqualTo("unification");
+ }
+
+ @Test
+ public void getPreferenceKey_whenGivenValue_returnsGivenValue() {
+ mController = new LockUnificationPreferenceController(mContext, mHost, "key");
+
+ assertThat(mController.getPreferenceKey()).isEqualTo("key");
+ }
}
diff --git a/tests/robotests/src/com/android/settings/security/ScreenPinningPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/security/ScreenPinningPreferenceControllerTest.java
index 9b041d4..f63f4c1 100644
--- a/tests/robotests/src/com/android/settings/security/ScreenPinningPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/security/ScreenPinningPreferenceControllerTest.java
@@ -89,4 +89,16 @@
assertThat(mPreference.getSummary())
.isEqualTo(mContext.getString(R.string.switch_on_text));
}
+
+ @Test
+ public void getPreferenceKey_byDefault_returnsDefaultValue() {
+ assertThat(mController.getPreferenceKey()).isEqualTo("screen_pinning_settings");
+ }
+
+ @Test
+ public void getPreferenceKey_whenGivenValue_returnsGivenValue() {
+ mController = new ScreenPinningPreferenceController(mContext, "key");
+
+ assertThat(mController.getPreferenceKey()).isEqualTo("key");
+ }
}
diff --git a/tests/robotests/src/com/android/settings/security/SimLockPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/security/SimLockPreferenceControllerTest.java
index 0ab4256..6f9c1ba 100644
--- a/tests/robotests/src/com/android/settings/security/SimLockPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/security/SimLockPreferenceControllerTest.java
@@ -65,6 +65,7 @@
private SimLockPreferenceController mController;
private Preference mPreference;
+ private Context mContext;
@Before
public void setUp() {
@@ -75,8 +76,9 @@
shadowApplication.setSystemService(Context.CARRIER_CONFIG_SERVICE, mCarrierManager);
shadowApplication.setSystemService(Context.USER_SERVICE, mUserManager);
shadowApplication.setSystemService(Context.TELEPHONY_SERVICE, mTelephonyManager);
- mController = new SimLockPreferenceController(RuntimeEnvironment.application);
- mPreference = new Preference(RuntimeEnvironment.application);
+ mContext = RuntimeEnvironment.application;
+ mController = new SimLockPreferenceController(mContext);
+ mPreference = new Preference(mContext);
mPreference.setKey(mController.getPreferenceKey());
when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
}
@@ -136,6 +138,18 @@
assertThat(mPreference.isEnabled()).isTrue();
}
+ @Test
+ public void getPreferenceKey_byDefault_returnsDefaultValue() {
+ assertThat(mController.getPreferenceKey()).isEqualTo("sim_lock_settings");
+ }
+
+ @Test
+ public void getPreferenceKey_whenGivenValue_returnsGivenValue() {
+ mController = new SimLockPreferenceController(mContext, "key");
+
+ assertThat(mController.getPreferenceKey()).isEqualTo("key");
+ }
+
private void setupMockIcc() {
final List<SubscriptionInfo> subscriptionInfoList = new ArrayList<>();
SubscriptionInfo info = mock(SubscriptionInfo.class);
diff --git a/tests/robotests/src/com/android/settings/security/VisiblePatternProfilePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/security/VisiblePatternProfilePreferenceControllerTest.java
index e474b2b..11d7016 100644
--- a/tests/robotests/src/com/android/settings/security/VisiblePatternProfilePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/security/VisiblePatternProfilePreferenceControllerTest.java
@@ -115,4 +115,16 @@
assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
}
+
+ @Test
+ public void getPreferenceKey_byDefault_returnsDefaultValue() {
+ assertThat(mController.getPreferenceKey()).isEqualTo("visiblepattern_profile");
+ }
+
+ @Test
+ public void getPreferenceKey_whenGivenValue_returnsGivenValue() {
+ mController = new VisiblePatternProfilePreferenceController(mContext, mLifecycle, "key");
+
+ assertThat(mController.getPreferenceKey()).isEqualTo("key");
+ }
}
diff --git a/tests/robotests/src/com/android/settings/security/trustagent/ManageTrustAgentsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/security/trustagent/ManageTrustAgentsPreferenceControllerTest.java
index 9be374c..a7a3b64 100644
--- a/tests/robotests/src/com/android/settings/security/trustagent/ManageTrustAgentsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/security/trustagent/ManageTrustAgentsPreferenceControllerTest.java
@@ -117,4 +117,16 @@
.isEqualTo(mContext.getResources().getQuantityString(
R.plurals.manage_trust_agents_summary_on, 1, 1));
}
+
+ @Test
+ public void getPreferenceKey_byDefault_returnsDefaultValue() {
+ assertThat(mController.getPreferenceKey()).isEqualTo("manage_trust_agents");
+ }
+
+ @Test
+ public void getPreferenceKey_whenGivenValue_returnsGivenValue() {
+ mController = new ManageTrustAgentsPreferenceController(mContext, "key");
+
+ assertThat(mController.getPreferenceKey()).isEqualTo("key");
+ }
}