summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-04-06 23:25:54 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-04-06 23:25:54 +0000
commitde55cbafd25a3cabe56096fadb6db186f91bcc6e (patch)
tree6ed362d9a3a2cbb0c6e6095cb2247ecda28c6cdb
parent4b08d007a159c4a9f4d09959422406a4daf67042 (diff)
parentaa0599b652b5f73631dc561634c106ff28b5fb90 (diff)
downloadWallpaperPicker2-de55cbafd25a3cabe56096fadb6db186f91bcc6e.tar.gz
Snap for 9898483 from aa0599b652b5f73631dc561634c106ff28b5fb90 to tm-qpr3-release
Change-Id: I064ff2af6d97438898fa47cc6aa970a678092fcd
-rwxr-xr-xsrc/com/android/wallpaper/asset/LiveWallpaperThumbAsset.java23
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