From 40bce3efe497190b91a87b7f82d6568d96d28919 Mon Sep 17 00:00:00 2001 From: Jon Miranda Date: Tue, 30 Jul 2019 13:40:26 -0700 Subject: Bandage fix for bitmap fatal exception where width / height !> 0. Bug: 135558924 Change-Id: I0a22ba849b50eee87abd52ab9ec3211294a6c40b --- src/com/android/launcher3/dragndrop/FolderAdaptiveIcon.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'src/com/android/launcher3/dragndrop/FolderAdaptiveIcon.java') diff --git a/src/com/android/launcher3/dragndrop/FolderAdaptiveIcon.java b/src/com/android/launcher3/dragndrop/FolderAdaptiveIcon.java index 0c5a1fc5a..d8a1f9951 100644 --- a/src/com/android/launcher3/dragndrop/FolderAdaptiveIcon.java +++ b/src/com/android/launcher3/dragndrop/FolderAdaptiveIcon.java @@ -28,6 +28,8 @@ import android.graphics.drawable.Drawable; import android.os.Build; import android.util.Log; +import androidx.annotation.Nullable; + import com.android.launcher3.Launcher; import com.android.launcher3.MainThreadExecutor; import com.android.launcher3.R; @@ -66,15 +68,19 @@ public class FolderAdaptiveIcon extends AdaptiveIconDrawable { return mBadge; } - public static FolderAdaptiveIcon createFolderAdaptiveIcon( + public static @Nullable FolderAdaptiveIcon createFolderAdaptiveIcon( Launcher launcher, int folderId, Point dragViewSize) { Preconditions.assertNonUiThread(); int margin = launcher.getResources() .getDimensionPixelSize(R.dimen.blur_size_medium_outline); // Allocate various bitmaps on the background thread, because why not! - final Bitmap badge = Bitmap.createBitmap( - dragViewSize.x - margin, dragViewSize.y - margin, Bitmap.Config.ARGB_8888); + int width = dragViewSize.x - margin; + int height = dragViewSize.y - margin; + if (width <= 0 || height <= 0) { + return null; + } + final Bitmap badge = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); // Create the actual drawable on the UI thread to avoid race conditions with // FolderIcon draw pass -- cgit v1.2.3