State.smali

.class public Lcom/taboola/lightnetwork/State;
.super Ljava/lang/Object;
.source "State.java"


# static fields
.field private static final TAG:Ljava/lang/String;


# instance fields
.field private final mContext:Landroid/content/Context;


# direct methods
.method static constructor <clinit>()V
    .registers 1

    .line 22
    const-class v0, Lcom/taboola/lightnetwork/State;

    invoke-virtual {v0}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;

    move-result-object v0

    sput-object v0, Lcom/taboola/lightnetwork/State;->TAG:Ljava/lang/String;

    return-void
.end method

.method public constructor <init>(Landroid/content/Context;)V
    .registers 2

    .line 25
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    .line 26
    iput-object p1, p0, Lcom/taboola/lightnetwork/State;->mContext:Landroid/content/Context;

    return-void
.end method

.method private checkNetworkStatePermission()Z
    .registers 3

    .line 162
    iget-object v0, p0, Lcom/taboola/lightnetwork/State;->mContext:Landroid/content/Context;

    const-string v1, "android.permission.ACCESS_NETWORK_STATE"

    invoke-static {v0, v1}, Lcom/taboola/lightnetwork/utils/PermissionUtils;->isPermissionGranted(Landroid/content/Context;Ljava/lang/String;)Z

    move-result v0

    if-nez v0, :cond_13

    .line 163
    sget-object v0, Lcom/taboola/lightnetwork/State;->TAG:Ljava/lang/String;

    const-string v1, "isConnected() | Failed to check connectivity, ACCESS_NETWORK_STATE permission not asked or granted."

    invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    const/4 v0, 0x1

    return v0

    :cond_13
    const/4 v0, 0x0

    return v0
.end method

.method private getActiveNetworkInfo()Landroid/net/NetworkInfo;
    .registers 3

    .line 176
    iget-object v0, p0, Lcom/taboola/lightnetwork/State;->mContext:Landroid/content/Context;

    const-string v1, "connectivity"

    invoke-virtual {v0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Landroid/net/ConnectivityManager;

    if-nez v0, :cond_e

    const/4 v0, 0x0

    goto :goto_12

    .line 177
    :cond_e
    invoke-virtual {v0}, Landroid/net/ConnectivityManager;->getActiveNetworkInfo()Landroid/net/NetworkInfo;

    move-result-object v0

    :goto_12
    return-object v0
.end method

.method private isConnectedThroughWifi_Q()Z
    .registers 4

    .line 110
    iget-object v0, p0, Lcom/taboola/lightnetwork/State;->mContext:Landroid/content/Context;

    const-string v1, "connectivity"

    invoke-virtual {v0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Landroid/net/ConnectivityManager;

    const/4 v1, 0x0

    if-eqz v0, :cond_28

    .line 114
    invoke-virtual {v0}, Landroid/net/ConnectivityManager;->getActiveNetwork()Landroid/net/Network;

    move-result-object v2

    if-nez v2, :cond_14

    return v1

    .line 119
    :cond_14
    invoke-virtual {v0, v2}, Landroid/net/ConnectivityManager;->getNetworkCapabilities(Landroid/net/Network;)Landroid/net/NetworkCapabilities;

    move-result-object v0

    if-eqz v0, :cond_28

    .line 120
    invoke-direct {p0, v0}, Lcom/taboola/lightnetwork/State;->isConnectionValidated(Landroid/net/NetworkCapabilities;)Z

    move-result v2

    if-eqz v2, :cond_28

    invoke-direct {p0, v0}, Lcom/taboola/lightnetwork/State;->isWifiTypeConnection(Landroid/net/NetworkCapabilities;)Z

    move-result v0

    if-eqz v0, :cond_28

    const/4 v0, 0x1

    return v0

    :cond_28
    return v1
.end method

.method private isConnectedThroughWifi_preQ()Z
    .registers 5

    .line 137
    invoke-direct {p0}, Lcom/taboola/lightnetwork/State;->checkNetworkStatePermission()Z

    move-result v0

    const/4 v1, 0x0

    if-eqz v0, :cond_8

    return v1

    .line 139
    :cond_8
    invoke-direct {p0}, Lcom/taboola/lightnetwork/State;->getActiveNetworkInfo()Landroid/net/NetworkInfo;

    move-result-object v0

    const/4 v2, 0x1

    if-eqz v0, :cond_1c

    .line 140
    invoke-virtual {v0}, Landroid/net/NetworkInfo;->isConnected()Z

    move-result v3

    if-eqz v3, :cond_1c

    invoke-virtual {v0}, Landroid/net/NetworkInfo;->getType()I

    move-result v0

    if-ne v0, v2, :cond_1c

    const/4 v1, 0x1

    :cond_1c
    return v1
.end method

.method private isConnected_Q()Z
    .registers 4

    .line 68
    iget-object v0, p0, Lcom/taboola/lightnetwork/State;->mContext:Landroid/content/Context;

    const-string v1, "connectivity"

    invoke-virtual {v0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Landroid/net/ConnectivityManager;

    const/4 v1, 0x0

    if-eqz v0, :cond_22

    .line 72
    invoke-virtual {v0}, Landroid/net/ConnectivityManager;->getActiveNetwork()Landroid/net/Network;

    move-result-object v2

    if-nez v2, :cond_14

    return v1

    .line 77
    :cond_14
    invoke-virtual {v0, v2}, Landroid/net/ConnectivityManager;->getNetworkCapabilities(Landroid/net/Network;)Landroid/net/NetworkCapabilities;

    move-result-object v0

    if-eqz v0, :cond_22

    .line 78
    invoke-direct {p0, v0}, Lcom/taboola/lightnetwork/State;->isConnectionValidated(Landroid/net/NetworkCapabilities;)Z

    move-result v0

    if-eqz v0, :cond_22

    const/4 v0, 0x1

    return v0

    :cond_22
    return v1
.end method

.method private isConnected_preQ()Z
    .registers 3

    .line 95
    invoke-direct {p0}, Lcom/taboola/lightnetwork/State;->checkNetworkStatePermission()Z

    move-result v0

    const/4 v1, 0x0

    if-eqz v0, :cond_8

    return v1

    .line 97
    :cond_8
    invoke-direct {p0}, Lcom/taboola/lightnetwork/State;->getActiveNetworkInfo()Landroid/net/NetworkInfo;

    move-result-object v0

    if-eqz v0, :cond_15

    .line 98
    invoke-virtual {v0}, Landroid/net/NetworkInfo;->isConnected()Z

    move-result v0

    if-eqz v0, :cond_15

    const/4 v1, 0x1

    :cond_15
    return v1
.end method

.method private isConnectionValidated(Landroid/net/NetworkCapabilities;)Z
    .registers 3

    const/16 v0, 0x10

    .line 157
    invoke-virtual {p1, v0}, Landroid/net/NetworkCapabilities;->hasCapability(I)Z

    move-result p1

    return p1
.end method

.method private isWifiTypeConnection(Landroid/net/NetworkCapabilities;)Z
    .registers 3

    const/4 v0, 0x1

    .line 149
    invoke-virtual {p1, v0}, Landroid/net/NetworkCapabilities;->hasTransport(I)Z

    move-result p1

    return p1
.end method


# virtual methods
.method public isConnected()Z
    .registers 3

    .line 37
    sget v0, Landroid/os/Build$VERSION;->SDK_INT:I

    const/16 v1, 0x1c

    if-lt v0, v1, :cond_b

    .line 38
    invoke-direct {p0}, Lcom/taboola/lightnetwork/State;->isConnected_Q()Z

    move-result v0

    return v0

    .line 40
    :cond_b
    invoke-direct {p0}, Lcom/taboola/lightnetwork/State;->isConnected_preQ()Z

    move-result v0

    return v0
.end method

.method public isConnectedThroughWifi()Z
    .registers 3

    .line 48
    sget v0, Landroid/os/Build$VERSION;->SDK_INT:I

    const/16 v1, 0x1c

    if-lt v0, v1, :cond_b

    .line 49
    invoke-direct {p0}, Lcom/taboola/lightnetwork/State;->isConnectedThroughWifi_Q()Z

    move-result v0

    return v0

    .line 51
    :cond_b
    invoke-direct {p0}, Lcom/taboola/lightnetwork/State;->isConnectedThroughWifi_preQ()Z

    move-result v0

    return v0
.end method