From ea6d59fbd4bcf1630a5ea9ac546b5dcbc6fb9608 Mon Sep 17 00:00:00 2001 From: Sunny Goyal Date: Tue, 2 Aug 2022 14:58:10 -0700 Subject: [PATCH] Removing unused ShadowDrawable Bug: 241152608 Test: Presubmit Change-Id: Iae3b3799959dfe3457791cfac88a2cb4ac5770a4 --- proguard.flags | 4 - res/drawable/ic_block_shadow.xml | 19 -- res/drawable/ic_remove_shadow.xml | 19 -- res/drawable/ic_setup_shadow.xml | 19 -- res/drawable/ic_uninstall_shadow.xml | 19 -- .../launcher3/graphics/ShadowDrawable.java | 213 ------------------ 6 files changed, 293 deletions(-) delete mode 100644 res/drawable/ic_block_shadow.xml delete mode 100644 res/drawable/ic_remove_shadow.xml delete mode 100644 res/drawable/ic_setup_shadow.xml delete mode 100644 res/drawable/ic_uninstall_shadow.xml delete mode 100644 src/com/android/launcher3/graphics/ShadowDrawable.java diff --git a/proguard.flags b/proguard.flags index a45018346a..53a68ded91 100644 --- a/proguard.flags +++ b/proguard.flags @@ -2,10 +2,6 @@ *; } --keep class com.android.launcher3.graphics.ShadowDrawable { - public (...); -} - # The support library contains references to newer platform versions. # Don't warn about those in case this app is linking against an older # platform version. We know about them, and they are safe. diff --git a/res/drawable/ic_block_shadow.xml b/res/drawable/ic_block_shadow.xml deleted file mode 100644 index 045fe8d4c5..0000000000 --- a/res/drawable/ic_block_shadow.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - diff --git a/res/drawable/ic_remove_shadow.xml b/res/drawable/ic_remove_shadow.xml deleted file mode 100644 index 48abc10b3b..0000000000 --- a/res/drawable/ic_remove_shadow.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - diff --git a/res/drawable/ic_setup_shadow.xml b/res/drawable/ic_setup_shadow.xml deleted file mode 100644 index 10aeee6e02..0000000000 --- a/res/drawable/ic_setup_shadow.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - diff --git a/res/drawable/ic_uninstall_shadow.xml b/res/drawable/ic_uninstall_shadow.xml deleted file mode 100644 index b441b0e7b6..0000000000 --- a/res/drawable/ic_uninstall_shadow.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - diff --git a/src/com/android/launcher3/graphics/ShadowDrawable.java b/src/com/android/launcher3/graphics/ShadowDrawable.java deleted file mode 100644 index d8a7070f29..0000000000 --- a/src/com/android/launcher3/graphics/ShadowDrawable.java +++ /dev/null @@ -1,213 +0,0 @@ -/* - * Copyright (C) 2017 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.launcher3.graphics; - -import android.annotation.TargetApi; -import android.content.res.Resources; -import android.content.res.TypedArray; -import android.graphics.Bitmap; -import android.graphics.BlurMaskFilter; -import android.graphics.Canvas; -import android.graphics.Color; -import android.graphics.ColorFilter; -import android.graphics.Paint; -import android.graphics.PixelFormat; -import android.graphics.Rect; -import android.graphics.drawable.Drawable; -import android.os.Build; -import android.util.AttributeSet; - -import com.android.launcher3.R; -import com.android.launcher3.icons.BitmapRenderer; - -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - -import java.io.IOException; - -/** - * A drawable which adds shadow around a child drawable. - */ -@TargetApi(Build.VERSION_CODES.O) -public class ShadowDrawable extends Drawable { - - private final Paint mPaint = new Paint(Paint.ANTI_ALIAS_FLAG | Paint.FILTER_BITMAP_FLAG); - - private final ShadowDrawableState mState; - - @SuppressWarnings("unused") - public ShadowDrawable() { - this(new ShadowDrawableState()); - } - - private ShadowDrawable(ShadowDrawableState state) { - mState = state; - } - - @Override - public void draw(Canvas canvas) { - Rect bounds = getBounds(); - if (bounds.isEmpty()) { - return; - } - if (mState.mLastDrawnBitmap == null) { - regenerateBitmapCache(); - } - canvas.drawBitmap(mState.mLastDrawnBitmap, null, bounds, mPaint); - } - - @Override - public void setAlpha(int alpha) { - mPaint.setAlpha(alpha); - invalidateSelf(); - } - - @Override - public void setColorFilter(ColorFilter colorFilter) { - mPaint.setColorFilter(colorFilter); - invalidateSelf(); - } - - @Override - public ConstantState getConstantState() { - return mState; - } - - @Override - public int getOpacity() { - return PixelFormat.TRANSLUCENT; - } - - @Override - public int getIntrinsicHeight() { - return mState.mIntrinsicHeight; - } - - @Override - public int getIntrinsicWidth() { - return mState.mIntrinsicWidth; - } - - @Override - public boolean canApplyTheme() { - return mState.canApplyTheme(); - } - - @Override - public void applyTheme(Resources.Theme t) { - TypedArray ta = t.obtainStyledAttributes(new int[] {R.attr.isWorkspaceDarkText}); - boolean isDark = ta.getBoolean(0, false); - ta.recycle(); - if (mState.mIsDark != isDark) { - mState.mIsDark = isDark; - mState.mLastDrawnBitmap = null; - invalidateSelf(); - } - } - - private void regenerateBitmapCache() { - // Call mutate, so that the pixel allocation by the underlying vector drawable is cleared. - Drawable d = mState.mChildState.newDrawable().mutate(); - d.setBounds(mState.mShadowSize, mState.mShadowSize, - mState.mIntrinsicWidth - mState.mShadowSize, - mState.mIntrinsicHeight - mState.mShadowSize); - d.setTint(mState.mIsDark ? mState.mDarkTintColor : Color.WHITE); - - if (mState.mIsDark) { - // Dark text do not have any shadow, but just the bitmap - mState.mLastDrawnBitmap = BitmapRenderer.createHardwareBitmap( - mState.mIntrinsicWidth, mState.mIntrinsicHeight, d::draw); - } else { - Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG | Paint.FILTER_BITMAP_FLAG); - paint.setMaskFilter(new BlurMaskFilter(mState.mShadowSize, BlurMaskFilter.Blur.NORMAL)); - - // Generate the shadow bitmap - int[] offset = new int[2]; - Bitmap shadow = BitmapRenderer.createSoftwareBitmap( - mState.mIntrinsicWidth, mState.mIntrinsicHeight, d::draw) - .extractAlpha(paint, offset); - - paint.setMaskFilter(null); - paint.setColor(mState.mShadowColor); - mState.mLastDrawnBitmap = BitmapRenderer.createHardwareBitmap( - mState.mIntrinsicWidth, mState.mIntrinsicHeight, c -> { - c.drawBitmap(shadow, offset[0], offset[1], paint); - d.draw(c); - }); - } - } - - @Override - public void inflate(Resources r, XmlPullParser parser, AttributeSet attrs, - Resources.Theme theme) throws XmlPullParserException, IOException { - super.inflate(r, parser, attrs, theme); - - final TypedArray a = theme == null - ? r.obtainAttributes(attrs, R.styleable.ShadowDrawable) - : theme.obtainStyledAttributes(attrs, R.styleable.ShadowDrawable, 0, 0); - try { - Drawable d = a.getDrawable(R.styleable.ShadowDrawable_android_src); - if (d == null) { - throw new XmlPullParserException("missing src attribute"); - } - mState.mShadowColor = a.getColor( - R.styleable.ShadowDrawable_android_shadowColor, Color.BLACK); - mState.mShadowSize = a.getDimensionPixelSize( - R.styleable.ShadowDrawable_android_elevation, 0); - mState.mDarkTintColor = a.getColor( - R.styleable.ShadowDrawable_darkTintColor, Color.BLACK); - - mState.mIntrinsicHeight = d.getIntrinsicHeight() + 2 * mState.mShadowSize; - mState.mIntrinsicWidth = d.getIntrinsicWidth() + 2 * mState.mShadowSize; - mState.mChangingConfigurations = d.getChangingConfigurations(); - - mState.mChildState = d.getConstantState(); - } finally { - a.recycle(); - } - } - - private static class ShadowDrawableState extends ConstantState { - - int mChangingConfigurations; - int mIntrinsicWidth; - int mIntrinsicHeight; - - int mShadowColor; - int mShadowSize; - int mDarkTintColor; - - boolean mIsDark; - Bitmap mLastDrawnBitmap; - ConstantState mChildState; - - @Override - public Drawable newDrawable() { - return new ShadowDrawable(this); - } - - @Override - public int getChangingConfigurations() { - return mChangingConfigurations; - } - - @Override - public boolean canApplyTheme() { - return true; - } - } -}