diff options
| author | 2023-11-01 00:35:05 +0000 | |
|---|---|---|
| committer | 2023-11-01 00:35:05 +0000 | |
| commit | 3146fcab561a23a95ac8693d8a03b335a342f43a (patch) | |
| tree | 26140db328d3f1eb17ff97559f1fdb67efbedc01 /graphics/java/android | |
| parent | 5dc7a20c2619438f7a3327fe81f47a85af61c93e (diff) | |
| parent | e84e04b4f696573aa09089c8bde692a623394fc9 (diff) | |
Merge "Make LineBreakConfig and its span parcelable" into main
Diffstat (limited to 'graphics/java/android')
| -rw-r--r-- | graphics/java/android/graphics/text/LineBreakConfig.java | 42 |
1 files changed, 38 insertions, 4 deletions
diff --git a/graphics/java/android/graphics/text/LineBreakConfig.java b/graphics/java/android/graphics/text/LineBreakConfig.java index 621958562b94..c5e451a5ec3a 100644 --- a/graphics/java/android/graphics/text/LineBreakConfig.java +++ b/graphics/java/android/graphics/text/LineBreakConfig.java @@ -28,6 +28,8 @@ import android.compat.annotation.ChangeId; import android.compat.annotation.EnabledSince; import android.os.Build; import android.os.LocaleList; +import android.os.Parcel; +import android.os.Parcelable; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -40,7 +42,7 @@ import java.util.Objects; * <a href="https://www.w3.org/TR/css-text-3/#line-break-property" class="external"> * line-break property</a> for more information. */ -public final class LineBreakConfig { +public final class LineBreakConfig implements Parcelable { /** * A feature ID for automatic line break word style. @@ -161,12 +163,12 @@ public final class LineBreakConfig { * * This is useful when you want to preserve some words in the same line by using * {@link android.text.style.LineBreakConfigSpan} or - * {@link android.text.style.LineBreakConfigSpan.NoBreakSpan} as a shorthand. + * {@link android.text.style.LineBreakConfigSpan#createNoBreakSpan()} as a shorthand. * Note that even if this style is specified, the grapheme based line break is still performed * for preventing clipping text. * * @see android.text.style.LineBreakConfigSpan - * @see android.text.style.LineBreakConfigSpan.NoBreakSpan + * @see android.text.style.LineBreakConfigSpan#createNoBreakSpan() */ @FlaggedApi(FLAG_NO_BREAK_NO_HYPHENATION_SPAN) public static final int LINE_BREAK_STYLE_NO_BREAK = 4; @@ -457,8 +459,9 @@ public final class LineBreakConfig { * * <p>Use {@link LineBreakConfig.Builder} to create the * {@code LineBreakConfig} instance. + * @hide */ - private LineBreakConfig(@LineBreakStyle int lineBreakStyle, + public LineBreakConfig(@LineBreakStyle int lineBreakStyle, @LineBreakWordStyle int lineBreakWordStyle, @Hyphenation int hyphenation) { mLineBreakStyle = lineBreakStyle; @@ -606,4 +609,35 @@ public final class LineBreakConfig { + ", mHyphenation= " + mHyphenation + '}'; } + + @FlaggedApi(FLAG_NO_BREAK_NO_HYPHENATION_SPAN) + @Override + public int describeContents() { + return 0; + } + + @FlaggedApi(FLAG_NO_BREAK_NO_HYPHENATION_SPAN) + @Override + public void writeToParcel(@NonNull Parcel dest, int flags) { + dest.writeInt(mLineBreakStyle); + dest.writeInt(mLineBreakWordStyle); + dest.writeInt(mHyphenation); + } + + @FlaggedApi(FLAG_NO_BREAK_NO_HYPHENATION_SPAN) + public static final @NonNull Creator<LineBreakConfig> CREATOR = new Creator<>() { + + @Override + public LineBreakConfig createFromParcel(Parcel source) { + final int lineBreakStyle = source.readInt(); + final int lineBreakWordStyle = source.readInt(); + final int hyphenation = source.readInt(); + return new LineBreakConfig(lineBreakStyle, lineBreakWordStyle, hyphenation); + } + + @Override + public LineBreakConfig[] newArray(int size) { + return new LineBreakConfig[size]; + } + }; } |