CrackMe.apk
Download file
package com.google.android.exoplayer2.source;
import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.SeekParameters;
import com.google.android.exoplayer2.source.MediaPeriod;
import com.google.android.exoplayer2.source.MediaSource;
import com.google.android.exoplayer2.trackselection.ExoTrackSelection;
import com.google.android.exoplayer2.upstream.Allocator;
import com.google.android.exoplayer2.util.Assertions;
import com.google.android.exoplayer2.util.Util;
import java.io.IOException;
import java.util.List;
public final class MaskingMediaPeriod implements MediaPeriod, MediaPeriod.Callback {
private final Allocator allocator;
private MediaPeriod.Callback callback;
public final MediaSource.MediaPeriodId id;
private PrepareListener listener;
private MediaPeriod mediaPeriod;
private MediaSource mediaSource;
private boolean notifiedPrepareError;
private long preparePositionOverrideUs = C.TIME_UNSET;
private final long preparePositionUs;
public interface PrepareListener {
void onPrepareComplete(MediaSource.MediaPeriodId mediaPeriodId);
void onPrepareError(MediaSource.MediaPeriodId mediaPeriodId, IOException iOException);
}
public /* synthetic */ List getStreamKeys(List list) {
return MediaPeriod.CC.$default$getStreamKeys(this, list);
}
public MaskingMediaPeriod(MediaSource.MediaPeriodId mediaPeriodId, Allocator allocator2, long j) {
this.id = mediaPeriodId;
this.allocator = allocator2;
this.preparePositionUs = j;
}
public void setPrepareListener(PrepareListener prepareListener) {
this.listener = prepareListener;
}
public long getPreparePositionUs() {
return this.preparePositionUs;
}
public void overridePreparePositionUs(long j) {
this.preparePositionOverrideUs = j;
}
public long getPreparePositionOverrideUs() {
return this.preparePositionOverrideUs;
}
public void setMediaSource(MediaSource mediaSource2) {
Assertions.checkState(this.mediaSource == null);
this.mediaSource = mediaSource2;
}
public void createPeriod(MediaSource.MediaPeriodId mediaPeriodId) {
long preparePositionWithOverride = getPreparePositionWithOverride(this.preparePositionUs);
MediaPeriod createPeriod = ((MediaSource) Assertions.checkNotNull(this.mediaSource)).createPeriod(mediaPeriodId, this.allocator, preparePositionWithOverride);
this.mediaPeriod = createPeriod;
if (this.callback != null) {
createPeriod.prepare(this, preparePositionWithOverride);
}
}
public void releasePeriod() {
if (this.mediaPeriod != null) {
((MediaSource) Assertions.checkNotNull(this.mediaSource)).releasePeriod(this.mediaPeriod);
}
}
public void prepare(MediaPeriod.Callback callback2, long j) {
this.callback = callback2;
MediaPeriod mediaPeriod2 = this.mediaPeriod;
if (mediaPeriod2 != null) {
mediaPeriod2.prepare(this, getPreparePositionWithOverride(this.preparePositionUs));
}
}
public void maybeThrowPrepareError() throws IOException {
try {
MediaPeriod mediaPeriod2 = this.mediaPeriod;
if (mediaPeriod2 != null) {
mediaPeriod2.maybeThrowPrepareError();
return;
}
MediaSource mediaSource2 = this.mediaSource;
if (mediaSource2 != null) {
mediaSource2.maybeThrowSourceInfoRefreshError();
}
} catch (IOException e) {
PrepareListener prepareListener = this.listener;
if (prepareListener == null) {
throw e;
} else if (!this.notifiedPrepareError) {
this.notifiedPrepareError = true;
prepareListener.onPrepareError(this.id, e);
}
}
}
public TrackGroupArray getTrackGroups() {
return ((MediaPeriod) Util.castNonNull(this.mediaPeriod)).getTrackGroups();
}
public long selectTracks(ExoTrackSelection[] exoTrackSelectionArr, boolean[] zArr, SampleStream[] sampleStreamArr, boolean[] zArr2, long j) {
long j2;
long j3 = this.preparePositionOverrideUs;
if (j3 == C.TIME_UNSET || j != this.preparePositionUs) {
j2 = j;
} else {
this.preparePositionOverrideUs = C.TIME_UNSET;
j2 = j3;
}
return ((MediaPeriod) Util.castNonNull(this.mediaPeriod)).selectTracks(exoTrackSelectionArr, zArr, sampleStreamArr, zArr2, j2);
}
public void discardBuffer(long j, boolean z) {
((MediaPeriod) Util.castNonNull(this.mediaPeriod)).discardBuffer(j, z);
}
public long readDiscontinuity() {
return ((MediaPeriod) Util.castNonNull(this.mediaPeriod)).readDiscontinuity();
}
public long getBufferedPositionUs() {
return ((MediaPeriod) Util.castNonNull(this.mediaPeriod)).getBufferedPositionUs();
}
public long seekToUs(long j) {
return ((MediaPeriod) Util.castNonNull(this.mediaPeriod)).seekToUs(j);
}
public long getAdjustedSeekPositionUs(long j, SeekParameters seekParameters) {
return ((MediaPeriod) Util.castNonNull(this.mediaPeriod)).getAdjustedSeekPositionUs(j, seekParameters);
}
public long getNextLoadPositionUs() {
return ((MediaPeriod) Util.castNonNull(this.mediaPeriod)).getNextLoadPositionUs();
}
public void reevaluateBuffer(long j) {
((MediaPeriod) Util.castNonNull(this.mediaPeriod)).reevaluateBuffer(j);
}
public boolean continueLoading(long j) {
MediaPeriod mediaPeriod2 = this.mediaPeriod;
return mediaPeriod2 != null && mediaPeriod2.continueLoading(j);
}
public boolean isLoading() {
MediaPeriod mediaPeriod2 = this.mediaPeriod;
return mediaPeriod2 != null && mediaPeriod2.isLoading();
}
public void onContinueLoadingRequested(MediaPeriod mediaPeriod2) {
((MediaPeriod.Callback) Util.castNonNull(this.callback)).onContinueLoadingRequested(this);
}
public void onPrepared(MediaPeriod mediaPeriod2) {
((MediaPeriod.Callback) Util.castNonNull(this.callback)).onPrepared(this);
PrepareListener prepareListener = this.listener;
if (prepareListener != null) {
prepareListener.onPrepareComplete(this.id);
}
}
private long getPreparePositionWithOverride(long j) {
long j2 = this.preparePositionOverrideUs;
return j2 != C.TIME_UNSET ? j2 : j;
}
}
Download file