Package com.google.android.exoplayer2

## Class Timeline.RemotableTimeline

- java.lang.Object
- - com.google.android.exoplayer2.Timeline
  - - com.google.android.exoplayer2.Timeline.RemotableTimeline

- All Implemented Interfaces:
    `Bundleable`
  Enclosing class:
    Timeline

      public static final class Timeline.RemotableTimeline
      extends Timeline

  A concrete class of `Timeline` to restore a `Timeline` instance from a `Bundle` sent by another process via `IBinder`.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class com.google.android.exoplayer2.Timeline

      `Timeline.Period, Timeline.RemotableTimeline, Timeline.Window`

    - ### Nested classes/interfaces inherited from interface com.google.android.exoplayer2.Bundleable

      `Bundleable.Creator<T extends Bundleable>`

  - ### Field Summary

    - ### Fields inherited from class com.google.android.exoplayer2.Timeline

      `CREATOR, EMPTY`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `RemotableTimeline​(ImmutableList<Timeline.Window> windows, ImmutableList<Timeline.Period> periods, int[] shuffledWindowIndices)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `int` | `getFirstWindowIndex​(boolean shuffleModeEnabled)` | Returns the index of the first window in the playback order depending on whether shuffling is enabled.
    `int` | `getIndexOfPeriod​(Object uid)` | 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.
    `int` | `getLastWindowIndex​(boolean shuffleModeEnabled)` | Returns the index of the last window in the playback order depending on whether shuffling is enabled.
    `int` | `getNextWindowIndex​(int windowIndex, @com.google.android.exoplayer2.Player.RepeatMode int repeatMode, boolean shuffleModeEnabled)` | Returns the index of the window after the window at index `windowIndex` depending on the `repeatMode` and whether shuffling is enabled.
    `Timeline.Period` | `getPeriod​(int periodIndex, Timeline.Period period, boolean setIds)` | Populates a `Timeline.Period` with data for the period at the specified index.
    `int` | `getPeriodCount()` | Returns the number of periods in the timeline.
    `int` | `getPreviousWindowIndex​(int windowIndex, @com.google.android.exoplayer2.Player.RepeatMode int repeatMode, boolean shuffleModeEnabled)` | Returns the index of the window before the window at index `windowIndex` depending on the `repeatMode` and whether shuffling is enabled.
    `Object` | `getUidOfPeriod​(int periodIndex)` | Returns the unique id of the period identified by its index in the timeline.
    `Timeline.Window` | `getWindow​(int windowIndex, Timeline.Window window, long defaultPositionProjectionUs)` | Populates a `Timeline.Window` with data for the window at the specified index.
    `int` | `getWindowCount()` | Returns the number of windows in the timeline.

    - ### Methods inherited from class com.google.android.exoplayer2.Timeline

      `equals, getNextPeriodIndex, getPeriod, getPeriodByUid, getPeriodPosition, getPeriodPosition, getPeriodPositionUs, getPeriodPositionUs, getWindow, hashCode, isEmpty, isLastPeriod, toBundle, toBundleWithOneWindowOnly`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### RemotableTimeline

          public RemotableTimeline​(ImmutableList<Timeline.Window> windows,
                                   ImmutableList<Timeline.Period> periods,
                                   int[] shuffledWindowIndices)

  - ### Method Detail

    - #### getWindowCount

          public int getWindowCount()

      Description copied from class: `Timeline`
      Returns the number of windows in the timeline.
      Specified by:
        `getWindowCount` in class `Timeline`

    - #### getWindow

          public 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.

    - #### 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.

    - #### getPeriodCount

          public int getPeriodCount()

      Description copied from class: `Timeline`
      Returns the number of periods in the timeline.
      Specified by:
        `getPeriodCount` in class `Timeline`

    - #### getPeriod

          public Timeline.Period getPeriod​(int periodIndex,
                                           Timeline.Period period,
                                           boolean setIds)

      Description copied from class: `Timeline`
      Populates a `Timeline.Period` with data for the period at the specified index.
      Specified by:
        `getPeriod` in class `Timeline`
      Parameters:
        `periodIndex` - The index of the period.
        `period` - The `Timeline.Period` to populate. Must not be null.
        `setIds` - Whether `Timeline.Period.id` and `Timeline.Period.uid` should be populated. If false, the fields will be set to null. The caller should pass false for efficiency reasons unless the fields are required.
      Returns:
        The populated `Timeline.Period`, for convenience.

    - #### getIndexOfPeriod

          public 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 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.