NetworkReceiver.smali
.class public final Lcom/qiniu/android/dns/NetworkReceiver;
.super Landroid/content/BroadcastReceiver;
.source "NetworkReceiver.java"
# static fields
.field private static final PREFERRED_APN_URI:Landroid/net/Uri;
.field private static mdnsManager:Lcom/qiniu/android/dns/DnsManager;
# direct methods
.method static constructor <clinit>()V
.registers 1
.line 17
nop
.line 18
const-string v0, "content://telephony/carriers/preferapn"
invoke-static {v0}, Landroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri;
move-result-object v0
sput-object v0, Lcom/qiniu/android/dns/NetworkReceiver;->PREFERRED_APN_URI:Landroid/net/Uri;
.line 17
return-void
.end method
.method public constructor <init>()V
.registers 1
.line 16
invoke-direct {p0}, Landroid/content/BroadcastReceiver;-><init>()V
return-void
.end method
.method public static createNetInfo(Landroid/net/NetworkInfo;Landroid/content/Context;)Lcom/qiniu/android/dns/NetworkInfo;
.registers 12
.param p0, "info" # Landroid/net/NetworkInfo;
.param p1, "context" # Landroid/content/Context;
.line 22
if-nez p0, :cond_5
.line 23
sget-object v0, Lcom/qiniu/android/dns/NetworkInfo;->noNetwork:Lcom/qiniu/android/dns/NetworkInfo;
return-object v0
.line 27
:cond_5
const/4 v0, 0x0
.line 28
.local v0, "provider":I
invoke-virtual {p0}, Landroid/net/NetworkInfo;->getType()I
move-result v1
.line 29
.local v1, "main":I
const/4 v2, 0x1
if-ne v1, v2, :cond_12
.line 30
sget-object v2, Lcom/qiniu/android/dns/NetworkInfo$NetSatus;->WIFI:Lcom/qiniu/android/dns/NetworkInfo$NetSatus;
.line 31
.local v2, "net":Lcom/qiniu/android/dns/NetworkInfo$NetSatus;
const/4 v0, 0x0
goto/16 :goto_97
.line 33
.end local v2 # "net":Lcom/qiniu/android/dns/NetworkInfo$NetSatus;
:cond_12
sget-object v3, Lcom/qiniu/android/dns/NetworkInfo$NetSatus;->MOBILE:Lcom/qiniu/android/dns/NetworkInfo$NetSatus;
.line 38
.local v3, "net":Lcom/qiniu/android/dns/NetworkInfo$NetSatus;
invoke-virtual {p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v4
sget-object v5, Lcom/qiniu/android/dns/NetworkReceiver;->PREFERRED_APN_URI:Landroid/net/Uri;
const/4 v6, 0x0
const/4 v7, 0x0
const/4 v8, 0x0
const/4 v9, 0x0
invoke-virtual/range {v4 .. v9}, Landroid/content/ContentResolver;->query(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
move-result-object v4
.line 40
.local v4, "c":Landroid/database/Cursor;
if-eqz v4, :cond_4a
.line 41
invoke-interface {v4}, Landroid/database/Cursor;->moveToFirst()Z
.line 42
nop
.line 43
const-string/jumbo v5, "user"
invoke-interface {v4, v5}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I
move-result v5
.line 42
invoke-interface {v4, v5}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
move-result-object v5
.line 44
.local v5, "user":Ljava/lang/String;
invoke-static {v5}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v6
if-nez v6, :cond_4a
.line 45
const-string v6, "ctwap"
invoke-virtual {v5, v6}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v6
if-nez v6, :cond_49
const-string v6, "ctnet"
invoke-virtual {v5, v6}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v6
if-eqz v6, :cond_4a
.line 46
:cond_49
const/4 v0, 0x1
.line 50
.end local v5 # "user":Ljava/lang/String;
:cond_4a
invoke-interface {v4}, Landroid/database/Cursor;->close()V
.line 51
if-eq v0, v2, :cond_96
.line 53
invoke-virtual {p0}, Landroid/net/NetworkInfo;->getExtraInfo()Ljava/lang/String;
move-result-object v2
.line 54
.local v2, "netMode":Ljava/lang/String;
if-eqz v2, :cond_96
.line 56
invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale;
move-result-object v5
invoke-virtual {v2, v5}, Ljava/lang/String;->toLowerCase(Ljava/util/Locale;)Ljava/lang/String;
move-result-object v2
.line 58
const-string v5, "cmwap"
invoke-virtual {v2, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v5
if-nez v5, :cond_93
const-string v5, "cmnet"
invoke-virtual {v2, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v5
if-eqz v5, :cond_6e
goto :goto_93
.line 60
:cond_6e
const-string v5, "3gnet"
invoke-virtual {v2, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v5
if-nez v5, :cond_90
.line 61
const-string/jumbo v5, "uninet"
invoke-virtual {v2, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v5
if-nez v5, :cond_90
.line 62
const-string v5, "3gwap"
invoke-virtual {v2, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v5
if-nez v5, :cond_90
.line 63
const-string/jumbo v5, "uniwap"
invoke-virtual {v2, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v5
if-eqz v5, :cond_96
.line 64
:cond_90
const/4 v0, 0x2
move-object v2, v3
goto :goto_97
.line 59
:cond_93
:goto_93
const/4 v0, 0x3
move-object v2, v3
goto :goto_97
.line 70
.end local v2 # "netMode":Ljava/lang/String;
.end local v4 # "c":Landroid/database/Cursor;
:cond_96
move-object v2, v3
.end local v3 # "net":Lcom/qiniu/android/dns/NetworkInfo$NetSatus;
.local v2, "net":Lcom/qiniu/android/dns/NetworkInfo$NetSatus;
:goto_97
new-instance v3, Lcom/qiniu/android/dns/NetworkInfo;
invoke-direct {v3, v2, v0}, Lcom/qiniu/android/dns/NetworkInfo;-><init>(Lcom/qiniu/android/dns/NetworkInfo$NetSatus;I)V
return-object v3
.end method
.method public static setDnsManager(Lcom/qiniu/android/dns/DnsManager;)V
.registers 1
.param p0, "dnsManager" # Lcom/qiniu/android/dns/DnsManager;
.line 74
sput-object p0, Lcom/qiniu/android/dns/NetworkReceiver;->mdnsManager:Lcom/qiniu/android/dns/DnsManager;
.line 75
return-void
.end method
# virtual methods
.method public onReceive(Landroid/content/Context;Landroid/content/Intent;)V
.registers 7
.param p1, "context" # Landroid/content/Context;
.param p2, "intent" # Landroid/content/Intent;
.line 79
sget-object v0, Lcom/qiniu/android/dns/NetworkReceiver;->mdnsManager:Lcom/qiniu/android/dns/DnsManager;
if-nez v0, :cond_5
.line 80
return-void
.line 82
:cond_5
const-string v0, "connectivity"
invoke-virtual {p1, v0}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/net/ConnectivityManager;
.line 83
.local v0, "manager":Landroid/net/ConnectivityManager;
invoke-virtual {v0}, Landroid/net/ConnectivityManager;->getActiveNetworkInfo()Landroid/net/NetworkInfo;
move-result-object v1
.line 85
.local v1, "activeInfo":Landroid/net/NetworkInfo;
invoke-static {v1, p1}, Lcom/qiniu/android/dns/NetworkReceiver;->createNetInfo(Landroid/net/NetworkInfo;Landroid/content/Context;)Lcom/qiniu/android/dns/NetworkInfo;
move-result-object v2
.line 86
.local v2, "info":Lcom/qiniu/android/dns/NetworkInfo;
sget-object v3, Lcom/qiniu/android/dns/NetworkReceiver;->mdnsManager:Lcom/qiniu/android/dns/DnsManager;
invoke-virtual {v3, v2}, Lcom/qiniu/android/dns/DnsManager;->onNetworkChange(Lcom/qiniu/android/dns/NetworkInfo;)V
.line 87
return-void
.end method