From 2caa6d281e1b78d725300e071b2dc4c130d9ee8d Mon Sep 17 00:00:00 2001 From: Alex Stetson Date: Tue, 8 Mar 2022 13:50:05 -0800 Subject: [PATCH] Check class type before creating animator ag/17048689 removed the check for the drawable type before creating the NumPadAnimator. A check for a GradientDrawable should be re-introduced for when it is not that type (such as on AAOS). Bug: 223386100 Test: manual Change-Id: I247a6731e6e633f1a13e3acd9fe7ac81d474e126 --- .../src/com/android/keyguard/NumPadButton.java | 12 ++++++++++-- .../SystemUI/src/com/android/keyguard/NumPadKey.java | 11 +++++++++-- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/packages/SystemUI/src/com/android/keyguard/NumPadButton.java b/packages/SystemUI/src/com/android/keyguard/NumPadButton.java index e0d0fc25943b2..7b98f2759d806 100644 --- a/packages/SystemUI/src/com/android/keyguard/NumPadButton.java +++ b/packages/SystemUI/src/com/android/keyguard/NumPadButton.java @@ -19,6 +19,8 @@ import android.content.Context; import android.content.res.ColorStateList; import android.content.res.Configuration; import android.content.res.TypedArray; +import android.graphics.drawable.Drawable; +import android.graphics.drawable.GradientDrawable; import android.graphics.drawable.VectorDrawable; import android.util.AttributeSet; import android.view.MotionEvent; @@ -37,8 +39,14 @@ public class NumPadButton extends AlphaOptimizedImageButton { public NumPadButton(Context context, AttributeSet attrs) { super(context, attrs); - mAnimator = new NumPadAnimator(context, getBackground().mutate(), - attrs.getStyleAttribute()); + Drawable background = getBackground(); + if (background instanceof GradientDrawable) { + mAnimator = new NumPadAnimator(context, background.mutate(), + attrs.getStyleAttribute()); + } else { + mAnimator = null; + } + } @Override diff --git a/packages/SystemUI/src/com/android/keyguard/NumPadKey.java b/packages/SystemUI/src/com/android/keyguard/NumPadKey.java index 88a0bcec05428..5cab547ee435d 100644 --- a/packages/SystemUI/src/com/android/keyguard/NumPadKey.java +++ b/packages/SystemUI/src/com/android/keyguard/NumPadKey.java @@ -18,6 +18,8 @@ package com.android.keyguard; import android.content.Context; import android.content.res.Configuration; import android.content.res.TypedArray; +import android.graphics.drawable.Drawable; +import android.graphics.drawable.GradientDrawable; import android.os.PowerManager; import android.os.SystemClock; import android.util.AttributeSet; @@ -129,8 +131,13 @@ public class NumPadKey extends ViewGroup { setContentDescription(mDigitText.getText().toString()); - mAnimator = new NumPadAnimator(context, getBackground().mutate(), - R.style.NumPadKey, mDigitText); + Drawable background = getBackground(); + if (background instanceof GradientDrawable) { + mAnimator = new NumPadAnimator(context, background.mutate(), + R.style.NumPadKey, mDigitText); + } else { + mAnimator = null; + } } @Override