diff options
| -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; |