Rename ExoFlags to FlagSet

We want to remove mentions of ExoPlayer for
convergence.

PiperOrigin-RevId: 377290376
This commit is contained in:
kimvde 2021-06-03 16:11:11 +01:00 committed by bachinger
parent 36841d4f6f
commit b0a3bc5b28
7 changed files with 72 additions and 72 deletions

View File

@ -33,7 +33,7 @@ import com.google.android.exoplayer2.source.TrackGroupArray;
import com.google.android.exoplayer2.text.Cue; import com.google.android.exoplayer2.text.Cue;
import com.google.android.exoplayer2.text.TextOutput; import com.google.android.exoplayer2.text.TextOutput;
import com.google.android.exoplayer2.trackselection.TrackSelectionArray; import com.google.android.exoplayer2.trackselection.TrackSelectionArray;
import com.google.android.exoplayer2.util.ExoFlags; import com.google.android.exoplayer2.util.FlagSet;
import com.google.android.exoplayer2.util.Util; import com.google.android.exoplayer2.util.Util;
import com.google.android.exoplayer2.video.VideoListener; import com.google.android.exoplayer2.video.VideoListener;
import com.google.android.exoplayer2.video.VideoSize; import com.google.android.exoplayer2.video.VideoSize;
@ -345,14 +345,14 @@ public interface Player {
/** A set of {@link EventFlags}. */ /** A set of {@link EventFlags}. */
final class Events { final class Events {
private final ExoFlags flags; private final FlagSet flags;
/** /**
* Creates an instance. * Creates an instance.
* *
* @param flags The {@link ExoFlags} containing the {@link EventFlags} in the set. * @param flags The {@link FlagSet} containing the {@link EventFlags} in the set.
*/ */
public Events(ExoFlags flags) { public Events(FlagSet flags) {
this.flags = flags; this.flags = flags;
} }
@ -608,15 +608,15 @@ public interface Player {
COMMAND_GET_TEXT COMMAND_GET_TEXT
}; };
private final ExoFlags.Builder flagsBuilder; private final FlagSet.Builder flagsBuilder;
/** Creates a builder. */ /** Creates a builder. */
public Builder() { public Builder() {
flagsBuilder = new ExoFlags.Builder(); flagsBuilder = new FlagSet.Builder();
} }
private Builder(Commands commands) { private Builder(Commands commands) {
flagsBuilder = new ExoFlags.Builder(); flagsBuilder = new FlagSet.Builder();
flagsBuilder.addAll(commands.flags); flagsBuilder.addAll(commands.flags);
} }
@ -730,9 +730,9 @@ public interface Player {
/** An empty set of commands. */ /** An empty set of commands. */
public static final Commands EMPTY = new Builder().build(); public static final Commands EMPTY = new Builder().build();
private final ExoFlags flags; private final FlagSet flags;
private Commands(ExoFlags flags) { private Commands(FlagSet flags) {
this.flags = flags; this.flags = flags;
} }

View File

@ -29,9 +29,9 @@ import androidx.annotation.Nullable;
* *
* <p>Instances are immutable. * <p>Instances are immutable.
*/ */
public final class ExoFlags { public final class FlagSet {
/** A builder for {@link ExoFlags} instances. */ /** A builder for {@link FlagSet} instances. */
public static final class Builder { public static final class Builder {
private final SparseBooleanArray flags; private final SparseBooleanArray flags;
@ -86,13 +86,13 @@ public final class ExoFlags {
} }
/** /**
* Adds {@link ExoFlags flags}. * Adds {@link FlagSet flags}.
* *
* @param flags The set of flags to add. * @param flags The set of flags to add.
* @return This builder. * @return This builder.
* @throws IllegalStateException If {@link #build()} has already been called. * @throws IllegalStateException If {@link #build()} has already been called.
*/ */
public Builder addAll(ExoFlags flags) { public Builder addAll(FlagSet flags) {
for (int i = 0; i < flags.size(); i++) { for (int i = 0; i < flags.size(); i++) {
add(flags.get(i)); add(flags.get(i));
} }
@ -142,21 +142,21 @@ public final class ExoFlags {
} }
/** /**
* Builds an {@link ExoFlags} instance. * Builds an {@link FlagSet} instance.
* *
* @throws IllegalStateException If this method has already been called. * @throws IllegalStateException If this method has already been called.
*/ */
public ExoFlags build() { public FlagSet build() {
checkState(!buildCalled); checkState(!buildCalled);
buildCalled = true; buildCalled = true;
return new ExoFlags(flags); return new FlagSet(flags);
} }
} }
// A SparseBooleanArray is used instead of a Set to avoid auto-boxing the flag values. // A SparseBooleanArray is used instead of a Set to avoid auto-boxing the flag values.
private final SparseBooleanArray flags; private final SparseBooleanArray flags;
private ExoFlags(SparseBooleanArray flags) { private FlagSet(SparseBooleanArray flags) {
this.flags = flags; this.flags = flags;
} }
@ -207,10 +207,10 @@ public final class ExoFlags {
if (this == o) { if (this == o) {
return true; return true;
} }
if (!(o instanceof ExoFlags)) { if (!(o instanceof FlagSet)) {
return false; return false;
} }
ExoFlags that = (ExoFlags) o; FlagSet that = (FlagSet) o;
return flags.equals(that.flags); return flags.equals(that.flags);
} }

View File

@ -60,10 +60,10 @@ public final class ListenerSet<T> {
* Invokes the iteration finished event. * Invokes the iteration finished event.
* *
* @param listener The listener to invoke the event on. * @param listener The listener to invoke the event on.
* @param eventFlags The combined event {@link ExoFlags flags} of all events sent in this * @param eventFlags The combined event {@link FlagSet flags} of all events sent in this
* iteration. * iteration.
*/ */
void invoke(T listener, ExoFlags eventFlags); void invoke(T listener, FlagSet eventFlags);
} }
private static final int MSG_ITERATION_FINISHED = 0; private static final int MSG_ITERATION_FINISHED = 0;
@ -259,13 +259,13 @@ public final class ListenerSet<T> {
@Nonnull public final T listener; @Nonnull public final T listener;
private ExoFlags.Builder flagsBuilder; private FlagSet.Builder flagsBuilder;
private boolean needsIterationFinishedEvent; private boolean needsIterationFinishedEvent;
private boolean released; private boolean released;
public ListenerHolder(@Nonnull T listener) { public ListenerHolder(@Nonnull T listener) {
this.listener = listener; this.listener = listener;
this.flagsBuilder = new ExoFlags.Builder(); this.flagsBuilder = new FlagSet.Builder();
} }
public void release(IterationFinishedEvent<T> event) { public void release(IterationFinishedEvent<T> event) {
@ -289,8 +289,8 @@ public final class ListenerSet<T> {
if (!released && needsIterationFinishedEvent) { if (!released && needsIterationFinishedEvent) {
// Reset flags before invoking the listener to ensure we keep all new flags that are set by // Reset flags before invoking the listener to ensure we keep all new flags that are set by
// recursive events triggered from this callback. // recursive events triggered from this callback.
ExoFlags flagsToNotify = flagsBuilder.build(); FlagSet flagsToNotify = flagsBuilder.build();
flagsBuilder = new ExoFlags.Builder(); flagsBuilder = new FlagSet.Builder();
needsIterationFinishedEvent = false; needsIterationFinishedEvent = false;
event.invoke(listener, flagsToNotify); event.invoke(listener, flagsToNotify);
} }

View File

@ -26,7 +26,7 @@ import static org.mockito.Mockito.verify;
import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.google.android.exoplayer2.testutil.StubExoPlayer; import com.google.android.exoplayer2.testutil.StubExoPlayer;
import com.google.android.exoplayer2.util.ExoFlags; import com.google.android.exoplayer2.util.FlagSet;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.lang.reflect.Modifier; import java.lang.reflect.Modifier;
import java.util.ArrayDeque; import java.util.ArrayDeque;
@ -123,7 +123,7 @@ public class ForwardingPlayerTest {
forwardingListener.onEvents( forwardingListener.onEvents(
player, player,
new Player.Events( new Player.Events(
new ExoFlags.Builder() new FlagSet.Builder()
.addAll( .addAll(
EVENT_TIMELINE_CHANGED, EVENT_MEDIA_ITEM_TRANSITION, EVENT_IS_PLAYING_CHANGED) EVENT_TIMELINE_CHANGED, EVENT_MEDIA_ITEM_TRANSITION, EVENT_IS_PLAYING_CHANGED)
.build())); .build()));

View File

@ -24,13 +24,13 @@ import java.util.List;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
/** Unit test for {@link ExoFlags}. */ /** Unit test for {@link FlagSet}. */
@RunWith(AndroidJUnit4.class) @RunWith(AndroidJUnit4.class)
public final class ExoFlagsTest { public final class FlagSetTest {
@Test @Test
public void contains_withoutAdd_returnsFalseForAllValues() { public void contains_withoutAdd_returnsFalseForAllValues() {
ExoFlags flags = new ExoFlags.Builder().build(); FlagSet flags = new FlagSet.Builder().build();
assertThat(flags.contains(/* flag= */ -1234)).isFalse(); assertThat(flags.contains(/* flag= */ -1234)).isFalse();
assertThat(flags.contains(/* flag= */ 0)).isFalse(); assertThat(flags.contains(/* flag= */ 0)).isFalse();
@ -40,8 +40,8 @@ public final class ExoFlagsTest {
@Test @Test
public void contains_afterAdd_returnsTrueForAddedValues() { public void contains_afterAdd_returnsTrueForAddedValues() {
ExoFlags flags = FlagSet flags =
new ExoFlags.Builder() new FlagSet.Builder()
.add(/* flag= */ -1234) .add(/* flag= */ -1234)
.add(/* flag= */ 0) .add(/* flag= */ 0)
.add(/* flag= */ 2) .add(/* flag= */ 2)
@ -59,8 +59,8 @@ public final class ExoFlagsTest {
@Test @Test
public void contains_afterAddIf_returnsTrueForAddedValues() { public void contains_afterAddIf_returnsTrueForAddedValues() {
ExoFlags flags = FlagSet flags =
new ExoFlags.Builder() new FlagSet.Builder()
.addIf(/* flag= */ -1234, /* condition= */ true) .addIf(/* flag= */ -1234, /* condition= */ true)
.addIf(/* flag= */ 0, /* condition= */ false) .addIf(/* flag= */ 0, /* condition= */ false)
.addIf(/* flag= */ 2, /* condition= */ true) .addIf(/* flag= */ 2, /* condition= */ true)
@ -78,15 +78,15 @@ public final class ExoFlagsTest {
@Test @Test
public void containsAny_withoutAdd_returnsFalseForAllValues() { public void containsAny_withoutAdd_returnsFalseForAllValues() {
ExoFlags flags = new ExoFlags.Builder().build(); FlagSet flags = new FlagSet.Builder().build();
assertThat(flags.containsAny(/* flags...= */ -1234, 0, 2, Integer.MAX_VALUE)).isFalse(); assertThat(flags.containsAny(/* flags...= */ -1234, 0, 2, Integer.MAX_VALUE)).isFalse();
} }
@Test @Test
public void containsAny_afterAdd_returnsTrueForAddedValues() { public void containsAny_afterAdd_returnsTrueForAddedValues() {
ExoFlags flags = FlagSet flags =
new ExoFlags.Builder() new FlagSet.Builder()
.add(/* flag= */ -1234) .add(/* flag= */ -1234)
.add(/* flag= */ 0) .add(/* flag= */ 0)
.add(/* flag= */ 2) .add(/* flag= */ 2)
@ -102,15 +102,15 @@ public final class ExoFlagsTest {
@Test @Test
public void size_withoutAdd_returnsZero() { public void size_withoutAdd_returnsZero() {
ExoFlags flags = new ExoFlags.Builder().build(); FlagSet flags = new FlagSet.Builder().build();
assertThat(flags.size()).isEqualTo(0); assertThat(flags.size()).isEqualTo(0);
} }
@Test @Test
public void size_afterAdd_returnsNumberUniqueOfElements() { public void size_afterAdd_returnsNumberUniqueOfElements() {
ExoFlags flags = FlagSet flags =
new ExoFlags.Builder() new FlagSet.Builder()
.add(/* flag= */ 0) .add(/* flag= */ 0)
.add(/* flag= */ 0) .add(/* flag= */ 0)
.add(/* flag= */ 0) .add(/* flag= */ 0)
@ -123,22 +123,22 @@ public final class ExoFlagsTest {
@Test @Test
public void get_withNegativeIndex_throwsIndexOutOfBoundsException() { public void get_withNegativeIndex_throwsIndexOutOfBoundsException() {
ExoFlags flags = new ExoFlags.Builder().build(); FlagSet flags = new FlagSet.Builder().build();
assertThrows(IndexOutOfBoundsException.class, () -> flags.get(/* index= */ -1)); assertThrows(IndexOutOfBoundsException.class, () -> flags.get(/* index= */ -1));
} }
@Test @Test
public void get_withIndexExceedingSize_throwsIndexOutOfBoundsException() { public void get_withIndexExceedingSize_throwsIndexOutOfBoundsException() {
ExoFlags flags = new ExoFlags.Builder().add(/* flag= */ 0).add(/* flag= */ 123).build(); FlagSet flags = new FlagSet.Builder().add(/* flag= */ 0).add(/* flag= */ 123).build();
assertThrows(IndexOutOfBoundsException.class, () -> flags.get(/* index= */ 2)); assertThrows(IndexOutOfBoundsException.class, () -> flags.get(/* index= */ 2));
} }
@Test @Test
public void get_afterAdd_returnsAllUniqueValues() { public void get_afterAdd_returnsAllUniqueValues() {
ExoFlags flags = FlagSet flags =
new ExoFlags.Builder() new FlagSet.Builder()
.add(/* flag= */ 0) .add(/* flag= */ 0)
.add(/* flag= */ 0) .add(/* flag= */ 0)
.add(/* flag= */ 0) .add(/* flag= */ 0)

View File

@ -148,22 +148,22 @@ public class ListenerSetTest {
InOrder inOrder = Mockito.inOrder(listener1, listener2); InOrder inOrder = Mockito.inOrder(listener1, listener2);
inOrder.verify(listener1).callback2(); inOrder.verify(listener1).callback2();
inOrder.verify(listener2).callback2(); inOrder.verify(listener2).callback2();
inOrder.verify(listener1).iterationFinished(createExoFlags(EVENT_ID_2)); inOrder.verify(listener1).iterationFinished(createFlagSet(EVENT_ID_2));
inOrder.verify(listener2).iterationFinished(createExoFlags(EVENT_ID_2)); inOrder.verify(listener2).iterationFinished(createFlagSet(EVENT_ID_2));
inOrder.verify(listener1).callback1(); inOrder.verify(listener1).callback1();
inOrder.verify(listener2).callback1(); inOrder.verify(listener2).callback1();
inOrder.verify(listener1).callback2(); inOrder.verify(listener1).callback2();
inOrder.verify(listener2).callback2(); inOrder.verify(listener2).callback2();
inOrder.verify(listener1).callback1(); inOrder.verify(listener1).callback1();
inOrder.verify(listener2).callback1(); inOrder.verify(listener2).callback1();
inOrder.verify(listener1).iterationFinished(createExoFlags(EVENT_ID_1, EVENT_ID_2)); inOrder.verify(listener1).iterationFinished(createFlagSet(EVENT_ID_1, EVENT_ID_2));
inOrder.verify(listener2).iterationFinished(createExoFlags(EVENT_ID_1, EVENT_ID_2)); inOrder.verify(listener2).iterationFinished(createFlagSet(EVENT_ID_1, EVENT_ID_2));
inOrder.verify(listener1).callback3(); inOrder.verify(listener1).callback3();
inOrder.verify(listener2).callback3(); inOrder.verify(listener2).callback3();
inOrder.verify(listener1).callback1(); inOrder.verify(listener1).callback1();
inOrder.verify(listener2).callback1(); inOrder.verify(listener2).callback1();
inOrder.verify(listener1).iterationFinished(createExoFlags(EVENT_ID_1, EVENT_ID_3)); inOrder.verify(listener1).iterationFinished(createFlagSet(EVENT_ID_1, EVENT_ID_3));
inOrder.verify(listener2).iterationFinished(createExoFlags(EVENT_ID_1, EVENT_ID_3)); inOrder.verify(listener2).iterationFinished(createFlagSet(EVENT_ID_1, EVENT_ID_3));
inOrder.verifyNoMoreInteractions(); inOrder.verifyNoMoreInteractions();
} }
@ -178,7 +178,7 @@ public class ListenerSetTest {
boolean eventSent; boolean eventSent;
@Override @Override
public void iterationFinished(ExoFlags flags) { public void iterationFinished(FlagSet flags) {
if (!eventSent) { if (!eventSent) {
listenerSet.sendEvent(EVENT_ID_1, TestListener::callback1); listenerSet.sendEvent(EVENT_ID_1, TestListener::callback1);
eventSent = true; eventSent = true;
@ -198,14 +198,14 @@ public class ListenerSetTest {
inOrder.verify(listener1).callback2(); inOrder.verify(listener1).callback2();
inOrder.verify(listener2).callback2(); inOrder.verify(listener2).callback2();
inOrder.verify(listener3).callback2(); inOrder.verify(listener3).callback2();
inOrder.verify(listener1).iterationFinished(createExoFlags(EVENT_ID_2)); inOrder.verify(listener1).iterationFinished(createFlagSet(EVENT_ID_2));
inOrder.verify(listener2).iterationFinished(createExoFlags(EVENT_ID_2)); inOrder.verify(listener2).iterationFinished(createFlagSet(EVENT_ID_2));
inOrder.verify(listener1).callback1(); inOrder.verify(listener1).callback1();
inOrder.verify(listener2).callback1(); inOrder.verify(listener2).callback1();
inOrder.verify(listener3).callback1(); inOrder.verify(listener3).callback1();
inOrder.verify(listener1).iterationFinished(createExoFlags(EVENT_ID_1)); inOrder.verify(listener1).iterationFinished(createFlagSet(EVENT_ID_1));
inOrder.verify(listener2).iterationFinished(createExoFlags(EVENT_ID_1)); inOrder.verify(listener2).iterationFinished(createFlagSet(EVENT_ID_1));
inOrder.verify(listener3).iterationFinished(createExoFlags(EVENT_ID_1, EVENT_ID_2)); inOrder.verify(listener3).iterationFinished(createFlagSet(EVENT_ID_1, EVENT_ID_2));
inOrder.verifyNoMoreInteractions(); inOrder.verifyNoMoreInteractions();
} }
@ -248,8 +248,8 @@ public class ListenerSetTest {
inOrder.verify(listener1).callback1(); inOrder.verify(listener1).callback1();
inOrder.verify(listener1).callback2(); inOrder.verify(listener1).callback2();
inOrder.verify(listener2).callback2(); inOrder.verify(listener2).callback2();
inOrder.verify(listener1).iterationFinished(createExoFlags(EVENT_ID_1, EVENT_ID_2)); inOrder.verify(listener1).iterationFinished(createFlagSet(EVENT_ID_1, EVENT_ID_2));
inOrder.verify(listener2).iterationFinished(createExoFlags(EVENT_ID_2)); inOrder.verify(listener2).iterationFinished(createFlagSet(EVENT_ID_2));
inOrder.verifyNoMoreInteractions(); inOrder.verifyNoMoreInteractions();
} }
@ -273,8 +273,8 @@ public class ListenerSetTest {
inOrder.verify(listener1).callback1(); inOrder.verify(listener1).callback1();
inOrder.verify(listener1).callback2(); inOrder.verify(listener1).callback2();
inOrder.verify(listener2).callback2(); inOrder.verify(listener2).callback2();
inOrder.verify(listener1).iterationFinished(createExoFlags(EVENT_ID_1, EVENT_ID_2)); inOrder.verify(listener1).iterationFinished(createFlagSet(EVENT_ID_1, EVENT_ID_2));
inOrder.verify(listener2).iterationFinished(createExoFlags(EVENT_ID_2)); inOrder.verify(listener2).iterationFinished(createFlagSet(EVENT_ID_2));
inOrder.verifyNoMoreInteractions(); inOrder.verifyNoMoreInteractions();
} }
@ -302,7 +302,7 @@ public class ListenerSetTest {
ShadowLooper.runMainLooperToNextTask(); ShadowLooper.runMainLooperToNextTask();
verify(listener1).callback1(); verify(listener1).callback1();
verify(listener1).iterationFinished(createExoFlags(EVENT_ID_1)); verify(listener1).iterationFinished(createFlagSet(EVENT_ID_1));
verifyNoMoreInteractions(listener1, listener2); verifyNoMoreInteractions(listener1, listener2);
} }
@ -323,7 +323,7 @@ public class ListenerSetTest {
ShadowLooper.runMainLooperToNextTask(); ShadowLooper.runMainLooperToNextTask();
verify(listener2, times(2)).callback1(); verify(listener2, times(2)).callback1();
verify(listener2).iterationFinished(createExoFlags(EVENT_ID_1)); verify(listener2).iterationFinished(createFlagSet(EVENT_ID_1));
verifyNoMoreInteractions(listener1, listener2); verifyNoMoreInteractions(listener1, listener2);
} }
@ -350,7 +350,7 @@ public class ListenerSetTest {
ShadowLooper.runMainLooperToNextTask(); ShadowLooper.runMainLooperToNextTask();
verify(listener1).callback1(); verify(listener1).callback1();
verify(listener1).iterationFinished(createExoFlags(EVENT_ID_1)); verify(listener1).iterationFinished(createFlagSet(EVENT_ID_1));
verifyNoMoreInteractions(listener1, listener2); verifyNoMoreInteractions(listener1, listener2);
} }
@ -390,8 +390,8 @@ public class ListenerSetTest {
// lazy release. // lazy release.
verify(listener, times(3)).callback1(); verify(listener, times(3)).callback1();
verify(listener).callback3(); verify(listener).callback3();
verify(listener).iterationFinished(createExoFlags(EVENT_ID_1)); verify(listener).iterationFinished(createFlagSet(EVENT_ID_1));
verify(listener).iterationFinished(createExoFlags(EVENT_ID_1, EVENT_ID_3)); verify(listener).iterationFinished(createFlagSet(EVENT_ID_1, EVENT_ID_3));
verifyNoMoreInteractions(listener); verifyNoMoreInteractions(listener);
} }
@ -402,11 +402,11 @@ public class ListenerSetTest {
default void callback3() {} default void callback3() {}
default void iterationFinished(ExoFlags flags) {} default void iterationFinished(FlagSet flags) {}
} }
private static ExoFlags createExoFlags(int... flagValues) { private static FlagSet createFlagSet(int... flagValues) {
ExoFlags.Builder flagsBuilder = new ExoFlags.Builder(); FlagSet.Builder flagsBuilder = new FlagSet.Builder();
for (int value : flagValues) { for (int value : flagValues) {
flagsBuilder.add(value); flagsBuilder.add(value);
} }

View File

@ -49,7 +49,7 @@ import com.google.android.exoplayer2.source.MediaLoadData;
import com.google.android.exoplayer2.source.MediaSource.MediaPeriodId; import com.google.android.exoplayer2.source.MediaSource.MediaPeriodId;
import com.google.android.exoplayer2.source.TrackGroupArray; import com.google.android.exoplayer2.source.TrackGroupArray;
import com.google.android.exoplayer2.trackselection.TrackSelectionArray; import com.google.android.exoplayer2.trackselection.TrackSelectionArray;
import com.google.android.exoplayer2.util.ExoFlags; import com.google.android.exoplayer2.util.FlagSet;
import com.google.android.exoplayer2.video.VideoDecoderOutputBufferRenderer; import com.google.android.exoplayer2.video.VideoDecoderOutputBufferRenderer;
import com.google.android.exoplayer2.video.VideoSize; import com.google.android.exoplayer2.video.VideoSize;
import com.google.common.base.Objects; import com.google.common.base.Objects;
@ -76,18 +76,18 @@ public interface AnalyticsListener {
/** A set of {@link EventFlags}. */ /** A set of {@link EventFlags}. */
final class Events { final class Events {
private final ExoFlags flags; private final FlagSet flags;
private final SparseArray<EventTime> eventTimes; private final SparseArray<EventTime> eventTimes;
/** /**
* Creates an instance. * Creates an instance.
* *
* @param flags The {@link ExoFlags} containing the {@link EventFlags} in the set. * @param flags The {@link FlagSet} containing the {@link EventFlags} in the set.
* @param eventTimes A map from {@link EventFlags} to {@link EventTime}. Must at least contain * @param eventTimes A map from {@link EventFlags} to {@link EventTime}. Must at least contain
* all the events recorded in {@code flags}. Events that are not recorded in {@code flags} * all the events recorded in {@code flags}. Events that are not recorded in {@code flags}
* are ignored. * are ignored.
*/ */
public Events(ExoFlags flags, SparseArray<EventTime> eventTimes) { public Events(FlagSet flags, SparseArray<EventTime> eventTimes) {
this.flags = flags; this.flags = flags;
SparseArray<EventTime> flagsToTimes = new SparseArray<>(/* initialCapacity= */ flags.size()); SparseArray<EventTime> flagsToTimes = new SparseArray<>(/* initialCapacity= */ flags.size());
for (int i = 0; i < flags.size(); i++) { for (int i = 0; i < flags.size(); i++) {