Update SFPS enrollment education assets and add light/dark theme colors

Updates SFPS enrollment education layout and adds new assets indicating
sensor location in each orientation. Also defines color codes and adds
LottieColorUtils to dynamically map LottieAnimationView colors from light/dark theme

Test: Observe correct assets during enrollment in all orientations
Fixes: 242074146
Fixes: 238596925
Change-Id: If3b7502350057cc9b04f12aa9a5b36be06958630
This commit is contained in:
Grace Cheng
2022-08-31 23:45:58 +00:00
parent 9f1dba6017
commit f15c726127
6 changed files with 49 additions and 41 deletions

View File

@@ -31,26 +31,16 @@
android:clipToPadding="false"
android:clipChildren="false">
<!-- Animation res MUST be set in code because asset is dependent on device orientation -->
<com.airbnb.lottie.LottieAnimationView
android:id="@+id/illustration_lottie"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scaleType="centerInside"
app:lottie_imageAssetsFolder="images"
app:lottie_autoPlay="true"
app:lottie_loop="true"
app:lottie_rawRes="@raw/fingerprint_edu_lottie"/>
<com.airbnb.lottie.LottieAnimationView
android:id="@+id/illustration_lottie_portrait"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scaleType="centerInside"
android:visibility="gone"
app:lottie_imageAssetsFolder="images"
app:lottie_autoPlay="true"
app:lottie_loop="true"
app:lottie_rawRes="@raw/fingerprint_edu_lottie_portrait"/>
app:lottie_loop="true"/>
</LinearLayout>
</com.google.android.setupdesign.GlifLayout>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -36,6 +36,7 @@ import com.android.settings.biometrics.BiometricEnrollBase;
import com.android.settings.biometrics.BiometricEnrollSidecar;
import com.android.settings.biometrics.BiometricUtils;
import com.android.settings.password.ChooseLockSettingsHelper;
import com.android.settingslib.widget.LottieColorUtils;
import com.airbnb.lottie.LottieAnimationView;
import com.google.android.setupcompat.template.FooterBarMixin;
@@ -55,6 +56,9 @@ public class FingerprintEnrollFindSensor extends BiometricEnrollBase implements
@Nullable
private FingerprintFindSensorAnimation mAnimation;
@Nullable
private LottieAnimationView mIllustrationLottie;
private FingerprintEnrollSidecar mSidecar;
private boolean mNextClicked;
private boolean mCanAssumeUdfps;
@@ -97,38 +101,14 @@ public class FingerprintEnrollFindSensor extends BiometricEnrollBase implements
.build()
);
LottieAnimationView lottieAnimationView = findViewById(R.id.illustration_lottie);
mIllustrationLottie = findViewById(R.id.illustration_lottie);
AccessibilityManager am = getSystemService(AccessibilityManager.class);
if (am.isEnabled()) {
lottieAnimationView.setAnimation(R.raw.udfps_edu_a11y_lottie);
mIllustrationLottie.setAnimation(R.raw.udfps_edu_a11y_lottie);
}
} else if (mCanAssumeSfps) {
setHeaderText(R.string.security_settings_sfps_enroll_find_sensor_title);
setDescriptionText(R.string.security_settings_sfps_enroll_find_sensor_message);
final LottieAnimationView lottieAnimationView = findViewById(R.id.illustration_lottie);
final LottieAnimationView lottieAnimationViewPortrait =
findViewById(R.id.illustration_lottie_portrait);
final int rotation = getApplicationContext().getDisplay().getRotation();
switch(rotation) {
case Surface.ROTATION_90:
lottieAnimationView.setVisibility(View.GONE);
lottieAnimationViewPortrait.setVisibility(View.VISIBLE);
break;
case Surface.ROTATION_180:
lottieAnimationView.setVisibility(View.VISIBLE);
lottieAnimationView.setRotation(180);
lottieAnimationViewPortrait.setVisibility(View.GONE);
break;
case Surface.ROTATION_270:
lottieAnimationView.setVisibility(View.GONE);
lottieAnimationViewPortrait.setVisibility(View.VISIBLE);
lottieAnimationViewPortrait.setRotation(180);
break;
default:
lottieAnimationView.setVisibility(View.VISIBLE);
lottieAnimationViewPortrait.setVisibility(View.GONE);
break;
}
} else {
setHeaderText(R.string.security_settings_fingerprint_enroll_find_sensor_title);
setDescriptionText(R.string.security_settings_fingerprint_enroll_find_sensor_message);
@@ -170,14 +150,13 @@ public class FingerprintEnrollFindSensor extends BiometricEnrollBase implements
mAnimation = null;
if (mCanAssumeUdfps) {
LottieAnimationView lottieAnimationView = findViewById(R.id.illustration_lottie);
lottieAnimationView.setOnClickListener(new OnClickListener() {
mIllustrationLottie.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
onStartButtonClick(v);
}
});
} else {
} else if (!mCanAssumeSfps) {
View animationView = findViewById(R.id.fingerprint_sensor_location_animation);
if (animationView instanceof FingerprintFindSensorAnimation) {
mAnimation = (FingerprintFindSensorAnimation) animationView;
@@ -185,6 +164,41 @@ public class FingerprintEnrollFindSensor extends BiometricEnrollBase implements
}
}
private void updateSfpsFindSensorAnimationAsset() {
mIllustrationLottie = findViewById(R.id.illustration_lottie);
LottieColorUtils.applyDynamicColors(getApplicationContext(), mIllustrationLottie);
mIllustrationLottie.setVisibility(View.VISIBLE);
final int rotation = getApplicationContext().getDisplay().getRotation();
switch (rotation) {
case Surface.ROTATION_90:
mIllustrationLottie.setAnimation(
R.raw.fingerprint_edu_lottie_portrait_top_left);
break;
case Surface.ROTATION_180:
mIllustrationLottie.setAnimation(
R.raw.fingerprint_edu_lottie_landscape_bottom_left);
break;
case Surface.ROTATION_270:
mIllustrationLottie.setAnimation(
R.raw.fingerprint_edu_lottie_portrait_bottom_right);
break;
default:
mIllustrationLottie.setAnimation(
R.raw.fingerprint_edu_lottie_landscape_top_right);
break;
}
mIllustrationLottie.playAnimation();
}
@Override
protected void onResume() {
super.onResume();
if (mCanAssumeSfps) {
updateSfpsFindSensorAnimationAsset();
}
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);