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] -->
|
[CHAR LIMIT=NONE] -->
|
||||||
<string-array name="allowlist_hide_summary_in_battery_usage" translatable="false">
|
<string-array name="allowlist_hide_summary_in_battery_usage" translatable="false">
|
||||||
</string-array>
|
</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>
|
</resources>
|
||||||
|
@@ -21,9 +21,14 @@ import android.app.settings.SettingsEnums;
|
|||||||
import android.hardware.fingerprint.FingerprintManager;
|
import android.hardware.fingerprint.FingerprintManager;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
|
import com.android.internal.annotations.VisibleForTesting;
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.biometrics.BiometricEnrollSidecar;
|
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.
|
* Sidecar fragment to handle the state around fingerprint enrollment.
|
||||||
*/
|
*/
|
||||||
@@ -32,11 +37,19 @@ public class FingerprintEnrollSidecar extends BiometricEnrollSidecar {
|
|||||||
|
|
||||||
private FingerprintUpdater mFingerprintUpdater;
|
private FingerprintUpdater mFingerprintUpdater;
|
||||||
private @FingerprintManager.EnrollReason int mEnrollReason;
|
private @FingerprintManager.EnrollReason int mEnrollReason;
|
||||||
|
private Set<Integer> mHelpIgnore;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onAttach(Activity activity) {
|
public void onAttach(Activity activity) {
|
||||||
super.onAttach(activity);
|
super.onAttach(activity);
|
||||||
mFingerprintUpdater = new FingerprintUpdater(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
|
@Override
|
||||||
@@ -49,7 +62,6 @@ public class FingerprintEnrollSidecar extends BiometricEnrollSidecar {
|
|||||||
getString(R.string.fingerprint_intro_error_unknown));
|
getString(R.string.fingerprint_intro_error_unknown));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
mFingerprintUpdater.enroll(mToken, mEnrollmentCancel, mUserId, mEnrollmentCallback,
|
mFingerprintUpdater.enroll(mToken, mEnrollmentCancel, mUserId, mEnrollmentCallback,
|
||||||
mEnrollReason);
|
mEnrollReason);
|
||||||
}
|
}
|
||||||
@@ -58,7 +70,7 @@ public class FingerprintEnrollSidecar extends BiometricEnrollSidecar {
|
|||||||
mEnrollReason = enrollReason;
|
mEnrollReason = enrollReason;
|
||||||
}
|
}
|
||||||
|
|
||||||
private FingerprintManager.EnrollmentCallback mEnrollmentCallback
|
@VisibleForTesting FingerprintManager.EnrollmentCallback mEnrollmentCallback
|
||||||
= new FingerprintManager.EnrollmentCallback() {
|
= new FingerprintManager.EnrollmentCallback() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -68,6 +80,9 @@ public class FingerprintEnrollSidecar extends BiometricEnrollSidecar {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onEnrollmentHelp(int helpMsgId, CharSequence helpString) {
|
public void onEnrollmentHelp(int helpMsgId, CharSequence helpString) {
|
||||||
|
if (mHelpIgnore.contains(helpMsgId)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
FingerprintEnrollSidecar.super.onEnrollmentHelp(helpMsgId, helpString);
|
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_POWER_BUTTON;
|
||||||
import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_UDFPS_OPTICAL;
|
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.KEY_STATE_PREVIOUS_ROTATION;
|
||||||
import static com.android.settings.biometrics.fingerprint.FingerprintEnrollEnrolling.SFPS_STAGE_NO_ANIMATION;
|
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.times;
|
||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
import static org.mockito.Mockito.mock;
|
||||||
|
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.res.ColorStateList;
|
import android.content.res.ColorStateList;
|
||||||
@@ -52,6 +55,8 @@ import android.view.Display;
|
|||||||
import android.view.Surface;
|
import android.view.Surface;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.testutils.FakeFeatureFactory;
|
import com.android.settings.testutils.FakeFeatureFactory;
|
||||||
import com.android.settings.widget.RingProgressBar;
|
import com.android.settings.widget.RingProgressBar;
|
||||||
@@ -59,7 +64,6 @@ import com.android.settings.widget.RingProgressBar;
|
|||||||
import com.airbnb.lottie.LottieAnimationView;
|
import com.airbnb.lottie.LottieAnimationView;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Ignore;
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.mockito.ArgumentCaptor;
|
import org.mockito.ArgumentCaptor;
|
||||||
@@ -100,16 +104,39 @@ public class FingerprintEnrollEnrollingTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@Ignore
|
|
||||||
public void fingerprintEnrollHelp_shouldShowHelpText() {
|
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);
|
sidecar.setListener(mActivity);
|
||||||
enrollmentCallback.onEnrollmentHelp(
|
sidecar.onAttach(mActivity);
|
||||||
FingerprintManager.FINGERPRINT_ERROR_UNABLE_TO_PROCESS, "test enrollment help");
|
sidecar.mEnrollmentCallback.onEnrollmentHelp(5,
|
||||||
|
"Help message should be displayed.");
|
||||||
|
|
||||||
TextView errorText = mActivity.findViewById(R.id.error_text);
|
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
|
@Test
|
||||||
@@ -319,4 +346,12 @@ public class FingerprintEnrollEnrollingTest {
|
|||||||
|
|
||||||
return callbackCaptor.getValue();
|
return callbackCaptor.getValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private class TestFingerprintEnrollSidecar extends FingerprintEnrollSidecar {
|
||||||
|
@Nullable
|
||||||
|
@Override
|
||||||
|
public Context getContext() {
|
||||||
|
return mContext;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
Reference in New Issue
Block a user