summaryrefslogtreecommitdiff
path: root/graphics/java/android
diff options
context:
space:
mode:
authorLucas Dupin <dupin@google.com>2021-08-05 22:44:56 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2021-08-05 22:44:56 +0000
commitc359d54b491a30bb8df1b5464eab1b59b6dcb395 (patch)
treeadced6984b69c72c565ee76beb9b61131d5c6a28 /graphics/java/android
parent286530b6856f5ee2b00c304c05dd9bd267a26c4b (diff)
parent84922f4f430536323b17ac4088a5996136a64950 (diff)
Merge "Do not run background animation without a Looper" into sc-dev
Diffstat (limited to 'graphics/java/android')
-rw-r--r--graphics/java/android/graphics/drawable/RippleDrawable.java7
1 files changed, 7 insertions, 0 deletions
diff --git a/graphics/java/android/graphics/drawable/RippleDrawable.java b/graphics/java/android/graphics/drawable/RippleDrawable.java
index d3cff5cb81ff..7354c90c5c98 100644
--- a/graphics/java/android/graphics/drawable/RippleDrawable.java
+++ b/graphics/java/android/graphics/drawable/RippleDrawable.java
@@ -49,7 +49,9 @@ import android.graphics.RecordingCanvas;
import android.graphics.Rect;
import android.graphics.Shader;
import android.os.Build;
+import android.os.Looper;
import android.util.AttributeSet;
+import android.util.Log;
import android.view.animation.AnimationUtils;
import android.view.animation.LinearInterpolator;
@@ -113,6 +115,7 @@ import java.util.Arrays;
* @attr ref android.R.styleable#RippleDrawable_color
*/
public class RippleDrawable extends LayerDrawable {
+ private static final String TAG = "RippleDrawable";
/**
* Radius value that specifies the ripple radius should be computed based
* on the size of the ripple's container.
@@ -848,6 +851,10 @@ public class RippleDrawable extends LayerDrawable {
private void startBackgroundAnimation() {
mRunBackgroundAnimation = false;
+ if (Looper.myLooper() == null) {
+ Log.w(TAG, "Thread doesn't have a looper. Skipping animation.");
+ return;
+ }
mBackgroundAnimation = ValueAnimator.ofFloat(mBackgroundOpacity, mTargetBackgroundOpacity);
mBackgroundAnimation.setInterpolator(LINEAR_INTERPOLATOR);
mBackgroundAnimation.setDuration(BACKGROUND_OPACITY_DURATION);