- 28,932 files - Full Java source code - Smali files - Resources Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
139 lines
4.9 KiB
Java
139 lines
4.9 KiB
Java
package com.google.android.exoplayer2.scheduler;
|
|
|
|
import android.content.Context;
|
|
import android.content.Intent;
|
|
import android.content.IntentFilter;
|
|
import android.net.ConnectivityManager;
|
|
import android.net.Network;
|
|
import android.net.NetworkCapabilities;
|
|
import android.net.NetworkInfo;
|
|
import android.os.Parcel;
|
|
import android.os.Parcelable;
|
|
import android.os.PowerManager;
|
|
import com.google.android.exoplayer2.util.Assertions;
|
|
import com.google.android.exoplayer2.util.Util;
|
|
|
|
/* loaded from: classes2.dex */
|
|
public final class Requirements implements Parcelable {
|
|
public static final Parcelable.Creator<Requirements> CREATOR = new Parcelable.Creator() { // from class: com.google.android.exoplayer2.scheduler.Requirements.1
|
|
@Override // android.os.Parcelable.Creator
|
|
public Requirements createFromParcel(Parcel parcel) {
|
|
return new Requirements(parcel.readInt());
|
|
}
|
|
|
|
@Override // android.os.Parcelable.Creator
|
|
public Requirements[] newArray(int i) {
|
|
return new Requirements[i];
|
|
}
|
|
};
|
|
public final int requirements;
|
|
|
|
@Override // android.os.Parcelable
|
|
public int describeContents() {
|
|
return 0;
|
|
}
|
|
|
|
public int hashCode() {
|
|
return this.requirements;
|
|
}
|
|
|
|
public boolean isChargingRequired() {
|
|
return (this.requirements & 8) != 0;
|
|
}
|
|
|
|
public boolean isIdleRequired() {
|
|
return (this.requirements & 4) != 0;
|
|
}
|
|
|
|
public boolean isNetworkRequired() {
|
|
return (this.requirements & 1) != 0;
|
|
}
|
|
|
|
public boolean isStorageNotLowRequired() {
|
|
return (this.requirements & 16) != 0;
|
|
}
|
|
|
|
public boolean isUnmeteredNetworkRequired() {
|
|
return (this.requirements & 2) != 0;
|
|
}
|
|
|
|
public Requirements(int i) {
|
|
this.requirements = (i & 2) != 0 ? i | 1 : i;
|
|
}
|
|
|
|
public int getNotMetRequirements(Context context) {
|
|
int notMetNetworkRequirements = getNotMetNetworkRequirements(context);
|
|
if (isChargingRequired() && !isDeviceCharging(context)) {
|
|
notMetNetworkRequirements |= 8;
|
|
}
|
|
if (isIdleRequired() && !isDeviceIdle(context)) {
|
|
notMetNetworkRequirements |= 4;
|
|
}
|
|
return (!isStorageNotLowRequired() || isStorageNotLow(context)) ? notMetNetworkRequirements : notMetNetworkRequirements | 16;
|
|
}
|
|
|
|
public final int getNotMetNetworkRequirements(Context context) {
|
|
if (!isNetworkRequired()) {
|
|
return 0;
|
|
}
|
|
ConnectivityManager connectivityManager = (ConnectivityManager) Assertions.checkNotNull(context.getSystemService("connectivity"));
|
|
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
|
|
return (activeNetworkInfo != null && activeNetworkInfo.isConnected() && isInternetConnectivityValidated(connectivityManager)) ? (isUnmeteredNetworkRequired() && connectivityManager.isActiveNetworkMetered()) ? 2 : 0 : this.requirements & 3;
|
|
}
|
|
|
|
public final boolean isDeviceCharging(Context context) {
|
|
Intent registerReceiver = context.registerReceiver(null, new IntentFilter("android.intent.action.BATTERY_CHANGED"));
|
|
if (registerReceiver == null) {
|
|
return false;
|
|
}
|
|
int intExtra = registerReceiver.getIntExtra("status", -1);
|
|
return intExtra == 2 || intExtra == 5;
|
|
}
|
|
|
|
public final boolean isDeviceIdle(Context context) {
|
|
PowerManager powerManager = (PowerManager) Assertions.checkNotNull(context.getSystemService("power"));
|
|
int i = Util.SDK_INT;
|
|
if (i >= 23) {
|
|
return powerManager.isDeviceIdleMode();
|
|
}
|
|
return i < 20 ? !powerManager.isScreenOn() : !powerManager.isInteractive();
|
|
}
|
|
|
|
public final boolean isStorageNotLow(Context context) {
|
|
return context.registerReceiver(null, new IntentFilter("android.intent.action.DEVICE_STORAGE_LOW")) == null;
|
|
}
|
|
|
|
public static boolean isInternetConnectivityValidated(ConnectivityManager connectivityManager) {
|
|
if (Util.SDK_INT < 24) {
|
|
return true;
|
|
}
|
|
Network activeNetwork = connectivityManager.getActiveNetwork();
|
|
if (activeNetwork == null) {
|
|
return false;
|
|
}
|
|
try {
|
|
NetworkCapabilities networkCapabilities = connectivityManager.getNetworkCapabilities(activeNetwork);
|
|
if (networkCapabilities != null) {
|
|
if (networkCapabilities.hasCapability(16)) {
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
} catch (SecurityException unused) {
|
|
return true;
|
|
}
|
|
}
|
|
|
|
public boolean equals(Object obj) {
|
|
if (this == obj) {
|
|
return true;
|
|
}
|
|
return obj != null && Requirements.class == obj.getClass() && this.requirements == ((Requirements) obj).requirements;
|
|
}
|
|
|
|
@Override // android.os.Parcelable
|
|
public void writeToParcel(Parcel parcel, int i) {
|
|
parcel.writeInt(this.requirements);
|
|
}
|
|
}
|