a.smali

.class public Lcn/jiguang/ar/a;
.super Ljava/lang/Object;


# static fields
.field private static final a:Ljava/util/HashMap;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/HashMap",
            "<",
            "Ljava/lang/String;",
            "Ljava/util/concurrent/ExecutorService;",
            ">;"
        }
    .end annotation
.end field


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

    new-instance v0, Ljava/util/HashMap;

    invoke-direct {v0}, Ljava/util/HashMap;-><init>()V

    sput-object v0, Lcn/jiguang/ar/a;->a:Ljava/util/HashMap;

    return-void
.end method

.method public constructor <init>()V
    .registers 1

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

    return-void
.end method

.method private static a(Ljava/lang/String;)Ljava/util/concurrent/ExecutorService;
    .registers 5

    const/4 v1, 0x5

    sget-object v0, Lcn/jiguang/ar/a;->a:Ljava/util/HashMap;

    invoke-virtual {v0, p0}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Ljava/util/concurrent/ExecutorService;

    if-eqz v0, :cond_11

    invoke-interface {v0}, Ljava/util/concurrent/ExecutorService;->isShutdown()Z

    move-result v2

    if-eqz v2, :cond_39

    :cond_11
    const-class v2, Lcn/jiguang/ar/a;

    monitor-enter v2

    :try_start_14
    sget-object v0, Lcn/jiguang/ar/a;->a:Ljava/util/HashMap;

    invoke-virtual {v0, p0}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Ljava/util/concurrent/ExecutorService;

    if-eqz v0, :cond_24

    invoke-interface {v0}, Ljava/util/concurrent/ExecutorService;->isShutdown()Z

    move-result v3

    if-eqz v3, :cond_38

    :cond_24
    const/4 v0, -0x1

    invoke-virtual {p0}, Ljava/lang/String;->hashCode()I

    move-result v3

    sparse-switch v3, :sswitch_data_a6

    :cond_2c
    :goto_2c
    packed-switch v0, :pswitch_data_cc

    invoke-static {}, Ljava/util/concurrent/Executors;->newSingleThreadExecutor()Ljava/util/concurrent/ExecutorService;

    move-result-object v0

    :goto_33
    sget-object v1, Lcn/jiguang/ar/a;->a:Ljava/util/HashMap;

    invoke-virtual {v1, p0, v0}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    :cond_38
    monitor-exit v2

    :cond_39
    return-object v0

    :sswitch_3a
    const-string v1, "ASYNC"

    invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v1

    if-eqz v1, :cond_2c

    const/4 v0, 0x0

    goto :goto_2c

    :sswitch_44
    const-string v1, "TCP_REPORT"

    invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v1

    if-eqz v1, :cond_2c

    const/4 v0, 0x1

    goto :goto_2c

    :sswitch_4e
    const-string v1, "SDK_INIT"

    invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v1

    if-eqz v1, :cond_2c

    const/4 v0, 0x2

    goto :goto_2c

    :sswitch_58
    const-string v1, "SDK_SERVICE_INIT"

    invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v1

    if-eqz v1, :cond_2c

    const/4 v0, 0x3

    goto :goto_2c

    :sswitch_62
    const-string v1, "SDK_MAIN"

    invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v1

    if-eqz v1, :cond_2c

    const/4 v0, 0x4

    goto :goto_2c

    :sswitch_6c
    const-string v3, "ACTION"

    invoke-virtual {p0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v3

    if-eqz v3, :cond_2c

    move v0, v1

    goto :goto_2c

    :sswitch_76
    const-string v1, "BUILD_REPORT"

    invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v1

    if-eqz v1, :cond_2c

    const/4 v0, 0x6

    goto :goto_2c

    :sswitch_80
    const-string v1, "UPLOAD_REPORT"

    invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v1

    if-eqz v1, :cond_2c

    const/4 v0, 0x7

    goto :goto_2c

    :sswitch_8a
    const-string v1, "REPORT_HISTORY"

    invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v1

    if-eqz v1, :cond_2c

    const/16 v0, 0x8

    goto :goto_2c

    :pswitch_95
    const/16 v0, 0xf

    invoke-static {v0}, Ljava/util/concurrent/Executors;->newFixedThreadPool(I)Ljava/util/concurrent/ExecutorService;

    move-result-object v0

    goto :goto_33

    :pswitch_9c
    const/4 v0, 0x5

    invoke-static {v0}, Ljava/util/concurrent/Executors;->newFixedThreadPool(I)Ljava/util/concurrent/ExecutorService;

    move-result-object v0

    goto :goto_33

    :catchall_a2
    move-exception v0

    monitor-exit v2
    :try_end_a4
    .catchall {:try_start_14 .. :try_end_a4} :catchall_a2

    throw v0

    nop

    :sswitch_data_a6
    .sparse-switch
        -0x6250888e -> :sswitch_44
        -0x61eccece -> :sswitch_80
        -0x2ef81397 -> :sswitch_8a
        -0x1de29bbb -> :sswitch_76
        0x3bb0a5c -> :sswitch_3a
        0x4081d615 -> :sswitch_4e
        0x408376be -> :sswitch_62
        0x507fbc7f -> :sswitch_58
        0x72c27236 -> :sswitch_6c
    .end sparse-switch

    :pswitch_data_cc
    .packed-switch 0x0
        :pswitch_95
        :pswitch_9c
    .end packed-switch
.end method

.method public static a(Ljava/lang/String;Ljava/lang/Runnable;)V
    .registers 7

    const/4 v1, 0x0

    :try_start_1
    invoke-static {p0}, Lcn/jiguang/ar/a;->a(Ljava/lang/String;)Ljava/util/concurrent/ExecutorService;

    move-result-object v1

    invoke-interface {v1, p1}, Ljava/util/concurrent/ExecutorService;->execute(Ljava/lang/Runnable;)V
    :try_end_8
    .catch Ljava/lang/Throwable; {:try_start_1 .. :try_end_8} :catch_9

    :cond_8
    :goto_8
    return-void

    :catch_9
    move-exception v0

    const-string v2, "SDKWorker_XExecutor"

    new-instance v3, Ljava/lang/StringBuilder;

    const-string v4, "execute failed, try again e:"

    invoke-direct {v3, v4}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

    invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)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/ac/d;->h(Ljava/lang/String;Ljava/lang/String;)V

    if-eqz v1, :cond_41

    :try_start_20
    invoke-interface {v1}, Ljava/util/concurrent/ExecutorService;->shutdown()V

    const-wide/16 v2, 0x64

    sget-object v4, Ljava/util/concurrent/TimeUnit;->MILLISECONDS:Ljava/util/concurrent/TimeUnit;

    invoke-interface {v1, v2, v3, v4}, Ljava/util/concurrent/ExecutorService;->awaitTermination(JLjava/util/concurrent/TimeUnit;)Z

    move-result v2

    if-nez v2, :cond_41

    invoke-interface {v1}, Ljava/util/concurrent/ExecutorService;->shutdownNow()Ljava/util/List;

    const-wide/16 v2, 0x64

    sget-object v4, Ljava/util/concurrent/TimeUnit;->MILLISECONDS:Ljava/util/concurrent/TimeUnit;

    invoke-interface {v1, v2, v3, v4}, Ljava/util/concurrent/ExecutorService;->awaitTermination(JLjava/util/concurrent/TimeUnit;)Z

    move-result v2

    if-nez v2, :cond_41

    const-string v2, "SDKWorker_XExecutor"

    const-string v3, "executor did not terminate"

    invoke-static {v2, v3}, Lcn/jiguang/ac/d;->a(Ljava/lang/String;Ljava/lang/String;)V
    :try_end_41
    .catch Ljava/lang/InterruptedException; {:try_start_20 .. :try_end_41} :catch_7a
    .catch Ljava/lang/Throwable; {:try_start_20 .. :try_end_41} :catch_8d

    :cond_41
    :goto_41
    :try_start_41
    invoke-static {p0}, Lcn/jiguang/ar/a;->a(Ljava/lang/String;)Ljava/util/concurrent/ExecutorService;

    move-result-object v1

    invoke-interface {v1, p1}, Ljava/util/concurrent/ExecutorService;->execute(Ljava/lang/Runnable;)V
    :try_end_48
    .catch Ljava/lang/Throwable; {:try_start_41 .. :try_end_48} :catch_49

    goto :goto_8

    :catch_49
    move-exception v1

    const-string v1, "SDKWorker_XExecutor"

    new-instance v2, Ljava/lang/StringBuilder;

    const-string v3, "execute 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/ac/d;->h(Ljava/lang/String;Ljava/lang/String;)V

    if-eqz p1, :cond_8

    :try_start_60
    const-string v0, "BUILD_REPORT"

    invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v0

    if-eqz v0, :cond_8

    new-instance v0, Ljava/lang/Thread;

    invoke-direct {v0, p1}, Ljava/lang/Thread;-><init>(Ljava/lang/Runnable;)V

    invoke-virtual {v0}, Ljava/lang/Thread;->start()V
    :try_end_70
    .catch Ljava/lang/Throwable; {:try_start_60 .. :try_end_70} :catch_71

    goto :goto_8

    :catch_71
    move-exception v0

    const-string v1, "SDKWorker_XExecutor"

    const-string v2, "execute BUILD_REPORT last error"

    invoke-static {v1, v2, v0}, Lcn/jiguang/ac/d;->b(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V

    goto :goto_8

    :catch_7a
    move-exception v2

    invoke-interface {v1}, Ljava/util/concurrent/ExecutorService;->shutdownNow()Ljava/util/List;

    const-string v1, "SDKWorker_XExecutor"

    const-string v2, "current thread is interrupted by self"

    invoke-static {v1, v2}, Lcn/jiguang/ac/d;->a(Ljava/lang/String;Ljava/lang/String;)V

    invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;

    move-result-object v1

    invoke-virtual {v1}, Ljava/lang/Thread;->interrupt()V

    goto :goto_41

    :catch_8d
    move-exception v1

    const-string v2, "SDKWorker_XExecutor"

    new-instance v3, Ljava/lang/StringBuilder;

    const-string v4, "shutDown e:"

    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/ac/d;->f(Ljava/lang/String;Ljava/lang/String;)V

    goto :goto_41
.end method