diff options
author | 2023-01-18 15:39:02 +0000 | |
---|---|---|
committer | 2023-01-18 15:39:02 +0000 | |
commit | 49d070c4e578ec24e550d506f582018d1d58c480 (patch) | |
tree | 4f82cb6126a722b2d7c4758c6a2adcc646e21881 | |
parent | 30eb737996e52d7491160677ef490386a8cd6c8d (diff) | |
parent | f287bdaef488f230118c8fc450b33c67b7f94f85 (diff) |
Merge "Fix potential NPE when MessagingMessage's message is null"
3 files changed, 9 insertions, 4 deletions
diff --git a/core/java/com/android/internal/widget/ConversationLayout.java b/core/java/com/android/internal/widget/ConversationLayout.java index 5f8acff80c0a..3fb2318a7b08 100644 --- a/core/java/com/android/internal/widget/ConversationLayout.java +++ b/core/java/com/android/internal/widget/ConversationLayout.java @@ -927,7 +927,8 @@ public class ConversationLayout extends FrameLayout message = messages.get(i - histSize); } boolean isNewGroup = currentGroup == null; - Person sender = message.getMessage().getSenderPerson(); + Person sender = + message.getMessage() == null ? null : message.getMessage().getSenderPerson(); CharSequence key = getKey(sender); isNewGroup |= !TextUtils.equals(key, currentSenderKey); if (isNewGroup) { @@ -1190,7 +1191,8 @@ public class ConversationLayout extends FrameLayout return null; } final MessagingMessage messagingMessage = mMessages.get(mMessages.size() - 1); - final CharSequence text = messagingMessage.getMessage().getText(); + final CharSequence text = messagingMessage.getMessage() == null ? null + : messagingMessage.getMessage().getText(); if (text == null && messagingMessage instanceof MessagingImageMessage) { final String unformatted = getResources().getString(R.string.conversation_single_line_image_placeholder); diff --git a/core/java/com/android/internal/widget/MessagingGroup.java b/core/java/com/android/internal/widget/MessagingGroup.java index 146cb3fadaac..30e4099f9a6f 100644 --- a/core/java/com/android/internal/widget/MessagingGroup.java +++ b/core/java/com/android/internal/widget/MessagingGroup.java @@ -492,7 +492,9 @@ public class MessagingGroup extends LinearLayout implements MessagingLinearLayou int color = mSendingSpinnerContainer.getVisibility() == View.VISIBLE ? mSendingTextColor : mTextColor; for (MessagingMessage message : mMessages) { - message.setColor(message.getMessage().isRemoteInputHistory() ? color : mTextColor); + final boolean isRemoteInputHistory = + message.getMessage() != null && message.getMessage().isRemoteInputHistory(); + message.setColor(isRemoteInputHistory ? color : mTextColor); } } } diff --git a/core/java/com/android/internal/widget/MessagingLayout.java b/core/java/com/android/internal/widget/MessagingLayout.java index 9ac6ef77bc07..a270b28e4e80 100644 --- a/core/java/com/android/internal/widget/MessagingLayout.java +++ b/core/java/com/android/internal/widget/MessagingLayout.java @@ -470,7 +470,8 @@ public class MessagingLayout extends FrameLayout message = messages.get(i - histSize); } boolean isNewGroup = currentGroup == null; - Person sender = message.getMessage().getSenderPerson(); + Person sender = + message.getMessage() == null ? null : message.getMessage().getSenderPerson(); CharSequence key = sender == null ? null : sender.getKey() == null ? sender.getName() : sender.getKey(); isNewGroup |= !TextUtils.equals(key, currentSenderKey); |