From 73f1be9388c7a4320843b00efea0fadd8bf2f183 Mon Sep 17 00:00:00 2001 From: Selim Cinek Date: Thu, 3 May 2018 13:52:04 -0700 Subject: Fixed an animation issue with Smart Replies Updating a remoteInputHistory message to non-history was generating a weird animation because we would not reuse the view if the remoteInputHistory state changed. Bug: 77957392 Test: visual, observe normal animations Change-Id: Iac869159411cc57c90476ef684a05e8547c14aa4 --- core/java/com/android/internal/widget/MessagingMessage.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/core/java/com/android/internal/widget/MessagingMessage.java b/core/java/com/android/internal/widget/MessagingMessage.java index f0b60685b70e..d2b670fa2d66 100644 --- a/core/java/com/android/internal/widget/MessagingMessage.java +++ b/core/java/com/android/internal/widget/MessagingMessage.java @@ -73,7 +73,14 @@ public interface MessagingMessage extends MessagingLinearLayout.MessagingChild { if (!Objects.equals(message.getSender(), ownMessage.getSender())) { return false; } - if (!Objects.equals(message.getTimestamp(), ownMessage.getTimestamp())) { + boolean hasRemoteInputHistoryChanged = message.isRemoteInputHistory() + != ownMessage.isRemoteInputHistory(); + // When the remote input history has changed, we want to regard messages equal even when + // the timestamp changes. The main reason is that the message that the system inserts + // will have a different time set than the one that the app will update us with and we + // still want to reuse that message. + if (!hasRemoteInputHistoryChanged + && !Objects.equals(message.getTimestamp(), ownMessage.getTimestamp())) { return false; } if (!Objects.equals(message.getDataMimeType(), ownMessage.getDataMimeType())) { @@ -82,9 +89,6 @@ public interface MessagingMessage extends MessagingLinearLayout.MessagingChild { if (!Objects.equals(message.getDataUri(), ownMessage.getDataUri())) { return false; } - if (message.isRemoteInputHistory() != ownMessage.isRemoteInputHistory()) { - return false; - } return true; } -- cgit v1.2.3-59-g8ed1b