public class

NoUidTimeline

extends ForwardingTimeline

 java.lang.Object

androidx.media3.common.Timeline

androidx.media3.exoplayer.source.ForwardingTimeline

↳androidx.media3.test.utils.NoUidTimeline

Overview

A timeline which wraps another timeline and overrides all window and period uids to 0. This is useful for testing timeline equality without taking uids into account.

Summary

Fields
from ForwardingTimelinetimeline
from TimelineEMPTY
Constructors
publicNoUidTimeline(Timeline timeline)

Creates an instance.

Methods
public abstract Timeline.PeriodgetPeriod(int periodIndex, Timeline.Period period, boolean setIds)

Populates a Timeline.Period with data for the period at the specified index.

public abstract Timeline.WindowgetWindow(int windowIndex, Timeline.Window window, long defaultPositionProjectionUs)

Populates a Timeline.Window with data for the window at the specified index.

from ForwardingTimelinegetFirstWindowIndex, getIndexOfPeriod, getLastWindowIndex, getNextWindowIndex, getPeriodCount, getPreviousWindowIndex, getUidOfPeriod, getWindowCount
from TimelinecopyWithSingleWindow, equals, fromBundle, getNextPeriodIndex, getPeriod, getPeriodByUid, getPeriodPosition, getPeriodPosition, getPeriodPositionUs, getPeriodPositionUs, getWindow, hashCode, isEmpty, isLastPeriod, toBundle
from java.lang.Objectclone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait

Constructors

public NoUidTimeline(Timeline timeline)

Creates an instance.

Parameters:

timeline: The underlying timeline.

Methods

public abstract Timeline.Window getWindow(int windowIndex, Timeline.Window window, long defaultPositionProjectionUs)

Populates a Timeline.Window with data for the window at the specified index.

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.

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

Populates a Timeline.Period with data for the period at the specified index.

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.

Source

/*
 * Copyright (C) 2019 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package androidx.media3.test.utils;

import androidx.media3.common.Timeline;
import androidx.media3.common.util.UnstableApi;
import androidx.media3.exoplayer.source.ForwardingTimeline;

/**
 * A timeline which wraps another timeline and overrides all window and period uids to 0. This is
 * useful for testing timeline equality without taking uids into account.
 */
@UnstableApi
public class NoUidTimeline extends ForwardingTimeline {

  /**
   * Creates an instance.
   *
   * @param timeline The underlying timeline.
   */
  public NoUidTimeline(Timeline timeline) {
    super(timeline);
  }

  @Override
  public Window getWindow(int windowIndex, Window window, long defaultPositionProjectionUs) {
    timeline.getWindow(windowIndex, window, defaultPositionProjectionUs);
    window.uid = 0;
    return window;
  }

  @Override
  public Period getPeriod(int periodIndex, Period period, boolean setIds) {
    timeline.getPeriod(periodIndex, period, setIds);
    period.uid = 0;
    return period;
  }
}