Hide background when identity check auth is requested
Flag: android.hardware.biometrics.flags.mandatory_biometrics Fixes: 354014097 Test: atest UtilsTest Change-Id: I3af06fd9dca2bdc306496f1db832e1d1e2bfe8d2
This commit is contained in:
@@ -188,7 +188,7 @@ public class MainClear extends InstrumentedFragment implements OnGlobalLayoutLis
|
|||||||
false /* biometricsAuthenticationRequested */,
|
false /* biometricsAuthenticationRequested */,
|
||||||
userId)) {
|
userId)) {
|
||||||
Utils.launchBiometricPromptForMandatoryBiometrics(this, BIOMETRICS_REQUEST,
|
Utils.launchBiometricPromptForMandatoryBiometrics(this, BIOMETRICS_REQUEST,
|
||||||
userId);
|
userId, false /* hideBackground */);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -25,6 +25,7 @@ import static android.text.format.DateUtils.FORMAT_ABBREV_MONTH;
|
|||||||
import static android.text.format.DateUtils.FORMAT_SHOW_DATE;
|
import static android.text.format.DateUtils.FORMAT_SHOW_DATE;
|
||||||
|
|
||||||
import static com.android.settings.password.ConfirmDeviceCredentialActivity.BIOMETRIC_PROMPT_AUTHENTICATORS;
|
import static com.android.settings.password.ConfirmDeviceCredentialActivity.BIOMETRIC_PROMPT_AUTHENTICATORS;
|
||||||
|
import static com.android.settings.password.ConfirmDeviceCredentialActivity.BIOMETRIC_PROMPT_HIDE_BACKGROUND;
|
||||||
import static com.android.settings.password.ConfirmDeviceCredentialActivity.BIOMETRIC_PROMPT_NEGATIVE_BUTTON_TEXT;
|
import static com.android.settings.password.ConfirmDeviceCredentialActivity.BIOMETRIC_PROMPT_NEGATIVE_BUTTON_TEXT;
|
||||||
|
|
||||||
import android.app.ActionBar;
|
import android.app.ActionBar;
|
||||||
@@ -1522,9 +1523,10 @@ public final class Utils extends com.android.settingslib.Utils {
|
|||||||
* @param fragment corresponding fragment of the surface
|
* @param fragment corresponding fragment of the surface
|
||||||
* @param requestCode for starting the new activity
|
* @param requestCode for starting the new activity
|
||||||
* @param userId user id for the authentication request
|
* @param userId user id for the authentication request
|
||||||
|
* @param hideBackground if the background activity screen needs to be hidden
|
||||||
*/
|
*/
|
||||||
public static void launchBiometricPromptForMandatoryBiometrics(@NonNull Fragment fragment,
|
public static void launchBiometricPromptForMandatoryBiometrics(@NonNull Fragment fragment,
|
||||||
int requestCode, int userId) {
|
int requestCode, int userId, boolean hideBackground) {
|
||||||
final Intent intent = new Intent();
|
final Intent intent = new Intent();
|
||||||
intent.putExtra(BIOMETRIC_PROMPT_AUTHENTICATORS,
|
intent.putExtra(BIOMETRIC_PROMPT_AUTHENTICATORS,
|
||||||
BiometricManager.Authenticators.MANDATORY_BIOMETRICS);
|
BiometricManager.Authenticators.MANDATORY_BIOMETRICS);
|
||||||
@@ -1534,6 +1536,7 @@ public final class Utils extends com.android.settingslib.Utils {
|
|||||||
fragment.getString(R.string.mandatory_biometrics_prompt_description));
|
fragment.getString(R.string.mandatory_biometrics_prompt_description));
|
||||||
intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_ALLOW_ANY_USER, true);
|
intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_ALLOW_ANY_USER, true);
|
||||||
intent.putExtra(EXTRA_USER_ID, userId);
|
intent.putExtra(EXTRA_USER_ID, userId);
|
||||||
|
intent.putExtra(BIOMETRIC_PROMPT_HIDE_BACKGROUND, hideBackground);
|
||||||
intent.setClassName(SETTINGS_PACKAGE_NAME,
|
intent.setClassName(SETTINGS_PACKAGE_NAME,
|
||||||
ConfirmDeviceCredentialActivity.InternalActivity.class.getName());
|
ConfirmDeviceCredentialActivity.InternalActivity.class.getName());
|
||||||
fragment.startActivityForResult(intent, requestCode);
|
fragment.startActivityForResult(intent, requestCode);
|
||||||
|
@@ -147,7 +147,7 @@ public abstract class BiometricsSettingsBase extends DashboardFragment {
|
|||||||
mBiometricsAuthenticationRequested, mUserId)) {
|
mBiometricsAuthenticationRequested, mUserId)) {
|
||||||
mBiometricsAuthenticationRequested = true;
|
mBiometricsAuthenticationRequested = true;
|
||||||
Utils.launchBiometricPromptForMandatoryBiometrics(this, BIOMETRIC_AUTH_REQUEST,
|
Utils.launchBiometricPromptForMandatoryBiometrics(this, BIOMETRIC_AUTH_REQUEST,
|
||||||
mUserId);
|
mUserId, true /* hideBackground */);
|
||||||
}
|
}
|
||||||
|
|
||||||
updateUnlockPhonePreferenceSummary();
|
updateUnlockPhonePreferenceSummary();
|
||||||
@@ -166,7 +166,7 @@ public abstract class BiometricsSettingsBase extends DashboardFragment {
|
|||||||
&& mGkPwHandle != 0L) {
|
&& mGkPwHandle != 0L) {
|
||||||
mBiometricsAuthenticationRequested = true;
|
mBiometricsAuthenticationRequested = true;
|
||||||
Utils.launchBiometricPromptForMandatoryBiometrics(this, BIOMETRIC_AUTH_REQUEST,
|
Utils.launchBiometricPromptForMandatoryBiometrics(this, BIOMETRIC_AUTH_REQUEST,
|
||||||
mUserId);
|
mUserId, true /* hideBackground */);
|
||||||
}
|
}
|
||||||
if (!mConfirmCredential) {
|
if (!mConfirmCredential) {
|
||||||
mDoNotFinishActivity = false;
|
mDoNotFinishActivity = false;
|
||||||
|
@@ -293,7 +293,7 @@ public class FaceSettings extends DashboardFragment {
|
|||||||
mUserId)) {
|
mUserId)) {
|
||||||
mBiometricsAuthenticationRequested = true;
|
mBiometricsAuthenticationRequested = true;
|
||||||
Utils.launchBiometricPromptForMandatoryBiometrics(this, BIOMETRIC_AUTH_REQUEST,
|
Utils.launchBiometricPromptForMandatoryBiometrics(this, BIOMETRIC_AUTH_REQUEST,
|
||||||
mUserId);
|
mUserId, true /* hideBackground */);
|
||||||
} else {
|
} else {
|
||||||
mAttentionController.setToken(mToken);
|
mAttentionController.setToken(mToken);
|
||||||
mEnrollController.setToken(mToken);
|
mEnrollController.setToken(mToken);
|
||||||
|
@@ -489,7 +489,7 @@ public class FingerprintSettings extends SubSettings {
|
|||||||
mUserId)) {
|
mUserId)) {
|
||||||
mBiometricsAuthenticationRequested = true;
|
mBiometricsAuthenticationRequested = true;
|
||||||
Utils.launchBiometricPromptForMandatoryBiometrics(this, BIOMETRIC_AUTH_REQUEST,
|
Utils.launchBiometricPromptForMandatoryBiometrics(this, BIOMETRIC_AUTH_REQUEST,
|
||||||
mUserId);
|
mUserId, true /* hideBackground */);
|
||||||
} else if (!mHasFirstEnrolled) {
|
} else if (!mHasFirstEnrolled) {
|
||||||
mIsEnrolling = true;
|
mIsEnrolling = true;
|
||||||
addFirstFingerprint(null);
|
addFirstFingerprint(null);
|
||||||
@@ -783,7 +783,7 @@ public class FingerprintSettings extends SubSettings {
|
|||||||
mUserId)) {
|
mUserId)) {
|
||||||
mBiometricsAuthenticationRequested = true;
|
mBiometricsAuthenticationRequested = true;
|
||||||
Utils.launchBiometricPromptForMandatoryBiometrics(this,
|
Utils.launchBiometricPromptForMandatoryBiometrics(this,
|
||||||
BIOMETRIC_AUTH_REQUEST, mUserId);
|
BIOMETRIC_AUTH_REQUEST, mUserId, true /* hideBackground */);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -495,7 +495,7 @@ public class ChooseLockGeneric extends SettingsActivity {
|
|||||||
mBiometricsAuthSuccessful, mWaitingForConfirmation, mUserId)) {
|
mBiometricsAuthSuccessful, mWaitingForConfirmation, mUserId)) {
|
||||||
mWaitingForConfirmation = true;
|
mWaitingForConfirmation = true;
|
||||||
Utils.launchBiometricPromptForMandatoryBiometrics(this, BIOMETRIC_AUTH_REQUEST,
|
Utils.launchBiometricPromptForMandatoryBiometrics(this, BIOMETRIC_AUTH_REQUEST,
|
||||||
mUserId);
|
mUserId, true /* hideBackground */);
|
||||||
}
|
}
|
||||||
} else if (requestCode == BIOMETRIC_AUTH_REQUEST) {
|
} else if (requestCode == BIOMETRIC_AUTH_REQUEST) {
|
||||||
if (resultCode == Activity.RESULT_OK) {
|
if (resultCode == Activity.RESULT_OK) {
|
||||||
|
@@ -80,6 +80,8 @@ public class ConfirmDeviceCredentialActivity extends FragmentActivity {
|
|||||||
public static final String BIOMETRIC_PROMPT_AUTHENTICATORS = "biometric_prompt_authenticators";
|
public static final String BIOMETRIC_PROMPT_AUTHENTICATORS = "biometric_prompt_authenticators";
|
||||||
public static final String BIOMETRIC_PROMPT_NEGATIVE_BUTTON_TEXT =
|
public static final String BIOMETRIC_PROMPT_NEGATIVE_BUTTON_TEXT =
|
||||||
"biometric_prompt_negative_button_text";
|
"biometric_prompt_negative_button_text";
|
||||||
|
public static final String BIOMETRIC_PROMPT_HIDE_BACKGROUND =
|
||||||
|
"biometric_prompt_hide_background";
|
||||||
|
|
||||||
public static class InternalActivity extends ConfirmDeviceCredentialActivity {
|
public static class InternalActivity extends ConfirmDeviceCredentialActivity {
|
||||||
}
|
}
|
||||||
@@ -165,15 +167,20 @@ public class ConfirmDeviceCredentialActivity extends FragmentActivity {
|
|||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
|
||||||
|
final Intent intent = getIntent();
|
||||||
|
if (intent.getBooleanExtra(BIOMETRIC_PROMPT_HIDE_BACKGROUND, false)) {
|
||||||
|
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
|
||||||
|
getWindow().setDimAmount(1);
|
||||||
|
intent.removeExtra(BIOMETRIC_PROMPT_HIDE_BACKGROUND);
|
||||||
|
} else {
|
||||||
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
|
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
|
||||||
getWindow().setStatusBarColor(Color.TRANSPARENT);
|
getWindow().setStatusBarColor(Color.TRANSPARENT);
|
||||||
|
}
|
||||||
|
|
||||||
mDevicePolicyManager = getSystemService(DevicePolicyManager.class);
|
mDevicePolicyManager = getSystemService(DevicePolicyManager.class);
|
||||||
mUserManager = UserManager.get(this);
|
mUserManager = UserManager.get(this);
|
||||||
mTrustManager = getSystemService(TrustManager.class);
|
mTrustManager = getSystemService(TrustManager.class);
|
||||||
mLockPatternUtils = new LockPatternUtils(this);
|
mLockPatternUtils = new LockPatternUtils(this);
|
||||||
|
|
||||||
Intent intent = getIntent();
|
|
||||||
mContext = this;
|
mContext = this;
|
||||||
mCheckDevicePolicyManager = intent
|
mCheckDevicePolicyManager = intent
|
||||||
.getBooleanExtra(KeyguardManager.EXTRA_DISALLOW_BIOMETRICS_IF_POLICY_EXISTS, false);
|
.getBooleanExtra(KeyguardManager.EXTRA_DISALLOW_BIOMETRICS_IF_POLICY_EXISTS, false);
|
||||||
|
@@ -22,6 +22,7 @@ import static android.hardware.biometrics.SensorProperties.STRENGTH_WEAK;
|
|||||||
|
|
||||||
import static com.android.settings.Utils.SETTINGS_PACKAGE_NAME;
|
import static com.android.settings.Utils.SETTINGS_PACKAGE_NAME;
|
||||||
import static com.android.settings.password.ConfirmDeviceCredentialActivity.BIOMETRIC_PROMPT_AUTHENTICATORS;
|
import static com.android.settings.password.ConfirmDeviceCredentialActivity.BIOMETRIC_PROMPT_AUTHENTICATORS;
|
||||||
|
import static com.android.settings.password.ConfirmDeviceCredentialActivity.BIOMETRIC_PROMPT_HIDE_BACKGROUND;
|
||||||
import static com.android.settings.password.ConfirmDeviceCredentialActivity.BIOMETRIC_PROMPT_NEGATIVE_BUTTON_TEXT;
|
import static com.android.settings.password.ConfirmDeviceCredentialActivity.BIOMETRIC_PROMPT_NEGATIVE_BUTTON_TEXT;
|
||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
@@ -581,7 +582,8 @@ public class UtilsTest {
|
|||||||
|
|
||||||
final int requestCode = 1;
|
final int requestCode = 1;
|
||||||
final ArgumentCaptor<Intent> intentArgumentCaptor = ArgumentCaptor.forClass(Intent.class);
|
final ArgumentCaptor<Intent> intentArgumentCaptor = ArgumentCaptor.forClass(Intent.class);
|
||||||
Utils.launchBiometricPromptForMandatoryBiometrics(mFragment, requestCode, USER_ID);
|
Utils.launchBiometricPromptForMandatoryBiometrics(mFragment, requestCode, USER_ID,
|
||||||
|
false /* hideBackground */);
|
||||||
|
|
||||||
verify(mFragment).startActivityForResult(intentArgumentCaptor.capture(), eq(requestCode));
|
verify(mFragment).startActivityForResult(intentArgumentCaptor.capture(), eq(requestCode));
|
||||||
|
|
||||||
@@ -593,6 +595,8 @@ public class UtilsTest {
|
|||||||
assertThat(intent.getExtra(KeyguardManager.EXTRA_DESCRIPTION)).isNotNull();
|
assertThat(intent.getExtra(KeyguardManager.EXTRA_DESCRIPTION)).isNotNull();
|
||||||
assertThat(intent.getBooleanExtra(ChooseLockSettingsHelper.EXTRA_KEY_ALLOW_ANY_USER, false))
|
assertThat(intent.getBooleanExtra(ChooseLockSettingsHelper.EXTRA_KEY_ALLOW_ANY_USER, false))
|
||||||
.isTrue();
|
.isTrue();
|
||||||
|
assertThat(intent.getBooleanExtra(BIOMETRIC_PROMPT_HIDE_BACKGROUND, true))
|
||||||
|
.isFalse();
|
||||||
assertThat(intent.getIntExtra(Intent.EXTRA_USER_ID, 0)).isEqualTo(USER_ID);
|
assertThat(intent.getIntExtra(Intent.EXTRA_USER_ID, 0)).isEqualTo(USER_ID);
|
||||||
assertThat(intent.getComponent().getPackageName()).isEqualTo(SETTINGS_PACKAGE_NAME);
|
assertThat(intent.getComponent().getPackageName()).isEqualTo(SETTINGS_PACKAGE_NAME);
|
||||||
assertThat(intent.getComponent().getClassName()).isEqualTo(
|
assertThat(intent.getComponent().getClassName()).isEqualTo(
|
||||||
|
Reference in New Issue
Block a user