summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Treehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com> 2023-08-10 20:15:10 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2023-08-10 20:15:10 +0000
commitd2b7df08e513c6eeccafb6786f7e5642b4996c45 (patch)
tree9c37e674c524088fa425fa3d32ee6cc838126ae3
parent59bc599dba2a6d6e90c350c0937523e1520ab09f (diff)
parent571bf81297110d7950d04ff98afaeea2c9580220 (diff)
Merge "Create asyncImpl of setData for Messaging and Conversation Layouts" into udc-qpr-dev am: 571bf81297
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/24178063 Change-Id: Ibfd37b1ac84130f3d5f239dccb6991ac6ac3ac44 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--core/java/com/android/internal/widget/ConversationLayout.java18
-rw-r--r--core/java/com/android/internal/widget/MessagingLayout.java18
2 files changed, 34 insertions, 2 deletions
diff --git a/core/java/com/android/internal/widget/ConversationLayout.java b/core/java/com/android/internal/widget/ConversationLayout.java
index 635adcad0e7b..117c670a2197 100644
--- a/core/java/com/android/internal/widget/ConversationLayout.java
+++ b/core/java/com/android/internal/widget/ConversationLayout.java
@@ -383,7 +383,11 @@ public class ConversationLayout extends FrameLayout
updateContentEndPaddings();
}
- @RemotableViewMethod
+ /**
+ * Set conversation data
+ * @param extras Bundle contains conversation data
+ */
+ @RemotableViewMethod(asyncImpl = "setDataAsync")
public void setData(Bundle extras) {
Parcelable[] messages = extras.getParcelableArray(Notification.EXTRA_MESSAGES);
List<Notification.MessagingStyle.Message> newMessages
@@ -409,6 +413,18 @@ public class ConversationLayout extends FrameLayout
setUnreadCount(unreadCount);
}
+ /**
+ * RemotableViewMethod's asyncImpl of {@link #setData(Bundle)}.
+ * This should be called on a background thread, and returns a Runnable which is then must be
+ * called on the main thread to complete the operation and set text.
+ * @param extras Bundle contains conversation data
+ * @hide
+ */
+ @NonNull
+ public Runnable setDataAsync(Bundle extras) {
+ return () -> setData(extras);
+ }
+
@Override
public void setImageResolver(ImageResolver resolver) {
mImageResolver = resolver;
diff --git a/core/java/com/android/internal/widget/MessagingLayout.java b/core/java/com/android/internal/widget/MessagingLayout.java
index 9d142f689b98..f187d5c8625c 100644
--- a/core/java/com/android/internal/widget/MessagingLayout.java
+++ b/core/java/com/android/internal/widget/MessagingLayout.java
@@ -156,7 +156,11 @@ public class MessagingLayout extends FrameLayout
mConversationTitle = conversationTitle;
}
- @RemotableViewMethod
+ /**
+ * Set Messaging data
+ * @param extras Bundle contains messaging data
+ */
+ @RemotableViewMethod(asyncImpl = "setDataAsync")
public void setData(Bundle extras) {
Parcelable[] messages = extras.getParcelableArray(Notification.EXTRA_MESSAGES);
List<Notification.MessagingStyle.Message> newMessages
@@ -173,6 +177,18 @@ public class MessagingLayout extends FrameLayout
bind(newMessages, newHistoricMessages, showSpinner);
}
+ /**
+ * RemotableViewMethod's asyncImpl of {@link #setData(Bundle)}.
+ * This should be called on a background thread, and returns a Runnable which is then must be
+ * called on the main thread to complete the operation and set text.
+ * @param extras Bundle contains messaging data
+ * @hide
+ */
+ @NonNull
+ public Runnable setDataAsync(Bundle extras) {
+ return () -> setData(extras);
+ }
+
@Override
public void setImageResolver(ImageResolver resolver) {
mImageResolver = resolver;