Merge "Import translations. DO NOT MERGE ANYWHERE" into tm-qpr-dev
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
index c26837c..b44bc27 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
@@ -767,11 +767,13 @@
     public void onEnrollmentProgressChange(int steps, int remaining) {
         updateProgress(true /* animate */);
         final int percent = (int) (((float) (steps - remaining) / (float) steps) * 100);
-        if (mCanAssumeSfps) {
-            if (mIsAccessibilityEnabled) {
-                CharSequence announcement = getString(
-                        R.string.security_settings_sfps_enroll_progress_a11y_message, percent);
-                announceEnrollmentProgress(announcement);
+        if (mCanAssumeSfps && mIsAccessibilityEnabled) {
+            CharSequence announcement = getString(
+                    R.string.security_settings_sfps_enroll_progress_a11y_message, percent);
+            announceEnrollmentProgress(announcement);
+            // mIllustrationLottie is only shown when current display density = default density,
+            // to prevent overlap with the settings header text.
+            if (mIllustrationLottie != null) {
                 mIllustrationLottie.setContentDescription(
                         getString(
                                 R.string.security_settings_sfps_animation_a11y_label,
@@ -837,7 +839,7 @@
             // Show nothing for subtitle when getting an error message.
             setDescriptionText("");
             if (mCanAssumeSfps) {
-                applySfpsErrorDynamicColors(getApplicationContext(), mIllustrationLottie, true);
+                applySfpsErrorDynamicColors(getApplicationContext(), true);
             }
         } else {
             mErrorText.setText(error);
@@ -867,7 +869,7 @@
 
     private void clearError() {
         if (mCanAssumeSfps) {
-            applySfpsErrorDynamicColors(getApplicationContext(), mIllustrationLottie, false);
+            applySfpsErrorDynamicColors(getApplicationContext(), false);
         }
         if ((!(mCanAssumeUdfps || mCanAssumeSfps)) && mErrorText.getVisibility() == View.VISIBLE) {
             mErrorText.animate()
@@ -885,10 +887,11 @@
      * Applies dynamic colors corresponding to showing or clearing errors on the progress bar
      * and finger lottie for SFPS
      */
-    private void applySfpsErrorDynamicColors(Context context, LottieAnimationView composition,
-            boolean isError) {
+    private void applySfpsErrorDynamicColors(Context context, boolean isError) {
         applyProgressBarDynamicColor(context, isError);
-        applyLottieDynamicColor(context, composition, isError);
+        if (mIllustrationLottie != null) {
+            applyLottieDynamicColor(context, isError);
+        }
     }
 
     private void applyProgressBarDynamicColor(Context context, boolean isError) {
@@ -904,19 +907,16 @@
         }
     }
 
-    private void applyLottieDynamicColor(Context context, LottieAnimationView composition,
-            boolean isError) {
-        if (composition != null) {
-            int error_color = context.getColor(R.color.sfps_enrollment_fp_error_color);
-            int fp_captured_color = context.getColor(R.color.sfps_enrollment_fp_captured_color);
-            int color = isError ? error_color : fp_captured_color;
-            composition.addValueCallback(
-                    new KeyPath(".blue100", "**"),
-                    LottieProperty.COLOR_FILTER,
-                    frameInfo -> new PorterDuffColorFilter(color, PorterDuff.Mode.SRC_ATOP)
-            );
-            composition.invalidate();
-        }
+    private void applyLottieDynamicColor(Context context, boolean isError) {
+        int error_color = context.getColor(R.color.sfps_enrollment_fp_error_color);
+        int fp_captured_color = context.getColor(R.color.sfps_enrollment_fp_captured_color);
+        int color = isError ? error_color : fp_captured_color;
+        mIllustrationLottie.addValueCallback(
+                new KeyPath(".blue100", "**"),
+                LottieProperty.COLOR_FILTER,
+                frameInfo -> new PorterDuffColorFilter(color, PorterDuff.Mode.SRC_ATOP)
+        );
+        mIllustrationLottie.invalidate();
     }
 
     private void listenOrientationEvent() {
@@ -1018,8 +1018,10 @@
     }
 
     private void updateOrientation(int orientation) {
-        if (mCanAssumeSfps && mShouldShowLottie) {
-            mIllustrationLottie = findViewById(R.id.illustration_lottie);
+        if (mCanAssumeSfps) {
+            if (mShouldShowLottie) {
+                mIllustrationLottie = findViewById(R.id.illustration_lottie);
+            }
         } else {
             switch(orientation) {
                 case Configuration.ORIENTATION_LANDSCAPE: {