Loading src/com/android/settings/biometrics/BiometricEnrollActivity.java +18 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import static android.provider.Settings.EXTRA_BIOMETRIC_AUTHENTICATORS_ALLOWED; import static com.android.settings.biometrics.BiometricEnrollBase.BIOMETRIC_AUTH_REQUEST; import static com.android.settings.biometrics.BiometricEnrollBase.RESULT_CONSENT_DENIED; import static com.android.settings.biometrics.BiometricEnrollBase.RESULT_CONSENT_GRANTED; import static com.android.settings.biometrics.BiometricEnrollBase.RESULT_FINISHED; import static com.google.android.setupdesign.transition.TransitionHelper.TRANSITION_FADE_THROUGH; Loading Loading @@ -53,6 +54,7 @@ import com.android.internal.widget.LockPatternUtils; import com.android.settings.R; import com.android.settings.SetupWizardUtils; import com.android.settings.Utils; import com.android.settings.biometrics.combination.CombinedBiometricStatusUtils; import com.android.settings.core.InstrumentedActivity; import com.android.settings.overlay.FeatureFactory; import com.android.settings.password.ChooseLockGeneric; Loading Loading @@ -131,6 +133,7 @@ public class BiometricEnrollActivity extends InstrumentedActivity { private Bundle mParentalOptions; @Nullable private Long mGkPwHandle; @Nullable private ParentalConsentHelper mParentalConsentHelper; private boolean mIsPreviousEnrollmentCanceled = false; @Override public void onCreate(@Nullable Bundle savedInstanceState) { Loading Loading @@ -531,6 +534,7 @@ public class BiometricEnrollActivity extends InstrumentedActivity { } else { Log.d(TAG, "Unknown result for set/choose lock: " + resultCode); setResult(resultCode, newResultIntent()); notifySafetyIssueActionLaunchedIfNeeded(resultCode); finish(); } break; Loading @@ -549,16 +553,21 @@ public class BiometricEnrollActivity extends InstrumentedActivity { // SetupFingerprintEnroll*/FingerprintEnrollmentActivity to // SetupFaceEnrollIntroduction TransitionHelper.applyForwardTransition(this, TRANSITION_FADE_THROUGH); mIsPreviousEnrollmentCanceled = resultCode != BiometricEnrollBase.RESULT_FINISHED; launchFaceOnlyEnroll(); } else { notifySafetyIssueActionLaunchedIfNeeded(resultCode); finishOrLaunchHandToParent(resultCode); } break; case REQUEST_SINGLE_ENROLL_FACE: mIsSingleEnrolling = false; if (resultCode == Activity.RESULT_CANCELED && mIsFingerprintEnrollable) { mIsPreviousEnrollmentCanceled = true; launchFingerprintOnlyEnroll(); } else { notifySafetyIssueActionLaunchedIfNeeded(resultCode); finishOrLaunchHandToParent(resultCode); } break; Loading Loading @@ -742,6 +751,15 @@ public class BiometricEnrollActivity extends InstrumentedActivity { startActivityForResult(intent, REQUEST_HANDOFF_PARENT); } private void notifySafetyIssueActionLaunchedIfNeeded(int resultCode) { if (getIntent().getBooleanExtra( CombinedBiometricStatusUtils.EXTRA_LAUNCH_FROM_SAFETY_SOURCE_ISSUE, false) && (resultCode != RESULT_FINISHED || mIsPreviousEnrollmentCanceled)) { FeatureFactory.getFeatureFactory().getBiometricsFeatureProvider() .notifySafetyIssueActionLaunched(); } } @Override public int getMetricsCategory() { return SettingsEnums.BIOMETRIC_ENROLL_ACTIVITY; Loading src/com/android/settings/biometrics/combination/CombinedBiometricStatusUtils.java +7 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,13 @@ import com.android.settingslib.utils.StringUtil; */ public class CombinedBiometricStatusUtils { /** * An intent extra indicates that the enrollment process is launched from biometric * SafetySourceIssue action. */ public static final String EXTRA_LAUNCH_FROM_SAFETY_SOURCE_ISSUE = "launch_from_safety_source_issue"; private final int mUserId; private final Context mContext; @Nullable Loading src/com/android/settings/biometrics/face/FaceEnroll.kt +19 −2 Original line number Diff line number Diff line Loading @@ -16,10 +16,13 @@ package com.android.settings.biometrics.face import android.app.ComponentCaller import android.content.Intent import android.os.Bundle import android.util.Log import androidx.appcompat.app.AppCompatActivity import com.android.settings.biometrics.BiometricEnrollBase.RESULT_FINISHED import com.android.settings.biometrics.combination.CombinedBiometricStatusUtils import com.android.settings.overlay.FeatureFactory.Companion.featureFactory Loading @@ -46,9 +49,23 @@ class FaceEnroll: AppCompatActivity() { */ Log.d("FaceEnroll", "forward to $nextActivityClass") val nextIntent = Intent(this, nextActivityClass) nextIntent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT) nextIntent.putExtras(intent) startActivity(nextIntent) startActivityForResult(nextIntent, 0) } override fun onActivityResult( requestCode: Int, resultCode: Int, data: Intent?, caller: ComponentCaller ) { super.onActivityResult(requestCode, resultCode, data, caller) if (intent.getBooleanExtra( CombinedBiometricStatusUtils.EXTRA_LAUNCH_FROM_SAFETY_SOURCE_ISSUE, false) && resultCode != RESULT_FINISHED) { featureFactory.biometricsFeatureProvider.notifySafetyIssueActionLaunched() } setResult(resultCode, data) finish() } } No newline at end of file src/com/android/settings/biometrics/fingerprint/FingerprintEnroll.kt +20 −2 Original line number Diff line number Diff line Loading @@ -16,10 +16,13 @@ package com.android.settings.biometrics.fingerprint import android.app.ComponentCaller import android.content.Intent import android.os.Bundle import android.util.Log import androidx.appcompat.app.AppCompatActivity import com.android.settings.biometrics.BiometricEnrollBase import com.android.settings.biometrics.combination.CombinedBiometricStatusUtils import com.android.settings.overlay.FeatureFactory.Companion.featureFactory /** Loading Loading @@ -69,9 +72,24 @@ open class FingerprintEnroll: AppCompatActivity() { */ Log.d("FingerprintEnroll", "forward to $nextActivityClass") val nextIntent = Intent(this, nextActivityClass) nextIntent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT) nextIntent.putExtras(intent) startActivity(nextIntent) startActivityForResult(nextIntent, 0) } override fun onActivityResult( requestCode: Int, resultCode: Int, data: Intent?, caller: ComponentCaller ) { super.onActivityResult(requestCode, resultCode, data, caller) if (intent.getBooleanExtra( CombinedBiometricStatusUtils.EXTRA_LAUNCH_FROM_SAFETY_SOURCE_ISSUE, false) && resultCode != BiometricEnrollBase.RESULT_FINISHED ) { featureFactory.biometricsFeatureProvider.notifySafetyIssueActionLaunched() } setResult(resultCode, data) finish() } } No newline at end of file tests/robotests/src/com/android/settings/biometrics/face/FaceEnrollTest.kt +0 −1 Original line number Diff line number Diff line Loading @@ -68,7 +68,6 @@ class FaceEnrollTest { currentActivityInstance : FaceEnroll, nextActivityClass: Class<out Activity> ) { Truth.assertThat(currentActivityInstance.isFinishing).isTrue() val nextActivityIntent = Shadows.shadowOf(currentActivityInstance).nextStartedActivity assertThat(nextActivityIntent.component!!.className).isEqualTo(nextActivityClass.name) assertThat(nextActivityIntent.extras!!.size()).isEqualTo(1) Loading Loading
src/com/android/settings/biometrics/BiometricEnrollActivity.java +18 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import static android.provider.Settings.EXTRA_BIOMETRIC_AUTHENTICATORS_ALLOWED; import static com.android.settings.biometrics.BiometricEnrollBase.BIOMETRIC_AUTH_REQUEST; import static com.android.settings.biometrics.BiometricEnrollBase.RESULT_CONSENT_DENIED; import static com.android.settings.biometrics.BiometricEnrollBase.RESULT_CONSENT_GRANTED; import static com.android.settings.biometrics.BiometricEnrollBase.RESULT_FINISHED; import static com.google.android.setupdesign.transition.TransitionHelper.TRANSITION_FADE_THROUGH; Loading Loading @@ -53,6 +54,7 @@ import com.android.internal.widget.LockPatternUtils; import com.android.settings.R; import com.android.settings.SetupWizardUtils; import com.android.settings.Utils; import com.android.settings.biometrics.combination.CombinedBiometricStatusUtils; import com.android.settings.core.InstrumentedActivity; import com.android.settings.overlay.FeatureFactory; import com.android.settings.password.ChooseLockGeneric; Loading Loading @@ -131,6 +133,7 @@ public class BiometricEnrollActivity extends InstrumentedActivity { private Bundle mParentalOptions; @Nullable private Long mGkPwHandle; @Nullable private ParentalConsentHelper mParentalConsentHelper; private boolean mIsPreviousEnrollmentCanceled = false; @Override public void onCreate(@Nullable Bundle savedInstanceState) { Loading Loading @@ -531,6 +534,7 @@ public class BiometricEnrollActivity extends InstrumentedActivity { } else { Log.d(TAG, "Unknown result for set/choose lock: " + resultCode); setResult(resultCode, newResultIntent()); notifySafetyIssueActionLaunchedIfNeeded(resultCode); finish(); } break; Loading @@ -549,16 +553,21 @@ public class BiometricEnrollActivity extends InstrumentedActivity { // SetupFingerprintEnroll*/FingerprintEnrollmentActivity to // SetupFaceEnrollIntroduction TransitionHelper.applyForwardTransition(this, TRANSITION_FADE_THROUGH); mIsPreviousEnrollmentCanceled = resultCode != BiometricEnrollBase.RESULT_FINISHED; launchFaceOnlyEnroll(); } else { notifySafetyIssueActionLaunchedIfNeeded(resultCode); finishOrLaunchHandToParent(resultCode); } break; case REQUEST_SINGLE_ENROLL_FACE: mIsSingleEnrolling = false; if (resultCode == Activity.RESULT_CANCELED && mIsFingerprintEnrollable) { mIsPreviousEnrollmentCanceled = true; launchFingerprintOnlyEnroll(); } else { notifySafetyIssueActionLaunchedIfNeeded(resultCode); finishOrLaunchHandToParent(resultCode); } break; Loading Loading @@ -742,6 +751,15 @@ public class BiometricEnrollActivity extends InstrumentedActivity { startActivityForResult(intent, REQUEST_HANDOFF_PARENT); } private void notifySafetyIssueActionLaunchedIfNeeded(int resultCode) { if (getIntent().getBooleanExtra( CombinedBiometricStatusUtils.EXTRA_LAUNCH_FROM_SAFETY_SOURCE_ISSUE, false) && (resultCode != RESULT_FINISHED || mIsPreviousEnrollmentCanceled)) { FeatureFactory.getFeatureFactory().getBiometricsFeatureProvider() .notifySafetyIssueActionLaunched(); } } @Override public int getMetricsCategory() { return SettingsEnums.BIOMETRIC_ENROLL_ACTIVITY; Loading
src/com/android/settings/biometrics/combination/CombinedBiometricStatusUtils.java +7 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,13 @@ import com.android.settingslib.utils.StringUtil; */ public class CombinedBiometricStatusUtils { /** * An intent extra indicates that the enrollment process is launched from biometric * SafetySourceIssue action. */ public static final String EXTRA_LAUNCH_FROM_SAFETY_SOURCE_ISSUE = "launch_from_safety_source_issue"; private final int mUserId; private final Context mContext; @Nullable Loading
src/com/android/settings/biometrics/face/FaceEnroll.kt +19 −2 Original line number Diff line number Diff line Loading @@ -16,10 +16,13 @@ package com.android.settings.biometrics.face import android.app.ComponentCaller import android.content.Intent import android.os.Bundle import android.util.Log import androidx.appcompat.app.AppCompatActivity import com.android.settings.biometrics.BiometricEnrollBase.RESULT_FINISHED import com.android.settings.biometrics.combination.CombinedBiometricStatusUtils import com.android.settings.overlay.FeatureFactory.Companion.featureFactory Loading @@ -46,9 +49,23 @@ class FaceEnroll: AppCompatActivity() { */ Log.d("FaceEnroll", "forward to $nextActivityClass") val nextIntent = Intent(this, nextActivityClass) nextIntent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT) nextIntent.putExtras(intent) startActivity(nextIntent) startActivityForResult(nextIntent, 0) } override fun onActivityResult( requestCode: Int, resultCode: Int, data: Intent?, caller: ComponentCaller ) { super.onActivityResult(requestCode, resultCode, data, caller) if (intent.getBooleanExtra( CombinedBiometricStatusUtils.EXTRA_LAUNCH_FROM_SAFETY_SOURCE_ISSUE, false) && resultCode != RESULT_FINISHED) { featureFactory.biometricsFeatureProvider.notifySafetyIssueActionLaunched() } setResult(resultCode, data) finish() } } No newline at end of file
src/com/android/settings/biometrics/fingerprint/FingerprintEnroll.kt +20 −2 Original line number Diff line number Diff line Loading @@ -16,10 +16,13 @@ package com.android.settings.biometrics.fingerprint import android.app.ComponentCaller import android.content.Intent import android.os.Bundle import android.util.Log import androidx.appcompat.app.AppCompatActivity import com.android.settings.biometrics.BiometricEnrollBase import com.android.settings.biometrics.combination.CombinedBiometricStatusUtils import com.android.settings.overlay.FeatureFactory.Companion.featureFactory /** Loading Loading @@ -69,9 +72,24 @@ open class FingerprintEnroll: AppCompatActivity() { */ Log.d("FingerprintEnroll", "forward to $nextActivityClass") val nextIntent = Intent(this, nextActivityClass) nextIntent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT) nextIntent.putExtras(intent) startActivity(nextIntent) startActivityForResult(nextIntent, 0) } override fun onActivityResult( requestCode: Int, resultCode: Int, data: Intent?, caller: ComponentCaller ) { super.onActivityResult(requestCode, resultCode, data, caller) if (intent.getBooleanExtra( CombinedBiometricStatusUtils.EXTRA_LAUNCH_FROM_SAFETY_SOURCE_ISSUE, false) && resultCode != BiometricEnrollBase.RESULT_FINISHED ) { featureFactory.biometricsFeatureProvider.notifySafetyIssueActionLaunched() } setResult(resultCode, data) finish() } } No newline at end of file
tests/robotests/src/com/android/settings/biometrics/face/FaceEnrollTest.kt +0 −1 Original line number Diff line number Diff line Loading @@ -68,7 +68,6 @@ class FaceEnrollTest { currentActivityInstance : FaceEnroll, nextActivityClass: Class<out Activity> ) { Truth.assertThat(currentActivityInstance.isFinishing).isTrue() val nextActivityIntent = Shadows.shadowOf(currentActivityInstance).nextStartedActivity assertThat(nextActivityIntent.component!!.className).isEqualTo(nextActivityClass.name) assertThat(nextActivityIntent.extras!!.size()).isEqualTo(1) Loading