From ebb829433315da8b4acd0fcb14b6df4a9c5841c5 Mon Sep 17 00:00:00 2001 From: Maurice Lam Date: Mon, 22 May 2017 11:19:26 -0700 Subject: [PATCH] Support find sensor screen with no animation Some illustration view can manage their own start-stop lifecycle and doesn't need to be handled by the activity. Make mAnimation null if the animation is not an instance of FingerprintFindSensorAnimation. Test: cd tests/robotests && mma Bug: 38463695 Change-Id: I41989e5cb0639407f58d9c8edda0eef93adbf2e8 --- .../fingerprint/FingerprintEnrollFindSensor.java | 23 +++++-- .../fingerprint_enroll_find_sensor.xml | 78 ++++++++++++++++++++++ .../FingerprintEnrollFindSensorTest.java | 44 +++++++++--- 3 files changed, 131 insertions(+), 14 deletions(-) create mode 100644 tests/robotests/res/layout-mcc999/fingerprint_enroll_find_sensor.xml diff --git a/src/com/android/settings/fingerprint/FingerprintEnrollFindSensor.java b/src/com/android/settings/fingerprint/FingerprintEnrollFindSensor.java index 2aad313291..e34a90b1ac 100644 --- a/src/com/android/settings/fingerprint/FingerprintEnrollFindSensor.java +++ b/src/com/android/settings/fingerprint/FingerprintEnrollFindSensor.java @@ -20,6 +20,8 @@ import android.content.Intent; import android.hardware.fingerprint.FingerprintManager; import android.os.Bundle; import android.os.UserHandle; +import android.support.annotation.Nullable; +import android.view.View; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.settings.R; @@ -36,6 +38,7 @@ public class FingerprintEnrollFindSensor extends FingerprintEnrollBase { private static final int ENROLLING = 2; public static final String EXTRA_KEY_LAUNCHED_CONFIRM = "launched_confirm_lock"; + @Nullable private FingerprintFindSensorAnimation mAnimation; private boolean mLaunchedConfirmLock; private FingerprintEnrollSidecar mSidecar; @@ -56,8 +59,12 @@ public class FingerprintEnrollFindSensor extends FingerprintEnrollBase { } else if (mToken != null) { startLookingForFingerprint(); // already confirmed, so start looking for fingerprint } - mAnimation = (FingerprintFindSensorAnimation) findViewById( - R.id.fingerprint_sensor_location_animation); + View animationView = findViewById(R.id.fingerprint_sensor_location_animation); + if (animationView instanceof FingerprintFindSensorAnimation) { + mAnimation = (FingerprintFindSensorAnimation) animationView; + } else { + mAnimation = null; + } } protected int getContentView() { @@ -67,7 +74,9 @@ public class FingerprintEnrollFindSensor extends FingerprintEnrollBase { @Override protected void onStart() { super.onStart(); - mAnimation.startAnimation(); + if (mAnimation != null) { + mAnimation.startAnimation(); + } } private void startLookingForFingerprint() { @@ -102,13 +111,17 @@ public class FingerprintEnrollFindSensor extends FingerprintEnrollBase { @Override protected void onStop() { super.onStop(); - mAnimation.pauseAnimation(); + if (mAnimation != null) { + mAnimation.pauseAnimation(); + } } @Override protected void onDestroy() { super.onDestroy(); - mAnimation.stopAnimation(); + if (mAnimation != null) { + mAnimation.stopAnimation(); + } } @Override diff --git a/tests/robotests/res/layout-mcc999/fingerprint_enroll_find_sensor.xml b/tests/robotests/res/layout-mcc999/fingerprint_enroll_find_sensor.xml new file mode 100644 index 0000000000..04489dee96 --- /dev/null +++ b/tests/robotests/res/layout-mcc999/fingerprint_enroll_find_sensor.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + +