package androidx.core.graphics.drawable; import android.content.res.ColorStateList; import android.content.res.Resources; import android.graphics.Outline; import android.graphics.PorterDuff; import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.graphics.drawable.DrawableContainer; import android.graphics.drawable.GradientDrawable; import android.graphics.drawable.InsetDrawable; import android.graphics.drawable.RippleDrawable; import android.os.Build; import android.util.Log; import androidx.annotation.NonNull; import androidx.annotation.RequiresApi; import java.lang.reflect.Method; @RequiresApi(21) public class WrappedDrawableApi21 extends WrappedDrawableApi14 { private static final String TAG = "WrappedDrawableApi21"; private static Method sIsProjectedDrawableMethod; public WrappedDrawableApi21(Drawable drawable) { super(drawable); findAndCacheIsProjectedDrawableMethod(); } public WrappedDrawableApi21(WrappedDrawableState wrappedDrawableState, Resources resources) { super(wrappedDrawableState, resources); findAndCacheIsProjectedDrawableMethod(); } private void findAndCacheIsProjectedDrawableMethod() { if (sIsProjectedDrawableMethod == null) { try { sIsProjectedDrawableMethod = Drawable.class.getDeclaredMethod("isProjected", new Class[0]); } catch (Exception e) { Log.w(TAG, "Failed to retrieve Drawable#isProjected() method", e); } } } @Override // android.graphics.drawable.Drawable @NonNull public Rect getDirtyBounds() { return this.mDrawable.getDirtyBounds(); } @Override // android.graphics.drawable.Drawable public void getOutline(@NonNull Outline outline) { this.mDrawable.getOutline(outline); } @Override // androidx.core.graphics.drawable.WrappedDrawableApi14 public boolean isCompatTintEnabled() { if (Build.VERSION.SDK_INT != 21) { return false; } Drawable drawable = this.mDrawable; return (drawable instanceof GradientDrawable) || (drawable instanceof DrawableContainer) || (drawable instanceof InsetDrawable) || (drawable instanceof RippleDrawable); } @Override // android.graphics.drawable.Drawable public boolean isProjected() { Method method; Drawable drawable = this.mDrawable; if (!(drawable == null || (method = sIsProjectedDrawableMethod) == null)) { try { return ((Boolean) method.invoke(drawable, new Object[0])).booleanValue(); } catch (Exception e) { Log.w(TAG, "Error calling Drawable#isProjected() method", e); } } return false; } @Override // android.graphics.drawable.Drawable public void setHotspot(float f, float f2) { this.mDrawable.setHotspot(f, f2); } @Override // android.graphics.drawable.Drawable public void setHotspotBounds(int i, int i2, int i3, int i4) { this.mDrawable.setHotspotBounds(i, i2, i3, i4); } @Override // androidx.core.graphics.drawable.WrappedDrawableApi14, android.graphics.drawable.Drawable public boolean setState(@NonNull int[] iArr) { if (!super.setState(iArr)) { return false; } invalidateSelf(); return true; } @Override // androidx.core.graphics.drawable.WrappedDrawableApi14, android.graphics.drawable.Drawable, androidx.core.graphics.drawable.TintAwareDrawable public void setTint(int i) { if (isCompatTintEnabled()) { super.setTint(i); } else { this.mDrawable.setTint(i); } } @Override // androidx.core.graphics.drawable.WrappedDrawableApi14, android.graphics.drawable.Drawable, androidx.core.graphics.drawable.TintAwareDrawable public void setTintList(ColorStateList colorStateList) { if (isCompatTintEnabled()) { super.setTintList(colorStateList); } else { this.mDrawable.setTintList(colorStateList); } } @Override // androidx.core.graphics.drawable.WrappedDrawableApi14, android.graphics.drawable.Drawable, androidx.core.graphics.drawable.TintAwareDrawable public void setTintMode(@NonNull PorterDuff.Mode mode) { if (isCompatTintEnabled()) { super.setTintMode(mode); } else { this.mDrawable.setTintMode(mode); } } }