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