Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 54091834 authored by Jason Hsu's avatar Jason Hsu Committed by Automerger Merge Worker
Browse files

Merge "Fix talkback did not speak out ReplacementSpan's content description."...

Merge "Fix talkback did not speak out ReplacementSpan's content description." into rvc-dev am: dac6071a

Change-Id: I762f05ffdba5a63e1d805beed44e28a8020fbc33
parents 7adfa800 dac6071a
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -738,7 +738,7 @@ public class TextUtils {
    /** @hide */
    public static final int ACCESSIBILITY_REPLACEMENT_SPAN = 29;
    /** @hide */
    public static final int LAST_SPAN = LINE_HEIGHT_SPAN;
    public static final int LAST_SPAN = ACCESSIBILITY_REPLACEMENT_SPAN;

    /**
     * Flatten a CharSequence and whatever styles can be copied across processes
+13 −8
Original line number Diff line number Diff line
@@ -22,30 +22,35 @@ import android.os.Parcel;
import android.os.Parcelable;
import android.text.ParcelableSpan;
import android.text.TextUtils;
import android.view.accessibility.AccessibilityNodeInfo;

/**
 * This class serves as a parcelable placeholder for the ReplacementSpans.
 * This class serves as a parcelable placeholder for the {@link ReplacementSpan}.
 *
 * This span contains content description of original span to let Accessibility service to do the
 * substitution for it.
 * It is used to replace ReplacementSpans in {@link AccessibilityNodeInfo#setText(CharSequence)}.
 *
 * @hide
 */
public class AccessibilityReplacementSpan extends ReplacementSpan
        implements ParcelableSpan {
    // The content description of the span this one replaces
    private CharSequence mContentDescription;

    /**
     * Sets the content description to the parent class.
     *
     * @param contentDescription The content description of the span this one replaces
     */
    public AccessibilityReplacementSpan(CharSequence contentDescription) {
        this.setContentDescription(contentDescription);
        mContentDescription = contentDescription;
    }

    /**
     * Sets the content description to the parent class.
     *
     * @param p The parcel to de-serialize from
     */
    public AccessibilityReplacementSpan(Parcel p) {
        mContentDescription = p.readCharSequence();
        final CharSequence contentDescription = p.readCharSequence();
        this.setContentDescription(contentDescription);
    }

    @Override
@@ -70,7 +75,7 @@ public class AccessibilityReplacementSpan extends ReplacementSpan

    @Override
    public void writeToParcelInternal(Parcel dest, int flags) {
        dest.writeCharSequence(mContentDescription);
        dest.writeCharSequence(this.getContentDescription());
    }

    @Override