CrackMe.apk
Download file
package com.google.android.exoplayer2.util;
import android.os.Looper;
import android.widget.TextView;
import androidx.core.os.EnvironmentCompat;
import com.google.android.exoplayer2.DeviceInfo;
import com.google.android.exoplayer2.ExoPlayer;
import com.google.android.exoplayer2.Format;
import com.google.android.exoplayer2.MediaItem;
import com.google.android.exoplayer2.MediaMetadata;
import com.google.android.exoplayer2.PlaybackException;
import com.google.android.exoplayer2.PlaybackParameters;
import com.google.android.exoplayer2.Player;
import com.google.android.exoplayer2.Timeline;
import com.google.android.exoplayer2.Tracks;
import com.google.android.exoplayer2.audio.AudioAttributes;
import com.google.android.exoplayer2.decoder.DecoderCounters;
import com.google.android.exoplayer2.metadata.Metadata;
import com.google.android.exoplayer2.text.CueGroup;
import com.google.android.exoplayer2.trackselection.TrackSelectionParameters;
import com.google.android.exoplayer2.video.VideoSize;
import java.util.List;
import java.util.Locale;
public class DebugTextViewHelper {
private static final int REFRESH_INTERVAL_MS = 1000;
private final ExoPlayer player;
private boolean started;
private final TextView textView;
private final Updater updater;
public DebugTextViewHelper(ExoPlayer exoPlayer, TextView textView2) {
Assertions.checkArgument(exoPlayer.getApplicationLooper() == Looper.getMainLooper());
this.player = exoPlayer;
this.textView = textView2;
this.updater = new Updater();
}
public final void start() {
if (!this.started) {
this.started = true;
this.player.addListener(this.updater);
updateAndPost();
}
}
public final void stop() {
if (this.started) {
this.started = false;
this.player.removeListener(this.updater);
this.textView.removeCallbacks(this.updater);
}
}
/* access modifiers changed from: protected */
public final void updateAndPost() {
this.textView.setText(getDebugString());
this.textView.removeCallbacks(this.updater);
this.textView.postDelayed(this.updater, 1000);
}
/* access modifiers changed from: protected */
public String getDebugString() {
return getPlayerStateString() + getVideoString() + getAudioString();
}
/* access modifiers changed from: protected */
public String getPlayerStateString() {
int playbackState = this.player.getPlaybackState();
return String.format("playWhenReady:%s playbackState:%s item:%s", new Object[]{Boolean.valueOf(this.player.getPlayWhenReady()), playbackState != 1 ? playbackState != 2 ? playbackState != 3 ? playbackState != 4 ? EnvironmentCompat.MEDIA_UNKNOWN : "ended" : "ready" : "buffering" : "idle", Integer.valueOf(this.player.getCurrentMediaItemIndex())});
}
/* access modifiers changed from: protected */
public String getVideoString() {
Format videoFormat = this.player.getVideoFormat();
DecoderCounters videoDecoderCounters = this.player.getVideoDecoderCounters();
if (videoFormat == null || videoDecoderCounters == null) {
return "";
}
return "\n" + videoFormat.sampleMimeType + "(id:" + videoFormat.id + " r:" + videoFormat.width + "x" + videoFormat.height + getPixelAspectRatioString(videoFormat.pixelWidthHeightRatio) + getDecoderCountersBufferCountString(videoDecoderCounters) + " vfpo: " + getVideoFrameProcessingOffsetAverageString(videoDecoderCounters.totalVideoFrameProcessingOffsetUs, videoDecoderCounters.videoFrameProcessingOffsetCount) + ")";
}
/* access modifiers changed from: protected */
public String getAudioString() {
Format audioFormat = this.player.getAudioFormat();
DecoderCounters audioDecoderCounters = this.player.getAudioDecoderCounters();
if (audioFormat == null || audioDecoderCounters == null) {
return "";
}
return "\n" + audioFormat.sampleMimeType + "(id:" + audioFormat.id + " hz:" + audioFormat.sampleRate + " ch:" + audioFormat.channelCount + getDecoderCountersBufferCountString(audioDecoderCounters) + ")";
}
private static String getDecoderCountersBufferCountString(DecoderCounters decoderCounters) {
if (decoderCounters == null) {
return "";
}
decoderCounters.ensureUpdated();
return " sib:" + decoderCounters.skippedInputBufferCount + " sb:" + decoderCounters.skippedOutputBufferCount + " rb:" + decoderCounters.renderedOutputBufferCount + " db:" + decoderCounters.droppedBufferCount + " mcdb:" + decoderCounters.maxConsecutiveDroppedBufferCount + " dk:" + decoderCounters.droppedToKeyframeCount;
}
private static String getPixelAspectRatioString(float f) {
if (f == -1.0f || f == 1.0f) {
return "";
}
return " par:" + String.format(Locale.US, "%.02f", new Object[]{Float.valueOf(f)});
}
private static String getVideoFrameProcessingOffsetAverageString(long j, int i) {
return i == 0 ? "N/A" : String.valueOf((long) (((double) j) / ((double) i)));
}
private final class Updater implements Player.Listener, Runnable {
public /* synthetic */ void onAudioAttributesChanged(AudioAttributes audioAttributes) {
Player.Listener.CC.$default$onAudioAttributesChanged(this, audioAttributes);
}
public /* synthetic */ void onAudioSessionIdChanged(int i) {
Player.Listener.CC.$default$onAudioSessionIdChanged(this, i);
}
public /* synthetic */ void onAvailableCommandsChanged(Player.Commands commands) {
Player.Listener.CC.$default$onAvailableCommandsChanged(this, commands);
}
public /* synthetic */ void onCues(CueGroup cueGroup) {
Player.Listener.CC.$default$onCues((Player.Listener) this, cueGroup);
}
public /* synthetic */ void onCues(List list) {
Player.Listener.CC.$default$onCues((Player.Listener) this, list);
}
public /* synthetic */ void onDeviceInfoChanged(DeviceInfo deviceInfo) {
Player.Listener.CC.$default$onDeviceInfoChanged(this, deviceInfo);
}
public /* synthetic */ void onDeviceVolumeChanged(int i, boolean z) {
Player.Listener.CC.$default$onDeviceVolumeChanged(this, i, z);
}
public /* synthetic */ void onEvents(Player player, Player.Events events) {
Player.Listener.CC.$default$onEvents(this, player, events);
}
public /* synthetic */ void onIsLoadingChanged(boolean z) {
Player.Listener.CC.$default$onIsLoadingChanged(this, z);
}
public /* synthetic */ void onIsPlayingChanged(boolean z) {
Player.Listener.CC.$default$onIsPlayingChanged(this, z);
}
public /* synthetic */ void onLoadingChanged(boolean z) {
Player.Listener.CC.$default$onLoadingChanged(this, z);
}
public /* synthetic */ void onMaxSeekToPreviousPositionChanged(long j) {
Player.Listener.CC.$default$onMaxSeekToPreviousPositionChanged(this, j);
}
public /* synthetic */ void onMediaItemTransition(MediaItem mediaItem, int i) {
Player.Listener.CC.$default$onMediaItemTransition(this, mediaItem, i);
}
public /* synthetic */ void onMediaMetadataChanged(MediaMetadata mediaMetadata) {
Player.Listener.CC.$default$onMediaMetadataChanged(this, mediaMetadata);
}
public /* synthetic */ void onMetadata(Metadata metadata) {
Player.Listener.CC.$default$onMetadata(this, metadata);
}
public /* synthetic */ void onPlaybackParametersChanged(PlaybackParameters playbackParameters) {
Player.Listener.CC.$default$onPlaybackParametersChanged(this, playbackParameters);
}
public /* synthetic */ void onPlaybackSuppressionReasonChanged(int i) {
Player.Listener.CC.$default$onPlaybackSuppressionReasonChanged(this, i);
}
public /* synthetic */ void onPlayerError(PlaybackException playbackException) {
Player.Listener.CC.$default$onPlayerError(this, playbackException);
}
public /* synthetic */ void onPlayerErrorChanged(PlaybackException playbackException) {
Player.Listener.CC.$default$onPlayerErrorChanged(this, playbackException);
}
public /* synthetic */ void onPlayerStateChanged(boolean z, int i) {
Player.Listener.CC.$default$onPlayerStateChanged(this, z, i);
}
public /* synthetic */ void onPlaylistMetadataChanged(MediaMetadata mediaMetadata) {
Player.Listener.CC.$default$onPlaylistMetadataChanged(this, mediaMetadata);
}
public /* synthetic */ void onPositionDiscontinuity(int i) {
Player.Listener.CC.$default$onPositionDiscontinuity(this, i);
}
public /* synthetic */ void onRenderedFirstFrame() {
Player.Listener.CC.$default$onRenderedFirstFrame(this);
}
public /* synthetic */ void onRepeatModeChanged(int i) {
Player.Listener.CC.$default$onRepeatModeChanged(this, i);
}
public /* synthetic */ void onSeekBackIncrementChanged(long j) {
Player.Listener.CC.$default$onSeekBackIncrementChanged(this, j);
}
public /* synthetic */ void onSeekForwardIncrementChanged(long j) {
Player.Listener.CC.$default$onSeekForwardIncrementChanged(this, j);
}
public /* synthetic */ void onSeekProcessed() {
Player.Listener.CC.$default$onSeekProcessed(this);
}
public /* synthetic */ void onShuffleModeEnabledChanged(boolean z) {
Player.Listener.CC.$default$onShuffleModeEnabledChanged(this, z);
}
public /* synthetic */ void onSkipSilenceEnabledChanged(boolean z) {
Player.Listener.CC.$default$onSkipSilenceEnabledChanged(this, z);
}
public /* synthetic */ void onSurfaceSizeChanged(int i, int i2) {
Player.Listener.CC.$default$onSurfaceSizeChanged(this, i, i2);
}
public /* synthetic */ void onTimelineChanged(Timeline timeline, int i) {
Player.Listener.CC.$default$onTimelineChanged(this, timeline, i);
}
public /* synthetic */ void onTrackSelectionParametersChanged(TrackSelectionParameters trackSelectionParameters) {
Player.Listener.CC.$default$onTrackSelectionParametersChanged(this, trackSelectionParameters);
}
public /* synthetic */ void onTracksChanged(Tracks tracks) {
Player.Listener.CC.$default$onTracksChanged(this, tracks);
}
public /* synthetic */ void onVideoSizeChanged(VideoSize videoSize) {
Player.Listener.CC.$default$onVideoSizeChanged(this, videoSize);
}
public /* synthetic */ void onVolumeChanged(float f) {
Player.Listener.CC.$default$onVolumeChanged(this, f);
}
private Updater() {
}
public void onPlaybackStateChanged(int i) {
DebugTextViewHelper.this.updateAndPost();
}
public void onPlayWhenReadyChanged(boolean z, int i) {
DebugTextViewHelper.this.updateAndPost();
}
public void onPositionDiscontinuity(Player.PositionInfo positionInfo, Player.PositionInfo positionInfo2, int i) {
DebugTextViewHelper.this.updateAndPost();
}
public void run() {
DebugTextViewHelper.this.updateAndPost();
}
}
}
Download file