Add setTextAsync method to TextView

This CL adds a setTextAsync method to the TextView class. This method allows the text to be maniputed on a background thread and set the result on main thread with Runnable.

Bug: 289250881
Test: Manual by checking Notification and Widget Texts.
Change-Id: I3d74f2de2503318441c868bb931a2bc447c03517
This commit is contained in:
Ibrahim Yilmaz
2023-06-28 18:11:00 +00:00
parent a81b1bc89c
commit 359740ac6a

View File

@@ -6938,11 +6938,25 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
* parameters used to create the PrecomputedText mismatches
* with this TextView.
*/
@android.view.RemotableViewMethod
@android.view.RemotableViewMethod(asyncImpl = "setTextAsync")
public final void setText(CharSequence text) {
setText(text, mBufferType);
}
/**
* RemotableViewMethod's asyncImpl of {@link #setText(CharSequence)}.
* 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 text text to be displayed
* @return Runnable that sets text; must be called on the main thread by the caller of this
* method to complete the operation
* @hide
*/
@NonNull
public Runnable setTextAsync(@Nullable CharSequence text) {
return () -> setText(text);
}
/**
* Sets the text to be displayed but retains the cursor position. Same as
* {@link #setText(CharSequence)} except that the cursor position (if any) is retained in the