i.smali
.class public final Lcn/jiguang/af/i;
.super Ljava/lang/Object;
# interfaces
.implements Ljava/lang/Runnable;
# instance fields
.field public a:Z
.field private b:Landroid/content/Context;
.field private c:Lcn/jiguang/an/a;
.field private d:Ljava/util/concurrent/ExecutorService;
# direct methods
.method static constructor <clinit>()V
.registers 1
const-string v0, "NetworkingClient"
invoke-static {v0}, Lcn/jiguang/sdk/impl/b;->a(Ljava/lang/String;)V
return-void
.end method
.method public constructor <init>(Landroid/content/Context;)V
.registers 5
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Lcn/jiguang/af/i;->b:Landroid/content/Context;
new-instance v0, Lcn/jiguang/an/b;
const/16 v1, 0x1fc0
const/16 v2, 0x14
invoke-direct {v0, v1, v2}, Lcn/jiguang/an/b;-><init>(II)V
iput-object v0, p0, Lcn/jiguang/af/i;->c:Lcn/jiguang/an/a;
return-void
.end method
.method private a(I)Z
.registers 9
const/4 v1, 0x1
const/4 v6, 0x0
const/4 v0, 0x0
:goto_3
iget-boolean v2, p0, Lcn/jiguang/af/i;->a:Z
if-eqz v2, :cond_8
:cond_7
:goto_7
return v0
:cond_8
if-gtz p1, :cond_18
const-string v1, "NetworkingClient"
const-string v2, "login error,retry login too many times"
invoke-static {v1, v2}, Lcn/jiguang/ai/a;->d(Ljava/lang/String;Ljava/lang/String;)V
invoke-direct {p0}, Lcn/jiguang/af/i;->e()V
invoke-direct {p0}, Lcn/jiguang/af/i;->d()V
goto :goto_7
:cond_18
const-string v2, "NetworkingClient"
new-instance v3, Ljava/lang/StringBuilder;
const-string v4, "loginTimes:"
invoke-direct {v3, v4}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v3, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-static {v2, v3}, Lcn/jiguang/ai/a;->c(Ljava/lang/String;Ljava/lang/String;)V
iget-object v2, p0, Lcn/jiguang/af/i;->b:Landroid/content/Context;
invoke-static {v2}, Lcn/jiguang/sdk/impl/b;->h(Landroid/content/Context;)Z
move-result v2
if-eqz v2, :cond_40
iget-object v2, p0, Lcn/jiguang/af/i;->b:Landroid/content/Context;
invoke-static {v2}, Lcn/jiguang/sdk/impl/b;->f(Landroid/content/Context;)Ljava/lang/String;
move-result-object v2
invoke-static {v2}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v2
if-eqz v2, :cond_81
:cond_40
iget-object v2, p0, Lcn/jiguang/af/i;->b:Landroid/content/Context;
iget-object v3, p0, Lcn/jiguang/af/i;->c:Lcn/jiguang/an/a;
invoke-static {v2, v3}, Lcn/jiguang/af/c;->b(Landroid/content/Context;Lcn/jiguang/an/a;)I
move-result v2
if-eqz v2, :cond_76
new-instance v3, Landroid/os/Bundle;
invoke-direct {v3}, Landroid/os/Bundle;-><init>()V
const-string v4, "resCode"
invoke-virtual {v3, v4, v2}, Landroid/os/Bundle;->putInt(Ljava/lang/String;I)V
invoke-static {}, Lcn/jiguang/ah/i;->a()Lcn/jiguang/ah/i;
move-result-object v2
iget-object v4, p0, Lcn/jiguang/af/i;->b:Landroid/content/Context;
const-string v5, "tcp_a13"
invoke-virtual {v2, v4, v5, v3}, Lcn/jiguang/ah/i;->a(Landroid/content/Context;Ljava/lang/String;Landroid/os/Bundle;)V
invoke-direct {p0}, Lcn/jiguang/af/i;->e()V
invoke-direct {p0}, Lcn/jiguang/af/i;->d()V
move v2, v0
:goto_66
if-eqz v2, :cond_7
iget-object v2, p0, Lcn/jiguang/af/i;->b:Landroid/content/Context;
iget-object v3, p0, Lcn/jiguang/af/i;->c:Lcn/jiguang/an/a;
invoke-static {v2, v3}, Lcn/jiguang/af/c;->a(Landroid/content/Context;Lcn/jiguang/an/a;)I
move-result v2
if-gez v2, :cond_83
invoke-direct {p0}, Lcn/jiguang/af/i;->d()V
goto :goto_7
:cond_76
invoke-static {}, Lcn/jiguang/ah/i;->a()Lcn/jiguang/ah/i;
move-result-object v2
iget-object v3, p0, Lcn/jiguang/af/i;->b:Landroid/content/Context;
const-string v4, "tcp_a11"
invoke-virtual {v2, v3, v4, v6}, Lcn/jiguang/ah/i;->a(Landroid/content/Context;Ljava/lang/String;Landroid/os/Bundle;)V
:cond_81
move v2, v1
goto :goto_66
:cond_83
if-lez v2, :cond_c0
invoke-direct {p0}, Lcn/jiguang/af/i;->e()V
const/16 v3, 0x6c
if-ne v2, v3, :cond_95
iget-object v2, p0, Lcn/jiguang/af/i;->b:Landroid/content/Context;
invoke-static {v2}, Lcn/jiguang/sdk/impl/b;->k(Landroid/content/Context;)V
add-int/lit8 p1, p1, -0x1
goto/16 :goto_3
:cond_95
const-string v1, "NetworkingClient"
new-instance v3, Ljava/lang/StringBuilder;
const-string v4, "Action - onLoginFailed - respCode:"
invoke-direct {v3, v4}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-static {v1, v3}, Lcn/jiguang/ai/a;->a(Ljava/lang/String;Ljava/lang/String;)V
new-instance v1, Landroid/os/Bundle;
invoke-direct {v1}, Landroid/os/Bundle;-><init>()V
const-string v3, "resCode"
invoke-virtual {v1, v3, v2}, Landroid/os/Bundle;->putInt(Ljava/lang/String;I)V
invoke-static {}, Lcn/jiguang/ah/i;->a()Lcn/jiguang/ah/i;
move-result-object v1
iget-object v2, p0, Lcn/jiguang/af/i;->b:Landroid/content/Context;
const-string v3, "tcp_a12"
invoke-virtual {v1, v2, v3, v6}, Lcn/jiguang/ah/i;->a(Landroid/content/Context;Ljava/lang/String;Landroid/os/Bundle;)V
goto/16 :goto_7
:cond_c0
invoke-static {}, Lcn/jiguang/ah/i;->a()Lcn/jiguang/ah/i;
move-result-object v0
iget-object v2, p0, Lcn/jiguang/af/i;->b:Landroid/content/Context;
const-string v3, "tcp_a10"
invoke-virtual {v0, v2, v3, v6}, Lcn/jiguang/ah/i;->a(Landroid/content/Context;Ljava/lang/String;Landroid/os/Bundle;)V
move v0, v1
goto/16 :goto_7
.end method
.method private a(Landroid/content/Context;)Z
.registers 7
const/4 v0, 0x0
const-string v1, "NetworkingClient"
const-string v2, "google:false"
invoke-static {v1, v2}, Lcn/jiguang/ai/a;->c(Ljava/lang/String;Ljava/lang/String;)V
invoke-static {p1}, Lcn/jiguang/ap/c;->a(Landroid/content/Context;)Lcn/jiguang/ap/c;
invoke-static {p1}, Lcn/jiguang/af/l;->a(Landroid/content/Context;)Lcn/jiguang/af/l;
move-result-object v1
new-instance v2, Lcn/jiguang/af/k;
invoke-direct {v2, v1}, Lcn/jiguang/af/k;-><init>(Lcn/jiguang/af/l;)V
:try_start_14
invoke-virtual {v2, p0}, Lcn/jiguang/af/k;->a(Lcn/jiguang/af/i;)Lcn/jiguang/an/a;
move-result-object v1
iput-object v1, p0, Lcn/jiguang/af/i;->c:Lcn/jiguang/an/a;
:try_end_1a
.catch Ljava/lang/Exception; {:try_start_14 .. :try_end_1a} :catch_29
const/4 v1, 0x2
invoke-direct {p0, v1}, Lcn/jiguang/af/i;->a(I)Z
move-result v1
if-nez v1, :cond_42
const-string v1, "NetworkingClient"
const-string v2, "login failed"
invoke-static {v1, v2}, Lcn/jiguang/ai/a;->g(Ljava/lang/String;Ljava/lang/String;)V
:goto_28
return v0
:catch_29
move-exception v1
invoke-direct {p0}, Lcn/jiguang/af/i;->d()V
const-string v2, "NetworkingClient"
new-instance v3, Ljava/lang/StringBuilder;
const-string v4, "sis and connect failed:"
invoke-direct {v3, v4}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v2, v1}, Lcn/jiguang/ai/a;->g(Ljava/lang/String;Ljava/lang/String;)V
goto :goto_28
:cond_42
const/4 v0, 0x1
goto :goto_28
.end method
.method private d()V
.registers 5
const-string v0, "NetworkingClient"
const-string v1, "Action - closeConnection"
invoke-static {v0, v1}, Lcn/jiguang/ai/a;->d(Ljava/lang/String;Ljava/lang/String;)V
iget-object v0, p0, Lcn/jiguang/af/i;->c:Lcn/jiguang/an/a;
invoke-static {v0}, Lcn/jiguang/ap/k;->a(Ljava/io/Closeable;)V
invoke-static {}, Lcn/jiguang/ah/i;->a()Lcn/jiguang/ah/i;
move-result-object v0
iget-object v1, p0, Lcn/jiguang/af/i;->b:Landroid/content/Context;
const-string v2, "tcp_a19"
const/4 v3, 0x0
invoke-virtual {v0, v1, v2, v3}, Lcn/jiguang/ah/i;->a(Landroid/content/Context;Ljava/lang/String;Landroid/os/Bundle;)V
return-void
.end method
.method private e()V
.registers 7
const/4 v5, 0x0
const/4 v4, 0x1
const/4 v3, 0x0
iget-object v0, p0, Lcn/jiguang/af/i;->b:Landroid/content/Context;
const/4 v1, 0x2
new-array v1, v1, [Lcn/jiguang/ae/b;
invoke-static {v4}, Lcn/jiguang/ae/b;->b(Z)Lcn/jiguang/ae/b;
move-result-object v2
invoke-virtual {v2, v5}, Lcn/jiguang/ae/b;->a(Ljava/lang/Object;)Lcn/jiguang/ae/b;
move-result-object v2
aput-object v2, v1, v3
invoke-static {v3}, Lcn/jiguang/ae/b;->b(Z)Lcn/jiguang/ae/b;
move-result-object v2
invoke-virtual {v2, v5}, Lcn/jiguang/ae/b;->a(Ljava/lang/Object;)Lcn/jiguang/ae/b;
move-result-object v2
aput-object v2, v1, v4
invoke-static {v0, v1}, Lcn/jiguang/ae/c;->a(Landroid/content/Context;[Lcn/jiguang/ae/b;)V
return-void
.end method
# virtual methods
.method public final declared-synchronized a()V
.registers 5
monitor-enter p0
:try_start_1
invoke-static {}, Ljava/util/concurrent/Executors;->newSingleThreadExecutor()Ljava/util/concurrent/ExecutorService;
move-result-object v0
iput-object v0, p0, Lcn/jiguang/af/i;->d:Ljava/util/concurrent/ExecutorService;
:try_end_7
.catchall {:try_start_1 .. :try_end_7} :catchall_24
:try_start_7
iget-object v0, p0, Lcn/jiguang/af/i;->d:Ljava/util/concurrent/ExecutorService;
invoke-interface {v0, p0}, Ljava/util/concurrent/ExecutorService;->execute(Ljava/lang/Runnable;)V
:try_end_c
.catch Ljava/lang/Throwable; {:try_start_7 .. :try_end_c} :catch_e
.catchall {:try_start_7 .. :try_end_c} :catchall_24
:goto_c
monitor-exit p0
return-void
:catch_e
move-exception v0
:try_start_f
const-string v1, "NetworkingClient"
new-instance v2, Ljava/lang/StringBuilder;
const-string v3, "execute networkingClient exception :"
invoke-direct {v2, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v1, v0}, Lcn/jiguang/ai/a;->h(Ljava/lang/String;Ljava/lang/String;)V
:try_end_23
.catchall {:try_start_f .. :try_end_23} :catchall_24
goto :goto_c
:catchall_24
move-exception v0
monitor-exit p0
throw v0
.end method
.method public final declared-synchronized b()V
.registers 5
monitor-enter p0
:try_start_1
const-string v0, "NetworkingClient"
const-string v1, "Action - stop"
invoke-static {v0, v1}, Lcn/jiguang/ai/a;->d(Ljava/lang/String;Ljava/lang/String;)V
iget-object v0, p0, Lcn/jiguang/af/i;->c:Lcn/jiguang/an/a;
invoke-static {v0}, Lcn/jiguang/ap/k;->a(Ljava/io/Closeable;)V
const/4 v0, 0x1
iput-boolean v0, p0, Lcn/jiguang/af/i;->a:Z
iget-object v0, p0, Lcn/jiguang/af/i;->d:Ljava/util/concurrent/ExecutorService;
:try_end_12
.catchall {:try_start_1 .. :try_end_12} :catchall_4a
if-eqz v0, :cond_35
:try_start_14
invoke-interface {v0}, Ljava/util/concurrent/ExecutorService;->shutdown()V
const-wide/16 v2, 0x64
sget-object v1, Ljava/util/concurrent/TimeUnit;->MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invoke-interface {v0, v2, v3, v1}, Ljava/util/concurrent/ExecutorService;->awaitTermination(JLjava/util/concurrent/TimeUnit;)Z
move-result v1
if-nez v1, :cond_35
invoke-interface {v0}, Ljava/util/concurrent/ExecutorService;->shutdownNow()Ljava/util/List;
const-wide/16 v2, 0x64
sget-object v1, Ljava/util/concurrent/TimeUnit;->MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invoke-interface {v0, v2, v3, v1}, Ljava/util/concurrent/ExecutorService;->awaitTermination(JLjava/util/concurrent/TimeUnit;)Z
move-result v1
if-nez v1, :cond_35
const-string v1, "NetworkingClient"
const-string v2, "executor did not terminate"
invoke-static {v1, v2}, Lcn/jiguang/ai/a;->a(Ljava/lang/String;Ljava/lang/String;)V
:try_end_35
.catch Ljava/lang/InterruptedException; {:try_start_14 .. :try_end_35} :catch_37
.catch Ljava/lang/Throwable; {:try_start_14 .. :try_end_35} :catch_4d
.catchall {:try_start_14 .. :try_end_35} :catchall_4a
:cond_35
:goto_35
monitor-exit p0
return-void
:catch_37
move-exception v1
:try_start_38
invoke-interface {v0}, Ljava/util/concurrent/ExecutorService;->shutdownNow()Ljava/util/List;
const-string v0, "NetworkingClient"
const-string v1, "current thread is interrupted by self"
invoke-static {v0, v1}, Lcn/jiguang/ai/a;->a(Ljava/lang/String;Ljava/lang/String;)V
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Thread;->interrupt()V
:try_end_49
.catchall {:try_start_38 .. :try_end_49} :catchall_4a
goto :goto_35
:catchall_4a
move-exception v0
monitor-exit p0
throw v0
:catch_4d
move-exception v0
:try_start_4e
const-string v1, "NetworkingClient"
new-instance v2, Ljava/lang/StringBuilder;
const-string v3, "shutDown e:"
invoke-direct {v2, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v1, v0}, Lcn/jiguang/ai/a;->g(Ljava/lang/String;Ljava/lang/String;)V
:try_end_62
.catchall {:try_start_4e .. :try_end_62} :catchall_4a
goto :goto_35
.end method
.method public final c()Lcn/jiguang/an/a;
.registers 2
iget-object v0, p0, Lcn/jiguang/af/i;->c:Lcn/jiguang/an/a;
return-object v0
.end method
.method public final run()V
.registers 6
const-string v0, "NetworkingClient"
new-instance v1, Ljava/lang/StringBuilder;
const-string v2, "Begin to run in ConnectingThread - id:"
invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/Thread;->getId()J
move-result-wide v2
invoke-virtual {v1, v2, v3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v0, v1}, Lcn/jiguang/ai/a;->f(Ljava/lang/String;Ljava/lang/String;)V
:try_start_1c
iget-object v0, p0, Lcn/jiguang/af/i;->b:Landroid/content/Context;
invoke-direct {p0, v0}, Lcn/jiguang/af/i;->a(Landroid/content/Context;)Z
move-result v0
if-nez v0, :cond_2c
const-string v0, "NetworkingClient"
const-string v1, "prepare Push Channel failed , returned"
invoke-static {v0, v1}, Lcn/jiguang/ai/a;->d(Ljava/lang/String;Ljava/lang/String;)V
:goto_2b
return-void
:cond_2c
:goto_2c
iget-boolean v0, p0, Lcn/jiguang/af/i;->a:Z
if-nez v0, :cond_80
const-string v0, "NetworkingClient"
const-string v1, "Network listening..."
invoke-static {v0, v1}, Lcn/jiguang/ai/a;->d(Ljava/lang/String;Ljava/lang/String;)V
:try_end_37
.catch Ljava/lang/Throwable; {:try_start_1c .. :try_end_37} :catch_78
:try_start_37
iget-object v0, p0, Lcn/jiguang/af/i;->c:Lcn/jiguang/an/a;
const/4 v1, 0x0
invoke-virtual {v0, v1}, Lcn/jiguang/an/a;->a(I)Ljava/nio/ByteBuffer;
:try_end_3d
.catch Lcn/jiguang/ah/f; {:try_start_37 .. :try_end_3d} :catch_8f
.catch Ljava/lang/Throwable; {:try_start_37 .. :try_end_3d} :catch_78
move-result-object v0
:try_start_3e
const-string v1, "NetworkingClient"
new-instance v2, Lcn/jiguang/af/v;
iget-object v3, p0, Lcn/jiguang/af/i;->b:Landroid/content/Context;
invoke-virtual {v0}, Ljava/nio/ByteBuffer;->array()[B
move-result-object v4
invoke-direct {v2, v3, v4}, Lcn/jiguang/af/v;-><init>(Landroid/content/Context;[B)V
invoke-static {v1, v2}, Lcn/jiguang/sdk/impl/b;->a(Ljava/lang/String;Ljava/lang/Runnable;)V
const-string v1, "NetworkingClient"
new-instance v2, Ljava/lang/StringBuilder;
const-string v3, "Received bytes - len:"
invoke-direct {v2, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v0}, Ljava/nio/ByteBuffer;->array()[B
move-result-object v0
array-length v0, v0
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v0
const-string v2, ", pkg:"
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget-object v2, p0, Lcn/jiguang/af/i;->b:Landroid/content/Context;
invoke-static {v2}, Lcn/jiguang/ap/a;->a(Landroid/content/Context;)Ljava/lang/String;
move-result-object v2
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v1, v0}, Lcn/jiguang/ai/a;->d(Ljava/lang/String;Ljava/lang/String;)V
:try_end_77
.catch Ljava/lang/Throwable; {:try_start_3e .. :try_end_77} :catch_78
goto :goto_2c
:catch_78
move-exception v0
const-string v1, "NetworkingClient"
const-string v2, "run exception"
invoke-static {v1, v2, v0}, Lcn/jiguang/ai/a;->d(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
:cond_80
:goto_80
iget-boolean v0, p0, Lcn/jiguang/af/i;->a:Z
if-eqz v0, :cond_8b
const-string v0, "NetworkingClient"
const-string v1, "Break receiving by wantStop"
invoke-static {v0, v1}, Lcn/jiguang/ai/a;->d(Ljava/lang/String;Ljava/lang/String;)V
:cond_8b
invoke-direct {p0}, Lcn/jiguang/af/i;->d()V
goto :goto_2b
:catch_8f
move-exception v0
:try_start_90
const-string v1, "NetworkingClient"
new-instance v2, Ljava/lang/StringBuilder;
const-string v3, " recv failed with error:"
invoke-direct {v2, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v2, " ,No Break!!"
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v1, v0}, Lcn/jiguang/ai/a;->g(Ljava/lang/String;Ljava/lang/String;)V
:try_end_aa
.catch Ljava/lang/Throwable; {:try_start_90 .. :try_end_aa} :catch_78
goto :goto_80
.end method