From edca4f53202a0c142c66b96460cb7d5d22c98251 Mon Sep 17 00:00:00 2001 From: Adrian Roos Date: Tue, 31 Jan 2017 15:10:00 -0800 Subject: [PATCH] StatusBar: Catch OOM caused by third-party icons Bug: 31825355 Change-Id: I3e2a8c3da43a572a026ea0bbe1d39234035a4801 Merged-In: I3e2a8c3da43a572a026ea0bbe1d39234035a4801 --- .../android/systemui/statusbar/StatusBarIconView.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java index cdfdad4640650..267dd3d1221b5 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java @@ -188,9 +188,16 @@ public class StatusBarIconView extends AnimatedImageView { if (mIcon == null) { return false; } - Drawable drawable = getIcon(mIcon); + Drawable drawable; + try { + drawable = getIcon(mIcon); + } catch (OutOfMemoryError e) { + Log.w(TAG, "OOM while inflating " + mIcon.icon + " for slot " + mSlot); + return false; + } + if (drawable == null) { - Log.w(TAG, "No icon for slot " + mSlot); + Log.w(TAG, "No icon for slot " + mSlot + "; " + mIcon.icon); return false; } if (withClear) {