Use Lottie animation for traffic light face education

Test: Manual

Bug: 182716681
Change-Id: Ia4c9dea5c900c71ec7eca7946cf090fd02b436e2
This commit is contained in:
Curtis Belmonte
2021-05-21 14:59:01 -07:00
parent 7ca749e3a5
commit a543067ed9
5 changed files with 51 additions and 7 deletions

View File

@@ -37,6 +37,7 @@ import com.android.settings.biometrics.BiometricEnrollBase;
import com.android.settings.biometrics.BiometricUtils;
import com.android.settings.password.ChooseLockSettingsHelper;
import com.airbnb.lottie.LottieAnimationView;
import com.google.android.setupcompat.template.FooterBarMixin;
import com.google.android.setupcompat.template.FooterButton;
import com.google.android.setupcompat.util.WizardManagerHelper;
@@ -52,7 +53,9 @@ public class FaceEnrollEducation extends BiometricEnrollBase {
private FaceManager mFaceManager;
private FaceEnrollAccessibilityToggle mSwitchDiversity;
private IllustrationVideoView mIllustrationNormal;
private boolean mIsUsingLottie;
private IllustrationVideoView mIllustrationDefault;
private LottieAnimationView mIllustrationLottie;
private View mIllustrationAccessibility;
private Handler mHandler;
private Intent mResultIntent;
@@ -78,12 +81,10 @@ public class FaceEnrollEducation extends BiometricEnrollBase {
updateHeaders(headerRes, descriptionRes);
if (isChecked) {
mIllustrationNormal.stop();
mIllustrationNormal.setVisibility(View.INVISIBLE);
hideDefaultIllustration();
mIllustrationAccessibility.setVisibility(View.VISIBLE);
} else {
mIllustrationNormal.setVisibility(View.VISIBLE);
mIllustrationNormal.start();
showDefaultIllustration();
mIllustrationAccessibility.setVisibility(View.INVISIBLE);
}
}
@@ -102,10 +103,19 @@ public class FaceEnrollEducation extends BiometricEnrollBase {
mFaceManager = Utils.getFaceManagerOrNull(this);
mIllustrationNormal = findViewById(R.id.illustration_normal);
mIllustrationDefault = findViewById(R.id.illustration_default);
mIllustrationLottie = findViewById(R.id.illustration_lottie);
mIllustrationAccessibility = findViewById(R.id.illustration_accessibility);
mDescriptionText = findViewById(R.id.sud_layout_description);
mIsUsingLottie = getResources().getBoolean(R.bool.config_face_education_use_lottie);
if (mIsUsingLottie) {
mIllustrationDefault.stop();
mIllustrationDefault.setVisibility(View.INVISIBLE);
mIllustrationLottie.setVisibility(View.VISIBLE);
mIllustrationLottie.playAnimation();
}
mFooterBarMixin = getLayout().getMixin(FooterBarMixin.class);
if (WizardManagerHelper.isAnySetupWizard(getIntent())) {
@@ -256,4 +266,24 @@ public class FaceEnrollEducation extends BiometricEnrollBase {
layout.setHeaderText(headerText);
layout.setDescriptionText(descriptionRes);
}
private void hideDefaultIllustration() {
if (mIsUsingLottie) {
mIllustrationLottie.cancelAnimation();
mIllustrationLottie.setVisibility(View.INVISIBLE);
} else {
mIllustrationDefault.stop();
mIllustrationDefault.setVisibility(View.INVISIBLE);
}
}
private void showDefaultIllustration() {
if (mIsUsingLottie) {
mIllustrationLottie.setVisibility(View.VISIBLE);
mIllustrationLottie.playAnimation();
} else {
mIllustrationDefault.setVisibility(View.VISIBLE);
mIllustrationDefault.start();
}
}
}