From 8298b47f0081294cb646852573bf50273440f98c Mon Sep 17 00:00:00 2001 From: Udam Saini Date: Tue, 12 Jan 2016 14:43:43 -0800 Subject: [PATCH] Fixes animation video from not playing after onStop Adds a pause command that doesn't destroy the video surface, and calls onStop when we want to destroy the media player. bug:26516460 Change-Id: If46d26088e81fdca6a73a663a48901bb5245acc8 --- .../fingerprint/FingerprintEnrollFindSensor.java | 6 ++++++ .../fingerprint/FingerprintFindSensorAnimation.java | 5 +++++ .../FingerprintLocationAnimationVideoView.java | 9 ++++++++- .../fingerprint/FingerprintLocationAnimationView.java | 5 +++++ 4 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/fingerprint/FingerprintEnrollFindSensor.java b/src/com/android/settings/fingerprint/FingerprintEnrollFindSensor.java index b246bdf34d6..a5af5cc0288 100644 --- a/src/com/android/settings/fingerprint/FingerprintEnrollFindSensor.java +++ b/src/com/android/settings/fingerprint/FingerprintEnrollFindSensor.java @@ -59,6 +59,12 @@ public class FingerprintEnrollFindSensor extends FingerprintEnrollBase { @Override protected void onStop() { super.onStop(); + mAnimation.pauseAnimation(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); mAnimation.stopAnimation(); } diff --git a/src/com/android/settings/fingerprint/FingerprintFindSensorAnimation.java b/src/com/android/settings/fingerprint/FingerprintFindSensorAnimation.java index cb254baa4b1..07ab99d17ca 100644 --- a/src/com/android/settings/fingerprint/FingerprintFindSensorAnimation.java +++ b/src/com/android/settings/fingerprint/FingerprintFindSensorAnimation.java @@ -32,4 +32,9 @@ public interface FingerprintFindSensorAnimation { */ void stopAnimation(); + /** + * Pause the animation + */ + void pauseAnimation(); + } diff --git a/src/com/android/settings/fingerprint/FingerprintLocationAnimationVideoView.java b/src/com/android/settings/fingerprint/FingerprintLocationAnimationVideoView.java index c1fd2c24339..523627220b9 100644 --- a/src/com/android/settings/fingerprint/FingerprintLocationAnimationVideoView.java +++ b/src/com/android/settings/fingerprint/FingerprintLocationAnimationVideoView.java @@ -117,11 +117,18 @@ public class FingerprintLocationAnimationVideoView extends TextureView @Override public void stopAnimation() { - if (mMediaPlayer != null && mMediaPlayer.isPlaying()) { + if (mMediaPlayer != null) { mMediaPlayer.stop(); mMediaPlayer.release(); mMediaPlayer = null; } } + @Override + public void pauseAnimation() { + if (mMediaPlayer != null && mMediaPlayer.isPlaying()) { + mMediaPlayer.pause(); + } + } + } diff --git a/src/com/android/settings/fingerprint/FingerprintLocationAnimationView.java b/src/com/android/settings/fingerprint/FingerprintLocationAnimationView.java index c17069f4fea..cc1d4fd04df 100644 --- a/src/com/android/settings/fingerprint/FingerprintLocationAnimationView.java +++ b/src/com/android/settings/fingerprint/FingerprintLocationAnimationView.java @@ -112,6 +112,11 @@ public class FingerprintLocationAnimationView extends View implements } } + @Override + public void pauseAnimation() { + stopAnimation(); + } + private void startPhase() { startRadiusAnimation(); startAlphaAnimation();