Class AbstractConcatenatedTimeline

  • All Implemented Interfaces:
    Bundleable

    public abstract class AbstractConcatenatedTimeline
    extends Timeline
    Abstract base class for the concatenation of one or more Timelines.
    • Constructor Detail

      • AbstractConcatenatedTimeline

        public AbstractConcatenatedTimeline​(boolean isAtomic,
                                            ShuffleOrder shuffleOrder)
        Sets up a concatenated timeline with a shuffle order of child timelines.
        Parameters:
        isAtomic - Whether the child timelines shall be treated as atomic, i.e., treated as a single item for repeating and shuffling.
        shuffleOrder - A shuffle order of child timelines. The number of child timelines must match the number of elements in the shuffle order.
    • Method Detail

      • getChildTimelineUidFromConcatenatedUid

        public static Object getChildTimelineUidFromConcatenatedUid​(Object concatenatedUid)
        Returns UID of child timeline from a concatenated period UID.
        Parameters:
        concatenatedUid - UID of a period in a concatenated timeline.
        Returns:
        UID of the child timeline this period belongs to.
      • getChildPeriodUidFromConcatenatedUid

        public static Object getChildPeriodUidFromConcatenatedUid​(Object concatenatedUid)
        Returns UID of the period in the child timeline from a concatenated period UID.
        Parameters:
        concatenatedUid - UID of a period in a concatenated timeline.
        Returns:
        UID of the period in the child timeline.
      • getConcatenatedUid

        public static Object getConcatenatedUid​(Object childTimelineUid,
                                                Object childPeriodOrWindowUid)
        Returns a concatenated UID for a period or window in a child timeline.
        Parameters:
        childTimelineUid - UID of the child timeline this period or window belongs to.
        childPeriodOrWindowUid - UID of the period or window in the child timeline.
        Returns:
        UID of the period or window in the concatenated timeline.
      • getNextWindowIndex

        public int getNextWindowIndex​(int windowIndex,
                                      @RepeatMode
                                      @com.google.android.exoplayer2.Player.RepeatMode int repeatMode,
                                      boolean shuffleModeEnabled)
        Description copied from class: Timeline
        Returns the index of the window after the window at index windowIndex depending on the repeatMode and whether shuffling is enabled.
        Overrides:
        getNextWindowIndex in class Timeline
        Parameters:
        windowIndex - Index of a window in the timeline.
        repeatMode - A repeat mode.
        shuffleModeEnabled - Whether shuffling is enabled.
        Returns:
        The index of the next window, or C.INDEX_UNSET if this is the last window.
      • getPreviousWindowIndex

        public int getPreviousWindowIndex​(int windowIndex,
                                          @RepeatMode
                                          @com.google.android.exoplayer2.Player.RepeatMode int repeatMode,
                                          boolean shuffleModeEnabled)
        Description copied from class: Timeline
        Returns the index of the window before the window at index windowIndex depending on the repeatMode and whether shuffling is enabled.
        Overrides:
        getPreviousWindowIndex in class Timeline
        Parameters:
        windowIndex - Index of a window in the timeline.
        repeatMode - A repeat mode.
        shuffleModeEnabled - Whether shuffling is enabled.
        Returns:
        The index of the previous window, or C.INDEX_UNSET if this is the first window.
      • getLastWindowIndex

        public int getLastWindowIndex​(boolean shuffleModeEnabled)
        Description copied from class: Timeline
        Returns the index of the last window in the playback order depending on whether shuffling is enabled.
        Overrides:
        getLastWindowIndex in class Timeline
        Parameters:
        shuffleModeEnabled - Whether shuffling is enabled.
        Returns:
        The index of the last window in the playback order, or C.INDEX_UNSET if the timeline is empty.
      • getFirstWindowIndex

        public int getFirstWindowIndex​(boolean shuffleModeEnabled)
        Description copied from class: Timeline
        Returns the index of the first window in the playback order depending on whether shuffling is enabled.
        Overrides:
        getFirstWindowIndex in class Timeline
        Parameters:
        shuffleModeEnabled - Whether shuffling is enabled.
        Returns:
        The index of the first window in the playback order, or C.INDEX_UNSET if the timeline is empty.
      • getWindow

        public final Timeline.Window getWindow​(int windowIndex,
                                               Timeline.Window window,
                                               long defaultPositionProjectionUs)
        Description copied from class: Timeline
        Populates a Timeline.Window with data for the window at the specified index.
        Specified by:
        getWindow in class Timeline
        Parameters:
        windowIndex - The index of the window.
        window - The Timeline.Window to populate. Must not be null.
        defaultPositionProjectionUs - A duration into the future that the populated window's default start position should be projected.
        Returns:
        The populated Timeline.Window, for convenience.
      • getIndexOfPeriod

        public final int getIndexOfPeriod​(Object uid)
        Description copied from class: Timeline
        Returns the index of the period identified by its unique Timeline.Period.uid, or C.INDEX_UNSET if the period is not in the timeline.
        Specified by:
        getIndexOfPeriod in class Timeline
        Parameters:
        uid - A unique identifier for a period.
        Returns:
        The index of the period, or C.INDEX_UNSET if the period was not found.
      • getUidOfPeriod

        public final Object getUidOfPeriod​(int periodIndex)
        Description copied from class: Timeline
        Returns the unique id of the period identified by its index in the timeline.
        Specified by:
        getUidOfPeriod in class Timeline
        Parameters:
        periodIndex - The index of the period.
        Returns:
        The unique id of the period.
      • getChildIndexByPeriodIndex

        protected abstract int getChildIndexByPeriodIndex​(int periodIndex)
        Returns the index of the child timeline containing the given period index.
        Parameters:
        periodIndex - A valid period index within the bounds of the timeline.
      • getChildIndexByWindowIndex

        protected abstract int getChildIndexByWindowIndex​(int windowIndex)
        Returns the index of the child timeline containing the given window index.
        Parameters:
        windowIndex - A valid window index within the bounds of the timeline.
      • getChildIndexByChildUid

        protected abstract int getChildIndexByChildUid​(Object childUid)
        Returns the index of the child timeline with the given UID or C.INDEX_UNSET if not found.
        Parameters:
        childUid - A child UID.
        Returns:
        Index of child timeline or C.INDEX_UNSET if UID was not found.
      • getTimelineByChildIndex

        protected abstract Timeline getTimelineByChildIndex​(int childIndex)
        Returns the child timeline for the child with the given index.
        Parameters:
        childIndex - A valid child index within the bounds of the timeline.
      • getFirstPeriodIndexByChildIndex

        protected abstract int getFirstPeriodIndexByChildIndex​(int childIndex)
        Returns the first period index belonging to the child timeline with the given index.
        Parameters:
        childIndex - A valid child index within the bounds of the timeline.
      • getFirstWindowIndexByChildIndex

        protected abstract int getFirstWindowIndexByChildIndex​(int childIndex)
        Returns the first window index belonging to the child timeline with the given index.
        Parameters:
        childIndex - A valid child index within the bounds of the timeline.
      • getChildUidByChildIndex

        protected abstract Object getChildUidByChildIndex​(int childIndex)
        Returns the UID of the child timeline with the given index.
        Parameters:
        childIndex - A valid child index within the bounds of the timeline.