.class public final Lcom/discord/utilities/io/NetworkUtils; .super Ljava/lang/Object; .source "NetworkUtils.kt" # annotations .annotation system Ldalvik/annotation/MemberClasses; value = { Lcom/discord/utilities/io/NetworkUtils$NetworkDownloadReceiver;, Lcom/discord/utilities/io/NetworkUtils$DownloadManagerNotFound;, Lcom/discord/utilities/io/NetworkUtils$DownloadManagerEnqueueFailure;, Lcom/discord/utilities/io/NetworkUtils$DownloadManagerFileNoFound; } .end annotation # static fields .field public static final INSTANCE:Lcom/discord/utilities/io/NetworkUtils; .field public static final onDownloadListeners:Ljava/util/Map; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/Map<", "Ljava/lang/Long;", "Lkotlin/jvm/functions/Function0<", "Lkotlin/Unit;", ">;>;" } .end annotation .end field # direct methods .method public static constructor ()V .locals 1 new-instance v0, Lcom/discord/utilities/io/NetworkUtils; invoke-direct {v0}, Lcom/discord/utilities/io/NetworkUtils;->()V sput-object v0, Lcom/discord/utilities/io/NetworkUtils;->INSTANCE:Lcom/discord/utilities/io/NetworkUtils; new-instance v0, Ljava/util/LinkedHashMap; invoke-direct {v0}, Ljava/util/LinkedHashMap;->()V sput-object v0, Lcom/discord/utilities/io/NetworkUtils;->onDownloadListeners:Ljava/util/Map; return-void .end method .method public constructor ()V .locals 0 invoke-direct {p0}, Ljava/lang/Object;->()V return-void .end method .method public static final synthetic access$getOnDownloadListeners$p(Lcom/discord/utilities/io/NetworkUtils;)Ljava/util/Map; .locals 0 sget-object p0, Lcom/discord/utilities/io/NetworkUtils;->onDownloadListeners:Ljava/util/Map; return-object p0 .end method .method public static final downloadFile(Landroid/content/Context;Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)V .locals 7 .annotation build Landroidx/annotation/RequiresPermission; conditional = true value = "android.permission.WRITE_EXTERNAL_STORAGE" .end annotation .annotation build Landroidx/annotation/UiThread; .end annotation .annotation system Ldalvik/annotation/Signature; value = { "(", "Landroid/content/Context;", "Landroid/net/Uri;", "Ljava/lang/String;", "Ljava/lang/String;", "Lkotlin/jvm/functions/Function1<", "-", "Ljava/lang/String;", "Lkotlin/Unit;", ">;", "Lkotlin/jvm/functions/Function1<", "-", "Ljava/lang/Throwable;", "Lkotlin/Unit;", ">;)V" } .end annotation const-string/jumbo v0, "uri" invoke-static {p1, v0}, Lk0/n/c/i;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V const-string v0, "onSuccess" invoke-static {p4, v0}, Lk0/n/c/i;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V const-string v0, "onError" invoke-static {p5, v0}, Lk0/n/c/i;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V const/4 v0, 0x0 if-eqz p0, :cond_0 const-string v1, "download" invoke-virtual {p0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; move-result-object p0 goto :goto_0 :cond_0 move-object p0, v0 :goto_0 instance-of v1, p0, Landroid/app/DownloadManager; if-nez v1, :cond_1 goto :goto_1 :cond_1 move-object v0, p0 :goto_1 move-object v4, v0 check-cast v4, Landroid/app/DownloadManager; const-wide/16 v0, 0x1 if-eqz v4, :cond_4 if-eqz p2, :cond_2 goto :goto_2 :cond_2 :try_start_0 invoke-virtual {p1}, Landroid/net/Uri;->getLastPathSegment()Ljava/lang/String; move-result-object p2 :goto_2 new-instance p0, Landroid/app/DownloadManager$Request; invoke-direct {p0, p1}, Landroid/app/DownloadManager$Request;->(Landroid/net/Uri;)V invoke-virtual {p0, p2}, Landroid/app/DownloadManager$Request;->setTitle(Ljava/lang/CharSequence;)Landroid/app/DownloadManager$Request; move-result-object p0 invoke-virtual {p0, p3}, Landroid/app/DownloadManager$Request;->setDescription(Ljava/lang/CharSequence;)Landroid/app/DownloadManager$Request; move-result-object p0 const/4 p1, 0x1 invoke-virtual {p0, p1}, Landroid/app/DownloadManager$Request;->setNotificationVisibility(I)Landroid/app/DownloadManager$Request; move-result-object p0 sget-object p1, Landroid/os/Environment;->DIRECTORY_DOWNLOADS:Ljava/lang/String; if-eqz p2, :cond_3 invoke-static {p2}, Lcom/discord/utilities/string/StringUtilsKt;->filenameSanitized(Ljava/lang/CharSequence;)Ljava/lang/String; move-result-object p2 if-eqz p2, :cond_3 goto :goto_3 :cond_3 const-string p2, "file" :goto_3 invoke-virtual {p0, p1, p2}, Landroid/app/DownloadManager$Request;->setDestinationInExternalPublicDir(Ljava/lang/String;Ljava/lang/String;)Landroid/app/DownloadManager$Request; move-result-object p0 invoke-virtual {p0}, Landroid/app/DownloadManager$Request;->allowScanningByMediaScanner()V invoke-virtual {v4, p0}, Landroid/app/DownloadManager;->enqueue(Landroid/app/DownloadManager$Request;)J move-result-wide p0 :try_end_0 .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 move-wide v2, p0 goto :goto_4 :catch_0 move-exception p0 invoke-interface {p5, p0}, Lkotlin/jvm/functions/Function1;->invoke(Ljava/lang/Object;)Ljava/lang/Object; return-void :cond_4 move-wide v2, v0 :goto_4 cmp-long p0, v2, v0 if-nez p0, :cond_5 new-instance p0, Lcom/discord/utilities/io/NetworkUtils$DownloadManagerNotFound; invoke-direct {p0}, Lcom/discord/utilities/io/NetworkUtils$DownloadManagerNotFound;->()V invoke-interface {p5, p0}, Lkotlin/jvm/functions/Function1;->invoke(Ljava/lang/Object;)Ljava/lang/Object; goto :goto_5 :cond_5 const-wide/16 p0, 0x0 cmp-long p2, v2, p0 if-nez p2, :cond_6 new-instance p0, Lcom/discord/utilities/io/NetworkUtils$DownloadManagerEnqueueFailure; invoke-direct {p0}, Lcom/discord/utilities/io/NetworkUtils$DownloadManagerEnqueueFailure;->()V invoke-interface {p5, p0}, Lkotlin/jvm/functions/Function1;->invoke(Ljava/lang/Object;)Ljava/lang/Object; goto :goto_5 :cond_6 sget-object p0, Lcom/discord/utilities/io/NetworkUtils;->onDownloadListeners:Ljava/util/Map; invoke-static {v2, v3}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; move-result-object p1 new-instance p2, Lcom/discord/utilities/io/NetworkUtils$downloadFile$1; move-object v1, p2 move-object v5, p4 move-object v6, p5 invoke-direct/range {v1 .. v6}, Lcom/discord/utilities/io/NetworkUtils$downloadFile$1;->(JLandroid/app/DownloadManager;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)V invoke-interface {p0, p1, p2}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; :goto_5 return-void .end method .method public static synthetic isDeviceConnected$default(Lcom/discord/utilities/io/NetworkUtils;Landroid/content/Context;Landroid/content/Intent;ILjava/lang/Object;)Z .locals 0 and-int/lit8 p3, p3, 0x2 if-eqz p3, :cond_0 const/4 p2, 0x0 :cond_0 invoke-virtual {p0, p1, p2}, Lcom/discord/utilities/io/NetworkUtils;->isDeviceConnected(Landroid/content/Context;Landroid/content/Intent;)Z move-result p0 return p0 .end method # virtual methods .method public final getNetworkType(Landroid/content/Context;)Ljava/lang/Integer; .locals 2 const-string v0, "context" invoke-static {p1, v0}, Lk0/n/c/i;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V const/4 v0, 0x0 :try_start_0 const-string v1, "connectivity" invoke-virtual {p1, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; move-result-object p1 if-eqz p1, :cond_0 check-cast p1, Landroid/net/ConnectivityManager; invoke-virtual {p1}, Landroid/net/ConnectivityManager;->getActiveNetworkInfo()Landroid/net/NetworkInfo; move-result-object p1 if-eqz p1, :cond_1 invoke-virtual {p1}, Landroid/net/NetworkInfo;->getType()I move-result p1 invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p1 move-object v0, p1 goto :goto_0 :cond_0 new-instance p1, Ljava/lang/NullPointerException; const-string v1, "null cannot be cast to non-null type android.net.ConnectivityManager" invoke-direct {p1, v1}, Ljava/lang/NullPointerException;->(Ljava/lang/String;)V throw p1 :try_end_0 .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 :catch_0 :cond_1 :goto_0 return-object v0 .end method .method public final isAirplaneModeOn(Landroid/content/Context;)Z .locals 2 const-string v0, "context" invoke-static {p1, v0}, Lk0/n/c/i;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V invoke-virtual {p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver; move-result-object p1 const-string v0, "airplane_mode_on" const/4 v1, 0x0 invoke-static {p1, v0, v1}, Landroid/provider/Settings$Global;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I move-result p1 if-eqz p1, :cond_0 const/4 v1, 0x1 :cond_0 return v1 .end method .method public final isDeviceConnected(Landroid/content/Context;Landroid/content/Intent;)Z .locals 9 const-string v0, "context" invoke-static {p1, v0}, Lk0/n/c/i;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V const/4 v0, 0x1 :try_start_0 const-string v1, "connectivity" invoke-virtual {p1, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; move-result-object p1 if-eqz p1, :cond_7 check-cast p1, Landroid/net/ConnectivityManager; invoke-virtual {p1}, Landroid/net/ConnectivityManager;->getActiveNetworkInfo()Landroid/net/NetworkInfo; move-result-object v1 const/4 v2, 0x0 if-eqz p2, :cond_0 const-string v3, "networkInfo" invoke-virtual {p2, v3}, Landroid/content/Intent;->getParcelableExtra(Ljava/lang/String;)Landroid/os/Parcelable; move-result-object p2 check-cast p2, Landroid/net/NetworkInfo; goto :goto_0 :cond_0 move-object p2, v2 :goto_0 const/4 v3, 0x2 new-array v4, v3, [Landroid/net/NetworkInfo; const/4 v5, 0x0 aput-object v1, v4, v5 aput-object p2, v4, v0 invoke-virtual {p1}, Landroid/net/ConnectivityManager;->getAllNetworks()[Landroid/net/Network; move-result-object p2 const-string v1, "connectivityManager.allNetworks" invoke-static {p2, v1}, Lk0/n/c/i;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V new-instance v1, Ljava/util/ArrayList; array-length v6, p2 invoke-direct {v1, v6}, Ljava/util/ArrayList;->(I)V array-length v6, p2 const/4 v7, 0x0 :goto_1 if-ge v7, v6, :cond_1 aget-object v8, p2, v7 invoke-virtual {p1, v8}, Landroid/net/ConnectivityManager;->getNetworkInfo(Landroid/net/Network;)Landroid/net/NetworkInfo; move-result-object v8 invoke-interface {v1, v8}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z add-int/lit8 v7, v7, 0x1 goto :goto_1 :cond_1 const-string p1, "$this$plus" invoke-static {v4, p1}, Lk0/n/c/i;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V const-string p1, "elements" invoke-static {v1, p1}, Lk0/n/c/i;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V invoke-interface {v1}, Ljava/util/Collection;->size()I move-result p1 add-int/2addr p1, v3 invoke-static {v4, p1}, Ljava/util/Arrays;->copyOf([Ljava/lang/Object;I)[Ljava/lang/Object; move-result-object p1 invoke-interface {v1}, Ljava/util/Collection;->iterator()Ljava/util/Iterator; move-result-object p2 :goto_2 invoke-interface {p2}, Ljava/util/Iterator;->hasNext()Z move-result v1 if-eqz v1, :cond_2 invoke-interface {p2}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v1 add-int/lit8 v4, v3, 0x1 aput-object v1, p1, v3 move v3, v4 goto :goto_2 :cond_2 const-string p2, "result" invoke-static {p1, p2}, Lk0/n/c/i;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V array-length p2, p1 const/4 v1, 0x0 :goto_3 if-ge v1, p2, :cond_5 aget-object v3, p1, v1 move-object v4, v3 check-cast v4, Landroid/net/NetworkInfo; if-eqz v4, :cond_3 invoke-virtual {v4}, Landroid/net/NetworkInfo;->isConnectedOrConnecting()Z move-result v4 if-ne v4, v0, :cond_3 const/4 v4, 0x1 goto :goto_4 :cond_3 const/4 v4, 0x0 :goto_4 if-eqz v4, :cond_4 move-object v2, v3 goto :goto_5 :cond_4 add-int/lit8 v1, v1, 0x1 goto :goto_3 :cond_5 :goto_5 check-cast v2, Landroid/net/NetworkInfo; if-eqz v2, :cond_6 goto :goto_6 :cond_6 const/4 v0, 0x0 goto :goto_6 :cond_7 new-instance p1, Ljava/lang/NullPointerException; const-string p2, "null cannot be cast to non-null type android.net.ConnectivityManager" invoke-direct {p1, p2}, Ljava/lang/NullPointerException;->(Ljava/lang/String;)V throw p1 :try_end_0 .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 :catch_0 :goto_6 return v0 .end method