Merge "Allow Watch Unlock to exit back to Device Unlock settings." into main

This commit is contained in:
Treehugger Robot
2024-08-29 21:00:16 +00:00
committed by Android (Google) Code Review
2 changed files with 30 additions and 1 deletions

View File

@@ -14,3 +14,10 @@ flag {
description: "This flag enables or disables the Fingerprint v2 enrollment" description: "This flag enables or disables the Fingerprint v2 enrollment"
bug: "295206723" 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"
}

View File

@@ -24,14 +24,19 @@ import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.os.UserHandle; 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.annotation.Nullable;
import androidx.preference.Preference; import androidx.preference.Preference;
import com.android.settings.R; 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.ActiveUnlockContentListener.OnContentChangedListener;
import com.android.settings.biometrics.activeunlock.ActiveUnlockDeviceNameListener; import com.android.settings.biometrics.activeunlock.ActiveUnlockDeviceNameListener;
import com.android.settings.biometrics.activeunlock.ActiveUnlockRequireBiometricSetup; import com.android.settings.biometrics.activeunlock.ActiveUnlockRequireBiometricSetup;
import com.android.settings.biometrics.activeunlock.ActiveUnlockStatusUtils; import com.android.settings.biometrics.activeunlock.ActiveUnlockStatusUtils;
import com.android.settings.flags.Flags;
import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settingslib.search.SearchIndexable; import com.android.settingslib.search.SearchIndexable;
@@ -52,6 +57,10 @@ public class CombinedBiometricSettings extends BiometricsSettingsBase {
private CombinedBiometricStatusUtils mCombinedBiometricStatusUtils; private CombinedBiometricStatusUtils mCombinedBiometricStatusUtils;
@Nullable private ActiveUnlockDeviceNameListener mActiveUnlockDeviceNameListener; @Nullable private ActiveUnlockDeviceNameListener mActiveUnlockDeviceNameListener;
private final ActivityResultLauncher<Intent> mActiveUnlockPreferenceLauncher =
registerForActivityResult(new ActivityResultContracts.StartActivityForResult(),
this::onActiveUnlockPreferenceResult);
@Override @Override
public void onAttach(Context context) { public void onAttach(Context context) {
super.onAttach(context); super.onAttach(context);
@@ -158,12 +167,25 @@ public class CombinedBiometricSettings extends BiometricsSettingsBase {
intent = mActiveUnlockStatusUtils.getIntent(); intent = mActiveUnlockStatusUtils.getIntent();
} }
if (intent != null) { if (intent != null) {
startActivityForResult(intent, ACTIVE_UNLOCK_REQUEST); if (Flags.activeUnlockFinishParent()) {
mActiveUnlockPreferenceLauncher.launch(intent);
} else {
startActivityForResult(intent, ACTIVE_UNLOCK_REQUEST);
}
} }
return true; 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 @Override
protected String getUseAnyBiometricSummary() { protected String getUseAnyBiometricSummary() {
// either Active Unlock is not enabled or no device is enrolled. // either Active Unlock is not enabled or no device is enrolled.