Merge "Enable controllers to use a custom key." into sc-dev

This commit is contained in:
Jan Tomljanovic
2021-06-29 16:02:55 +00:00
committed by Android (Google) Code Review
18 changed files with 171 additions and 27 deletions

View File

@@ -19,16 +19,20 @@ package com.android.settings.biometrics.face;
import android.content.Context; import android.content.Context;
import android.os.UserHandle; import android.os.UserHandle;
import com.android.settings.R;
import androidx.preference.Preference; import androidx.preference.Preference;
import com.android.settings.R;
public class FaceProfileStatusPreferenceController extends FaceStatusPreferenceController { public class FaceProfileStatusPreferenceController extends FaceStatusPreferenceController {
private static final String KEY_FACE_SETTINGS = "face_settings_profile"; private static final String KEY_FACE_SETTINGS = "face_settings_profile";
public FaceProfileStatusPreferenceController(Context context) { public FaceProfileStatusPreferenceController(Context context) {
super(context, KEY_FACE_SETTINGS); this(context, KEY_FACE_SETTINGS);
}
public FaceProfileStatusPreferenceController(Context context, String key) {
super(context, key);
} }
@Override @Override

View File

@@ -25,7 +25,11 @@ public class FingerprintProfileStatusPreferenceController
public static final String KEY_FINGERPRINT_SETTINGS = "fingerprint_settings_profile"; public static final String KEY_FINGERPRINT_SETTINGS = "fingerprint_settings_profile";
public FingerprintProfileStatusPreferenceController(Context context) { public FingerprintProfileStatusPreferenceController(Context context) {
super(context, KEY_FINGERPRINT_SETTINGS); this(context, KEY_FINGERPRINT_SETTINGS);
}
public FingerprintProfileStatusPreferenceController(Context context, String key) {
super(context, key);
} }
@Override @Override

View File

@@ -28,17 +28,23 @@ public class EnterprisePrivacyPreferenceController extends AbstractPreferenceCon
private static final String KEY_ENTERPRISE_PRIVACY = "enterprise_privacy"; private static final String KEY_ENTERPRISE_PRIVACY = "enterprise_privacy";
private final PrivacyPreferenceControllerHelper mPrivacyPreferenceControllerHelper; private final PrivacyPreferenceControllerHelper mPrivacyPreferenceControllerHelper;
private final String mPreferenceKey;
public EnterprisePrivacyPreferenceController(Context context) { 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 @VisibleForTesting
EnterprisePrivacyPreferenceController( EnterprisePrivacyPreferenceController(Context context,
Context context, PrivacyPreferenceControllerHelper privacyPreferenceControllerHelper) { PrivacyPreferenceControllerHelper privacyPreferenceControllerHelper, String key) {
super(Objects.requireNonNull(context)); super(Objects.requireNonNull(context));
mPrivacyPreferenceControllerHelper = Objects.requireNonNull( mPrivacyPreferenceControllerHelper = Objects.requireNonNull(
privacyPreferenceControllerHelper); privacyPreferenceControllerHelper);
this.mPreferenceKey = key;
} }
@Override @Override
@@ -54,6 +60,6 @@ public class EnterprisePrivacyPreferenceController extends AbstractPreferenceCon
@Override @Override
public String getPreferenceKey() { public String getPreferenceKey() {
return KEY_ENTERPRISE_PRIVACY; return mPreferenceKey;
} }
} }

View File

@@ -32,17 +32,23 @@ public class FinancedPrivacyPreferenceController extends AbstractPreferenceContr
private static final String PREF_KEY_FINANCED_PRIVACY = "financed_privacy"; private static final String PREF_KEY_FINANCED_PRIVACY = "financed_privacy";
private final PrivacyPreferenceControllerHelper mPrivacyPreferenceControllerHelper; private final PrivacyPreferenceControllerHelper mPrivacyPreferenceControllerHelper;
private final String mPreferenceKey;
public FinancedPrivacyPreferenceController(Context context) { 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 @VisibleForTesting
FinancedPrivacyPreferenceController( FinancedPrivacyPreferenceController(Context context,
Context context, PrivacyPreferenceControllerHelper privacyPreferenceControllerHelper) { PrivacyPreferenceControllerHelper privacyPreferenceControllerHelper, String key) {
super(Objects.requireNonNull(context)); super(Objects.requireNonNull(context));
mPrivacyPreferenceControllerHelper = Objects.requireNonNull( mPrivacyPreferenceControllerHelper = Objects.requireNonNull(
privacyPreferenceControllerHelper); privacyPreferenceControllerHelper);
this.mPreferenceKey = key;
} }
@Override @Override
@@ -57,6 +63,6 @@ public class FinancedPrivacyPreferenceController extends AbstractPreferenceContr
@Override @Override
public String getPreferenceKey() { public String getPreferenceKey() {
return PREF_KEY_FINANCED_PRIVACY; return mPreferenceKey;
} }
} }

View File

@@ -37,9 +37,17 @@ public class ChangeProfileScreenLockPreferenceController extends
private static final String KEY_UNLOCK_SET_OR_CHANGE_PROFILE = "unlock_set_or_change_profile"; private static final String KEY_UNLOCK_SET_OR_CHANGE_PROFILE = "unlock_set_or_change_profile";
private final String mPreferenceKey;
public ChangeProfileScreenLockPreferenceController(Context context, public ChangeProfileScreenLockPreferenceController(Context context,
SettingsPreferenceFragment host) { SettingsPreferenceFragment host) {
this(context, host, KEY_UNLOCK_SET_OR_CHANGE_PROFILE);
}
public ChangeProfileScreenLockPreferenceController(Context context,
SettingsPreferenceFragment host, String key) {
super(context, host); super(context, host);
this.mPreferenceKey = key;
} }
public boolean isAvailable() { public boolean isAvailable() {
@@ -65,7 +73,7 @@ public class ChangeProfileScreenLockPreferenceController extends
@Override @Override
public String getPreferenceKey() { public String getPreferenceKey() {
return KEY_UNLOCK_SET_OR_CHANGE_PROFILE; return mPreferenceKey;
} }
@Override @Override

View File

@@ -26,7 +26,6 @@ import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.os.UserHandle; import android.os.UserHandle;
import android.os.UserManager; import android.os.UserManager;
import android.util.Log;
import androidx.preference.Preference; import androidx.preference.Preference;
import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceScreen;
@@ -74,6 +73,7 @@ public class LockUnificationPreferenceController extends AbstractPreferenceContr
private RestrictedSwitchPreference mUnifyProfile; private RestrictedSwitchPreference mUnifyProfile;
private final String mPreferenceKey;
private LockscreenCredential mCurrentDevicePassword; private LockscreenCredential mCurrentDevicePassword;
private LockscreenCredential mCurrentProfilePassword; private LockscreenCredential mCurrentProfilePassword;
@@ -82,10 +82,15 @@ public class LockUnificationPreferenceController extends AbstractPreferenceContr
@Override @Override
public void displayPreference(PreferenceScreen screen) { public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen); super.displayPreference(screen);
mUnifyProfile = screen.findPreference(KEY_UNIFICATION); mUnifyProfile = screen.findPreference(mPreferenceKey);
} }
public LockUnificationPreferenceController(Context context, SettingsPreferenceFragment host) { public LockUnificationPreferenceController(Context context, SettingsPreferenceFragment host) {
this(context, host, KEY_UNIFICATION);
}
public LockUnificationPreferenceController(
Context context, SettingsPreferenceFragment host, String key) {
super(context); super(context);
mHost = host; mHost = host;
mUm = context.getSystemService(UserManager.class); mUm = context.getSystemService(UserManager.class);
@@ -96,6 +101,7 @@ public class LockUnificationPreferenceController extends AbstractPreferenceContr
mProfileUserId = Utils.getManagedProfileId(mUm, MY_USER_ID); mProfileUserId = Utils.getManagedProfileId(mUm, MY_USER_ID);
mCurrentDevicePassword = LockscreenCredential.createNone(); mCurrentDevicePassword = LockscreenCredential.createNone();
mCurrentProfilePassword = LockscreenCredential.createNone(); mCurrentProfilePassword = LockscreenCredential.createNone();
this.mPreferenceKey = key;
} }
@Override @Override
@@ -106,7 +112,7 @@ public class LockUnificationPreferenceController extends AbstractPreferenceContr
@Override @Override
public String getPreferenceKey() { public String getPreferenceKey() {
return KEY_UNIFICATION; return mPreferenceKey;
} }
@Override @Override

View File

@@ -27,7 +27,11 @@ public class ScreenPinningPreferenceController extends BasePreferenceController
private static final String KEY_SCREEN_PINNING = "screen_pinning_settings"; private static final String KEY_SCREEN_PINNING = "screen_pinning_settings";
public ScreenPinningPreferenceController(Context context) { public ScreenPinningPreferenceController(Context context) {
super(context, KEY_SCREEN_PINNING); this(context, KEY_SCREEN_PINNING);
}
public ScreenPinningPreferenceController(Context context, String key) {
super(context, key);
} }
@Override @Override

View File

@@ -41,7 +41,11 @@ public class SimLockPreferenceController extends BasePreferenceController {
private TelephonyManager mTelephonyManager; private TelephonyManager mTelephonyManager;
public SimLockPreferenceController(Context context) { 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); mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
mCarrierConfigManager = (CarrierConfigManager) mCarrierConfigManager = (CarrierConfigManager)
mContext.getSystemService(Context.CARRIER_CONFIG_SERVICE); mContext.getSystemService(Context.CARRIER_CONFIG_SERVICE);

View File

@@ -55,9 +55,15 @@ public class VisiblePatternProfilePreferenceController extends TogglePreferenceC
this(context, null /* lifecycle */); this(context, null /* lifecycle */);
} }
// TODO (b/73074893) Replace this constructor without Lifecycle using setter method instead.
public VisiblePatternProfilePreferenceController(Context context, Lifecycle lifecycle) { 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); mUm = (UserManager) context.getSystemService(Context.USER_SERVICE);
mLockPatternUtils = FeatureFactory.getFactory(context) mLockPatternUtils = FeatureFactory.getFactory(context)
.getSecurityFeatureProvider() .getSecurityFeatureProvider()

View File

@@ -38,7 +38,11 @@ public class ManageTrustAgentsPreferenceController extends BasePreferenceControl
private TrustAgentManager mTrustAgentManager; private TrustAgentManager mTrustAgentManager;
public ManageTrustAgentsPreferenceController(Context context) { 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) final SecurityFeatureProvider securityFeatureProvider = FeatureFactory.getFactory(context)
.getSecurityFeatureProvider(); .getSecurityFeatureProvider();
mLockPatternUtils = securityFeatureProvider.getLockPatternUtils(context); mLockPatternUtils = securityFeatureProvider.getLockPatternUtils(context);

View File

@@ -101,4 +101,16 @@ public class FingerprintProfileStatusPreferenceControllerTest {
assertThat(mController.getAvailabilityStatus()).isEqualTo(DISABLED_FOR_USER); 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");
}
} }

View File

@@ -48,7 +48,7 @@ public class EnterprisePrivacyPreferenceControllerTest {
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
mController = new EnterprisePrivacyPreferenceController( mController = new EnterprisePrivacyPreferenceController(
mContext, mPrivacyPreferenceControllerHelper); mContext, mPrivacyPreferenceControllerHelper, KEY_ENTERPRISE_PRIVACY);
} }
@Test @Test
@@ -90,7 +90,15 @@ public class EnterprisePrivacyPreferenceControllerTest {
} }
@Test @Test
public void testGetPreferenceKey() { public void getPreferenceKey_byDefault_returnsDefaultValue() {
assertThat(mController.getPreferenceKey()).isEqualTo(KEY_ENTERPRISE_PRIVACY); assertThat(mController.getPreferenceKey()).isEqualTo(KEY_ENTERPRISE_PRIVACY);
} }
@Test
public void getPreferenceKey_whenGivenValue_returnsGivenValue() {
mController = new EnterprisePrivacyPreferenceController(
mContext, mPrivacyPreferenceControllerHelper, "key");
assertThat(mController.getPreferenceKey()).isEqualTo("key");
}
} }

View File

@@ -48,7 +48,7 @@ public class FinancedPrivacyPreferenceControllerTest {
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
mController = new FinancedPrivacyPreferenceController( mController = new FinancedPrivacyPreferenceController(
mContext, mPrivacyPreferenceControllerHelper); mContext, mPrivacyPreferenceControllerHelper, PREF_KEY_FINANCED_PRIVACY);
} }
@Test @Test
@@ -81,7 +81,15 @@ public class FinancedPrivacyPreferenceControllerTest {
} }
@Test @Test
public void testGetPreferenceKey() { public void getPreferenceKey_byDefault_returnsDefaultValue() {
assertThat(mController.getPreferenceKey()).isEqualTo(PREF_KEY_FINANCED_PRIVACY); 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");
}
} }

View File

@@ -98,4 +98,18 @@ public class LockUnificationPreferenceControllerTest {
assertThat(mController.isAvailable()).isTrue(); 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");
}
} }

View File

@@ -89,4 +89,16 @@ public class ScreenPinningPreferenceControllerTest {
assertThat(mPreference.getSummary()) assertThat(mPreference.getSummary())
.isEqualTo(mContext.getString(R.string.switch_on_text)); .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");
}
} }

View File

@@ -65,6 +65,7 @@ public class SimLockPreferenceControllerTest {
private SimLockPreferenceController mController; private SimLockPreferenceController mController;
private Preference mPreference; private Preference mPreference;
private Context mContext;
@Before @Before
public void setUp() { public void setUp() {
@@ -75,8 +76,9 @@ public class SimLockPreferenceControllerTest {
shadowApplication.setSystemService(Context.CARRIER_CONFIG_SERVICE, mCarrierManager); shadowApplication.setSystemService(Context.CARRIER_CONFIG_SERVICE, mCarrierManager);
shadowApplication.setSystemService(Context.USER_SERVICE, mUserManager); shadowApplication.setSystemService(Context.USER_SERVICE, mUserManager);
shadowApplication.setSystemService(Context.TELEPHONY_SERVICE, mTelephonyManager); shadowApplication.setSystemService(Context.TELEPHONY_SERVICE, mTelephonyManager);
mController = new SimLockPreferenceController(RuntimeEnvironment.application); mContext = RuntimeEnvironment.application;
mPreference = new Preference(RuntimeEnvironment.application); mController = new SimLockPreferenceController(mContext);
mPreference = new Preference(mContext);
mPreference.setKey(mController.getPreferenceKey()); mPreference.setKey(mController.getPreferenceKey());
when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference); when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
} }
@@ -136,6 +138,18 @@ public class SimLockPreferenceControllerTest {
assertThat(mPreference.isEnabled()).isTrue(); 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() { private void setupMockIcc() {
final List<SubscriptionInfo> subscriptionInfoList = new ArrayList<>(); final List<SubscriptionInfo> subscriptionInfoList = new ArrayList<>();
SubscriptionInfo info = mock(SubscriptionInfo.class); SubscriptionInfo info = mock(SubscriptionInfo.class);

View File

@@ -115,4 +115,16 @@ public class VisiblePatternProfilePreferenceControllerTest {
assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE); 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");
}
} }

View File

@@ -117,4 +117,16 @@ public class ManageTrustAgentsPreferenceControllerTest {
.isEqualTo(mContext.getResources().getQuantityString( .isEqualTo(mContext.getResources().getQuantityString(
R.plurals.manage_trust_agents_summary_on, 1, 1)); 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");
}
} }