From 2570d107f55090c0b47476b4b41ef18344fc9360 Mon Sep 17 00:00:00 2001 From: Sunny Goyal Date: Thu, 27 Oct 2016 11:38:45 -0700 Subject: [PATCH] Catching OOM during widget preview generation Bug: 32365481 Change-Id: Ifc49b033c3ad83213d50793301d94bb6337a412d --- src/com/android/launcher3/WidgetPreviewLoader.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/com/android/launcher3/WidgetPreviewLoader.java b/src/com/android/launcher3/WidgetPreviewLoader.java index 45e65b55b5..cc9dde1773 100644 --- a/src/com/android/launcher3/WidgetPreviewLoader.java +++ b/src/com/android/launcher3/WidgetPreviewLoader.java @@ -301,7 +301,14 @@ public class WidgetPreviewLoader { Drawable drawable = null; if (info.previewImage != 0) { - drawable = mWidgetManager.loadPreview(info); + try { + drawable = mWidgetManager.loadPreview(info); + } catch (OutOfMemoryError e) { + Log.w(TAG, "Error loading widget preview for: " + info.provider, e); + // During OutOfMemoryError, the previous heap stack is not affected. Catching + // an OOM error here should be safe & not affect other parts of launcher. + drawable = null; + } if (drawable != null) { drawable = mutateOnMainThread(drawable); } else {