Rabbit-R1/android (non root)/java/sources/com/google/android/exoplayer2/SimpleBasePlayer.java
2024-05-21 17:08:36 -04:00

2547 lines
124 KiB
Java

package com.google.android.exoplayer2;
import android.graphics.Rect;
import android.os.Looper;
import android.os.SystemClock;
import android.util.Pair;
import android.view.Surface;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.TextureView;
import com.google.android.exoplayer2.MediaItem;
import com.google.android.exoplayer2.MediaMetadata;
import com.google.android.exoplayer2.Player;
import com.google.android.exoplayer2.SimpleBasePlayer;
import com.google.android.exoplayer2.Timeline;
import com.google.android.exoplayer2.Tracks;
import com.google.android.exoplayer2.audio.AudioAttributes;
import com.google.android.exoplayer2.metadata.Metadata;
import com.google.android.exoplayer2.source.ads.AdPlaybackState;
import com.google.android.exoplayer2.text.CueGroup;
import com.google.android.exoplayer2.trackselection.TrackSelectionParameters;
import com.google.android.exoplayer2.util.Assertions;
import com.google.android.exoplayer2.util.Clock;
import com.google.android.exoplayer2.util.FlagSet;
import com.google.android.exoplayer2.util.HandlerWrapper;
import com.google.android.exoplayer2.util.ListenerSet;
import com.google.android.exoplayer2.util.Size;
import com.google.android.exoplayer2.util.Util;
import com.google.android.exoplayer2.video.VideoSize;
import com.google.common.base.Supplier;
import com.google.common.collect.ImmutableList;
import com.google.common.util.concurrent.ListenableFuture;
import io.sentry.protocol.SentryThread;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.concurrent.Executor;
import org.checkerframework.checker.nullness.qual.EnsuresNonNull;
import org.checkerframework.checker.nullness.qual.RequiresNonNull;
/* loaded from: classes2.dex */
public abstract class SimpleBasePlayer extends BasePlayer {
private static final long POSITION_DISCONTINUITY_THRESHOLD_MS = 1000;
private final HandlerWrapper applicationHandler;
private final Looper applicationLooper;
private final ListenerSet<Player.Listener> listeners;
private final HashSet<ListenableFuture<?>> pendingOperations;
private final Timeline.Period period;
private boolean released;
private State state;
/* JADX INFO: Access modifiers changed from: package-private */
public static /* synthetic */ State lambda$release$12(State state) {
return state;
}
@Override // com.google.android.exoplayer2.Player
public final Looper getApplicationLooper() {
return this.applicationLooper;
}
protected State getPlaceholderState(State state) {
return state;
}
protected abstract State getState();
/* JADX INFO: Access modifiers changed from: protected */
/* loaded from: classes2.dex */
public static final class State {
public final PositionSupplier adBufferedPositionMsSupplier;
public final PositionSupplier adPositionMsSupplier;
public final AudioAttributes audioAttributes;
public final Player.Commands availableCommands;
public final PositionSupplier contentBufferedPositionMsSupplier;
public final PositionSupplier contentPositionMsSupplier;
public final int currentAdGroupIndex;
public final int currentAdIndexInAdGroup;
public final CueGroup currentCues;
public final int currentMediaItemIndex;
public final DeviceInfo deviceInfo;
public final int deviceVolume;
public final long discontinuityPositionMs;
public final boolean hasPositionDiscontinuity;
public final boolean isDeviceMuted;
public final boolean isLoading;
public final long maxSeekToPreviousPositionMs;
public final boolean newlyRenderedFirstFrame;
public final boolean playWhenReady;
public final int playWhenReadyChangeReason;
public final PlaybackParameters playbackParameters;
public final int playbackState;
public final int playbackSuppressionReason;
public final PlaybackException playerError;
public final ImmutableList<MediaItemData> playlist;
public final MediaMetadata playlistMetadata;
public final int positionDiscontinuityReason;
public final int repeatMode;
public final long seekBackIncrementMs;
public final long seekForwardIncrementMs;
public final boolean shuffleModeEnabled;
public final Size surfaceSize;
public final Metadata timedMetadata;
public final Timeline timeline;
public final PositionSupplier totalBufferedDurationMsSupplier;
public final TrackSelectionParameters trackSelectionParameters;
public final VideoSize videoSize;
public final float volume;
/* loaded from: classes2.dex */
public static final class Builder {
private PositionSupplier adBufferedPositionMsSupplier;
private Long adPositionMs;
private PositionSupplier adPositionMsSupplier;
private AudioAttributes audioAttributes;
private Player.Commands availableCommands;
private PositionSupplier contentBufferedPositionMsSupplier;
private Long contentPositionMs;
private PositionSupplier contentPositionMsSupplier;
private int currentAdGroupIndex;
private int currentAdIndexInAdGroup;
private CueGroup currentCues;
private int currentMediaItemIndex;
private DeviceInfo deviceInfo;
private int deviceVolume;
private long discontinuityPositionMs;
private boolean hasPositionDiscontinuity;
private boolean isDeviceMuted;
private boolean isLoading;
private long maxSeekToPreviousPositionMs;
private boolean newlyRenderedFirstFrame;
private boolean playWhenReady;
private int playWhenReadyChangeReason;
private PlaybackParameters playbackParameters;
private int playbackState;
private int playbackSuppressionReason;
private PlaybackException playerError;
private ImmutableList<MediaItemData> playlist;
private MediaMetadata playlistMetadata;
private int positionDiscontinuityReason;
private int repeatMode;
private long seekBackIncrementMs;
private long seekForwardIncrementMs;
private boolean shuffleModeEnabled;
private Size surfaceSize;
private Metadata timedMetadata;
private Timeline timeline;
private PositionSupplier totalBufferedDurationMsSupplier;
private TrackSelectionParameters trackSelectionParameters;
private VideoSize videoSize;
private float volume;
public Builder clearPositionDiscontinuity() {
this.hasPositionDiscontinuity = false;
return this;
}
public Builder setAdBufferedPositionMs(PositionSupplier positionSupplier) {
this.adBufferedPositionMsSupplier = positionSupplier;
return this;
}
public Builder setAdPositionMs(PositionSupplier positionSupplier) {
this.adPositionMs = null;
this.adPositionMsSupplier = positionSupplier;
return this;
}
public Builder setAudioAttributes(AudioAttributes audioAttributes) {
this.audioAttributes = audioAttributes;
return this;
}
public Builder setAvailableCommands(Player.Commands commands) {
this.availableCommands = commands;
return this;
}
public Builder setContentBufferedPositionMs(PositionSupplier positionSupplier) {
this.contentBufferedPositionMsSupplier = positionSupplier;
return this;
}
public Builder setContentPositionMs(PositionSupplier positionSupplier) {
this.contentPositionMs = null;
this.contentPositionMsSupplier = positionSupplier;
return this;
}
public Builder setCurrentCues(CueGroup cueGroup) {
this.currentCues = cueGroup;
return this;
}
public Builder setCurrentMediaItemIndex(int i) {
this.currentMediaItemIndex = i;
return this;
}
public Builder setDeviceInfo(DeviceInfo deviceInfo) {
this.deviceInfo = deviceInfo;
return this;
}
public Builder setIsDeviceMuted(boolean z) {
this.isDeviceMuted = z;
return this;
}
public Builder setIsLoading(boolean z) {
this.isLoading = z;
return this;
}
public Builder setMaxSeekToPreviousPositionMs(long j) {
this.maxSeekToPreviousPositionMs = j;
return this;
}
public Builder setNewlyRenderedFirstFrame(boolean z) {
this.newlyRenderedFirstFrame = z;
return this;
}
public Builder setPlayWhenReady(boolean z, int i) {
this.playWhenReady = z;
this.playWhenReadyChangeReason = i;
return this;
}
public Builder setPlaybackParameters(PlaybackParameters playbackParameters) {
this.playbackParameters = playbackParameters;
return this;
}
public Builder setPlaybackState(int i) {
this.playbackState = i;
return this;
}
public Builder setPlaybackSuppressionReason(int i) {
this.playbackSuppressionReason = i;
return this;
}
public Builder setPlayerError(PlaybackException playbackException) {
this.playerError = playbackException;
return this;
}
public Builder setPlaylistMetadata(MediaMetadata mediaMetadata) {
this.playlistMetadata = mediaMetadata;
return this;
}
public Builder setPositionDiscontinuity(int i, long j) {
this.hasPositionDiscontinuity = true;
this.positionDiscontinuityReason = i;
this.discontinuityPositionMs = j;
return this;
}
public Builder setRepeatMode(int i) {
this.repeatMode = i;
return this;
}
public Builder setSeekBackIncrementMs(long j) {
this.seekBackIncrementMs = j;
return this;
}
public Builder setSeekForwardIncrementMs(long j) {
this.seekForwardIncrementMs = j;
return this;
}
public Builder setShuffleModeEnabled(boolean z) {
this.shuffleModeEnabled = z;
return this;
}
public Builder setSurfaceSize(Size size) {
this.surfaceSize = size;
return this;
}
public Builder setTimedMetadata(Metadata metadata) {
this.timedMetadata = metadata;
return this;
}
public Builder setTotalBufferedDurationMs(PositionSupplier positionSupplier) {
this.totalBufferedDurationMsSupplier = positionSupplier;
return this;
}
public Builder setTrackSelectionParameters(TrackSelectionParameters trackSelectionParameters) {
this.trackSelectionParameters = trackSelectionParameters;
return this;
}
public Builder setVideoSize(VideoSize videoSize) {
this.videoSize = videoSize;
return this;
}
public Builder() {
this.availableCommands = Player.Commands.EMPTY;
this.playWhenReady = false;
this.playWhenReadyChangeReason = 1;
this.playbackState = 1;
this.playbackSuppressionReason = 0;
this.playerError = null;
this.repeatMode = 0;
this.shuffleModeEnabled = false;
this.isLoading = false;
this.seekBackIncrementMs = 5000L;
this.seekForwardIncrementMs = 15000L;
this.maxSeekToPreviousPositionMs = 3000L;
this.playbackParameters = PlaybackParameters.DEFAULT;
this.trackSelectionParameters = TrackSelectionParameters.DEFAULT_WITHOUT_CONTEXT;
this.audioAttributes = AudioAttributes.DEFAULT;
this.volume = 1.0f;
this.videoSize = VideoSize.UNKNOWN;
this.currentCues = CueGroup.EMPTY_TIME_ZERO;
this.deviceInfo = DeviceInfo.UNKNOWN;
this.deviceVolume = 0;
this.isDeviceMuted = false;
this.surfaceSize = Size.UNKNOWN;
this.newlyRenderedFirstFrame = false;
this.timedMetadata = new Metadata(-9223372036854775807L, new Metadata.Entry[0]);
this.playlist = ImmutableList.of();
this.timeline = Timeline.EMPTY;
this.playlistMetadata = MediaMetadata.EMPTY;
this.currentMediaItemIndex = -1;
this.currentAdGroupIndex = -1;
this.currentAdIndexInAdGroup = -1;
this.contentPositionMs = null;
this.contentPositionMsSupplier = PositionSupplier.getConstant(-9223372036854775807L);
this.adPositionMs = null;
this.adPositionMsSupplier = PositionSupplier.ZERO;
this.contentBufferedPositionMsSupplier = PositionSupplier.getConstant(-9223372036854775807L);
this.adBufferedPositionMsSupplier = PositionSupplier.ZERO;
this.totalBufferedDurationMsSupplier = PositionSupplier.ZERO;
this.hasPositionDiscontinuity = false;
this.positionDiscontinuityReason = 5;
this.discontinuityPositionMs = 0L;
}
private Builder(State state) {
this.availableCommands = state.availableCommands;
this.playWhenReady = state.playWhenReady;
this.playWhenReadyChangeReason = state.playWhenReadyChangeReason;
this.playbackState = state.playbackState;
this.playbackSuppressionReason = state.playbackSuppressionReason;
this.playerError = state.playerError;
this.repeatMode = state.repeatMode;
this.shuffleModeEnabled = state.shuffleModeEnabled;
this.isLoading = state.isLoading;
this.seekBackIncrementMs = state.seekBackIncrementMs;
this.seekForwardIncrementMs = state.seekForwardIncrementMs;
this.maxSeekToPreviousPositionMs = state.maxSeekToPreviousPositionMs;
this.playbackParameters = state.playbackParameters;
this.trackSelectionParameters = state.trackSelectionParameters;
this.audioAttributes = state.audioAttributes;
this.volume = state.volume;
this.videoSize = state.videoSize;
this.currentCues = state.currentCues;
this.deviceInfo = state.deviceInfo;
this.deviceVolume = state.deviceVolume;
this.isDeviceMuted = state.isDeviceMuted;
this.surfaceSize = state.surfaceSize;
this.newlyRenderedFirstFrame = state.newlyRenderedFirstFrame;
this.timedMetadata = state.timedMetadata;
this.playlist = state.playlist;
this.timeline = state.timeline;
this.playlistMetadata = state.playlistMetadata;
this.currentMediaItemIndex = state.currentMediaItemIndex;
this.currentAdGroupIndex = state.currentAdGroupIndex;
this.currentAdIndexInAdGroup = state.currentAdIndexInAdGroup;
this.contentPositionMs = null;
this.contentPositionMsSupplier = state.contentPositionMsSupplier;
this.adPositionMs = null;
this.adPositionMsSupplier = state.adPositionMsSupplier;
this.contentBufferedPositionMsSupplier = state.contentBufferedPositionMsSupplier;
this.adBufferedPositionMsSupplier = state.adBufferedPositionMsSupplier;
this.totalBufferedDurationMsSupplier = state.totalBufferedDurationMsSupplier;
this.hasPositionDiscontinuity = state.hasPositionDiscontinuity;
this.positionDiscontinuityReason = state.positionDiscontinuityReason;
this.discontinuityPositionMs = state.discontinuityPositionMs;
}
public Builder setVolume(float f) {
Assertions.checkArgument(f >= 0.0f && f <= 1.0f);
this.volume = f;
return this;
}
public Builder setDeviceVolume(int i) {
Assertions.checkArgument(i >= 0);
this.deviceVolume = i;
return this;
}
public Builder setPlaylist(List<MediaItemData> list) {
HashSet hashSet = new HashSet();
for (int i = 0; i < list.size(); i++) {
Assertions.checkArgument(hashSet.add(list.get(i).uid), "Duplicate MediaItemData UID in playlist");
}
this.playlist = ImmutableList.copyOf((Collection) list);
this.timeline = new PlaylistTimeline(this.playlist);
return this;
}
public Builder setCurrentAd(int i, int i2) {
Assertions.checkArgument((i == -1) == (i2 == -1));
this.currentAdGroupIndex = i;
this.currentAdIndexInAdGroup = i2;
return this;
}
public Builder setContentPositionMs(long j) {
this.contentPositionMs = Long.valueOf(j);
return this;
}
public Builder setAdPositionMs(long j) {
this.adPositionMs = Long.valueOf(j);
return this;
}
public State build() {
return new State(this);
}
}
private State(Builder builder) {
int i;
if (!builder.timeline.isEmpty()) {
int i2 = builder.currentMediaItemIndex;
if (i2 == -1) {
i = 0;
} else {
Assertions.checkArgument(builder.currentMediaItemIndex < builder.timeline.getWindowCount(), "currentMediaItemIndex must be less than playlist.size()");
i = i2;
}
if (builder.currentAdGroupIndex != -1) {
Timeline.Period period = new Timeline.Period();
builder.timeline.getPeriod(SimpleBasePlayer.getPeriodIndexFromWindowPosition(builder.timeline, i, builder.contentPositionMs != null ? builder.contentPositionMs.longValue() : builder.contentPositionMsSupplier.get(), new Timeline.Window(), period), period);
Assertions.checkArgument(builder.currentAdGroupIndex < period.getAdGroupCount(), "PeriodData has less ad groups than adGroupIndex");
int adCountInAdGroup = period.getAdCountInAdGroup(builder.currentAdGroupIndex);
if (adCountInAdGroup != -1) {
Assertions.checkArgument(builder.currentAdIndexInAdGroup < adCountInAdGroup, "Ad group has less ads than adIndexInGroupIndex");
}
}
} else {
Assertions.checkArgument(builder.playbackState == 1 || builder.playbackState == 4, "Empty playlist only allowed in STATE_IDLE or STATE_ENDED");
Assertions.checkArgument(builder.currentAdGroupIndex == -1 && builder.currentAdIndexInAdGroup == -1, "Ads not allowed if playlist is empty");
}
if (builder.playerError != null) {
Assertions.checkArgument(builder.playbackState == 1, "Player error only allowed in STATE_IDLE");
}
if (builder.playbackState == 1 || builder.playbackState == 4) {
Assertions.checkArgument(!builder.isLoading, "isLoading only allowed when not in STATE_IDLE or STATE_ENDED");
}
PositionSupplier extrapolating = builder.contentPositionMs != null ? (builder.currentAdGroupIndex == -1 && builder.playWhenReady && builder.playbackState == 3 && builder.playbackSuppressionReason == 0 && builder.contentPositionMs.longValue() != -9223372036854775807L) ? PositionSupplier.getExtrapolating(builder.contentPositionMs.longValue(), builder.playbackParameters.speed) : PositionSupplier.getConstant(builder.contentPositionMs.longValue()) : builder.contentPositionMsSupplier;
PositionSupplier extrapolating2 = builder.adPositionMs != null ? (builder.currentAdGroupIndex != -1 && builder.playWhenReady && builder.playbackState == 3 && builder.playbackSuppressionReason == 0) ? PositionSupplier.getExtrapolating(builder.adPositionMs.longValue(), 1.0f) : PositionSupplier.getConstant(builder.adPositionMs.longValue()) : builder.adPositionMsSupplier;
this.availableCommands = builder.availableCommands;
this.playWhenReady = builder.playWhenReady;
this.playWhenReadyChangeReason = builder.playWhenReadyChangeReason;
this.playbackState = builder.playbackState;
this.playbackSuppressionReason = builder.playbackSuppressionReason;
this.playerError = builder.playerError;
this.repeatMode = builder.repeatMode;
this.shuffleModeEnabled = builder.shuffleModeEnabled;
this.isLoading = builder.isLoading;
this.seekBackIncrementMs = builder.seekBackIncrementMs;
this.seekForwardIncrementMs = builder.seekForwardIncrementMs;
this.maxSeekToPreviousPositionMs = builder.maxSeekToPreviousPositionMs;
this.playbackParameters = builder.playbackParameters;
this.trackSelectionParameters = builder.trackSelectionParameters;
this.audioAttributes = builder.audioAttributes;
this.volume = builder.volume;
this.videoSize = builder.videoSize;
this.currentCues = builder.currentCues;
this.deviceInfo = builder.deviceInfo;
this.deviceVolume = builder.deviceVolume;
this.isDeviceMuted = builder.isDeviceMuted;
this.surfaceSize = builder.surfaceSize;
this.newlyRenderedFirstFrame = builder.newlyRenderedFirstFrame;
this.timedMetadata = builder.timedMetadata;
this.playlist = builder.playlist;
this.timeline = builder.timeline;
this.playlistMetadata = builder.playlistMetadata;
this.currentMediaItemIndex = builder.currentMediaItemIndex;
this.currentAdGroupIndex = builder.currentAdGroupIndex;
this.currentAdIndexInAdGroup = builder.currentAdIndexInAdGroup;
this.contentPositionMsSupplier = extrapolating;
this.adPositionMsSupplier = extrapolating2;
this.contentBufferedPositionMsSupplier = builder.contentBufferedPositionMsSupplier;
this.adBufferedPositionMsSupplier = builder.adBufferedPositionMsSupplier;
this.totalBufferedDurationMsSupplier = builder.totalBufferedDurationMsSupplier;
this.hasPositionDiscontinuity = builder.hasPositionDiscontinuity;
this.positionDiscontinuityReason = builder.positionDiscontinuityReason;
this.discontinuityPositionMs = builder.discontinuityPositionMs;
}
public Builder buildUpon() {
return new Builder();
}
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (!(obj instanceof State)) {
return false;
}
State state = (State) obj;
return this.playWhenReady == state.playWhenReady && this.playWhenReadyChangeReason == state.playWhenReadyChangeReason && this.availableCommands.equals(state.availableCommands) && this.playbackState == state.playbackState && this.playbackSuppressionReason == state.playbackSuppressionReason && Util.areEqual(this.playerError, state.playerError) && this.repeatMode == state.repeatMode && this.shuffleModeEnabled == state.shuffleModeEnabled && this.isLoading == state.isLoading && this.seekBackIncrementMs == state.seekBackIncrementMs && this.seekForwardIncrementMs == state.seekForwardIncrementMs && this.maxSeekToPreviousPositionMs == state.maxSeekToPreviousPositionMs && this.playbackParameters.equals(state.playbackParameters) && this.trackSelectionParameters.equals(state.trackSelectionParameters) && this.audioAttributes.equals(state.audioAttributes) && this.volume == state.volume && this.videoSize.equals(state.videoSize) && this.currentCues.equals(state.currentCues) && this.deviceInfo.equals(state.deviceInfo) && this.deviceVolume == state.deviceVolume && this.isDeviceMuted == state.isDeviceMuted && this.surfaceSize.equals(state.surfaceSize) && this.newlyRenderedFirstFrame == state.newlyRenderedFirstFrame && this.timedMetadata.equals(state.timedMetadata) && this.playlist.equals(state.playlist) && this.playlistMetadata.equals(state.playlistMetadata) && this.currentMediaItemIndex == state.currentMediaItemIndex && this.currentAdGroupIndex == state.currentAdGroupIndex && this.currentAdIndexInAdGroup == state.currentAdIndexInAdGroup && this.contentPositionMsSupplier.equals(state.contentPositionMsSupplier) && this.adPositionMsSupplier.equals(state.adPositionMsSupplier) && this.contentBufferedPositionMsSupplier.equals(state.contentBufferedPositionMsSupplier) && this.adBufferedPositionMsSupplier.equals(state.adBufferedPositionMsSupplier) && this.totalBufferedDurationMsSupplier.equals(state.totalBufferedDurationMsSupplier) && this.hasPositionDiscontinuity == state.hasPositionDiscontinuity && this.positionDiscontinuityReason == state.positionDiscontinuityReason && this.discontinuityPositionMs == state.discontinuityPositionMs;
}
public int hashCode() {
int hashCode = (((((((((217 + this.availableCommands.hashCode()) * 31) + (this.playWhenReady ? 1 : 0)) * 31) + this.playWhenReadyChangeReason) * 31) + this.playbackState) * 31) + this.playbackSuppressionReason) * 31;
PlaybackException playbackException = this.playerError;
int hashCode2 = (((((((hashCode + (playbackException == null ? 0 : playbackException.hashCode())) * 31) + this.repeatMode) * 31) + (this.shuffleModeEnabled ? 1 : 0)) * 31) + (this.isLoading ? 1 : 0)) * 31;
long j = this.seekBackIncrementMs;
int i = (hashCode2 + ((int) (j ^ (j >>> 32)))) * 31;
long j2 = this.seekForwardIncrementMs;
int i2 = (i + ((int) (j2 ^ (j2 >>> 32)))) * 31;
long j3 = this.maxSeekToPreviousPositionMs;
int hashCode3 = (((((((((((((((((((((((((((((((((((((((((((((((((i2 + ((int) (j3 ^ (j3 >>> 32)))) * 31) + this.playbackParameters.hashCode()) * 31) + this.trackSelectionParameters.hashCode()) * 31) + this.audioAttributes.hashCode()) * 31) + Float.floatToRawIntBits(this.volume)) * 31) + this.videoSize.hashCode()) * 31) + this.currentCues.hashCode()) * 31) + this.deviceInfo.hashCode()) * 31) + this.deviceVolume) * 31) + (this.isDeviceMuted ? 1 : 0)) * 31) + this.surfaceSize.hashCode()) * 31) + (this.newlyRenderedFirstFrame ? 1 : 0)) * 31) + this.timedMetadata.hashCode()) * 31) + this.playlist.hashCode()) * 31) + this.playlistMetadata.hashCode()) * 31) + this.currentMediaItemIndex) * 31) + this.currentAdGroupIndex) * 31) + this.currentAdIndexInAdGroup) * 31) + this.contentPositionMsSupplier.hashCode()) * 31) + this.adPositionMsSupplier.hashCode()) * 31) + this.contentBufferedPositionMsSupplier.hashCode()) * 31) + this.adBufferedPositionMsSupplier.hashCode()) * 31) + this.totalBufferedDurationMsSupplier.hashCode()) * 31) + (this.hasPositionDiscontinuity ? 1 : 0)) * 31) + this.positionDiscontinuityReason) * 31;
long j4 = this.discontinuityPositionMs;
return hashCode3 + ((int) (j4 ^ (j4 >>> 32)));
}
}
/* JADX INFO: Access modifiers changed from: private */
/* loaded from: classes2.dex */
public static final class PlaylistTimeline extends Timeline {
private final int[] firstPeriodIndexByWindowIndex;
private final HashMap<Object, Integer> periodIndexByUid;
private final ImmutableList<MediaItemData> playlist;
private final int[] windowIndexByPeriodIndex;
public PlaylistTimeline(ImmutableList<MediaItemData> immutableList) {
int size = immutableList.size();
this.playlist = immutableList;
this.firstPeriodIndexByWindowIndex = new int[size];
int i = 0;
for (int i2 = 0; i2 < size; i2++) {
MediaItemData mediaItemData = immutableList.get(i2);
this.firstPeriodIndexByWindowIndex[i2] = i;
i += getPeriodCountInMediaItem(mediaItemData);
}
this.windowIndexByPeriodIndex = new int[i];
this.periodIndexByUid = new HashMap<>();
int i3 = 0;
for (int i4 = 0; i4 < size; i4++) {
MediaItemData mediaItemData2 = immutableList.get(i4);
for (int i5 = 0; i5 < getPeriodCountInMediaItem(mediaItemData2); i5++) {
this.periodIndexByUid.put(mediaItemData2.getPeriodUid(i5), Integer.valueOf(i3));
this.windowIndexByPeriodIndex[i3] = i4;
i3++;
}
}
}
@Override // com.google.android.exoplayer2.Timeline
public int getWindowCount() {
return this.playlist.size();
}
@Override // com.google.android.exoplayer2.Timeline
public int getNextWindowIndex(int i, int i2, boolean z) {
return super.getNextWindowIndex(i, i2, z);
}
@Override // com.google.android.exoplayer2.Timeline
public int getPreviousWindowIndex(int i, int i2, boolean z) {
return super.getPreviousWindowIndex(i, i2, z);
}
@Override // com.google.android.exoplayer2.Timeline
public int getLastWindowIndex(boolean z) {
return super.getLastWindowIndex(z);
}
@Override // com.google.android.exoplayer2.Timeline
public int getFirstWindowIndex(boolean z) {
return super.getFirstWindowIndex(z);
}
@Override // com.google.android.exoplayer2.Timeline
public Timeline.Window getWindow(int i, Timeline.Window window, long j) {
return this.playlist.get(i).getWindow(this.firstPeriodIndexByWindowIndex[i], window);
}
@Override // com.google.android.exoplayer2.Timeline
public int getPeriodCount() {
return this.windowIndexByPeriodIndex.length;
}
@Override // com.google.android.exoplayer2.Timeline
public Timeline.Period getPeriodByUid(Object obj, Timeline.Period period) {
return getPeriod(((Integer) Assertions.checkNotNull(this.periodIndexByUid.get(obj))).intValue(), period, true);
}
@Override // com.google.android.exoplayer2.Timeline
public Timeline.Period getPeriod(int i, Timeline.Period period, boolean z) {
int i2 = this.windowIndexByPeriodIndex[i];
return this.playlist.get(i2).getPeriod(i2, i - this.firstPeriodIndexByWindowIndex[i2], period);
}
@Override // com.google.android.exoplayer2.Timeline
public int getIndexOfPeriod(Object obj) {
Integer num = this.periodIndexByUid.get(obj);
if (num == null) {
return -1;
}
return num.intValue();
}
@Override // com.google.android.exoplayer2.Timeline
public Object getUidOfPeriod(int i) {
int i2 = this.windowIndexByPeriodIndex[i];
return this.playlist.get(i2).getPeriodUid(i - this.firstPeriodIndexByWindowIndex[i2]);
}
private static int getPeriodCountInMediaItem(MediaItemData mediaItemData) {
if (mediaItemData.periods.isEmpty()) {
return 1;
}
return mediaItemData.periods.size();
}
}
/* JADX INFO: Access modifiers changed from: protected */
/* loaded from: classes2.dex */
public static final class MediaItemData {
private final MediaMetadata combinedMediaMetadata;
public final long defaultPositionUs;
public final long durationUs;
public final long elapsedRealtimeEpochOffsetMs;
public final boolean isDynamic;
public final boolean isPlaceholder;
public final boolean isSeekable;
public final MediaItem.LiveConfiguration liveConfiguration;
public final Object manifest;
public final MediaItem mediaItem;
public final MediaMetadata mediaMetadata;
private final long[] periodPositionInWindowUs;
public final ImmutableList<PeriodData> periods;
public final long positionInFirstPeriodUs;
public final long presentationStartTimeMs;
public final Tracks tracks;
public final Object uid;
public final long windowStartTimeMs;
/* loaded from: classes2.dex */
public static final class Builder {
private long defaultPositionUs;
private long durationUs;
private long elapsedRealtimeEpochOffsetMs;
private boolean isDynamic;
private boolean isPlaceholder;
private boolean isSeekable;
private MediaItem.LiveConfiguration liveConfiguration;
private Object manifest;
private MediaItem mediaItem;
private MediaMetadata mediaMetadata;
private ImmutableList<PeriodData> periods;
private long positionInFirstPeriodUs;
private long presentationStartTimeMs;
private Tracks tracks;
private Object uid;
private long windowStartTimeMs;
public Builder setElapsedRealtimeEpochOffsetMs(long j) {
this.elapsedRealtimeEpochOffsetMs = j;
return this;
}
public Builder setIsDynamic(boolean z) {
this.isDynamic = z;
return this;
}
public Builder setIsPlaceholder(boolean z) {
this.isPlaceholder = z;
return this;
}
public Builder setIsSeekable(boolean z) {
this.isSeekable = z;
return this;
}
public Builder setLiveConfiguration(MediaItem.LiveConfiguration liveConfiguration) {
this.liveConfiguration = liveConfiguration;
return this;
}
public Builder setManifest(Object obj) {
this.manifest = obj;
return this;
}
public Builder setMediaItem(MediaItem mediaItem) {
this.mediaItem = mediaItem;
return this;
}
public Builder setMediaMetadata(MediaMetadata mediaMetadata) {
this.mediaMetadata = mediaMetadata;
return this;
}
public Builder setPresentationStartTimeMs(long j) {
this.presentationStartTimeMs = j;
return this;
}
public Builder setTracks(Tracks tracks) {
this.tracks = tracks;
return this;
}
public Builder setUid(Object obj) {
this.uid = obj;
return this;
}
public Builder setWindowStartTimeMs(long j) {
this.windowStartTimeMs = j;
return this;
}
public Builder(Object obj) {
this.uid = obj;
this.tracks = Tracks.EMPTY;
this.mediaItem = MediaItem.EMPTY;
this.mediaMetadata = null;
this.manifest = null;
this.liveConfiguration = null;
this.presentationStartTimeMs = -9223372036854775807L;
this.windowStartTimeMs = -9223372036854775807L;
this.elapsedRealtimeEpochOffsetMs = -9223372036854775807L;
this.isSeekable = false;
this.isDynamic = false;
this.defaultPositionUs = 0L;
this.durationUs = -9223372036854775807L;
this.positionInFirstPeriodUs = 0L;
this.isPlaceholder = false;
this.periods = ImmutableList.of();
}
private Builder(MediaItemData mediaItemData) {
this.uid = mediaItemData.uid;
this.tracks = mediaItemData.tracks;
this.mediaItem = mediaItemData.mediaItem;
this.mediaMetadata = mediaItemData.mediaMetadata;
this.manifest = mediaItemData.manifest;
this.liveConfiguration = mediaItemData.liveConfiguration;
this.presentationStartTimeMs = mediaItemData.presentationStartTimeMs;
this.windowStartTimeMs = mediaItemData.windowStartTimeMs;
this.elapsedRealtimeEpochOffsetMs = mediaItemData.elapsedRealtimeEpochOffsetMs;
this.isSeekable = mediaItemData.isSeekable;
this.isDynamic = mediaItemData.isDynamic;
this.defaultPositionUs = mediaItemData.defaultPositionUs;
this.durationUs = mediaItemData.durationUs;
this.positionInFirstPeriodUs = mediaItemData.positionInFirstPeriodUs;
this.isPlaceholder = mediaItemData.isPlaceholder;
this.periods = mediaItemData.periods;
}
public Builder setDefaultPositionUs(long j) {
Assertions.checkArgument(j >= 0);
this.defaultPositionUs = j;
return this;
}
public Builder setDurationUs(long j) {
Assertions.checkArgument(j == -9223372036854775807L || j >= 0);
this.durationUs = j;
return this;
}
public Builder setPositionInFirstPeriodUs(long j) {
Assertions.checkArgument(j >= 0);
this.positionInFirstPeriodUs = j;
return this;
}
public Builder setPeriods(List<PeriodData> list) {
int size = list.size();
int i = 0;
while (i < size - 1) {
Assertions.checkArgument(list.get(i).durationUs != -9223372036854775807L, "Periods other than last need a duration");
int i2 = i + 1;
for (int i3 = i2; i3 < size; i3++) {
Assertions.checkArgument(!list.get(i).uid.equals(list.get(i3).uid), "Duplicate PeriodData UIDs in period list");
}
i = i2;
}
this.periods = ImmutableList.copyOf((Collection) list);
return this;
}
public MediaItemData build() {
return new MediaItemData(this);
}
}
private MediaItemData(Builder builder) {
int i = 0;
if (builder.liveConfiguration == null) {
Assertions.checkArgument(builder.presentationStartTimeMs == -9223372036854775807L, "presentationStartTimeMs can only be set if liveConfiguration != null");
Assertions.checkArgument(builder.windowStartTimeMs == -9223372036854775807L, "windowStartTimeMs can only be set if liveConfiguration != null");
Assertions.checkArgument(builder.elapsedRealtimeEpochOffsetMs == -9223372036854775807L, "elapsedRealtimeEpochOffsetMs can only be set if liveConfiguration != null");
} else if (builder.presentationStartTimeMs != -9223372036854775807L && builder.windowStartTimeMs != -9223372036854775807L) {
Assertions.checkArgument(builder.windowStartTimeMs >= builder.presentationStartTimeMs, "windowStartTimeMs can't be less than presentationStartTimeMs");
}
int size = builder.periods.size();
if (builder.durationUs != -9223372036854775807L) {
Assertions.checkArgument(builder.defaultPositionUs <= builder.durationUs, "defaultPositionUs can't be greater than durationUs");
}
this.uid = builder.uid;
this.tracks = builder.tracks;
this.mediaItem = builder.mediaItem;
this.mediaMetadata = builder.mediaMetadata;
this.manifest = builder.manifest;
this.liveConfiguration = builder.liveConfiguration;
this.presentationStartTimeMs = builder.presentationStartTimeMs;
this.windowStartTimeMs = builder.windowStartTimeMs;
this.elapsedRealtimeEpochOffsetMs = builder.elapsedRealtimeEpochOffsetMs;
this.isSeekable = builder.isSeekable;
this.isDynamic = builder.isDynamic;
this.defaultPositionUs = builder.defaultPositionUs;
this.durationUs = builder.durationUs;
long j = builder.positionInFirstPeriodUs;
this.positionInFirstPeriodUs = j;
this.isPlaceholder = builder.isPlaceholder;
ImmutableList<PeriodData> immutableList = builder.periods;
this.periods = immutableList;
long[] jArr = new long[immutableList.size()];
this.periodPositionInWindowUs = jArr;
if (!immutableList.isEmpty()) {
jArr[0] = -j;
while (i < size - 1) {
long[] jArr2 = this.periodPositionInWindowUs;
int i2 = i + 1;
jArr2[i2] = jArr2[i] + this.periods.get(i).durationUs;
i = i2;
}
}
MediaMetadata mediaMetadata = this.mediaMetadata;
this.combinedMediaMetadata = mediaMetadata == null ? getCombinedMediaMetadata(this.mediaItem, this.tracks) : mediaMetadata;
}
public Builder buildUpon() {
return new Builder();
}
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (!(obj instanceof MediaItemData)) {
return false;
}
MediaItemData mediaItemData = (MediaItemData) obj;
return this.uid.equals(mediaItemData.uid) && this.tracks.equals(mediaItemData.tracks) && this.mediaItem.equals(mediaItemData.mediaItem) && Util.areEqual(this.mediaMetadata, mediaItemData.mediaMetadata) && Util.areEqual(this.manifest, mediaItemData.manifest) && Util.areEqual(this.liveConfiguration, mediaItemData.liveConfiguration) && this.presentationStartTimeMs == mediaItemData.presentationStartTimeMs && this.windowStartTimeMs == mediaItemData.windowStartTimeMs && this.elapsedRealtimeEpochOffsetMs == mediaItemData.elapsedRealtimeEpochOffsetMs && this.isSeekable == mediaItemData.isSeekable && this.isDynamic == mediaItemData.isDynamic && this.defaultPositionUs == mediaItemData.defaultPositionUs && this.durationUs == mediaItemData.durationUs && this.positionInFirstPeriodUs == mediaItemData.positionInFirstPeriodUs && this.isPlaceholder == mediaItemData.isPlaceholder && this.periods.equals(mediaItemData.periods);
}
public int hashCode() {
int hashCode = (((((217 + this.uid.hashCode()) * 31) + this.tracks.hashCode()) * 31) + this.mediaItem.hashCode()) * 31;
MediaMetadata mediaMetadata = this.mediaMetadata;
int hashCode2 = (hashCode + (mediaMetadata == null ? 0 : mediaMetadata.hashCode())) * 31;
Object obj = this.manifest;
int hashCode3 = (hashCode2 + (obj == null ? 0 : obj.hashCode())) * 31;
MediaItem.LiveConfiguration liveConfiguration = this.liveConfiguration;
int hashCode4 = (hashCode3 + (liveConfiguration != null ? liveConfiguration.hashCode() : 0)) * 31;
long j = this.presentationStartTimeMs;
int i = (hashCode4 + ((int) (j ^ (j >>> 32)))) * 31;
long j2 = this.windowStartTimeMs;
int i2 = (i + ((int) (j2 ^ (j2 >>> 32)))) * 31;
long j3 = this.elapsedRealtimeEpochOffsetMs;
int i3 = (((((i2 + ((int) (j3 ^ (j3 >>> 32)))) * 31) + (this.isSeekable ? 1 : 0)) * 31) + (this.isDynamic ? 1 : 0)) * 31;
long j4 = this.defaultPositionUs;
int i4 = (i3 + ((int) (j4 ^ (j4 >>> 32)))) * 31;
long j5 = this.durationUs;
int i5 = (i4 + ((int) (j5 ^ (j5 >>> 32)))) * 31;
long j6 = this.positionInFirstPeriodUs;
return ((((i5 + ((int) (j6 ^ (j6 >>> 32)))) * 31) + (this.isPlaceholder ? 1 : 0)) * 31) + this.periods.hashCode();
}
/* JADX INFO: Access modifiers changed from: private */
public Timeline.Window getWindow(int i, Timeline.Window window) {
window.set(this.uid, this.mediaItem, this.manifest, this.presentationStartTimeMs, this.windowStartTimeMs, this.elapsedRealtimeEpochOffsetMs, this.isSeekable, this.isDynamic, this.liveConfiguration, this.defaultPositionUs, this.durationUs, i, (i + (this.periods.isEmpty() ? 1 : this.periods.size())) - 1, this.positionInFirstPeriodUs);
window.isPlaceholder = this.isPlaceholder;
return window;
}
/* JADX INFO: Access modifiers changed from: private */
public Timeline.Period getPeriod(int i, int i2, Timeline.Period period) {
if (this.periods.isEmpty()) {
Object obj = this.uid;
period.set(obj, obj, i, this.positionInFirstPeriodUs + this.durationUs, 0L, AdPlaybackState.NONE, this.isPlaceholder);
} else {
PeriodData periodData = this.periods.get(i2);
Object obj2 = periodData.uid;
period.set(obj2, Pair.create(this.uid, obj2), i, periodData.durationUs, this.periodPositionInWindowUs[i2], periodData.adPlaybackState, periodData.isPlaceholder);
}
return period;
}
/* JADX INFO: Access modifiers changed from: private */
public Object getPeriodUid(int i) {
if (this.periods.isEmpty()) {
return this.uid;
}
return Pair.create(this.uid, this.periods.get(i).uid);
}
private static MediaMetadata getCombinedMediaMetadata(MediaItem mediaItem, Tracks tracks) {
MediaMetadata.Builder builder = new MediaMetadata.Builder();
int size = tracks.getGroups().size();
for (int i = 0; i < size; i++) {
Tracks.Group group = tracks.getGroups().get(i);
for (int i2 = 0; i2 < group.length; i2++) {
if (group.isTrackSelected(i2)) {
Format trackFormat = group.getTrackFormat(i2);
if (trackFormat.metadata != null) {
for (int i3 = 0; i3 < trackFormat.metadata.length(); i3++) {
trackFormat.metadata.get(i3).populateMediaMetadata(builder);
}
}
}
}
}
return builder.populate(mediaItem.mediaMetadata).build();
}
}
/* JADX INFO: Access modifiers changed from: protected */
/* loaded from: classes2.dex */
public static final class PeriodData {
public final AdPlaybackState adPlaybackState;
public final long durationUs;
public final boolean isPlaceholder;
public final Object uid;
/* loaded from: classes2.dex */
public static final class Builder {
private AdPlaybackState adPlaybackState;
private long durationUs;
private boolean isPlaceholder;
private Object uid;
public Builder setAdPlaybackState(AdPlaybackState adPlaybackState) {
this.adPlaybackState = adPlaybackState;
return this;
}
public Builder setIsPlaceholder(boolean z) {
this.isPlaceholder = z;
return this;
}
public Builder setUid(Object obj) {
this.uid = obj;
return this;
}
public Builder(Object obj) {
this.uid = obj;
this.durationUs = 0L;
this.adPlaybackState = AdPlaybackState.NONE;
this.isPlaceholder = false;
}
private Builder(PeriodData periodData) {
this.uid = periodData.uid;
this.durationUs = periodData.durationUs;
this.adPlaybackState = periodData.adPlaybackState;
this.isPlaceholder = periodData.isPlaceholder;
}
public Builder setDurationUs(long j) {
Assertions.checkArgument(j == -9223372036854775807L || j >= 0);
this.durationUs = j;
return this;
}
public PeriodData build() {
return new PeriodData(this);
}
}
private PeriodData(Builder builder) {
this.uid = builder.uid;
this.durationUs = builder.durationUs;
this.adPlaybackState = builder.adPlaybackState;
this.isPlaceholder = builder.isPlaceholder;
}
public Builder buildUpon() {
return new Builder();
}
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (!(obj instanceof PeriodData)) {
return false;
}
PeriodData periodData = (PeriodData) obj;
return this.uid.equals(periodData.uid) && this.durationUs == periodData.durationUs && this.adPlaybackState.equals(periodData.adPlaybackState) && this.isPlaceholder == periodData.isPlaceholder;
}
public int hashCode() {
int hashCode = (217 + this.uid.hashCode()) * 31;
long j = this.durationUs;
return ((((hashCode + ((int) (j ^ (j >>> 32)))) * 31) + this.adPlaybackState.hashCode()) * 31) + (this.isPlaceholder ? 1 : 0);
}
}
/* JADX INFO: Access modifiers changed from: protected */
/* loaded from: classes2.dex */
public interface PositionSupplier {
public static final PositionSupplier ZERO = getConstant(0);
static /* synthetic */ long lambda$getConstant$0(long j) {
return j;
}
long get();
static PositionSupplier getConstant(final long j) {
return new PositionSupplier() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$PositionSupplier$$ExternalSyntheticLambda1
@Override // com.google.android.exoplayer2.SimpleBasePlayer.PositionSupplier
public final long get() {
return SimpleBasePlayer.PositionSupplier.lambda$getConstant$0(j);
}
};
}
static PositionSupplier getExtrapolating(final long j, final float f) {
final long elapsedRealtime = SystemClock.elapsedRealtime();
return new PositionSupplier() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$PositionSupplier$$ExternalSyntheticLambda0
@Override // com.google.android.exoplayer2.SimpleBasePlayer.PositionSupplier
public final long get() {
return SimpleBasePlayer.PositionSupplier.lambda$getExtrapolating$1(j, elapsedRealtime, f);
}
};
}
static /* synthetic */ long lambda$getExtrapolating$1(long j, long j2, float f) {
return j + (((float) (SystemClock.elapsedRealtime() - j2)) * f);
}
}
/* JADX INFO: Access modifiers changed from: protected */
public SimpleBasePlayer(Looper looper) {
this(looper, Clock.DEFAULT);
}
protected SimpleBasePlayer(Looper looper, Clock clock) {
this.applicationLooper = looper;
this.applicationHandler = clock.createHandler(looper, null);
this.pendingOperations = new HashSet<>();
this.period = new Timeline.Period();
this.listeners = new ListenerSet<>(looper, clock, new ListenerSet.IterationFinishedEvent() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda44
@Override // com.google.android.exoplayer2.util.ListenerSet.IterationFinishedEvent
public final void invoke(Object obj, FlagSet flagSet) {
SimpleBasePlayer.this.m5396lambda$new$0$comgoogleandroidexoplayer2SimpleBasePlayer((Player.Listener) obj, flagSet);
}
});
}
/* JADX INFO: Access modifiers changed from: package-private */
/* renamed from: lambda$new$0$com-google-android-exoplayer2-SimpleBasePlayer, reason: not valid java name */
public /* synthetic */ void m5396lambda$new$0$comgoogleandroidexoplayer2SimpleBasePlayer(Player.Listener listener, FlagSet flagSet) {
listener.onEvents(this, new Player.Events(flagSet));
}
@Override // com.google.android.exoplayer2.Player
public final void addListener(Player.Listener listener) {
this.listeners.add((Player.Listener) Assertions.checkNotNull(listener));
}
@Override // com.google.android.exoplayer2.Player
public final void removeListener(Player.Listener listener) {
verifyApplicationThreadAndInitState();
this.listeners.remove(listener);
}
@Override // com.google.android.exoplayer2.Player
public final Player.Commands getAvailableCommands() {
verifyApplicationThreadAndInitState();
return this.state.availableCommands;
}
@Override // com.google.android.exoplayer2.Player
public final void setPlayWhenReady(final boolean z) {
verifyApplicationThreadAndInitState();
final State state = this.state;
if (shouldHandleCommand(1)) {
updateStateForPendingOperation(handleSetPlayWhenReady(z), new Supplier() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda6
@Override // com.google.common.base.Supplier
public final Object get() {
SimpleBasePlayer.State build;
build = SimpleBasePlayer.State.this.buildUpon().setPlayWhenReady(z, 1).build();
return build;
}
});
}
}
@Override // com.google.android.exoplayer2.Player
public final boolean getPlayWhenReady() {
verifyApplicationThreadAndInitState();
return this.state.playWhenReady;
}
@Override // com.google.android.exoplayer2.Player
public final void setMediaItems(List<MediaItem> list, boolean z) {
verifyApplicationThreadAndInitState();
setMediaItemsInternal(list, z ? -1 : this.state.currentMediaItemIndex, z ? -9223372036854775807L : this.state.contentPositionMsSupplier.get());
}
@Override // com.google.android.exoplayer2.Player
public final void setMediaItems(List<MediaItem> list, int i, long j) {
verifyApplicationThreadAndInitState();
if (i == -1) {
i = this.state.currentMediaItemIndex;
j = this.state.contentPositionMsSupplier.get();
}
setMediaItemsInternal(list, i, j);
}
@RequiresNonNull({SentryThread.JsonKeys.STATE})
private void setMediaItemsInternal(final List<MediaItem> list, final int i, final long j) {
Assertions.checkArgument(i == -1 || i >= 0);
final State state = this.state;
if (shouldHandleCommand(20) || (list.size() == 1 && shouldHandleCommand(31))) {
updateStateForPendingOperation(handleSetMediaItems(list, i, j), new Supplier() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda42
@Override // com.google.common.base.Supplier
public final Object get() {
return SimpleBasePlayer.this.m5398xb80ed5ee(list, state, i, j);
}
});
}
}
/* JADX INFO: Access modifiers changed from: package-private */
/* renamed from: lambda$setMediaItemsInternal$2$com-google-android-exoplayer2-SimpleBasePlayer, reason: not valid java name */
public /* synthetic */ State m5398xb80ed5ee(List list, State state, int i, long j) {
ArrayList arrayList = new ArrayList();
for (int i2 = 0; i2 < list.size(); i2++) {
arrayList.add(getPlaceholderMediaItemData((MediaItem) list.get(i2)));
}
return getStateWithNewPlaylistAndPosition(state, arrayList, i, j);
}
@Override // com.google.android.exoplayer2.Player
public final void addMediaItems(int i, final List<MediaItem> list) {
verifyApplicationThreadAndInitState();
Assertions.checkArgument(i >= 0);
final State state = this.state;
int size = state.playlist.size();
if (!shouldHandleCommand(20) || list.isEmpty()) {
return;
}
final int min = Math.min(i, size);
updateStateForPendingOperation(handleAddMediaItems(min, list), new Supplier() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda3
@Override // com.google.common.base.Supplier
public final Object get() {
return SimpleBasePlayer.this.m5394xc134386b(state, list, min);
}
});
}
/* JADX INFO: Access modifiers changed from: package-private */
/* renamed from: lambda$addMediaItems$3$com-google-android-exoplayer2-SimpleBasePlayer, reason: not valid java name */
public /* synthetic */ State m5394xc134386b(State state, List list, int i) {
ArrayList arrayList = new ArrayList(state.playlist);
for (int i2 = 0; i2 < list.size(); i2++) {
arrayList.add(i2 + i, getPlaceholderMediaItemData((MediaItem) list.get(i2)));
}
return getStateWithNewPlaylist(state, arrayList, this.period);
}
@Override // com.google.android.exoplayer2.Player
public final void moveMediaItems(final int i, int i2, int i3) {
verifyApplicationThreadAndInitState();
Assertions.checkArgument(i >= 0 && i2 >= i && i3 >= 0);
final State state = this.state;
int size = state.playlist.size();
if (!shouldHandleCommand(20) || size == 0 || i >= size) {
return;
}
final int min = Math.min(i2, size);
final int min2 = Math.min(i3, state.playlist.size() - (min - i));
if (i == min || min2 == i) {
return;
}
updateStateForPendingOperation(handleMoveMediaItems(i, min, min2), new Supplier() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda0
@Override // com.google.common.base.Supplier
public final Object get() {
return SimpleBasePlayer.this.m5395xfea097c0(state, i, min, min2);
}
});
}
/* JADX INFO: Access modifiers changed from: package-private */
/* renamed from: lambda$moveMediaItems$4$com-google-android-exoplayer2-SimpleBasePlayer, reason: not valid java name */
public /* synthetic */ State m5395xfea097c0(State state, int i, int i2, int i3) {
ArrayList arrayList = new ArrayList(state.playlist);
Util.moveItems(arrayList, i, i2, i3);
return getStateWithNewPlaylist(state, arrayList, this.period);
}
@Override // com.google.android.exoplayer2.Player
public final void removeMediaItems(final int i, int i2) {
final int min;
verifyApplicationThreadAndInitState();
Assertions.checkArgument(i >= 0 && i2 >= i);
final State state = this.state;
int size = state.playlist.size();
if (!shouldHandleCommand(20) || size == 0 || i >= size || i == (min = Math.min(i2, size))) {
return;
}
updateStateForPendingOperation(handleRemoveMediaItems(i, min), new Supplier() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda48
@Override // com.google.common.base.Supplier
public final Object get() {
return SimpleBasePlayer.this.m5397xc687f44c(state, i, min);
}
});
}
/* JADX INFO: Access modifiers changed from: package-private */
/* renamed from: lambda$removeMediaItems$5$com-google-android-exoplayer2-SimpleBasePlayer, reason: not valid java name */
public /* synthetic */ State m5397xc687f44c(State state, int i, int i2) {
ArrayList arrayList = new ArrayList(state.playlist);
Util.removeRange(arrayList, i, i2);
return getStateWithNewPlaylist(state, arrayList, this.period);
}
@Override // com.google.android.exoplayer2.Player
public final void prepare() {
verifyApplicationThreadAndInitState();
final State state = this.state;
if (shouldHandleCommand(2)) {
updateStateForPendingOperation(handlePrepare(), new Supplier() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda46
@Override // com.google.common.base.Supplier
public final Object get() {
SimpleBasePlayer.State build;
build = SimpleBasePlayer.State.this.buildUpon().setPlayerError(null).setPlaybackState(r2.timeline.isEmpty() ? 4 : 2).build();
return build;
}
});
}
}
@Override // com.google.android.exoplayer2.Player
public final int getPlaybackState() {
verifyApplicationThreadAndInitState();
return this.state.playbackState;
}
@Override // com.google.android.exoplayer2.Player
public final int getPlaybackSuppressionReason() {
verifyApplicationThreadAndInitState();
return this.state.playbackSuppressionReason;
}
@Override // com.google.android.exoplayer2.Player
public final PlaybackException getPlayerError() {
verifyApplicationThreadAndInitState();
return this.state.playerError;
}
@Override // com.google.android.exoplayer2.Player
public final void setRepeatMode(final int i) {
verifyApplicationThreadAndInitState();
final State state = this.state;
if (shouldHandleCommand(15)) {
updateStateForPendingOperation(handleSetRepeatMode(i), new Supplier() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda5
@Override // com.google.common.base.Supplier
public final Object get() {
SimpleBasePlayer.State build;
build = SimpleBasePlayer.State.this.buildUpon().setRepeatMode(i).build();
return build;
}
});
}
}
@Override // com.google.android.exoplayer2.Player
public final int getRepeatMode() {
verifyApplicationThreadAndInitState();
return this.state.repeatMode;
}
@Override // com.google.android.exoplayer2.Player
public final void setShuffleModeEnabled(final boolean z) {
verifyApplicationThreadAndInitState();
final State state = this.state;
if (shouldHandleCommand(14)) {
updateStateForPendingOperation(handleSetShuffleModeEnabled(z), new Supplier() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda2
@Override // com.google.common.base.Supplier
public final Object get() {
SimpleBasePlayer.State build;
build = SimpleBasePlayer.State.this.buildUpon().setShuffleModeEnabled(z).build();
return build;
}
});
}
}
@Override // com.google.android.exoplayer2.Player
public final boolean getShuffleModeEnabled() {
verifyApplicationThreadAndInitState();
return this.state.shuffleModeEnabled;
}
@Override // com.google.android.exoplayer2.Player
public final boolean isLoading() {
verifyApplicationThreadAndInitState();
return this.state.isLoading;
}
@Override // com.google.android.exoplayer2.BasePlayer
public final void seekTo(final int i, final long j, int i2, boolean z) {
verifyApplicationThreadAndInitState();
Assertions.checkArgument(i >= 0);
final State state = this.state;
if (!shouldHandleCommand(i2) || isPlayingAd()) {
return;
}
if (state.playlist.isEmpty() || i < state.playlist.size()) {
updateStateForPendingOperation(handleSeek(i, j, i2), new Supplier() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda4
@Override // com.google.common.base.Supplier
public final Object get() {
SimpleBasePlayer.State stateWithNewPlaylistAndPosition;
stateWithNewPlaylistAndPosition = SimpleBasePlayer.getStateWithNewPlaylistAndPosition(r0, SimpleBasePlayer.State.this.playlist, i, j);
return stateWithNewPlaylistAndPosition;
}
}, true, z);
}
}
@Override // com.google.android.exoplayer2.Player
public final long getSeekBackIncrement() {
verifyApplicationThreadAndInitState();
return this.state.seekBackIncrementMs;
}
@Override // com.google.android.exoplayer2.Player
public final long getSeekForwardIncrement() {
verifyApplicationThreadAndInitState();
return this.state.seekForwardIncrementMs;
}
@Override // com.google.android.exoplayer2.Player
public final long getMaxSeekToPreviousPosition() {
verifyApplicationThreadAndInitState();
return this.state.maxSeekToPreviousPositionMs;
}
@Override // com.google.android.exoplayer2.Player
public final void setPlaybackParameters(final PlaybackParameters playbackParameters) {
verifyApplicationThreadAndInitState();
final State state = this.state;
if (shouldHandleCommand(13)) {
updateStateForPendingOperation(handleSetPlaybackParameters(playbackParameters), new Supplier() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda47
@Override // com.google.common.base.Supplier
public final Object get() {
SimpleBasePlayer.State build;
build = SimpleBasePlayer.State.this.buildUpon().setPlaybackParameters(playbackParameters).build();
return build;
}
});
}
}
@Override // com.google.android.exoplayer2.Player
public final PlaybackParameters getPlaybackParameters() {
verifyApplicationThreadAndInitState();
return this.state.playbackParameters;
}
@Override // com.google.android.exoplayer2.Player
public final void stop() {
verifyApplicationThreadAndInitState();
final State state = this.state;
if (shouldHandleCommand(3)) {
updateStateForPendingOperation(handleStop(), new Supplier() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda53
@Override // com.google.common.base.Supplier
public final Object get() {
SimpleBasePlayer.State build;
build = r0.buildUpon().setPlaybackState(1).setTotalBufferedDurationMs(SimpleBasePlayer.PositionSupplier.ZERO).setContentBufferedPositionMs(SimpleBasePlayer.PositionSupplier.getConstant(SimpleBasePlayer.getContentPositionMsInternal(r0))).setAdBufferedPositionMs(SimpleBasePlayer.State.this.adPositionMsSupplier).setIsLoading(false).build();
return build;
}
});
}
}
@Override // com.google.android.exoplayer2.Player
public final void stop(boolean z) {
stop();
if (z) {
clearMediaItems();
}
}
@Override // com.google.android.exoplayer2.Player
public final void release() {
verifyApplicationThreadAndInitState();
final State state = this.state;
if (this.released) {
return;
}
updateStateForPendingOperation(handleRelease(), new Supplier() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda54
@Override // com.google.common.base.Supplier
public final Object get() {
return SimpleBasePlayer.lambda$release$12(SimpleBasePlayer.State.this);
}
});
this.released = true;
this.listeners.release();
this.state = this.state.buildUpon().setPlaybackState(1).setTotalBufferedDurationMs(PositionSupplier.ZERO).setContentBufferedPositionMs(PositionSupplier.getConstant(getContentPositionMsInternal(state))).setAdBufferedPositionMs(state.adPositionMsSupplier).setIsLoading(false).build();
}
@Override // com.google.android.exoplayer2.Player
public final Tracks getCurrentTracks() {
verifyApplicationThreadAndInitState();
return getCurrentTracksInternal(this.state);
}
@Override // com.google.android.exoplayer2.Player
public final TrackSelectionParameters getTrackSelectionParameters() {
verifyApplicationThreadAndInitState();
return this.state.trackSelectionParameters;
}
@Override // com.google.android.exoplayer2.Player
public final void setTrackSelectionParameters(final TrackSelectionParameters trackSelectionParameters) {
verifyApplicationThreadAndInitState();
final State state = this.state;
if (shouldHandleCommand(29)) {
updateStateForPendingOperation(handleSetTrackSelectionParameters(trackSelectionParameters), new Supplier() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda11
@Override // com.google.common.base.Supplier
public final Object get() {
SimpleBasePlayer.State build;
build = SimpleBasePlayer.State.this.buildUpon().setTrackSelectionParameters(trackSelectionParameters).build();
return build;
}
});
}
}
@Override // com.google.android.exoplayer2.Player
public final MediaMetadata getMediaMetadata() {
verifyApplicationThreadAndInitState();
return getMediaMetadataInternal(this.state);
}
@Override // com.google.android.exoplayer2.Player
public final MediaMetadata getPlaylistMetadata() {
verifyApplicationThreadAndInitState();
return this.state.playlistMetadata;
}
@Override // com.google.android.exoplayer2.Player
public final void setPlaylistMetadata(final MediaMetadata mediaMetadata) {
verifyApplicationThreadAndInitState();
final State state = this.state;
if (shouldHandleCommand(19)) {
updateStateForPendingOperation(handleSetPlaylistMetadata(mediaMetadata), new Supplier() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda51
@Override // com.google.common.base.Supplier
public final Object get() {
SimpleBasePlayer.State build;
build = SimpleBasePlayer.State.this.buildUpon().setPlaylistMetadata(mediaMetadata).build();
return build;
}
});
}
}
@Override // com.google.android.exoplayer2.Player
public final Timeline getCurrentTimeline() {
verifyApplicationThreadAndInitState();
return this.state.timeline;
}
@Override // com.google.android.exoplayer2.Player
public final int getCurrentPeriodIndex() {
verifyApplicationThreadAndInitState();
return getCurrentPeriodIndexInternal(this.state, this.window, this.period);
}
@Override // com.google.android.exoplayer2.Player
public final int getCurrentMediaItemIndex() {
verifyApplicationThreadAndInitState();
return getCurrentMediaItemIndexInternal(this.state);
}
@Override // com.google.android.exoplayer2.Player
public final long getDuration() {
verifyApplicationThreadAndInitState();
if (isPlayingAd()) {
this.state.timeline.getPeriod(getCurrentPeriodIndex(), this.period);
return Util.usToMs(this.period.getAdDurationUs(this.state.currentAdGroupIndex, this.state.currentAdIndexInAdGroup));
}
return getContentDuration();
}
@Override // com.google.android.exoplayer2.Player
public final long getCurrentPosition() {
verifyApplicationThreadAndInitState();
return isPlayingAd() ? this.state.adPositionMsSupplier.get() : getContentPosition();
}
@Override // com.google.android.exoplayer2.Player
public final long getBufferedPosition() {
verifyApplicationThreadAndInitState();
if (isPlayingAd()) {
return Math.max(this.state.adBufferedPositionMsSupplier.get(), this.state.adPositionMsSupplier.get());
}
return getContentBufferedPosition();
}
@Override // com.google.android.exoplayer2.Player
public final long getTotalBufferedDuration() {
verifyApplicationThreadAndInitState();
return this.state.totalBufferedDurationMsSupplier.get();
}
@Override // com.google.android.exoplayer2.Player
public final boolean isPlayingAd() {
verifyApplicationThreadAndInitState();
return this.state.currentAdGroupIndex != -1;
}
@Override // com.google.android.exoplayer2.Player
public final int getCurrentAdGroupIndex() {
verifyApplicationThreadAndInitState();
return this.state.currentAdGroupIndex;
}
@Override // com.google.android.exoplayer2.Player
public final int getCurrentAdIndexInAdGroup() {
verifyApplicationThreadAndInitState();
return this.state.currentAdIndexInAdGroup;
}
@Override // com.google.android.exoplayer2.Player
public final long getContentPosition() {
verifyApplicationThreadAndInitState();
return getContentPositionMsInternal(this.state);
}
@Override // com.google.android.exoplayer2.Player
public final long getContentBufferedPosition() {
verifyApplicationThreadAndInitState();
return Math.max(getContentBufferedPositionMsInternal(this.state), getContentPositionMsInternal(this.state));
}
@Override // com.google.android.exoplayer2.Player, com.google.android.exoplayer2.ExoPlayer.AudioComponent
public final AudioAttributes getAudioAttributes() {
verifyApplicationThreadAndInitState();
return this.state.audioAttributes;
}
@Override // com.google.android.exoplayer2.Player, com.google.android.exoplayer2.ExoPlayer.AudioComponent
public final void setVolume(final float f) {
verifyApplicationThreadAndInitState();
final State state = this.state;
if (shouldHandleCommand(24)) {
updateStateForPendingOperation(handleSetVolume(f), new Supplier() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda52
@Override // com.google.common.base.Supplier
public final Object get() {
SimpleBasePlayer.State build;
build = SimpleBasePlayer.State.this.buildUpon().setVolume(f).build();
return build;
}
});
}
}
@Override // com.google.android.exoplayer2.Player, com.google.android.exoplayer2.ExoPlayer.AudioComponent
public final float getVolume() {
verifyApplicationThreadAndInitState();
return this.state.volume;
}
@Override // com.google.android.exoplayer2.Player, com.google.android.exoplayer2.ExoPlayer.VideoComponent
public final void setVideoSurface(Surface surface) {
verifyApplicationThreadAndInitState();
final State state = this.state;
if (shouldHandleCommand(27)) {
if (surface == null) {
clearVideoSurface();
} else {
updateStateForPendingOperation(handleSetVideoOutput(surface), new Supplier() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda1
@Override // com.google.common.base.Supplier
public final Object get() {
SimpleBasePlayer.State build;
build = SimpleBasePlayer.State.this.buildUpon().setSurfaceSize(Size.UNKNOWN).build();
return build;
}
});
}
}
}
@Override // com.google.android.exoplayer2.Player, com.google.android.exoplayer2.ExoPlayer.VideoComponent
public final void setVideoSurfaceHolder(final SurfaceHolder surfaceHolder) {
verifyApplicationThreadAndInitState();
final State state = this.state;
if (shouldHandleCommand(27)) {
if (surfaceHolder == null) {
clearVideoSurface();
} else {
updateStateForPendingOperation(handleSetVideoOutput(surfaceHolder), new Supplier() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda45
@Override // com.google.common.base.Supplier
public final Object get() {
SimpleBasePlayer.State build;
build = SimpleBasePlayer.State.this.buildUpon().setSurfaceSize(SimpleBasePlayer.getSurfaceHolderSize(surfaceHolder)).build();
return build;
}
});
}
}
}
@Override // com.google.android.exoplayer2.Player, com.google.android.exoplayer2.ExoPlayer.VideoComponent
public final void setVideoSurfaceView(final SurfaceView surfaceView) {
verifyApplicationThreadAndInitState();
final State state = this.state;
if (shouldHandleCommand(27)) {
if (surfaceView == null) {
clearVideoSurface();
} else {
updateStateForPendingOperation(handleSetVideoOutput(surfaceView), new Supplier() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda56
@Override // com.google.common.base.Supplier
public final Object get() {
SimpleBasePlayer.State build;
build = SimpleBasePlayer.State.this.buildUpon().setSurfaceSize(SimpleBasePlayer.getSurfaceHolderSize(surfaceView.getHolder())).build();
return build;
}
});
}
}
}
@Override // com.google.android.exoplayer2.Player, com.google.android.exoplayer2.ExoPlayer.VideoComponent
public final void setVideoTextureView(TextureView textureView) {
final Size size;
verifyApplicationThreadAndInitState();
final State state = this.state;
if (shouldHandleCommand(27)) {
if (textureView == null) {
clearVideoSurface();
return;
}
if (textureView.isAvailable()) {
size = new Size(textureView.getWidth(), textureView.getHeight());
} else {
size = Size.ZERO;
}
updateStateForPendingOperation(handleSetVideoOutput(textureView), new Supplier() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda7
@Override // com.google.common.base.Supplier
public final Object get() {
SimpleBasePlayer.State build;
build = SimpleBasePlayer.State.this.buildUpon().setSurfaceSize(size).build();
return build;
}
});
}
}
@Override // com.google.android.exoplayer2.Player, com.google.android.exoplayer2.ExoPlayer.VideoComponent
public final void clearVideoSurface() {
clearVideoOutput(null);
}
@Override // com.google.android.exoplayer2.Player, com.google.android.exoplayer2.ExoPlayer.VideoComponent
public final void clearVideoSurface(Surface surface) {
clearVideoOutput(surface);
}
@Override // com.google.android.exoplayer2.Player, com.google.android.exoplayer2.ExoPlayer.VideoComponent
public final void clearVideoSurfaceHolder(SurfaceHolder surfaceHolder) {
clearVideoOutput(surfaceHolder);
}
@Override // com.google.android.exoplayer2.Player, com.google.android.exoplayer2.ExoPlayer.VideoComponent
public final void clearVideoSurfaceView(SurfaceView surfaceView) {
clearVideoOutput(surfaceView);
}
@Override // com.google.android.exoplayer2.Player, com.google.android.exoplayer2.ExoPlayer.VideoComponent
public final void clearVideoTextureView(TextureView textureView) {
clearVideoOutput(textureView);
}
private void clearVideoOutput(Object obj) {
verifyApplicationThreadAndInitState();
final State state = this.state;
if (shouldHandleCommand(27)) {
updateStateForPendingOperation(handleClearVideoOutput(obj), new Supplier() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda32
@Override // com.google.common.base.Supplier
public final Object get() {
SimpleBasePlayer.State build;
build = SimpleBasePlayer.State.this.buildUpon().setSurfaceSize(Size.ZERO).build();
return build;
}
});
}
}
@Override // com.google.android.exoplayer2.Player, com.google.android.exoplayer2.ExoPlayer.VideoComponent
public final VideoSize getVideoSize() {
verifyApplicationThreadAndInitState();
return this.state.videoSize;
}
@Override // com.google.android.exoplayer2.Player
public final Size getSurfaceSize() {
verifyApplicationThreadAndInitState();
return this.state.surfaceSize;
}
@Override // com.google.android.exoplayer2.Player, com.google.android.exoplayer2.ExoPlayer.TextComponent
public final CueGroup getCurrentCues() {
verifyApplicationThreadAndInitState();
return this.state.currentCues;
}
@Override // com.google.android.exoplayer2.Player, com.google.android.exoplayer2.ExoPlayer.DeviceComponent
public final DeviceInfo getDeviceInfo() {
verifyApplicationThreadAndInitState();
return this.state.deviceInfo;
}
@Override // com.google.android.exoplayer2.Player, com.google.android.exoplayer2.ExoPlayer.DeviceComponent
public final int getDeviceVolume() {
verifyApplicationThreadAndInitState();
return this.state.deviceVolume;
}
@Override // com.google.android.exoplayer2.Player, com.google.android.exoplayer2.ExoPlayer.DeviceComponent
public final boolean isDeviceMuted() {
verifyApplicationThreadAndInitState();
return this.state.isDeviceMuted;
}
@Override // com.google.android.exoplayer2.Player, com.google.android.exoplayer2.ExoPlayer.DeviceComponent
public final void setDeviceVolume(final int i) {
verifyApplicationThreadAndInitState();
final State state = this.state;
if (shouldHandleCommand(25)) {
updateStateForPendingOperation(handleSetDeviceVolume(i), new Supplier() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda22
@Override // com.google.common.base.Supplier
public final Object get() {
SimpleBasePlayer.State build;
build = SimpleBasePlayer.State.this.buildUpon().setDeviceVolume(i).build();
return build;
}
});
}
}
@Override // com.google.android.exoplayer2.Player, com.google.android.exoplayer2.ExoPlayer.DeviceComponent
public final void increaseDeviceVolume() {
verifyApplicationThreadAndInitState();
final State state = this.state;
if (shouldHandleCommand(26)) {
updateStateForPendingOperation(handleIncreaseDeviceVolume(), new Supplier() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda9
@Override // com.google.common.base.Supplier
public final Object get() {
SimpleBasePlayer.State build;
build = r0.buildUpon().setDeviceVolume(SimpleBasePlayer.State.this.deviceVolume + 1).build();
return build;
}
});
}
}
@Override // com.google.android.exoplayer2.Player, com.google.android.exoplayer2.ExoPlayer.DeviceComponent
public final void decreaseDeviceVolume() {
verifyApplicationThreadAndInitState();
final State state = this.state;
if (shouldHandleCommand(26)) {
updateStateForPendingOperation(handleDecreaseDeviceVolume(), new Supplier() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda55
@Override // com.google.common.base.Supplier
public final Object get() {
SimpleBasePlayer.State build;
SimpleBasePlayer.State state2 = SimpleBasePlayer.State.this;
build = state2.buildUpon().setDeviceVolume(Math.max(0, state2.deviceVolume - 1)).build();
return build;
}
});
}
}
@Override // com.google.android.exoplayer2.Player, com.google.android.exoplayer2.ExoPlayer.DeviceComponent
public final void setDeviceMuted(final boolean z) {
verifyApplicationThreadAndInitState();
final State state = this.state;
if (shouldHandleCommand(26)) {
updateStateForPendingOperation(handleSetDeviceMuted(z), new Supplier() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda8
@Override // com.google.common.base.Supplier
public final Object get() {
SimpleBasePlayer.State build;
build = SimpleBasePlayer.State.this.buildUpon().setIsDeviceMuted(z).build();
return build;
}
});
}
}
protected final void invalidateState() {
verifyApplicationThreadAndInitState();
if (!this.pendingOperations.isEmpty() || this.released) {
return;
}
updateStateAndInformListeners(getState(), false, false);
}
protected MediaItemData getPlaceholderMediaItemData(MediaItem mediaItem) {
return new MediaItemData.Builder(new PlaceholderUid()).setMediaItem(mediaItem).setIsDynamic(true).setIsPlaceholder(true).build();
}
protected ListenableFuture<?> handleSetPlayWhenReady(boolean z) {
throw new IllegalStateException("Missing implementation to handle COMMAND_PLAY_PAUSE");
}
protected ListenableFuture<?> handlePrepare() {
throw new IllegalStateException("Missing implementation to handle COMMAND_PREPARE");
}
protected ListenableFuture<?> handleStop() {
throw new IllegalStateException("Missing implementation to handle COMMAND_STOP");
}
protected ListenableFuture<?> handleRelease() {
throw new IllegalStateException("Missing implementation to handle COMMAND_RELEASE");
}
protected ListenableFuture<?> handleSetRepeatMode(int i) {
throw new IllegalStateException("Missing implementation to handle COMMAND_SET_REPEAT_MODE");
}
protected ListenableFuture<?> handleSetShuffleModeEnabled(boolean z) {
throw new IllegalStateException("Missing implementation to handle COMMAND_SET_SHUFFLE_MODE");
}
protected ListenableFuture<?> handleSetPlaybackParameters(PlaybackParameters playbackParameters) {
throw new IllegalStateException("Missing implementation to handle COMMAND_SET_SPEED_AND_PITCH");
}
protected ListenableFuture<?> handleSetTrackSelectionParameters(TrackSelectionParameters trackSelectionParameters) {
throw new IllegalStateException("Missing implementation to handle COMMAND_SET_TRACK_SELECTION_PARAMETERS");
}
protected ListenableFuture<?> handleSetPlaylistMetadata(MediaMetadata mediaMetadata) {
throw new IllegalStateException("Missing implementation to handle COMMAND_SET_MEDIA_ITEMS_METADATA");
}
protected ListenableFuture<?> handleSetVolume(float f) {
throw new IllegalStateException("Missing implementation to handle COMMAND_SET_VOLUME");
}
protected ListenableFuture<?> handleSetDeviceVolume(int i) {
throw new IllegalStateException("Missing implementation to handle COMMAND_SET_DEVICE_VOLUME");
}
protected ListenableFuture<?> handleIncreaseDeviceVolume() {
throw new IllegalStateException("Missing implementation to handle COMMAND_ADJUST_DEVICE_VOLUME");
}
protected ListenableFuture<?> handleDecreaseDeviceVolume() {
throw new IllegalStateException("Missing implementation to handle COMMAND_ADJUST_DEVICE_VOLUME");
}
protected ListenableFuture<?> handleSetDeviceMuted(boolean z) {
throw new IllegalStateException("Missing implementation to handle COMMAND_ADJUST_DEVICE_VOLUME");
}
protected ListenableFuture<?> handleSetVideoOutput(Object obj) {
throw new IllegalStateException("Missing implementation to handle COMMAND_SET_VIDEO_SURFACE");
}
protected ListenableFuture<?> handleClearVideoOutput(Object obj) {
throw new IllegalStateException("Missing implementation to handle COMMAND_SET_VIDEO_SURFACE");
}
protected ListenableFuture<?> handleSetMediaItems(List<MediaItem> list, int i, long j) {
throw new IllegalStateException("Missing implementation to handle COMMAND_SET_MEDIA_ITEM(S)");
}
protected ListenableFuture<?> handleAddMediaItems(int i, List<MediaItem> list) {
throw new IllegalStateException("Missing implementation to handle COMMAND_CHANGE_MEDIA_ITEMS");
}
protected ListenableFuture<?> handleMoveMediaItems(int i, int i2, int i3) {
throw new IllegalStateException("Missing implementation to handle COMMAND_CHANGE_MEDIA_ITEMS");
}
protected ListenableFuture<?> handleRemoveMediaItems(int i, int i2) {
throw new IllegalStateException("Missing implementation to handle COMMAND_CHANGE_MEDIA_ITEMS");
}
protected ListenableFuture<?> handleSeek(int i, long j, int i2) {
throw new IllegalStateException("Missing implementation to handle one of the COMMAND_SEEK_*");
}
@RequiresNonNull({SentryThread.JsonKeys.STATE})
private boolean shouldHandleCommand(int i) {
return !this.released && this.state.availableCommands.contains(i);
}
@RequiresNonNull({SentryThread.JsonKeys.STATE})
private void updateStateAndInformListeners(final State state, boolean z, boolean z2) {
State state2 = this.state;
this.state = state;
if (state.hasPositionDiscontinuity || state.newlyRenderedFirstFrame) {
this.state = this.state.buildUpon().clearPositionDiscontinuity().setNewlyRenderedFirstFrame(false).build();
}
boolean z3 = state2.playWhenReady != state.playWhenReady;
boolean z4 = state2.playbackState != state.playbackState;
Tracks currentTracksInternal = getCurrentTracksInternal(state2);
final Tracks currentTracksInternal2 = getCurrentTracksInternal(state);
MediaMetadata mediaMetadataInternal = getMediaMetadataInternal(state2);
final MediaMetadata mediaMetadataInternal2 = getMediaMetadataInternal(state);
final int positionDiscontinuityReason = getPositionDiscontinuityReason(state2, state, z, this.window, this.period);
boolean z5 = !state2.timeline.equals(state.timeline);
final int mediaItemTransitionReason = getMediaItemTransitionReason(state2, state, positionDiscontinuityReason, z2, this.window);
if (z5) {
final int timelineChangeReason = getTimelineChangeReason(state2.playlist, state.playlist);
this.listeners.queueEvent(0, new ListenerSet.Event() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda10
@Override // com.google.android.exoplayer2.util.ListenerSet.Event
public final void invoke(Object obj) {
Player.Listener listener = (Player.Listener) obj;
listener.onTimelineChanged(SimpleBasePlayer.State.this.timeline, timelineChangeReason);
}
});
}
if (positionDiscontinuityReason != -1) {
final Player.PositionInfo positionInfo = getPositionInfo(state2, false, this.window, this.period);
final Player.PositionInfo positionInfo2 = getPositionInfo(state, state.hasPositionDiscontinuity, this.window, this.period);
this.listeners.queueEvent(11, new ListenerSet.Event() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda23
@Override // com.google.android.exoplayer2.util.ListenerSet.Event
public final void invoke(Object obj) {
SimpleBasePlayer.lambda$updateStateAndInformListeners$26(positionDiscontinuityReason, positionInfo, positionInfo2, (Player.Listener) obj);
}
});
}
if (mediaItemTransitionReason != -1) {
final MediaItem mediaItem = state.timeline.isEmpty() ? null : state.playlist.get(getCurrentMediaItemIndexInternal(state)).mediaItem;
this.listeners.queueEvent(1, new ListenerSet.Event() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda34
@Override // com.google.android.exoplayer2.util.ListenerSet.Event
public final void invoke(Object obj) {
((Player.Listener) obj).onMediaItemTransition(MediaItem.this, mediaItemTransitionReason);
}
});
}
if (!Util.areEqual(state2.playerError, state.playerError)) {
this.listeners.queueEvent(10, new ListenerSet.Event() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda36
@Override // com.google.android.exoplayer2.util.ListenerSet.Event
public final void invoke(Object obj) {
((Player.Listener) obj).onPlayerErrorChanged(SimpleBasePlayer.State.this.playerError);
}
});
if (state.playerError != null) {
this.listeners.queueEvent(10, new ListenerSet.Event() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda37
@Override // com.google.android.exoplayer2.util.ListenerSet.Event
public final void invoke(Object obj) {
((Player.Listener) obj).onPlayerError((PlaybackException) Util.castNonNull(SimpleBasePlayer.State.this.playerError));
}
});
}
}
if (!state2.trackSelectionParameters.equals(state.trackSelectionParameters)) {
this.listeners.queueEvent(19, new ListenerSet.Event() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda38
@Override // com.google.android.exoplayer2.util.ListenerSet.Event
public final void invoke(Object obj) {
((Player.Listener) obj).onTrackSelectionParametersChanged(SimpleBasePlayer.State.this.trackSelectionParameters);
}
});
}
if (!currentTracksInternal.equals(currentTracksInternal2)) {
this.listeners.queueEvent(2, new ListenerSet.Event() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda39
@Override // com.google.android.exoplayer2.util.ListenerSet.Event
public final void invoke(Object obj) {
((Player.Listener) obj).onTracksChanged(Tracks.this);
}
});
}
if (!mediaMetadataInternal.equals(mediaMetadataInternal2)) {
this.listeners.queueEvent(14, new ListenerSet.Event() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda40
@Override // com.google.android.exoplayer2.util.ListenerSet.Event
public final void invoke(Object obj) {
((Player.Listener) obj).onMediaMetadataChanged(MediaMetadata.this);
}
});
}
if (state2.isLoading != state.isLoading) {
this.listeners.queueEvent(3, new ListenerSet.Event() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda41
@Override // com.google.android.exoplayer2.util.ListenerSet.Event
public final void invoke(Object obj) {
SimpleBasePlayer.lambda$updateStateAndInformListeners$33(SimpleBasePlayer.State.this, (Player.Listener) obj);
}
});
}
if (z3 || z4) {
this.listeners.queueEvent(-1, new ListenerSet.Event() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda43
@Override // com.google.android.exoplayer2.util.ListenerSet.Event
public final void invoke(Object obj) {
((Player.Listener) obj).onPlayerStateChanged(r0.playWhenReady, SimpleBasePlayer.State.this.playbackState);
}
});
}
if (z4) {
this.listeners.queueEvent(4, new ListenerSet.Event() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda12
@Override // com.google.android.exoplayer2.util.ListenerSet.Event
public final void invoke(Object obj) {
((Player.Listener) obj).onPlaybackStateChanged(SimpleBasePlayer.State.this.playbackState);
}
});
}
if (z3 || state2.playWhenReadyChangeReason != state.playWhenReadyChangeReason) {
this.listeners.queueEvent(5, new ListenerSet.Event() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda13
@Override // com.google.android.exoplayer2.util.ListenerSet.Event
public final void invoke(Object obj) {
((Player.Listener) obj).onPlayWhenReadyChanged(r0.playWhenReady, SimpleBasePlayer.State.this.playWhenReadyChangeReason);
}
});
}
if (state2.playbackSuppressionReason != state.playbackSuppressionReason) {
this.listeners.queueEvent(6, new ListenerSet.Event() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda14
@Override // com.google.android.exoplayer2.util.ListenerSet.Event
public final void invoke(Object obj) {
((Player.Listener) obj).onPlaybackSuppressionReasonChanged(SimpleBasePlayer.State.this.playbackSuppressionReason);
}
});
}
if (isPlaying(state2) != isPlaying(state)) {
this.listeners.queueEvent(7, new ListenerSet.Event() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda15
@Override // com.google.android.exoplayer2.util.ListenerSet.Event
public final void invoke(Object obj) {
((Player.Listener) obj).onIsPlayingChanged(SimpleBasePlayer.isPlaying(SimpleBasePlayer.State.this));
}
});
}
if (!state2.playbackParameters.equals(state.playbackParameters)) {
this.listeners.queueEvent(12, new ListenerSet.Event() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda16
@Override // com.google.android.exoplayer2.util.ListenerSet.Event
public final void invoke(Object obj) {
((Player.Listener) obj).onPlaybackParametersChanged(SimpleBasePlayer.State.this.playbackParameters);
}
});
}
if (state2.repeatMode != state.repeatMode) {
this.listeners.queueEvent(8, new ListenerSet.Event() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda17
@Override // com.google.android.exoplayer2.util.ListenerSet.Event
public final void invoke(Object obj) {
((Player.Listener) obj).onRepeatModeChanged(SimpleBasePlayer.State.this.repeatMode);
}
});
}
if (state2.shuffleModeEnabled != state.shuffleModeEnabled) {
this.listeners.queueEvent(9, new ListenerSet.Event() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda18
@Override // com.google.android.exoplayer2.util.ListenerSet.Event
public final void invoke(Object obj) {
((Player.Listener) obj).onShuffleModeEnabledChanged(SimpleBasePlayer.State.this.shuffleModeEnabled);
}
});
}
if (state2.seekBackIncrementMs != state.seekBackIncrementMs) {
this.listeners.queueEvent(16, new ListenerSet.Event() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda19
@Override // com.google.android.exoplayer2.util.ListenerSet.Event
public final void invoke(Object obj) {
((Player.Listener) obj).onSeekBackIncrementChanged(SimpleBasePlayer.State.this.seekBackIncrementMs);
}
});
}
if (state2.seekForwardIncrementMs != state.seekForwardIncrementMs) {
this.listeners.queueEvent(17, new ListenerSet.Event() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda20
@Override // com.google.android.exoplayer2.util.ListenerSet.Event
public final void invoke(Object obj) {
((Player.Listener) obj).onSeekForwardIncrementChanged(SimpleBasePlayer.State.this.seekForwardIncrementMs);
}
});
}
if (state2.maxSeekToPreviousPositionMs != state.maxSeekToPreviousPositionMs) {
this.listeners.queueEvent(18, new ListenerSet.Event() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda21
@Override // com.google.android.exoplayer2.util.ListenerSet.Event
public final void invoke(Object obj) {
((Player.Listener) obj).onMaxSeekToPreviousPositionChanged(SimpleBasePlayer.State.this.maxSeekToPreviousPositionMs);
}
});
}
if (!state2.audioAttributes.equals(state.audioAttributes)) {
this.listeners.queueEvent(20, new ListenerSet.Event() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda24
@Override // com.google.android.exoplayer2.util.ListenerSet.Event
public final void invoke(Object obj) {
((Player.Listener) obj).onAudioAttributesChanged(SimpleBasePlayer.State.this.audioAttributes);
}
});
}
if (!state2.videoSize.equals(state.videoSize)) {
this.listeners.queueEvent(25, new ListenerSet.Event() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda25
@Override // com.google.android.exoplayer2.util.ListenerSet.Event
public final void invoke(Object obj) {
((Player.Listener) obj).onVideoSizeChanged(SimpleBasePlayer.State.this.videoSize);
}
});
}
if (!state2.deviceInfo.equals(state.deviceInfo)) {
this.listeners.queueEvent(29, new ListenerSet.Event() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda26
@Override // com.google.android.exoplayer2.util.ListenerSet.Event
public final void invoke(Object obj) {
((Player.Listener) obj).onDeviceInfoChanged(SimpleBasePlayer.State.this.deviceInfo);
}
});
}
if (!state2.playlistMetadata.equals(state.playlistMetadata)) {
this.listeners.queueEvent(15, new ListenerSet.Event() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda27
@Override // com.google.android.exoplayer2.util.ListenerSet.Event
public final void invoke(Object obj) {
((Player.Listener) obj).onPlaylistMetadataChanged(SimpleBasePlayer.State.this.playlistMetadata);
}
});
}
if (state.newlyRenderedFirstFrame) {
this.listeners.queueEvent(26, new ExoPlayerImpl$ComponentListener$$ExternalSyntheticLambda7());
}
if (!state2.surfaceSize.equals(state.surfaceSize)) {
this.listeners.queueEvent(24, new ListenerSet.Event() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda28
@Override // com.google.android.exoplayer2.util.ListenerSet.Event
public final void invoke(Object obj) {
((Player.Listener) obj).onSurfaceSizeChanged(r0.surfaceSize.getWidth(), SimpleBasePlayer.State.this.surfaceSize.getHeight());
}
});
}
if (state2.volume != state.volume) {
this.listeners.queueEvent(22, new ListenerSet.Event() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda29
@Override // com.google.android.exoplayer2.util.ListenerSet.Event
public final void invoke(Object obj) {
((Player.Listener) obj).onVolumeChanged(SimpleBasePlayer.State.this.volume);
}
});
}
if (state2.deviceVolume != state.deviceVolume || state2.isDeviceMuted != state.isDeviceMuted) {
this.listeners.queueEvent(30, new ListenerSet.Event() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda30
@Override // com.google.android.exoplayer2.util.ListenerSet.Event
public final void invoke(Object obj) {
((Player.Listener) obj).onDeviceVolumeChanged(r0.deviceVolume, SimpleBasePlayer.State.this.isDeviceMuted);
}
});
}
if (!state2.currentCues.equals(state.currentCues)) {
this.listeners.queueEvent(27, new ListenerSet.Event() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda31
@Override // com.google.android.exoplayer2.util.ListenerSet.Event
public final void invoke(Object obj) {
SimpleBasePlayer.lambda$updateStateAndInformListeners$52(SimpleBasePlayer.State.this, (Player.Listener) obj);
}
});
}
if (!state2.timedMetadata.equals(state.timedMetadata) && state.timedMetadata.presentationTimeUs != -9223372036854775807L) {
this.listeners.queueEvent(28, new ListenerSet.Event() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda33
@Override // com.google.android.exoplayer2.util.ListenerSet.Event
public final void invoke(Object obj) {
((Player.Listener) obj).onMetadata(SimpleBasePlayer.State.this.timedMetadata);
}
});
}
if (positionDiscontinuityReason == 1) {
this.listeners.queueEvent(-1, new ExoPlayerImpl$$ExternalSyntheticLambda10());
}
if (!state2.availableCommands.equals(state.availableCommands)) {
this.listeners.queueEvent(13, new ListenerSet.Event() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda35
@Override // com.google.android.exoplayer2.util.ListenerSet.Event
public final void invoke(Object obj) {
((Player.Listener) obj).onAvailableCommandsChanged(SimpleBasePlayer.State.this.availableCommands);
}
});
}
this.listeners.flushEvents();
}
/* JADX INFO: Access modifiers changed from: package-private */
public static /* synthetic */ void lambda$updateStateAndInformListeners$26(int i, Player.PositionInfo positionInfo, Player.PositionInfo positionInfo2, Player.Listener listener) {
listener.onPositionDiscontinuity(i);
listener.onPositionDiscontinuity(positionInfo, positionInfo2, i);
}
/* JADX INFO: Access modifiers changed from: package-private */
public static /* synthetic */ void lambda$updateStateAndInformListeners$33(State state, Player.Listener listener) {
listener.onLoadingChanged(state.isLoading);
listener.onIsLoadingChanged(state.isLoading);
}
/* JADX INFO: Access modifiers changed from: package-private */
public static /* synthetic */ void lambda$updateStateAndInformListeners$52(State state, Player.Listener listener) {
listener.onCues(state.currentCues.cues);
listener.onCues(state.currentCues);
}
@EnsuresNonNull({SentryThread.JsonKeys.STATE})
private void verifyApplicationThreadAndInitState() {
if (Thread.currentThread() != this.applicationLooper.getThread()) {
throw new IllegalStateException(Util.formatInvariant("Player is accessed on the wrong thread.\nCurrent thread: '%s'\nExpected thread: '%s'\nSee https://developer.android.com/guide/topics/media/issues/player-accessed-on-wrong-thread", Thread.currentThread().getName(), this.applicationLooper.getThread().getName()));
}
if (this.state == null) {
this.state = getState();
}
}
@RequiresNonNull({SentryThread.JsonKeys.STATE})
private void updateStateForPendingOperation(ListenableFuture<?> listenableFuture, Supplier<State> supplier) {
updateStateForPendingOperation(listenableFuture, supplier, false, false);
}
@RequiresNonNull({SentryThread.JsonKeys.STATE})
private void updateStateForPendingOperation(final ListenableFuture<?> listenableFuture, Supplier<State> supplier, boolean z, boolean z2) {
if (listenableFuture.isDone() && this.pendingOperations.isEmpty()) {
updateStateAndInformListeners(getState(), z, z2);
return;
}
this.pendingOperations.add(listenableFuture);
updateStateAndInformListeners(getPlaceholderState(supplier.get()), z, z2);
listenableFuture.addListener(new Runnable() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda49
@Override // java.lang.Runnable
public final void run() {
SimpleBasePlayer.this.m5399x902fbd44(listenableFuture);
}
}, new Executor() { // from class: com.google.android.exoplayer2.SimpleBasePlayer$$ExternalSyntheticLambda50
@Override // java.util.concurrent.Executor
public final void execute(Runnable runnable) {
SimpleBasePlayer.this.postOrRunOnApplicationHandler(runnable);
}
});
}
/* JADX INFO: Access modifiers changed from: package-private */
/* renamed from: lambda$updateStateForPendingOperation$55$com-google-android-exoplayer2-SimpleBasePlayer, reason: not valid java name */
public /* synthetic */ void m5399x902fbd44(ListenableFuture listenableFuture) {
Util.castNonNull(this.state);
this.pendingOperations.remove(listenableFuture);
if (!this.pendingOperations.isEmpty() || this.released) {
return;
}
updateStateAndInformListeners(getState(), false, false);
}
/* JADX INFO: Access modifiers changed from: private */
public void postOrRunOnApplicationHandler(Runnable runnable) {
if (this.applicationHandler.getLooper() == Looper.myLooper()) {
runnable.run();
} else {
this.applicationHandler.post(runnable);
}
}
private static boolean isPlaying(State state) {
return state.playWhenReady && state.playbackState == 3 && state.playbackSuppressionReason == 0;
}
private static Tracks getCurrentTracksInternal(State state) {
if (state.playlist.isEmpty()) {
return Tracks.EMPTY;
}
return state.playlist.get(getCurrentMediaItemIndexInternal(state)).tracks;
}
private static MediaMetadata getMediaMetadataInternal(State state) {
if (!state.playlist.isEmpty()) {
return state.playlist.get(getCurrentMediaItemIndexInternal(state)).combinedMediaMetadata;
}
return MediaMetadata.EMPTY;
}
private static int getCurrentMediaItemIndexInternal(State state) {
if (state.currentMediaItemIndex != -1) {
return state.currentMediaItemIndex;
}
return 0;
}
private static long getContentPositionMsInternal(State state) {
return getPositionOrDefaultInMediaItem(state.contentPositionMsSupplier.get(), state);
}
private static long getContentBufferedPositionMsInternal(State state) {
return getPositionOrDefaultInMediaItem(state.contentBufferedPositionMsSupplier.get(), state);
}
private static long getPositionOrDefaultInMediaItem(long j, State state) {
if (j != -9223372036854775807L) {
return j;
}
if (state.playlist.isEmpty()) {
return 0L;
}
return Util.usToMs(state.playlist.get(getCurrentMediaItemIndexInternal(state)).defaultPositionUs);
}
private static int getCurrentPeriodIndexInternal(State state, Timeline.Window window, Timeline.Period period) {
int currentMediaItemIndexInternal = getCurrentMediaItemIndexInternal(state);
return state.timeline.isEmpty() ? currentMediaItemIndexInternal : getPeriodIndexFromWindowPosition(state.timeline, currentMediaItemIndexInternal, getContentPositionMsInternal(state), window, period);
}
/* JADX INFO: Access modifiers changed from: private */
public static int getPeriodIndexFromWindowPosition(Timeline timeline, int i, long j, Timeline.Window window, Timeline.Period period) {
return timeline.getIndexOfPeriod(timeline.getPeriodPositionUs(window, period, i, Util.msToUs(j)).first);
}
private static int getTimelineChangeReason(List<MediaItemData> list, List<MediaItemData> list2) {
if (list.size() != list2.size()) {
return 0;
}
int i = 0;
while (true) {
if (i >= list.size()) {
return 1;
}
Object obj = list.get(i).uid;
Object obj2 = list2.get(i).uid;
boolean z = (obj instanceof PlaceholderUid) && !(obj2 instanceof PlaceholderUid);
if (!obj.equals(obj2) && !z) {
return 0;
}
i++;
}
}
private static int getPositionDiscontinuityReason(State state, State state2, boolean z, Timeline.Window window, Timeline.Period period) {
if (state2.hasPositionDiscontinuity) {
return state2.positionDiscontinuityReason;
}
if (z) {
return 1;
}
if (state.playlist.isEmpty()) {
return -1;
}
if (state2.playlist.isEmpty()) {
return 4;
}
Object uidOfPeriod = state.timeline.getUidOfPeriod(getCurrentPeriodIndexInternal(state, window, period));
Object uidOfPeriod2 = state2.timeline.getUidOfPeriod(getCurrentPeriodIndexInternal(state2, window, period));
if ((uidOfPeriod instanceof PlaceholderUid) && !(uidOfPeriod2 instanceof PlaceholderUid)) {
return -1;
}
if (!uidOfPeriod2.equals(uidOfPeriod) || state.currentAdGroupIndex != state2.currentAdGroupIndex || state.currentAdIndexInAdGroup != state2.currentAdIndexInAdGroup) {
if (state2.timeline.getIndexOfPeriod(uidOfPeriod) == -1) {
return 4;
}
long currentPeriodOrAdPositionMs = getCurrentPeriodOrAdPositionMs(state, uidOfPeriod, period);
long periodOrAdDurationMs = getPeriodOrAdDurationMs(state, uidOfPeriod, period);
return (periodOrAdDurationMs == -9223372036854775807L || currentPeriodOrAdPositionMs < periodOrAdDurationMs) ? 3 : 0;
}
long currentPeriodOrAdPositionMs2 = getCurrentPeriodOrAdPositionMs(state, uidOfPeriod, period);
if (Math.abs(currentPeriodOrAdPositionMs2 - getCurrentPeriodOrAdPositionMs(state2, uidOfPeriod2, period)) < 1000) {
return -1;
}
long periodOrAdDurationMs2 = getPeriodOrAdDurationMs(state, uidOfPeriod, period);
return (periodOrAdDurationMs2 == -9223372036854775807L || currentPeriodOrAdPositionMs2 < periodOrAdDurationMs2) ? 5 : 0;
}
private static long getCurrentPeriodOrAdPositionMs(State state, Object obj, Timeline.Period period) {
if (state.currentAdGroupIndex != -1) {
return state.adPositionMsSupplier.get();
}
return getContentPositionMsInternal(state) - state.timeline.getPeriodByUid(obj, period).getPositionInWindowMs();
}
private static long getPeriodOrAdDurationMs(State state, Object obj, Timeline.Period period) {
long adDurationUs;
state.timeline.getPeriodByUid(obj, period);
if (state.currentAdGroupIndex == -1) {
adDurationUs = period.durationUs;
} else {
adDurationUs = period.getAdDurationUs(state.currentAdGroupIndex, state.currentAdIndexInAdGroup);
}
return Util.usToMs(adDurationUs);
}
private static Player.PositionInfo getPositionInfo(State state, boolean z, Timeline.Window window, Timeline.Period period) {
Object obj;
MediaItem mediaItem;
Object obj2;
int i;
long j;
long j2;
int currentMediaItemIndexInternal = getCurrentMediaItemIndexInternal(state);
if (state.timeline.isEmpty()) {
obj = null;
mediaItem = null;
obj2 = null;
i = -1;
} else {
int currentPeriodIndexInternal = getCurrentPeriodIndexInternal(state, window, period);
Object obj3 = state.timeline.getPeriod(currentPeriodIndexInternal, period, true).uid;
Object obj4 = state.timeline.getWindow(currentMediaItemIndexInternal, window).uid;
i = currentPeriodIndexInternal;
mediaItem = window.mediaItem;
obj = obj4;
obj2 = obj3;
}
if (z) {
j = state.discontinuityPositionMs;
j2 = state.currentAdGroupIndex == -1 ? j : getContentPositionMsInternal(state);
} else {
long contentPositionMsInternal = getContentPositionMsInternal(state);
j = state.currentAdGroupIndex != -1 ? state.adPositionMsSupplier.get() : contentPositionMsInternal;
j2 = contentPositionMsInternal;
}
return new Player.PositionInfo(obj, currentMediaItemIndexInternal, mediaItem, obj2, i, j, j2, state.currentAdGroupIndex, state.currentAdIndexInAdGroup);
}
private static int getMediaItemTransitionReason(State state, State state2, int i, boolean z, Timeline.Window window) {
Timeline timeline = state.timeline;
Timeline timeline2 = state2.timeline;
if (timeline2.isEmpty() && timeline.isEmpty()) {
return -1;
}
if (timeline2.isEmpty() != timeline.isEmpty()) {
return 3;
}
Object obj = state.timeline.getWindow(getCurrentMediaItemIndexInternal(state), window).uid;
Object obj2 = state2.timeline.getWindow(getCurrentMediaItemIndexInternal(state2), window).uid;
if ((obj instanceof PlaceholderUid) && !(obj2 instanceof PlaceholderUid)) {
return -1;
}
if (!obj.equals(obj2)) {
if (i == 0) {
return 1;
}
return i == 1 ? 2 : 3;
}
if (i != 0 || getContentPositionMsInternal(state) <= getContentPositionMsInternal(state2)) {
return (i == 1 && z) ? 2 : -1;
}
return 0;
}
private static Size getSurfaceHolderSize(SurfaceHolder surfaceHolder) {
if (!surfaceHolder.getSurface().isValid()) {
return Size.ZERO;
}
Rect surfaceFrame = surfaceHolder.getSurfaceFrame();
return new Size(surfaceFrame.width(), surfaceFrame.height());
}
private static int getMediaItemIndexInNewPlaylist(List<MediaItemData> list, Timeline timeline, int i, Timeline.Period period) {
if (!list.isEmpty()) {
Object periodUid = list.get(i).getPeriodUid(0);
if (timeline.getIndexOfPeriod(periodUid) == -1) {
return -1;
}
return timeline.getPeriodByUid(periodUid, period).windowIndex;
}
if (i < timeline.getWindowCount()) {
return i;
}
return -1;
}
private static State getStateWithNewPlaylist(State state, List<MediaItemData> list, Timeline.Period period) {
State.Builder buildUpon = state.buildUpon();
buildUpon.setPlaylist(list);
Timeline timeline = buildUpon.timeline;
long j = state.contentPositionMsSupplier.get();
int currentMediaItemIndexInternal = getCurrentMediaItemIndexInternal(state);
int mediaItemIndexInNewPlaylist = getMediaItemIndexInNewPlaylist(state.playlist, timeline, currentMediaItemIndexInternal, period);
long j2 = mediaItemIndexInNewPlaylist == -1 ? -9223372036854775807L : j;
for (int i = currentMediaItemIndexInternal + 1; mediaItemIndexInNewPlaylist == -1 && i < state.playlist.size(); i++) {
mediaItemIndexInNewPlaylist = getMediaItemIndexInNewPlaylist(state.playlist, timeline, i, period);
}
if (state.playbackState != 1 && mediaItemIndexInNewPlaylist == -1) {
buildUpon.setPlaybackState(4).setIsLoading(false);
}
return buildStateForNewPosition(buildUpon, state, j, list, mediaItemIndexInNewPlaylist, j2, true);
}
/* JADX INFO: Access modifiers changed from: private */
public static State getStateWithNewPlaylistAndPosition(State state, List<MediaItemData> list, int i, long j) {
State.Builder buildUpon = state.buildUpon();
buildUpon.setPlaylist(list);
if (state.playbackState != 1) {
if (list.isEmpty()) {
buildUpon.setPlaybackState(4).setIsLoading(false);
} else {
buildUpon.setPlaybackState(2);
}
}
return buildStateForNewPosition(buildUpon, state, state.contentPositionMsSupplier.get(), list, i, j, false);
}
private static State buildStateForNewPosition(State.Builder builder, State state, long j, List<MediaItemData> list, int i, long j2, boolean z) {
long positionOrDefaultInMediaItem = getPositionOrDefaultInMediaItem(j, state);
boolean z2 = false;
if (!list.isEmpty() && (i == -1 || i >= list.size())) {
j2 = -9223372036854775807L;
i = 0;
}
if (!list.isEmpty() && j2 == -9223372036854775807L) {
j2 = Util.usToMs(list.get(i).defaultPositionUs);
}
boolean z3 = state.playlist.isEmpty() || list.isEmpty();
if (!z3 && !state.playlist.get(getCurrentMediaItemIndexInternal(state)).uid.equals(list.get(i).uid)) {
z2 = true;
}
if (z3 || z2 || j2 < positionOrDefaultInMediaItem) {
builder.setCurrentMediaItemIndex(i).setCurrentAd(-1, -1).setContentPositionMs(j2).setContentBufferedPositionMs(PositionSupplier.getConstant(j2)).setTotalBufferedDurationMs(PositionSupplier.ZERO);
} else if (j2 == positionOrDefaultInMediaItem) {
builder.setCurrentMediaItemIndex(i);
if (state.currentAdGroupIndex != -1 && z) {
builder.setTotalBufferedDurationMs(PositionSupplier.getConstant(state.adBufferedPositionMsSupplier.get() - state.adPositionMsSupplier.get()));
} else {
builder.setCurrentAd(-1, -1).setTotalBufferedDurationMs(PositionSupplier.getConstant(getContentBufferedPositionMsInternal(state) - positionOrDefaultInMediaItem));
}
} else {
builder.setCurrentMediaItemIndex(i).setCurrentAd(-1, -1).setContentPositionMs(j2).setContentBufferedPositionMs(PositionSupplier.getConstant(Math.max(getContentBufferedPositionMsInternal(state), j2))).setTotalBufferedDurationMs(PositionSupplier.getConstant(Math.max(0L, state.totalBufferedDurationMsSupplier.get() - (j2 - positionOrDefaultInMediaItem))));
}
return builder.build();
}
/* JADX INFO: Access modifiers changed from: private */
/* loaded from: classes2.dex */
public static final class PlaceholderUid {
private PlaceholderUid() {
}
}
}