From d898122ec55a3f7eefd68dae8aed400dac7dd013 Mon Sep 17 00:00:00 2001 From: ibaker Date: Thu, 24 Oct 2019 13:35:09 +0100 Subject: [PATCH] Mark WebvttCue constructors private Everyone should use the Builder. PiperOrigin-RevId: 276468354 --- .../exoplayer2/text/webvtt/WebvttCue.java | 30 ++++++------- .../text/webvtt/WebvttSubtitle.java | 2 +- .../text/webvtt/WebvttSubtitleTest.java | 45 ++++++++++++++++--- 3 files changed, 54 insertions(+), 23 deletions(-) diff --git a/library/core/src/main/java/com/google/android/exoplayer2/text/webvtt/WebvttCue.java b/library/core/src/main/java/com/google/android/exoplayer2/text/webvtt/WebvttCue.java index 857b1562ee..8b382ca3a5 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/text/webvtt/WebvttCue.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/text/webvtt/WebvttCue.java @@ -16,7 +16,6 @@ package com.google.android.exoplayer2.text.webvtt; import android.text.Layout.Alignment; -import android.text.SpannableStringBuilder; import com.google.android.exoplayer2.text.Cue; import com.google.android.exoplayer2.util.Log; @@ -28,18 +27,17 @@ public final class WebvttCue extends Cue { public final long startTime; public final long endTime; - public WebvttCue(CharSequence text) { - this(0, 0, text); - } - - public WebvttCue(long startTime, long endTime, CharSequence text) { - this(startTime, endTime, text, null, Cue.DIMEN_UNSET, Cue.TYPE_UNSET, Cue.TYPE_UNSET, - Cue.DIMEN_UNSET, Cue.TYPE_UNSET, Cue.DIMEN_UNSET); - } - - public WebvttCue(long startTime, long endTime, CharSequence text, Alignment textAlignment, - float line, @Cue.LineType int lineType, @Cue.AnchorType int lineAnchor, float position, - @Cue.AnchorType int positionAnchor, float width) { + private WebvttCue( + long startTime, + long endTime, + CharSequence text, + Alignment textAlignment, + float line, + @Cue.LineType int lineType, + @Cue.AnchorType int lineAnchor, + float position, + @Cue.AnchorType int positionAnchor, + float width) { super(text, textAlignment, line, lineType, lineAnchor, position, positionAnchor, width); this.startTime = startTime; this.endTime = endTime; @@ -65,7 +63,7 @@ public final class WebvttCue extends Cue { private long startTime; private long endTime; - private SpannableStringBuilder text; + private CharSequence text; private Alignment textAlignment; private float line; private int lineType; @@ -113,8 +111,8 @@ public final class WebvttCue extends Cue { return this; } - public Builder setText(SpannableStringBuilder aText) { - text = aText; + public Builder setText(CharSequence text) { + this.text = text; return this; } diff --git a/library/core/src/main/java/com/google/android/exoplayer2/text/webvtt/WebvttSubtitle.java b/library/core/src/main/java/com/google/android/exoplayer2/text/webvtt/WebvttSubtitle.java index 1dd8000cad..b7ce477894 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/text/webvtt/WebvttSubtitle.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/text/webvtt/WebvttSubtitle.java @@ -102,7 +102,7 @@ import java.util.List; } if (normalCueTextBuilder != null) { // there were multiple normal cues, so create a new cue with all of the text - list.add(new WebvttCue(normalCueTextBuilder)); + list.add(new WebvttCue.Builder().setText(normalCueTextBuilder).build()); } else if (firstNormalCue != null) { // there was only a single normal cue, so just add it to the list list.add(firstNormalCue); diff --git a/library/core/src/test/java/com/google/android/exoplayer2/text/webvtt/WebvttSubtitleTest.java b/library/core/src/test/java/com/google/android/exoplayer2/text/webvtt/WebvttSubtitleTest.java index 0f0f2572b7..71927cbceb 100644 --- a/library/core/src/test/java/com/google/android/exoplayer2/text/webvtt/WebvttSubtitleTest.java +++ b/library/core/src/test/java/com/google/android/exoplayer2/text/webvtt/WebvttSubtitleTest.java @@ -39,31 +39,64 @@ public class WebvttSubtitleTest { private static final WebvttSubtitle emptySubtitle = new WebvttSubtitle(Collections.emptyList()); private static final WebvttSubtitle simpleSubtitle; + static { ArrayList simpleSubtitleCues = new ArrayList<>(); - WebvttCue firstCue = new WebvttCue(1000000, 2000000, FIRST_SUBTITLE_STRING); + WebvttCue firstCue = + new WebvttCue.Builder() + .setStartTime(1000000) + .setEndTime(2000000) + .setText(FIRST_SUBTITLE_STRING) + .build(); simpleSubtitleCues.add(firstCue); - WebvttCue secondCue = new WebvttCue(3000000, 4000000, SECOND_SUBTITLE_STRING); + WebvttCue secondCue = + new WebvttCue.Builder() + .setStartTime(3000000) + .setEndTime(4000000) + .setText(SECOND_SUBTITLE_STRING) + .build(); simpleSubtitleCues.add(secondCue); simpleSubtitle = new WebvttSubtitle(simpleSubtitleCues); } private static final WebvttSubtitle overlappingSubtitle; + static { ArrayList overlappingSubtitleCues = new ArrayList<>(); - WebvttCue firstCue = new WebvttCue(1000000, 3000000, FIRST_SUBTITLE_STRING); + WebvttCue firstCue = + new WebvttCue.Builder() + .setStartTime(1000000) + .setEndTime(3000000) + .setText(FIRST_SUBTITLE_STRING) + .build(); overlappingSubtitleCues.add(firstCue); - WebvttCue secondCue = new WebvttCue(2000000, 4000000, SECOND_SUBTITLE_STRING); + WebvttCue secondCue = + new WebvttCue.Builder() + .setStartTime(2000000) + .setEndTime(4000000) + .setText(SECOND_SUBTITLE_STRING) + .build(); overlappingSubtitleCues.add(secondCue); overlappingSubtitle = new WebvttSubtitle(overlappingSubtitleCues); } private static final WebvttSubtitle nestedSubtitle; + static { ArrayList nestedSubtitleCues = new ArrayList<>(); - WebvttCue firstCue = new WebvttCue(1000000, 4000000, FIRST_SUBTITLE_STRING); + WebvttCue firstCue = + new WebvttCue.Builder() + .setStartTime(1000000) + .setEndTime(4000000) + .setText(FIRST_SUBTITLE_STRING) + .build(); nestedSubtitleCues.add(firstCue); - WebvttCue secondCue = new WebvttCue(2000000, 3000000, SECOND_SUBTITLE_STRING); + WebvttCue secondCue = + new WebvttCue.Builder() + .setStartTime(2000000) + .setEndTime(3000000) + .setText(SECOND_SUBTITLE_STRING) + .build(); nestedSubtitleCues.add(secondCue); nestedSubtitle = new WebvttSubtitle(nestedSubtitleCues); }