fingerprint pre-enroll calibration

Add calibration interface and dialog

Test: Manually doing enrollment without any exception
Bug: 301226085
Change-Id: Ibe0d205e87f75bb1d5bd1c646deb8501d96a4a5a
This commit is contained in:
MiltonWu
2023-10-11 08:13:14 +00:00
parent c5f2ce6f25
commit 3550029297
8 changed files with 235 additions and 14 deletions

View File

@@ -45,6 +45,8 @@ import com.android.settings.biometrics.BiometricEnrollIntroduction;
import com.android.settings.biometrics.BiometricUtils;
import com.android.settings.biometrics.GatekeeperPasswordProvider;
import com.android.settings.biometrics.MultiBiometricEnrollHelper;
import com.android.settings.flags.Flags;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.password.ChooseLockSettingsHelper;
import com.android.settingslib.HelpUtils;
import com.android.settingslib.RestrictedLockUtilsInternal;
@@ -55,6 +57,7 @@ import com.google.android.setupdesign.span.LinkSpan;
import com.google.android.setupdesign.util.DeviceHelper;
import java.util.List;
import java.util.UUID;
public class FingerprintEnrollIntroduction extends BiometricEnrollIntroduction {
@@ -67,6 +70,8 @@ public class FingerprintEnrollIntroduction extends BiometricEnrollIntroduction {
private DevicePolicyManager mDevicePolicyManager;
private boolean mCanAssumeUdfps;
@Nullable
private UdfpsEnrollCalibrator mCalibrator;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -85,6 +90,16 @@ public class FingerprintEnrollIntroduction extends BiometricEnrollIntroduction {
mDevicePolicyManager = getSystemService(DevicePolicyManager.class);
if (Flags.udfpsEnrollCalibration()) {
mCalibrator = FeatureFactory.getFeatureFactory().getFingerprintFeatureProvider()
.getUdfpsEnrollCalibrator(
(savedInstanceState != null)
? savedInstanceState.getParcelable(
KEY_CALIBRATOR_UUID, UUID.class)
: null
);
}
final ImageView iconFingerprint = findViewById(R.id.icon_fingerprint);
final ImageView iconDeviceLocked = findViewById(R.id.icon_device_locked);
final ImageView iconTrashCan = findViewById(R.id.icon_trash_can);
@@ -155,6 +170,16 @@ public class FingerprintEnrollIntroduction extends BiometricEnrollIntroduction {
}
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
if (Flags.udfpsEnrollCalibration()) {
if (mCalibrator != null) {
outState.putSerializable(KEY_CALIBRATOR_UUID, mCalibrator.getUuid());
}
}
}
@Override
protected void initViews() {
setDescriptionText(getString(
@@ -364,6 +389,11 @@ public class FingerprintEnrollIntroduction extends BiometricEnrollIntroduction {
intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE,
BiometricUtils.getGatekeeperPasswordHandle(getIntent()));
}
if (Flags.udfpsEnrollCalibration()) {
if (mCalibrator != null) {
intent.putExtra(KEY_CALIBRATOR_UUID, mCalibrator.getUuid());
}
}
return intent;
}