206 lines
9.3 KiB
Java
206 lines
9.3 KiB
Java
package com.discord.utilities.io;
|
|
|
|
import android.app.DownloadManager;
|
|
import android.content.BroadcastReceiver;
|
|
import android.content.Context;
|
|
import android.content.Intent;
|
|
import android.net.ConnectivityManager;
|
|
import android.net.Network;
|
|
import android.net.NetworkCapabilities;
|
|
import android.net.NetworkInfo;
|
|
import android.net.Uri;
|
|
import android.os.Build;
|
|
import android.os.Environment;
|
|
import android.provider.Settings;
|
|
import androidx.annotation.MainThread;
|
|
import androidx.annotation.RequiresPermission;
|
|
import com.discord.utilities.logging.Logger;
|
|
import com.discord.utilities.string.StringUtilsKt;
|
|
import d0.t.j;
|
|
import d0.z.d.m;
|
|
import java.util.ArrayList;
|
|
import java.util.LinkedHashMap;
|
|
import java.util.Map;
|
|
import kotlin.Unit;
|
|
import kotlin.jvm.functions.Function0;
|
|
import kotlin.jvm.functions.Function1;
|
|
/* compiled from: NetworkUtils.kt */
|
|
public final class NetworkUtils {
|
|
public static final NetworkUtils INSTANCE = new NetworkUtils();
|
|
private static final Map<Long, Function0<Unit>> onDownloadListeners = new LinkedHashMap();
|
|
|
|
/* compiled from: NetworkUtils.kt */
|
|
public static final class DownloadManagerEnqueueFailure extends Throwable {
|
|
}
|
|
|
|
/* compiled from: NetworkUtils.kt */
|
|
public static final class DownloadManagerFileNoFound extends Throwable {
|
|
}
|
|
|
|
/* compiled from: NetworkUtils.kt */
|
|
public static final class DownloadManagerNotFound extends Throwable {
|
|
}
|
|
|
|
/* compiled from: NetworkUtils.kt */
|
|
public static final class NetworkDownloadReceiver extends BroadcastReceiver {
|
|
@Override // android.content.BroadcastReceiver
|
|
public void onReceive(Context context, Intent intent) {
|
|
m.checkNotNullParameter(context, "context");
|
|
String action = intent != null ? intent.getAction() : null;
|
|
if (action != null && action.hashCode() == 1248865515 && action.equals("android.intent.action.DOWNLOAD_COMPLETE")) {
|
|
Function0 function0 = (Function0) NetworkUtils.access$getOnDownloadListeners$p(NetworkUtils.INSTANCE).get(Long.valueOf(intent.getLongExtra("extra_download_id", 0)));
|
|
if (function0 != null) {
|
|
Unit unit = (Unit) function0.mo1invoke();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
private NetworkUtils() {
|
|
}
|
|
|
|
public static final /* synthetic */ Map access$getOnDownloadListeners$p(NetworkUtils networkUtils) {
|
|
return onDownloadListeners;
|
|
}
|
|
|
|
@RequiresPermission(conditional = true, value = "android.permission.WRITE_EXTERNAL_STORAGE")
|
|
@MainThread
|
|
public static final void downloadFile(Context context, Uri uri, String str, String str2, Function1<? super String, Unit> function1, Function1<? super Throwable, Unit> function12) {
|
|
long j;
|
|
String str3;
|
|
m.checkNotNullParameter(uri, "uri");
|
|
m.checkNotNullParameter(function1, "onSuccess");
|
|
m.checkNotNullParameter(function12, "onError");
|
|
DownloadManager downloadManager = null;
|
|
Object systemService = context != null ? context.getSystemService("download") : null;
|
|
if (systemService instanceof DownloadManager) {
|
|
downloadManager = systemService;
|
|
}
|
|
DownloadManager downloadManager2 = downloadManager;
|
|
if (downloadManager2 != null) {
|
|
if (str == null) {
|
|
try {
|
|
str = uri.getLastPathSegment();
|
|
} catch (Exception e) {
|
|
function12.invoke(e);
|
|
return;
|
|
}
|
|
}
|
|
DownloadManager.Request notificationVisibility = new DownloadManager.Request(uri).setTitle(str).setDescription(str2).setNotificationVisibility(1);
|
|
String str4 = Environment.DIRECTORY_DOWNLOADS;
|
|
if (str == null || (str3 = StringUtilsKt.filenameSanitized(str)) == null) {
|
|
str3 = "file";
|
|
}
|
|
DownloadManager.Request destinationInExternalPublicDir = notificationVisibility.setDestinationInExternalPublicDir(str4, str3);
|
|
destinationInExternalPublicDir.allowScanningByMediaScanner();
|
|
j = downloadManager2.enqueue(destinationInExternalPublicDir);
|
|
} else {
|
|
j = 1;
|
|
}
|
|
if (j == 1) {
|
|
function12.invoke(new DownloadManagerNotFound());
|
|
} else if (j == 0) {
|
|
function12.invoke(new DownloadManagerEnqueueFailure());
|
|
} else {
|
|
onDownloadListeners.put(Long.valueOf(j), new NetworkUtils$downloadFile$1(j, downloadManager2, function1, function12));
|
|
}
|
|
}
|
|
|
|
public static /* synthetic */ boolean isDeviceConnected$default(NetworkUtils networkUtils, Context context, Intent intent, Logger logger, int i, Object obj) {
|
|
if ((i & 2) != 0) {
|
|
intent = null;
|
|
}
|
|
if ((i & 4) != 0) {
|
|
logger = null;
|
|
}
|
|
return networkUtils.isDeviceConnected(context, intent, logger);
|
|
}
|
|
|
|
public final Integer getNetworkType(Context context) {
|
|
m.checkNotNullParameter(context, "context");
|
|
try {
|
|
Object systemService = context.getSystemService("connectivity");
|
|
if (systemService != null) {
|
|
NetworkInfo activeNetworkInfo = ((ConnectivityManager) systemService).getActiveNetworkInfo();
|
|
if (activeNetworkInfo != null) {
|
|
return Integer.valueOf(activeNetworkInfo.getType());
|
|
}
|
|
return null;
|
|
}
|
|
throw new NullPointerException("null cannot be cast to non-null type android.net.ConnectivityManager");
|
|
} catch (Exception unused) {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
public final boolean isAirplaneModeOn(Context context) {
|
|
m.checkNotNullParameter(context, "context");
|
|
return Settings.Global.getInt(context.getContentResolver(), "airplane_mode_on", 0) != 0;
|
|
}
|
|
|
|
/* JADX DEBUG: Failed to insert an additional move for type inference into block B:55:0x0061 */
|
|
/* JADX DEBUG: Failed to insert an additional move for type inference into block B:58:0x00ba */
|
|
/* JADX WARN: Multi-variable type inference failed */
|
|
/* JADX WARNING: Unknown variable types count: 2 */
|
|
public final boolean isDeviceConnected(Context context, Intent intent, Logger logger) {
|
|
m.checkNotNullParameter(context, "context");
|
|
try {
|
|
Object systemService = context.getSystemService("connectivity");
|
|
if (systemService != null) {
|
|
ConnectivityManager connectivityManager = (ConnectivityManager) systemService;
|
|
NetworkInfo networkInfo = null;
|
|
if (Build.VERSION.SDK_INT >= 23) {
|
|
Network[] allNetworks = connectivityManager.getAllNetworks();
|
|
m.checkNotNullExpressionValue(allNetworks, "connectivityManager.allNetworks");
|
|
int length = allNetworks.length;
|
|
int i = 0;
|
|
while (true) {
|
|
if (i >= length) {
|
|
break;
|
|
}
|
|
Network network = allNetworks[i];
|
|
NetworkCapabilities networkCapabilities = connectivityManager.getNetworkCapabilities(network);
|
|
if ((networkCapabilities != null && networkCapabilities.hasCapability(12)) || (networkCapabilities != null && networkCapabilities.hasTransport(1)) || ((networkCapabilities != null && networkCapabilities.hasTransport(0)) || ((networkCapabilities != null && networkCapabilities.hasTransport(3)) || (networkCapabilities != null && networkCapabilities.hasTransport(4))))) {
|
|
networkInfo = network;
|
|
break;
|
|
}
|
|
i++;
|
|
}
|
|
if (networkInfo != null) {
|
|
return true;
|
|
}
|
|
} else {
|
|
NetworkInfo[] networkInfoArr = {connectivityManager.getActiveNetworkInfo(), intent != null ? (NetworkInfo) intent.getParcelableExtra("networkInfo") : null};
|
|
Network[] allNetworks2 = connectivityManager.getAllNetworks();
|
|
m.checkNotNullExpressionValue(allNetworks2, "connectivityManager.allNetworks");
|
|
ArrayList arrayList = new ArrayList(allNetworks2.length);
|
|
for (Network network2 : allNetworks2) {
|
|
arrayList.add(connectivityManager.getNetworkInfo(network2));
|
|
}
|
|
?? plus = j.plus(networkInfoArr, arrayList);
|
|
int length2 = plus.length;
|
|
int i2 = 0;
|
|
while (true) {
|
|
if (i2 >= length2) {
|
|
break;
|
|
}
|
|
?? r1 = plus[i2];
|
|
NetworkInfo networkInfo2 = (NetworkInfo) r1;
|
|
if (networkInfo2 != null && networkInfo2.isConnectedOrConnecting()) {
|
|
networkInfo = r1;
|
|
break;
|
|
}
|
|
i2++;
|
|
}
|
|
if (networkInfo != null) {
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
throw new NullPointerException("null cannot be cast to non-null type android.net.ConnectivityManager");
|
|
} catch (Exception unused) {
|
|
return true;
|
|
}
|
|
}
|
|
}
|