Merge "Remove flicker during fingerprint enrollment" into tm-qpr-dev am: d66e0c4c75
am: da8c78f093
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/20249709 Change-Id: I78baceb039e99545ae5abf9f0c54606188d621b2 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -1332,4 +1332,9 @@
|
||||
[CHAR LIMIT=NONE] -->
|
||||
<string-array name="allowlist_hide_summary_in_battery_usage" translatable="false">
|
||||
</string-array>
|
||||
|
||||
<!-- Array containing help message codes that should not be displayed
|
||||
during fingerprint enrollment. -->
|
||||
<integer-array name="fingerprint_acquired_ignore_list">
|
||||
</integer-array>
|
||||
</resources>
|
||||
|
@@ -21,9 +21,14 @@ import android.app.settings.SettingsEnums;
|
||||
import android.hardware.fingerprint.FingerprintManager;
|
||||
import android.util.Log;
|
||||
|
||||
import com.android.internal.annotations.VisibleForTesting;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.biometrics.BiometricEnrollSidecar;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* Sidecar fragment to handle the state around fingerprint enrollment.
|
||||
*/
|
||||
@@ -32,11 +37,19 @@ public class FingerprintEnrollSidecar extends BiometricEnrollSidecar {
|
||||
|
||||
private FingerprintUpdater mFingerprintUpdater;
|
||||
private @FingerprintManager.EnrollReason int mEnrollReason;
|
||||
private Set<Integer> mHelpIgnore;
|
||||
|
||||
@Override
|
||||
public void onAttach(Activity activity) {
|
||||
super.onAttach(activity);
|
||||
mFingerprintUpdater = new FingerprintUpdater(activity);
|
||||
final int[] ignoreAcquiredInfo = getResources().getIntArray(
|
||||
R.array.fingerprint_acquired_ignore_list);
|
||||
mHelpIgnore = new HashSet<>();
|
||||
for (int acquiredInfo: ignoreAcquiredInfo) {
|
||||
mHelpIgnore.add(acquiredInfo);
|
||||
}
|
||||
mHelpIgnore = Collections.unmodifiableSet(mHelpIgnore);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -49,7 +62,6 @@ public class FingerprintEnrollSidecar extends BiometricEnrollSidecar {
|
||||
getString(R.string.fingerprint_intro_error_unknown));
|
||||
return;
|
||||
}
|
||||
|
||||
mFingerprintUpdater.enroll(mToken, mEnrollmentCancel, mUserId, mEnrollmentCallback,
|
||||
mEnrollReason);
|
||||
}
|
||||
@@ -58,7 +70,7 @@ public class FingerprintEnrollSidecar extends BiometricEnrollSidecar {
|
||||
mEnrollReason = enrollReason;
|
||||
}
|
||||
|
||||
private FingerprintManager.EnrollmentCallback mEnrollmentCallback
|
||||
@VisibleForTesting FingerprintManager.EnrollmentCallback mEnrollmentCallback
|
||||
= new FingerprintManager.EnrollmentCallback() {
|
||||
|
||||
@Override
|
||||
@@ -68,6 +80,9 @@ public class FingerprintEnrollSidecar extends BiometricEnrollSidecar {
|
||||
|
||||
@Override
|
||||
public void onEnrollmentHelp(int helpMsgId, CharSequence helpString) {
|
||||
if (mHelpIgnore.contains(helpMsgId)) {
|
||||
return;
|
||||
}
|
||||
FingerprintEnrollSidecar.super.onEnrollmentHelp(helpMsgId, helpString);
|
||||
}
|
||||
|
||||
|
@@ -18,6 +18,7 @@ package com.android.settings.biometrics.fingerprint;
|
||||
|
||||
import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_POWER_BUTTON;
|
||||
import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_UDFPS_OPTICAL;
|
||||
import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_UNKNOWN;
|
||||
|
||||
import static com.android.settings.biometrics.fingerprint.FingerprintEnrollEnrolling.KEY_STATE_PREVIOUS_ROTATION;
|
||||
import static com.android.settings.biometrics.fingerprint.FingerprintEnrollEnrolling.SFPS_STAGE_NO_ANIMATION;
|
||||
@@ -35,6 +36,8 @@ import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.times;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
import static org.mockito.Mockito.mock;
|
||||
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.ColorStateList;
|
||||
@@ -52,6 +55,8 @@ import android.view.Display;
|
||||
import android.view.Surface;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.testutils.FakeFeatureFactory;
|
||||
import com.android.settings.widget.RingProgressBar;
|
||||
@@ -59,7 +64,6 @@ import com.android.settings.widget.RingProgressBar;
|
||||
import com.airbnb.lottie.LottieAnimationView;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
@@ -100,16 +104,39 @@ public class FingerprintEnrollEnrollingTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
@Ignore
|
||||
public void fingerprintEnrollHelp_shouldShowHelpText() {
|
||||
EnrollmentCallback enrollmentCallback = verifyAndCaptureEnrollmentCallback();
|
||||
initializeActivityFor(TYPE_UNKNOWN);
|
||||
TestFingerprintEnrollSidecar sidecar = new TestFingerprintEnrollSidecar();
|
||||
Resources resources = mock(Resources.class);
|
||||
doReturn(resources).when(mContext).getResources();
|
||||
when(resources.getIntArray(R.array.fingerprint_acquired_ignore_list))
|
||||
.thenReturn(new int[]{3});
|
||||
|
||||
enrollmentCallback.onEnrollmentProgress(123);
|
||||
enrollmentCallback.onEnrollmentHelp(
|
||||
FingerprintManager.FINGERPRINT_ERROR_UNABLE_TO_PROCESS, "test enrollment help");
|
||||
sidecar.setListener(mActivity);
|
||||
sidecar.onAttach(mActivity);
|
||||
sidecar.mEnrollmentCallback.onEnrollmentHelp(5,
|
||||
"Help message should be displayed.");
|
||||
|
||||
TextView errorText = mActivity.findViewById(R.id.error_text);
|
||||
assertThat(errorText.getText()).isEqualTo("test enrollment help");
|
||||
assertThat(errorText.getText()).isEqualTo("Help message should be displayed.");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void fingerprintEnrollHelp_shouldNotShowHelpText() {
|
||||
initializeActivityFor(TYPE_UNKNOWN);
|
||||
TestFingerprintEnrollSidecar sidecar = new TestFingerprintEnrollSidecar();
|
||||
Resources resources = mock(Resources.class);
|
||||
doReturn(resources).when(mContext).getResources();
|
||||
when(resources.getIntArray(R.array.fingerprint_acquired_ignore_list))
|
||||
.thenReturn(new int[]{3});
|
||||
|
||||
sidecar.setListener(mActivity);
|
||||
sidecar.onAttach(mActivity);
|
||||
sidecar.mEnrollmentCallback.onEnrollmentHelp(3,
|
||||
"Help message should not be displayed.");
|
||||
|
||||
TextView errorText = mActivity.findViewById(R.id.error_text);
|
||||
assertThat(errorText.getText()).isEqualTo("");
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -319,4 +346,12 @@ public class FingerprintEnrollEnrollingTest {
|
||||
|
||||
return callbackCaptor.getValue();
|
||||
}
|
||||
|
||||
private class TestFingerprintEnrollSidecar extends FingerprintEnrollSidecar {
|
||||
@Nullable
|
||||
@Override
|
||||
public Context getContext() {
|
||||
return mContext;
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user