diff options
author | Roger Olsson <roger.olsson@sony.com> | 2018-04-12 10:08:01 +0200 |
---|---|---|
committer | Sunny Goyal <sunnygoyal@google.com> | 2018-04-26 10:44:09 -0700 |
commit | 4ac406db22ef19b456be1cff857af04a3ca8db27 (patch) | |
tree | 76da2960ee492aa5348dc61bbf76da386a034803 | |
parent | 87249707a50cad1566524c93e2537fb92ec40ead (diff) | |
download | android_packages_apps_Trebuchet-4ac406db22ef19b456be1cff857af04a3ca8db27.tar.gz android_packages_apps_Trebuchet-4ac406db22ef19b456be1cff857af04a3ca8db27.tar.bz2 android_packages_apps_Trebuchet-4ac406db22ef19b456be1cff857af04a3ca8db27.zip |
Avoid crash when widget previews have no intrinsic size
Intrinsic size for widget preview drawable checked.
Needed since some drawables, like color drawables,
do not have any intrinsic size.
Bug: 78452220
Test: manual, see Bug info.
Change-Id: I815353773e38b1fce2fe19962f07c1727e1b0768
-rw-r--r-- | src/com/android/launcher3/WidgetPreviewLoader.java | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/com/android/launcher3/WidgetPreviewLoader.java b/src/com/android/launcher3/WidgetPreviewLoader.java index a658d585c..7af4bf979 100644 --- a/src/com/android/launcher3/WidgetPreviewLoader.java +++ b/src/com/android/launcher3/WidgetPreviewLoader.java @@ -338,7 +338,8 @@ public class WidgetPreviewLoader { int previewWidth; int previewHeight; - if (widgetPreviewExists) { + if (widgetPreviewExists && drawable.getIntrinsicWidth() > 0 + && drawable.getIntrinsicHeight() > 0) { previewWidth = drawable.getIntrinsicWidth(); previewHeight = drawable.getIntrinsicHeight(); } else { @@ -358,8 +359,8 @@ public class WidgetPreviewLoader { scale = maxPreviewWidth / (float) (previewWidth); } if (scale != 1f) { - previewWidth = (int) (scale * previewWidth); - previewHeight = (int) (scale * previewHeight); + previewWidth = Math.max((int)(scale * previewWidth), 1); + previewHeight = Math.max((int)(scale * previewHeight), 1); } // If a bitmap is passed in, we use it; otherwise, we create a bitmap of the right size |