Snap for 9581790 from 42ac382af5 to tm-qpr3-release

Change-Id: I50525d3cf3fd706a9301759f14693fa20e354d13
This commit is contained in:
Android Build Coastguard Worker
2023-02-09 00:25:12 +00:00
6 changed files with 40 additions and 4 deletions

View File

@@ -16,8 +16,8 @@
<LinearLayout <LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/main_content" android:id="@+id/main_content"
android:layout_height="@dimen/output_switcher_slice_max_height" android:layout_height="@dimen/notif_channel_panel_max_height"
android:maxHeight="@dimen/output_switcher_slice_max_height" android:maxHeight="@dimen/notif_channel_panel_max_height"
android:background="@drawable/settings_panel_background" android:background="@drawable/settings_panel_background"
android:orientation="vertical" android:orientation="vertical"
android:layout_width="match_parent"> android:layout_width="match_parent">

View File

@@ -32,11 +32,13 @@
android:clipChildren="false"> android:clipChildren="false">
<RelativeLayout <RelativeLayout
android:id="@+id/progress_lottie"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_weight="1" android:layout_weight="1"
android:gravity="center" android:gravity="center"
android:orientation="vertical"> android:orientation="vertical"
android:translationX="0dp">
<!-- Animation res MUST be set in code --> <!-- Animation res MUST be set in code -->
<com.airbnb.lottie.LottieAnimationView <com.airbnb.lottie.LottieAnimationView

View File

@@ -32,5 +32,5 @@
<dimen name="biometric_auth_pattern_view_size">248dp</dimen> <dimen name="biometric_auth_pattern_view_size">248dp</dimen>
<dimen name="biometric_auth_pattern_view_max_size">348dp</dimen> <dimen name="biometric_auth_pattern_view_max_size">348dp</dimen>
<dimen name="output_switcher_slice_max_height">300dp</dimen> <dimen name="notif_channel_panel_max_height">300dp</dimen>
</resources> </resources>

View File

@@ -458,6 +458,9 @@
<dimen name="output_switcher_panel_icon_size">52dp</dimen> <dimen name="output_switcher_panel_icon_size">52dp</dimen>
<dimen name="output_switcher_panel_icon_corner_radius">16dp</dimen> <dimen name="output_switcher_panel_icon_corner_radius">16dp</dimen>
<!-- Notification channels panel related dimensions -->
<dimen name="notif_channel_panel_max_height">600dp</dimen>
<!-- Settings panel related dimensions --> <!-- Settings panel related dimensions -->
<dimen name="settings_panel_corner_radius">28dp</dimen> <dimen name="settings_panel_corner_radius">28dp</dimen>
<dimen name="settings_panel_title_margin">24dp</dimen> <dimen name="settings_panel_title_margin">24dp</dimen>

View File

@@ -53,10 +53,12 @@ import android.view.Surface;
import android.view.View; import android.view.View;
import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityManager; import android.view.accessibility.AccessibilityManager;
import android.view.animation.AccelerateDecelerateInterpolator;
import android.view.animation.AnimationUtils; import android.view.animation.AnimationUtils;
import android.view.animation.Interpolator; import android.view.animation.Interpolator;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.ProgressBar; import android.widget.ProgressBar;
import android.widget.RelativeLayout;
import android.widget.TextView; import android.widget.TextView;
import androidx.annotation.IdRes; import androidx.annotation.IdRes;
@@ -185,6 +187,7 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling {
private boolean mHaveShownSfpsLeftEdgeLottie; private boolean mHaveShownSfpsLeftEdgeLottie;
private boolean mHaveShownSfpsRightEdgeLottie; private boolean mHaveShownSfpsRightEdgeLottie;
private boolean mShouldShowLottie; private boolean mShouldShowLottie;
private ObjectAnimator mHelpAnimation;
private OrientationEventListener mOrientationEventListener; private OrientationEventListener mOrientationEventListener;
private int mPreviousRotation = 0; private int mPreviousRotation = 0;
@@ -276,6 +279,7 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling {
} else if (mCanAssumeSfps) { } else if (mCanAssumeSfps) {
setContentView(R.layout.sfps_enroll_enrolling); setContentView(R.layout.sfps_enroll_enrolling);
setDescriptionText(R.string.security_settings_fingerprint_enroll_start_message); setDescriptionText(R.string.security_settings_fingerprint_enroll_start_message);
setHelpAnimation();
} else { } else {
setContentView(R.layout.fingerprint_enroll_enrolling); setContentView(R.layout.fingerprint_enroll_enrolling);
setDescriptionText(R.string.security_settings_fingerprint_enroll_start_message); setDescriptionText(R.string.security_settings_fingerprint_enroll_start_message);
@@ -350,6 +354,17 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling {
maybeHideSfpsText(config); maybeHideSfpsText(config);
} }
private void setHelpAnimation() {
final float translationX = 40;
final int duration = 550;
final RelativeLayout progressLottieLayout = findViewById(R.id.progress_lottie);
mHelpAnimation = ObjectAnimator.ofFloat(progressLottieLayout,
"translationX" /* propertyName */,
0, translationX, -1 * translationX, translationX, 0f);
mHelpAnimation.setInterpolator(new AccelerateDecelerateInterpolator());
mHelpAnimation.setDuration(duration);
mHelpAnimation.setAutoCancel(false);
}
@Override @Override
protected BiometricEnrollSidecar getSidecar() { protected BiometricEnrollSidecar getSidecar() {
final FingerprintEnrollSidecar sidecar = new FingerprintEnrollSidecar(this, final FingerprintEnrollSidecar sidecar = new FingerprintEnrollSidecar(this,
@@ -755,6 +770,7 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling {
if (!TextUtils.isEmpty(helpString)) { if (!TextUtils.isEmpty(helpString)) {
if (!(mCanAssumeUdfps || mCanAssumeSfps)) { if (!(mCanAssumeUdfps || mCanAssumeSfps)) {
mErrorText.removeCallbacks(mTouchAgainRunnable); mErrorText.removeCallbacks(mTouchAgainRunnable);
mErrorText.removeCallbacks(mTouchAgainRunnable);
} }
showError(helpString); showError(helpString);
} }
@@ -848,6 +864,9 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling {
// Show nothing for subtitle when getting an error message. // Show nothing for subtitle when getting an error message.
setDescriptionText(""); setDescriptionText("");
if (mCanAssumeSfps) { if (mCanAssumeSfps) {
if (!mHelpAnimation.isRunning()) {
mHelpAnimation.start();
}
applySfpsErrorDynamicColors(getApplicationContext(), true); applySfpsErrorDynamicColors(getApplicationContext(), true);
} }
} else { } else {

View File

@@ -36,6 +36,7 @@ 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 android.animation.ObjectAnimator;
import android.content.Context; import android.content.Context;
import android.content.res.ColorStateList; import android.content.res.ColorStateList;
import android.content.res.Resources; import android.content.res.Resources;
@@ -80,6 +81,8 @@ public class FingerprintEnrollEnrollingTest {
@Mock private LottieAnimationView mIllustrationLottie; @Mock private LottieAnimationView mIllustrationLottie;
@Mock private ObjectAnimator mHelpAnimation;
@Mock private FingerprintEnrollSidecar mSidecar; @Mock private FingerprintEnrollSidecar mSidecar;
@Mock private Display mMockDisplay; @Mock private Display mMockDisplay;
@@ -178,6 +181,15 @@ public class FingerprintEnrollEnrollingTest {
assertThat(observedLottieAssetOrder).isEqualTo(expectedLottieAssetOrder); assertThat(observedLottieAssetOrder).isEqualTo(expectedLottieAssetOrder);
} }
@Test
public void fingerprintSfpsEnrollHelpAnimation() {
initializeActivityFor(TYPE_POWER_BUTTON);
ReflectionHelpers.setField(mActivity, "mHelpAnimation", mHelpAnimation);
mActivity.onEnrollmentHelp(0 /* helpMsgId */, "Test help message" /* helpString */);
verify(mHelpAnimation).start();
}
// SFPS_STAGE_CENTER is first stage with progress bar colors, starts at steps=25, remaining=25 // SFPS_STAGE_CENTER is first stage with progress bar colors, starts at steps=25, remaining=25
private void configureSfpsStageColorTest() { private void configureSfpsStageColorTest() {
when(mSidecar.getEnrollmentSteps()).thenReturn(25); when(mSidecar.getEnrollmentSteps()).thenReturn(25);