From 2e12d5528339adb88a86f4db2e4c05b89df44c7b Mon Sep 17 00:00:00 2001 From: Julia Tuttle Date: Tue, 24 May 2022 13:07:29 -0400 Subject: [PATCH] MessagingImageMessage: Don't crash if measured after recycle We're hoping to gut the recycling code in the messaging notification code entirely (it's a lot of complexity for apparently little or no performance gain), but in the meantime, mitigate a System UI crash. Bug: 231025249 Test: none, I found no unit tests to start with Change-Id: I3bcc14d102a87ed96ce37241d25eccf44ba2acb0 --- .../com/android/internal/widget/MessagingImageMessage.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/core/java/com/android/internal/widget/MessagingImageMessage.java b/core/java/com/android/internal/widget/MessagingImageMessage.java index f7955c3f72dad..8e7fe18b222b5 100644 --- a/core/java/com/android/internal/widget/MessagingImageMessage.java +++ b/core/java/com/android/internal/widget/MessagingImageMessage.java @@ -226,6 +226,13 @@ public class MessagingImageMessage extends ImageView implements MessagingMessage @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); + + if (mDrawable == null) { + Log.e(TAG, "onMeasure() after recycle()!"); + setMeasuredDimension(0, 0); + return; + } + if (mIsIsolated) { // When isolated we have a fixed size, let's use that sizing. setMeasuredDimension(MeasureSpec.getSize(widthMeasureSpec),