NetworkMonitor.smali
.class public Lcom/kwai/video/hodor/NetworkMonitor;
.super Ljava/lang/Object;
# static fields
.field private static final HodorMobileType_MOBILE_2G:I = 0x1
.field private static final HodorMobileType_MOBILE_3G:I = 0x2
.field private static final HodorMobileType_MOBILE_4G:I = 0x3
.field private static final HodorMobileType_MOBILE_5G:I = 0x4
.field private static final HodorMobileType_UNKNOWN:I
# direct methods
.method public constructor <init>()V
.registers 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method private static emptyStringIfNull(Ljava/lang/String;)Ljava/lang/String;
.registers 1
if-nez p0, :cond_4
const-string p0, ""
:cond_4
return-object p0
.end method
.method public static getMobileType(Landroid/content/Context;)Landroid/util/Pair;
.registers 7
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroid/content/Context;",
")",
"Landroid/util/Pair",
"<",
"Ljava/lang/Integer;",
"Ljava/lang/String;",
">;"
}
.end annotation
const/4 v5, 0x1
const/4 v4, 0x0
const-string v0, "phone"
invoke-virtual {p0, v0}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/telephony/TelephonyManager;
invoke-virtual {v0}, Landroid/telephony/TelephonyManager;->getNetworkType()I
move-result v0
const-string v1, "[NetworkMonitor.getMobileType]mobileType:%d"
new-array v2, v5, [Ljava/lang/Object;
invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v3
aput-object v3, v2, v4
invoke-static {v1, v2}, Lcom/kwai/video/hodor/util/Timber;->d(Ljava/lang/String;[Ljava/lang/Object;)V
packed-switch v0, :pswitch_data_58
:pswitch_1e
invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v0
const-string v1, "UNKNOWN"
invoke-static {v0, v1}, Landroid/util/Pair;->create(Ljava/lang/Object;Ljava/lang/Object;)Landroid/util/Pair;
move-result-object v0
:goto_28
return-object v0
:pswitch_29
invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v0
const-string v1, "2G"
invoke-static {v0, v1}, Landroid/util/Pair;->create(Ljava/lang/Object;Ljava/lang/Object;)Landroid/util/Pair;
move-result-object v0
goto :goto_28
:pswitch_34
const/4 v0, 0x2
invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v0
const-string v1, "3G"
invoke-static {v0, v1}, Landroid/util/Pair;->create(Ljava/lang/Object;Ljava/lang/Object;)Landroid/util/Pair;
move-result-object v0
goto :goto_28
:pswitch_40
const/4 v0, 0x3
invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v0
const-string v1, "4G"
invoke-static {v0, v1}, Landroid/util/Pair;->create(Ljava/lang/Object;Ljava/lang/Object;)Landroid/util/Pair;
move-result-object v0
goto :goto_28
:pswitch_4c
const/4 v0, 0x4
invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v0
const-string v1, "5G"
invoke-static {v0, v1}, Landroid/util/Pair;->create(Ljava/lang/Object;Ljava/lang/Object;)Landroid/util/Pair;
move-result-object v0
goto :goto_28
:pswitch_data_58
.packed-switch 0x1
:pswitch_29
:pswitch_29
:pswitch_34
:pswitch_29
:pswitch_34
:pswitch_34
:pswitch_29
:pswitch_34
:pswitch_34
:pswitch_34
:pswitch_29
:pswitch_34
:pswitch_40
:pswitch_34
:pswitch_34
:pswitch_1e
:pswitch_1e
:pswitch_1e
:pswitch_1e
:pswitch_4c
.end packed-switch
.end method
.method public static initNetworkChangeReceiver(Landroid/content/Context;)V
.registers 5
if-eqz p0, :cond_16
invoke-virtual {p0}, Landroid/content/Context;->getApplicationContext()Landroid/content/Context;
move-result-object v0
new-instance v1, Lcom/kwai/video/hodor/NetworkMonitor$1;
invoke-direct {v1}, Lcom/kwai/video/hodor/NetworkMonitor$1;-><init>()V
new-instance v2, Landroid/content/IntentFilter;
const-string v3, "android.net.conn.CONNECTIVITY_CHANGE"
invoke-direct {v2, v3}, Landroid/content/IntentFilter;-><init>(Ljava/lang/String;)V
invoke-virtual {v0, v1, v2}, Landroid/content/Context;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;
:goto_15
return-void
:cond_16
const-string v0, "initNetworkChangeReceiver fail, context is null"
const/4 v1, 0x0
new-array v1, v1, [Ljava/lang/Object;
invoke-static {v0, v1}, Lcom/kwai/video/hodor/util/Timber;->e(Ljava/lang/String;[Ljava/lang/Object;)V
goto :goto_15
.end method
.method public static onNetworkChange(Landroid/content/Context;Landroid/content/Intent;)V
.registers 10
const/4 v2, 0x0
const/4 v1, 0x1
const-string v0, "connectivity"
invoke-virtual {p0, v0}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/net/ConnectivityManager;
invoke-static {p0}, Lcom/kwai/video/hodor/NetworkMonitor;->getMobileType(Landroid/content/Context;)Landroid/util/Pair;
move-result-object v5
if-eqz v0, :cond_98
invoke-virtual {v0}, Landroid/net/ConnectivityManager;->getActiveNetworkInfo()Landroid/net/NetworkInfo;
move-result-object v4
if-nez v4, :cond_25
const-string v0, "[onNetworkChange], get ConnectivityManager ok, get getActiveNetworkInfo fail, current supportMobileType:%s"
new-array v1, v1, [Ljava/lang/Object;
iget-object v3, v5, Landroid/util/Pair;->second:Ljava/lang/Object;
aput-object v3, v1, v2
invoke-static {v0, v1}, Lcom/kwai/video/hodor/util/Timber;->w(Ljava/lang/String;[Ljava/lang/Object;)V
invoke-static {}, Lcom/kwai/video/hodor/NetworkMonitor;->onNetworkInvalidated()V
:goto_24
return-void
:cond_25
const-string v3, "[onNetworkChange], get ConnectivityManager ok, get getActiveNetworkInfo ok, isConnected:%b, isWifi:%b, netTypeName:%s, connectionState:%s, getExtraInfo:%s, supportMobileType:%s"
const/4 v0, 0x6
new-array v6, v0, [Ljava/lang/Object;
invoke-virtual {v4}, Landroid/net/NetworkInfo;->isConnected()Z
move-result v0
invoke-static {v0}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
move-result-object v0
aput-object v0, v6, v2
invoke-virtual {v4}, Landroid/net/NetworkInfo;->getType()I
move-result v0
if-ne v0, v1, :cond_94
move v0, v1
:goto_3b
invoke-static {v0}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
move-result-object v0
aput-object v0, v6, v1
const/4 v0, 0x2
invoke-virtual {v4}, Landroid/net/NetworkInfo;->getTypeName()Ljava/lang/String;
move-result-object v7
aput-object v7, v6, v0
const/4 v0, 0x3
invoke-virtual {v4}, Landroid/net/NetworkInfo;->getState()Landroid/net/NetworkInfo$State;
move-result-object v7
invoke-virtual {v7}, Landroid/net/NetworkInfo$State;->toString()Ljava/lang/String;
move-result-object v7
aput-object v7, v6, v0
const/4 v0, 0x4
invoke-virtual {v4}, Landroid/net/NetworkInfo;->getExtraInfo()Ljava/lang/String;
move-result-object v7
aput-object v7, v6, v0
const/4 v0, 0x5
iget-object v7, v5, Landroid/util/Pair;->second:Ljava/lang/Object;
aput-object v7, v6, v0
invoke-static {v3, v6}, Lcom/kwai/video/hodor/util/Timber;->d(Ljava/lang/String;[Ljava/lang/Object;)V
invoke-virtual {v4}, Landroid/net/NetworkInfo;->isConnected()Z
move-result v0
invoke-virtual {v4}, Landroid/net/NetworkInfo;->getType()I
move-result v3
if-ne v3, v1, :cond_96
:goto_6c
invoke-virtual {v4}, Landroid/net/NetworkInfo;->getTypeName()Ljava/lang/String;
move-result-object v2
invoke-static {v2}, Lcom/kwai/video/hodor/NetworkMonitor;->emptyStringIfNull(Ljava/lang/String;)Ljava/lang/String;
move-result-object v2
invoke-virtual {v4}, Landroid/net/NetworkInfo;->getState()Landroid/net/NetworkInfo$State;
move-result-object v3
invoke-virtual {v3}, Landroid/net/NetworkInfo$State;->toString()Ljava/lang/String;
move-result-object v3
invoke-static {v3}, Lcom/kwai/video/hodor/NetworkMonitor;->emptyStringIfNull(Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
invoke-virtual {v4}, Landroid/net/NetworkInfo;->getExtraInfo()Ljava/lang/String;
move-result-object v4
invoke-static {v4}, Lcom/kwai/video/hodor/NetworkMonitor;->emptyStringIfNull(Ljava/lang/String;)Ljava/lang/String;
move-result-object v4
iget-object v5, v5, Landroid/util/Pair;->first:Ljava/lang/Object;
check-cast v5, Ljava/lang/Integer;
invoke-virtual {v5}, Ljava/lang/Integer;->intValue()I
move-result v5
invoke-static/range {v0 .. v5}, Lcom/kwai/video/hodor/NetworkMonitor;->onNewActiveNetwork(ZZLjava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
goto :goto_24
:cond_94
move v0, v2
goto :goto_3b
:cond_96
move v1, v2
goto :goto_6c
:cond_98
invoke-static {}, Lcom/kwai/video/hodor/NetworkMonitor;->onNetworkInvalidated()V
const-string v0, "[onNetworkChange], get ConnectivityManager fail, current supportMobileType:%s"
new-array v1, v1, [Ljava/lang/Object;
iget-object v3, v5, Landroid/util/Pair;->second:Ljava/lang/Object;
aput-object v3, v1, v2
invoke-static {v0, v1}, Lcom/kwai/video/hodor/util/Timber;->e(Ljava/lang/String;[Ljava/lang/Object;)V
goto/16 :goto_24
.end method
.method private static native onNetworkInvalidated()V
.end method
.method private static native onNewActiveNetwork(ZZLjava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
.param p5 # I
.annotation build Lcom/kwai/video/hodor/NetworkMonitor$HodorMobileType;
.end annotation
.end param
.end method