summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoger Olsson <roger.olsson@sony.com>2018-04-12 10:08:01 +0200
committerSunny Goyal <sunnygoyal@google.com>2018-04-26 10:44:09 -0700
commit4ac406db22ef19b456be1cff857af04a3ca8db27 (patch)
tree76da2960ee492aa5348dc61bbf76da386a034803
parent87249707a50cad1566524c93e2537fb92ec40ead (diff)
downloadandroid_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.java7
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