CrackMe.apk
Download file
package com.google.android.exoplayer2;
import android.os.Bundle;
import com.google.android.exoplayer2.Bundleable;
import com.google.android.exoplayer2.source.TrackGroup;
import com.google.android.exoplayer2.util.Assertions;
import com.google.android.exoplayer2.util.BundleableUtil;
import com.google.common.collect.ImmutableList;
import com.google.common.primitives.Booleans;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public final class Tracks implements Bundleable {
public static final Bundleable.Creator<Tracks> CREATOR = Tracks$$ExternalSyntheticLambda0.INSTANCE;
public static final Tracks EMPTY = new Tracks(ImmutableList.of());
private static final int FIELD_TRACK_GROUPS = 0;
private final ImmutableList<Group> groups;
public static final class Group implements Bundleable {
public static final Bundleable.Creator<Group> CREATOR = Tracks$Group$$ExternalSyntheticLambda0.INSTANCE;
private static final int FIELD_ADAPTIVE_SUPPORTED = 4;
private static final int FIELD_TRACK_GROUP = 0;
private static final int FIELD_TRACK_SELECTED = 3;
private static final int FIELD_TRACK_SUPPORT = 1;
private final boolean adaptiveSupported;
public final int length;
private final TrackGroup mediaTrackGroup;
private final boolean[] trackSelected;
private final int[] trackSupport;
public Group(TrackGroup trackGroup, boolean z, int[] iArr, boolean[] zArr) {
int i = trackGroup.length;
this.length = i;
boolean z2 = false;
Assertions.checkArgument(i == iArr.length && i == zArr.length);
this.mediaTrackGroup = trackGroup;
if (z && i > 1) {
z2 = true;
}
this.adaptiveSupported = z2;
this.trackSupport = (int[]) iArr.clone();
this.trackSelected = (boolean[]) zArr.clone();
}
public TrackGroup getMediaTrackGroup() {
return this.mediaTrackGroup;
}
public Format getTrackFormat(int i) {
return this.mediaTrackGroup.getFormat(i);
}
public int getTrackSupport(int i) {
return this.trackSupport[i];
}
public boolean isTrackSupported(int i) {
return isTrackSupported(i, false);
}
public boolean isTrackSupported(int i, boolean z) {
int[] iArr = this.trackSupport;
return iArr[i] == 4 || (z && iArr[i] == 3);
}
public boolean isSelected() {
return Booleans.contains(this.trackSelected, true);
}
public boolean isAdaptiveSupported() {
return this.adaptiveSupported;
}
public boolean isSupported() {
return isSupported(false);
}
public boolean isSupported(boolean z) {
for (int i = 0; i < this.trackSupport.length; i++) {
if (isTrackSupported(i, z)) {
return true;
}
}
return false;
}
public boolean isTrackSelected(int i) {
return this.trackSelected[i];
}
public int getType() {
return this.mediaTrackGroup.type;
}
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null || getClass() != obj.getClass()) {
return false;
}
Group group = (Group) obj;
if (this.adaptiveSupported != group.adaptiveSupported || !this.mediaTrackGroup.equals(group.mediaTrackGroup) || !Arrays.equals(this.trackSupport, group.trackSupport) || !Arrays.equals(this.trackSelected, group.trackSelected)) {
return false;
}
return true;
}
public int hashCode() {
return (((((this.mediaTrackGroup.hashCode() * 31) + (this.adaptiveSupported ? 1 : 0)) * 31) + Arrays.hashCode(this.trackSupport)) * 31) + Arrays.hashCode(this.trackSelected);
}
public Bundle toBundle() {
Bundle bundle = new Bundle();
bundle.putBundle(keyForField(0), this.mediaTrackGroup.toBundle());
bundle.putIntArray(keyForField(1), this.trackSupport);
bundle.putBooleanArray(keyForField(3), this.trackSelected);
bundle.putBoolean(keyForField(4), this.adaptiveSupported);
return bundle;
}
private static String keyForField(int i) {
return Integer.toString(i, 36);
}
}
public Tracks(List<Group> list) {
this.groups = ImmutableList.copyOf(list);
}
public ImmutableList<Group> getGroups() {
return this.groups;
}
public boolean isEmpty() {
return this.groups.isEmpty();
}
public boolean containsType(int i) {
for (int i2 = 0; i2 < this.groups.size(); i2++) {
if (((Group) this.groups.get(i2)).getType() == i) {
return true;
}
}
return false;
}
public boolean isTypeSupported(int i) {
return isTypeSupported(i, false);
}
public boolean isTypeSupported(int i, boolean z) {
for (int i2 = 0; i2 < this.groups.size(); i2++) {
if (((Group) this.groups.get(i2)).getType() == i && ((Group) this.groups.get(i2)).isSupported(z)) {
return true;
}
}
return false;
}
@Deprecated
public boolean isTypeSupportedOrEmpty(int i) {
return isTypeSupportedOrEmpty(i, false);
}
@Deprecated
public boolean isTypeSupportedOrEmpty(int i, boolean z) {
return !containsType(i) || isTypeSupported(i, z);
}
public boolean isTypeSelected(int i) {
for (int i2 = 0; i2 < this.groups.size(); i2++) {
Group group = (Group) this.groups.get(i2);
if (group.isSelected() && group.getType() == i) {
return true;
}
}
return false;
}
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null || getClass() != obj.getClass()) {
return false;
}
return this.groups.equals(((Tracks) obj).groups);
}
public int hashCode() {
return this.groups.hashCode();
}
public Bundle toBundle() {
Bundle bundle = new Bundle();
bundle.putParcelableArrayList(keyForField(0), BundleableUtil.toBundleArrayList(this.groups));
return bundle;
}
static /* synthetic */ Tracks lambda$static$0(Bundle bundle) {
ImmutableList<Group> immutableList;
ArrayList parcelableArrayList = bundle.getParcelableArrayList(keyForField(0));
if (parcelableArrayList == null) {
immutableList = ImmutableList.of();
} else {
immutableList = BundleableUtil.fromBundleList(Group.CREATOR, parcelableArrayList);
}
return new Tracks(immutableList);
}
private static String keyForField(int i) {
return Integer.toString(i, 36);
}
}
Download file