Loading aconfig/settings_biometrics_framework_flag_declarations.aconfig +7 −0 Original line number Diff line number Diff line Loading @@ -14,3 +14,10 @@ flag { description: "This flag enables or disables the Fingerprint v2 enrollment" bug: "295206723" } flag { name: "active_unlock_finish_parent" namespace: "biometrics_framework" description: "This flag enables the Active Unlock settings activity to finish its parent activity" bug: "343576960" } src/com/android/settings/biometrics/combination/CombinedBiometricSettings.java +23 −1 Original line number Diff line number Diff line Loading @@ -24,14 +24,19 @@ import android.content.Intent; import android.os.Bundle; import android.os.UserHandle; import androidx.activity.result.ActivityResult; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; import androidx.annotation.Nullable; import androidx.preference.Preference; import com.android.settings.R; import com.android.settings.biometrics.BiometricEnrollBase; import com.android.settings.biometrics.activeunlock.ActiveUnlockContentListener.OnContentChangedListener; import com.android.settings.biometrics.activeunlock.ActiveUnlockDeviceNameListener; import com.android.settings.biometrics.activeunlock.ActiveUnlockRequireBiometricSetup; import com.android.settings.biometrics.activeunlock.ActiveUnlockStatusUtils; import com.android.settings.flags.Flags; import com.android.settings.search.BaseSearchIndexProvider; import com.android.settingslib.search.SearchIndexable; Loading @@ -52,6 +57,10 @@ public class CombinedBiometricSettings extends BiometricsSettingsBase { private CombinedBiometricStatusUtils mCombinedBiometricStatusUtils; @Nullable private ActiveUnlockDeviceNameListener mActiveUnlockDeviceNameListener; private final ActivityResultLauncher<Intent> mActiveUnlockPreferenceLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), this::onActiveUnlockPreferenceResult); @Override public void onAttach(Context context) { super.onAttach(context); Loading Loading @@ -158,12 +167,25 @@ public class CombinedBiometricSettings extends BiometricsSettingsBase { intent = mActiveUnlockStatusUtils.getIntent(); } if (intent != null) { if (Flags.activeUnlockFinishParent()) { mActiveUnlockPreferenceLauncher.launch(intent); } else { startActivityForResult(intent, ACTIVE_UNLOCK_REQUEST); } } return true; } private void onActiveUnlockPreferenceResult(@Nullable ActivityResult result) { if (result != null && result.getResultCode() == BiometricEnrollBase.RESULT_TIMEOUT) { mDoNotFinishActivity = false; // When "Watch Unlock" is closed due to entering onStop(), // "Face & Fingerprint Unlock" shall also close itself and back to "Security" page. finish(); } } @Override protected String getUseAnyBiometricSummary() { // either Active Unlock is not enabled or no device is enrolled. Loading Loading
aconfig/settings_biometrics_framework_flag_declarations.aconfig +7 −0 Original line number Diff line number Diff line Loading @@ -14,3 +14,10 @@ flag { description: "This flag enables or disables the Fingerprint v2 enrollment" bug: "295206723" } flag { name: "active_unlock_finish_parent" namespace: "biometrics_framework" description: "This flag enables the Active Unlock settings activity to finish its parent activity" bug: "343576960" }
src/com/android/settings/biometrics/combination/CombinedBiometricSettings.java +23 −1 Original line number Diff line number Diff line Loading @@ -24,14 +24,19 @@ import android.content.Intent; import android.os.Bundle; import android.os.UserHandle; import androidx.activity.result.ActivityResult; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; import androidx.annotation.Nullable; import androidx.preference.Preference; import com.android.settings.R; import com.android.settings.biometrics.BiometricEnrollBase; import com.android.settings.biometrics.activeunlock.ActiveUnlockContentListener.OnContentChangedListener; import com.android.settings.biometrics.activeunlock.ActiveUnlockDeviceNameListener; import com.android.settings.biometrics.activeunlock.ActiveUnlockRequireBiometricSetup; import com.android.settings.biometrics.activeunlock.ActiveUnlockStatusUtils; import com.android.settings.flags.Flags; import com.android.settings.search.BaseSearchIndexProvider; import com.android.settingslib.search.SearchIndexable; Loading @@ -52,6 +57,10 @@ public class CombinedBiometricSettings extends BiometricsSettingsBase { private CombinedBiometricStatusUtils mCombinedBiometricStatusUtils; @Nullable private ActiveUnlockDeviceNameListener mActiveUnlockDeviceNameListener; private final ActivityResultLauncher<Intent> mActiveUnlockPreferenceLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), this::onActiveUnlockPreferenceResult); @Override public void onAttach(Context context) { super.onAttach(context); Loading Loading @@ -158,12 +167,25 @@ public class CombinedBiometricSettings extends BiometricsSettingsBase { intent = mActiveUnlockStatusUtils.getIntent(); } if (intent != null) { if (Flags.activeUnlockFinishParent()) { mActiveUnlockPreferenceLauncher.launch(intent); } else { startActivityForResult(intent, ACTIVE_UNLOCK_REQUEST); } } return true; } private void onActiveUnlockPreferenceResult(@Nullable ActivityResult result) { if (result != null && result.getResultCode() == BiometricEnrollBase.RESULT_TIMEOUT) { mDoNotFinishActivity = false; // When "Watch Unlock" is closed due to entering onStop(), // "Face & Fingerprint Unlock" shall also close itself and back to "Security" page. finish(); } } @Override protected String getUseAnyBiometricSummary() { // either Active Unlock is not enabled or no device is enrolled. Loading