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:
@@ -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
1
res/raw/fingerprint_edu_lottie_landscape_top_right.json
Normal file
1
res/raw/fingerprint_edu_lottie_landscape_top_right.json
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
res/raw/fingerprint_edu_lottie_portrait_top_left.json
Normal file
1
res/raw/fingerprint_edu_lottie_portrait_top_left.json
Normal file
File diff suppressed because one or more lines are too long
@@ -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);
|
||||
|
Reference in New Issue
Block a user