diff options
| author | 2023-08-10 20:15:10 +0000 | |
|---|---|---|
| committer | 2023-08-10 20:15:10 +0000 | |
| commit | d2b7df08e513c6eeccafb6786f7e5642b4996c45 (patch) | |
| tree | 9c37e674c524088fa425fa3d32ee6cc838126ae3 | |
| parent | 59bc599dba2a6d6e90c350c0937523e1520ab09f (diff) | |
| parent | 571bf81297110d7950d04ff98afaeea2c9580220 (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.java | 18 | ||||
| -rw-r--r-- | core/java/com/android/internal/widget/MessagingLayout.java | 18 |
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; |