From 6438e1cdbc4f6532f2fb2d155b33a8b2d5527dfa Mon Sep 17 00:00:00 2001 From: ibaker Date: Thu, 2 Apr 2020 14:23:51 +0100 Subject: [PATCH] Add support for tate-chu-yoko to SpannedToHtmlConverter PiperOrigin-RevId: 304386857 --- .../exoplayer2/ui/SpannedToHtmlConverter.java | 5 +++++ .../ui/SpannedToHtmlConverterTest.java | 18 ++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/library/ui/src/main/java/com/google/android/exoplayer2/ui/SpannedToHtmlConverter.java b/library/ui/src/main/java/com/google/android/exoplayer2/ui/SpannedToHtmlConverter.java index 532651e1d9..6aa0493dc4 100644 --- a/library/ui/src/main/java/com/google/android/exoplayer2/ui/SpannedToHtmlConverter.java +++ b/library/ui/src/main/java/com/google/android/exoplayer2/ui/SpannedToHtmlConverter.java @@ -26,6 +26,7 @@ import android.text.style.UnderlineSpan; import android.util.SparseArray; import androidx.annotation.ColorInt; import androidx.annotation.Nullable; +import com.google.android.exoplayer2.text.span.HorizontalTextInVerticalContextSpan; import com.google.android.exoplayer2.text.span.RubySpan; import com.google.android.exoplayer2.util.Assertions; import com.google.android.exoplayer2.util.Util; @@ -124,6 +125,8 @@ import java.util.regex.Pattern; ForegroundColorSpan colorSpan = (ForegroundColorSpan) span; return Util.formatInvariant( "", toCssColor(colorSpan.getForegroundColor())); + } else if (span instanceof HorizontalTextInVerticalContextSpan) { + return ""; } else if (span instanceof StyleSpan) { switch (((StyleSpan) span).getStyle()) { case Typeface.BOLD: @@ -158,6 +161,8 @@ import java.util.regex.Pattern; private static String getClosingTag(Object span) { if (span instanceof ForegroundColorSpan) { return ""; + } else if (span instanceof HorizontalTextInVerticalContextSpan) { + return ""; } else if (span instanceof StyleSpan) { switch (((StyleSpan) span).getStyle()) { case Typeface.BOLD: diff --git a/library/ui/src/test/java/com/google/android/exoplayer2/ui/SpannedToHtmlConverterTest.java b/library/ui/src/test/java/com/google/android/exoplayer2/ui/SpannedToHtmlConverterTest.java index a69499296d..11eda1012e 100644 --- a/library/ui/src/test/java/com/google/android/exoplayer2/ui/SpannedToHtmlConverterTest.java +++ b/library/ui/src/test/java/com/google/android/exoplayer2/ui/SpannedToHtmlConverterTest.java @@ -26,6 +26,7 @@ import android.text.style.ForegroundColorSpan; import android.text.style.StyleSpan; import android.text.style.UnderlineSpan; import androidx.test.ext.junit.runners.AndroidJUnit4; +import com.google.android.exoplayer2.text.span.HorizontalTextInVerticalContextSpan; import com.google.android.exoplayer2.text.span.RubySpan; import org.junit.Test; import org.junit.runner.RunWith; @@ -49,6 +50,23 @@ public class SpannedToHtmlConverterTest { .isEqualTo("String with colored section"); } + @Test + public void convert_supportsHorizontalTextInVerticalContextSpan() { + SpannableString spanned = new SpannableString("Vertical text with 123 horizontal numbers"); + spanned.setSpan( + new HorizontalTextInVerticalContextSpan(), + "Vertical text with ".length(), + "Vertical text with 123".length(), + Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + + String html = SpannedToHtmlConverter.convert(spanned); + + assertThat(html) + .isEqualTo( + "Vertical text with 123 " + + "horizontal numbers"); + } + @Test public void convert_supportsStyleSpan() { SpannableString spanned =