Remove feature flag for active unlock

Active Unlock was guarded behind a feature flag for two main purposes.
1) To select the unlock intent or biometric failure layout. We've
   settled on unlock intent, so we no longer need the biometric failure
   codepath.
2) To guard the feature rollout. However, the additional platform guard
   is not necessary, since this feature availability is still guarded
   based on whether the secure settings are flipped to valid targets.
In order to keep the scope of this CL small, useBiometricFailureLayout
always returns false. Another CL will clean up all areas where it and
useUnlockIntentLayout are referenced.

Test: make RunSettingsRoboTests
Bug: b/280306741
Change-Id: I331afe9654b72249d461007c087e7f81783d7625
This commit is contained in:
Derek Jedral
2023-05-08 11:49:59 -07:00
parent 42deb763e0
commit 501f3635dc
5 changed files with 6 additions and 81 deletions

View File

@@ -75,7 +75,7 @@ public class ActiveUnlockStatusUtils {
* used.
*/
public boolean useUnlockIntentLayout() {
return isAvailable() && UNLOCK_INTENT_LAYOUT.equals(getFlagState());
return isAvailable();
}
/**
@@ -84,7 +84,7 @@ public class ActiveUnlockStatusUtils {
* should be used.
*/
public boolean useBiometricFailureLayout() {
return isAvailable() && BIOMETRIC_FAILURE_LAYOUT.equals(getFlagState());
return false;
}
/**
@@ -156,10 +156,6 @@ public class ActiveUnlockStatusUtils {
if (!Utils.hasFingerprintHardware(mContext) && !Utils.hasFaceHardware(mContext)) {
return BasePreferenceController.UNSUPPORTED_ON_DEVICE;
}
if (!UNLOCK_INTENT_LAYOUT.equals(getFlagState())
&& !BIOMETRIC_FAILURE_LAYOUT.equals(getFlagState())) {
return BasePreferenceController.CONDITIONALLY_UNAVAILABLE;
}
if (getAuthority() != null && getIntent() != null) {
return BasePreferenceController.AVAILABLE;
}

View File

@@ -32,7 +32,6 @@ import android.os.UserManager;
import androidx.preference.PreferenceScreen;
import com.android.settings.R;
import com.android.settings.testutils.ActiveUnlockTestUtils;
import com.android.settings.testutils.shadow.ShadowDeviceConfig;
import com.android.settingslib.RestrictedPreference;
@@ -163,47 +162,6 @@ public class ActiveUnlockStatusPreferenceControllerTest {
assertThat(mPreference.getSummary().toString()).isEqualTo(summary);
}
@Test
public void biometricsNotSetUp_deviceNameIsNotSet_setupBiometricStringShown() {
ActiveUnlockTestUtils.enable(mContext, ActiveUnlockStatusUtils.BIOMETRIC_FAILURE_LAYOUT);
updateSummary("newSummary");
mController.displayPreference(mPreferenceScreen);
mController.onStart();
idleMainLooper();
assertThat(mPreference.getSummary()).isEqualTo(mContext.getString(
R.string.security_settings_activeunlock_require_face_fingerprint_setup_title));
}
@Test
public void biometricNotSetUp_deviceNameIsSet_summaryShown() {
ActiveUnlockTestUtils.enable(mContext, ActiveUnlockStatusUtils.BIOMETRIC_FAILURE_LAYOUT);
String summary = "newSummary";
updateSummary(summary);
updateDeviceName("deviceName");
mController.displayPreference(mPreferenceScreen);
mController.onStart();
idleMainLooper();
assertThat(mPreference.getSummary()).isEqualTo(summary);
}
@Test
public void biometricSetUp_summaryShown() {
when(mFingerprintManager.hasEnrolledFingerprints(anyInt())).thenReturn(true);
ActiveUnlockTestUtils.enable(mContext, ActiveUnlockStatusUtils.BIOMETRIC_FAILURE_LAYOUT);
String summary = "newSummary";
updateSummary(summary);
mController.displayPreference(mPreferenceScreen);
mController.onStart();
idleMainLooper();
assertThat(mPreference.getSummary()).isEqualTo(summary);
}
private void updateSummary(String summary) {
FakeContentProvider.setTileSummary(summary);
mContext.getContentResolver().notifyChange(FakeContentProvider.URI, null /* observer */);

View File

@@ -128,15 +128,6 @@ public class ActiveUnlockStatusUtilsTest {
assertThat(mActiveUnlockStatusUtils.useBiometricFailureLayout()).isFalse();
}
@Test
public void configIsBiometricFailure_useBiometricFailureLayoutIsTrue() {
ActiveUnlockTestUtils.enable(
mApplicationContext, ActiveUnlockStatusUtils.BIOMETRIC_FAILURE_LAYOUT);
assertThat(mActiveUnlockStatusUtils.useUnlockIntentLayout()).isFalse();
assertThat(mActiveUnlockStatusUtils.useBiometricFailureLayout()).isTrue();
}
@Test
public void getTitle_faceEnabled_returnsFacePreferenceTitle() {
when(mFingerprintManager.isHardwareDetected()).thenReturn(false);
@@ -157,30 +148,6 @@ public class ActiveUnlockStatusUtilsTest {
R.string.security_settings_fingerprint_preference_title));
}
@Test
public void getIntro_faceEnabled_returnsIntroWithFace() {
ActiveUnlockTestUtils.enable(
mApplicationContext, ActiveUnlockStatusUtils.BIOMETRIC_FAILURE_LAYOUT);
when(mFingerprintManager.isHardwareDetected()).thenReturn(false);
when(mFaceManager.isHardwareDetected()).thenReturn(true);
assertThat(mActiveUnlockStatusUtils.getIntroForActiveUnlock())
.isEqualTo(mApplicationContext.getString(
R.string.biometric_settings_intro_with_face));
}
@Test
public void getIntro_fingerprintEnabled_returnsIntroWithFingerprint() {
ActiveUnlockTestUtils.enable(
mApplicationContext, ActiveUnlockStatusUtils.BIOMETRIC_FAILURE_LAYOUT);
when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
when(mFaceManager.isHardwareDetected()).thenReturn(false);
assertThat(mActiveUnlockStatusUtils.getIntroForActiveUnlock())
.isEqualTo(mApplicationContext.getString(
R.string.biometric_settings_intro_with_fingerprint));
}
@Test
public void getIntro_unlockOnIntentAndFaceEnabled_returnsEmpty() {
ActiveUnlockTestUtils.enable(

View File

@@ -84,5 +84,7 @@ public final class ActiveUnlockTestUtils {
ActiveUnlockStatusUtils.CONFIG_FLAG_NAME,
null /* value */,
false /* makeDefault */);
Settings.Secure.putString(context.getContentResolver(), TARGET_SETTING, null);
Settings.Secure.putString(context.getContentResolver(), PROVIDER_SETTING, null);
}
}

View File

@@ -84,5 +84,7 @@ public final class ActiveUnlockTestUtils {
ActiveUnlockStatusUtils.CONFIG_FLAG_NAME,
null /* value */,
false /* makeDefault */);
Settings.Secure.putString(context.getContentResolver(), TARGET_SETTING, null);
Settings.Secure.putString(context.getContentResolver(), PROVIDER_SETTING, null);
}
}