diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-04-06 23:25:54 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-04-06 23:25:54 +0000 |
commit | de55cbafd25a3cabe56096fadb6db186f91bcc6e (patch) | |
tree | 6ed362d9a3a2cbb0c6e6095cb2247ecda28c6cdb | |
parent | 4b08d007a159c4a9f4d09959422406a4daf67042 (diff) | |
parent | aa0599b652b5f73631dc561634c106ff28b5fb90 (diff) | |
download | WallpaperPicker2-de55cbafd25a3cabe56096fadb6db186f91bcc6e.tar.gz |
Snap for 9898483 from aa0599b652b5f73631dc561634c106ff28b5fb90 to tm-qpr3-release
Change-Id: I064ff2af6d97438898fa47cc6aa970a678092fcd
-rwxr-xr-x | src/com/android/wallpaper/asset/LiveWallpaperThumbAsset.java | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/src/com/android/wallpaper/asset/LiveWallpaperThumbAsset.java b/src/com/android/wallpaper/asset/LiveWallpaperThumbAsset.java index 1f4fb674..3e4d58bd 100755 --- a/src/com/android/wallpaper/asset/LiveWallpaperThumbAsset.java +++ b/src/com/android/wallpaper/asset/LiveWallpaperThumbAsset.java @@ -21,16 +21,21 @@ import android.content.res.AssetFileDescriptor; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; +import android.graphics.Point; import android.graphics.Rect; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; +import android.graphics.drawable.LayerDrawable; import android.net.Uri; import android.util.Log; import android.widget.ImageView; import androidx.annotation.WorkerThread; +import com.android.wallpaper.module.DrawableLayerResolver; +import com.android.wallpaper.module.InjectorProvider; + import com.bumptech.glide.Glide; import com.bumptech.glide.load.Key; import com.bumptech.glide.load.MultiTransformation; @@ -59,6 +64,7 @@ public class LiveWallpaperThumbAsset extends Asset { protected final Context mContext; protected final android.app.WallpaperInfo mInfo; + protected final DrawableLayerResolver mLayerResolver; // The content Uri of thumbnail protected Uri mUri; private Drawable mThumbnailDrawable; @@ -66,6 +72,7 @@ public class LiveWallpaperThumbAsset extends Asset { public LiveWallpaperThumbAsset(Context context, android.app.WallpaperInfo info) { mContext = context.getApplicationContext(); mInfo = info; + mLayerResolver = InjectorProvider.getInjector().getDrawableLayerResolver(); } public LiveWallpaperThumbAsset(Context context, android.app.WallpaperInfo info, Uri uri) { @@ -114,7 +121,21 @@ public class LiveWallpaperThumbAsset extends Asset { @Override public void decodeRawDimensions(Activity unused, DimensionsReceiver receiver) { - receiver.onDimensionsDecoded(null); + // TODO(b/277166654): Reuse the logic for all thumb asset decoding + sExecutorService.execute(() -> { + Bitmap result = null; + Drawable thumb = mInfo.loadThumbnail(mContext.getPackageManager()); + if (thumb instanceof BitmapDrawable) { + result = ((BitmapDrawable) thumb).getBitmap(); + } else if (thumb instanceof LayerDrawable) { + Drawable layer = mLayerResolver.resolveLayer((LayerDrawable) thumb); + if (layer instanceof BitmapDrawable) { + result = ((BitmapDrawable) layer).getBitmap(); + } + } + receiver.onDimensionsDecoded( + result == null ? null : new Point(result.getWidth(), result.getHeight())); + }); } @Override |