c.smali
.class public final Lcom/baidu/crabsdk/sender/c;
.super Ljava/lang/Object;
# interfaces
.implements Ljava/lang/Thread$UncaughtExceptionHandler;
# static fields
.field private static final a:Ljava/lang/String;
.field private static b:Lcom/baidu/crabsdk/sender/c;
.field public static bA:Z
# instance fields
.field private c:Ljava/lang/Thread$UncaughtExceptionHandler;
.field private d:Landroid/content/Context;
# direct methods
.method static constructor <clinit>()V
.registers 2
const/4 v0, 0x0
sput-boolean v0, Lcom/baidu/crabsdk/sender/c;->bA:Z
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
invoke-static {}, Landroid/os/Environment;->getExternalStorageDirectory()Ljava/io/File;
move-result-object v1
invoke-virtual {v1}, Ljava/io/File;->getPath()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
sget-object v1, Ljava/io/File;->separator:Ljava/lang/String;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-static {}, Lcom/baidu/crabsdk/b/o;->J()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
sget-object v1, Ljava/io/File;->separator:Ljava/lang/String;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, "oom"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
sget-object v1, Ljava/io/File;->separator:Ljava/lang/String;
invoke-virtual {v0, v1}, 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
sput-object v0, Lcom/baidu/crabsdk/sender/c;->a:Ljava/lang/String;
new-instance v0, Lcom/baidu/crabsdk/sender/c;
invoke-direct {v0}, Lcom/baidu/crabsdk/sender/c;-><init>()V
sput-object v0, Lcom/baidu/crabsdk/sender/c;->b:Lcom/baidu/crabsdk/sender/c;
return-void
.end method
.method private constructor <init>()V
.registers 2
const/4 v0, 0x0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object v0, p0, Lcom/baidu/crabsdk/sender/c;->c:Ljava/lang/Thread$UncaughtExceptionHandler;
iput-object v0, p0, Lcom/baidu/crabsdk/sender/c;->d:Landroid/content/Context;
return-void
.end method
.method public static V()Lcom/baidu/crabsdk/sender/c;
.registers 1
sget-object v0, Lcom/baidu/crabsdk/sender/c;->b:Lcom/baidu/crabsdk/sender/c;
return-object v0
.end method
.method private static a(Ljava/lang/Throwable;)Z
.registers 3
:cond_0
const-string v0, "java.lang.OutOfMemoryError"
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_12
const/4 v0, 0x1
:goto_11
return v0
:cond_12
invoke-virtual {p0}, Ljava/lang/Throwable;->getCause()Ljava/lang/Throwable;
move-result-object p0
if-nez p0, :cond_0
const/4 v0, 0x0
goto :goto_11
.end method
# virtual methods
.method public final d(Landroid/content/Context;)V
.registers 3
iget-object v0, p0, Lcom/baidu/crabsdk/sender/c;->c:Ljava/lang/Thread$UncaughtExceptionHandler;
if-nez v0, :cond_d
invoke-static {}, Ljava/lang/Thread;->getDefaultUncaughtExceptionHandler()Ljava/lang/Thread$UncaughtExceptionHandler;
move-result-object v0
iput-object v0, p0, Lcom/baidu/crabsdk/sender/c;->c:Ljava/lang/Thread$UncaughtExceptionHandler;
invoke-static {p0}, Ljava/lang/Thread;->setDefaultUncaughtExceptionHandler(Ljava/lang/Thread$UncaughtExceptionHandler;)V
:cond_d
iget-object v0, p0, Lcom/baidu/crabsdk/sender/c;->d:Landroid/content/Context;
if-nez v0, :cond_17
invoke-virtual {p1}, Landroid/content/Context;->getApplicationContext()Landroid/content/Context;
move-result-object v0
iput-object v0, p0, Lcom/baidu/crabsdk/sender/c;->d:Landroid/content/Context;
:cond_17
return-void
.end method
.method public final uncaughtException(Ljava/lang/Thread;Ljava/lang/Throwable;)V
.registers 9
const/4 v3, 0x1
const/4 v4, 0x0
sget-boolean v0, Lcom/baidu/crabsdk/a;->I:Z
if-eqz v0, :cond_7
return-void
:cond_7
sput-boolean v3, Lcom/baidu/crabsdk/a;->I:Z
invoke-virtual {p2}, Ljava/lang/Throwable;->toString()Ljava/lang/String;
move-result-object v1
const-string v0, ""
if-eqz v1, :cond_28
const-string v2, ""
invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-nez v2, :cond_28
:try_start_19
const-string v0, ":"
invoke-virtual {v1, v0}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v0
invoke-virtual {v1}, Ljava/lang/String;->length()I
move-result v2
if-le v2, v3, :cond_115
const/4 v2, 0x0
aget-object v0, v0, v2
:try_end_28
.catch Ljava/lang/Exception; {:try_start_19 .. :try_end_28} :catch_118
:cond_28
:goto_28
if-eqz v0, :cond_32
const-string v2, ""
invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_33
:cond_32
move-object v0, v1
:cond_33
new-instance v1, Ljava/io/StringWriter;
invoke-direct {v1}, Ljava/io/StringWriter;-><init>()V
new-instance v2, Ljava/io/PrintWriter;
invoke-direct {v2, v1}, Ljava/io/PrintWriter;-><init>(Ljava/io/Writer;)V
invoke-virtual {p2, v2}, Ljava/lang/Throwable;->printStackTrace(Ljava/io/PrintWriter;)V
invoke-virtual {v1}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v3
:try_start_44
invoke-virtual {v2}, Ljava/io/PrintWriter;->close()V
invoke-virtual {v1}, Ljava/io/Writer;->close()V
:try_end_4a
.catch Ljava/io/IOException; {:try_start_44 .. :try_end_4a} :catch_11d
:goto_4a
if-eqz v3, :cond_102
invoke-virtual {v0}, Ljava/lang/String;->trim()Ljava/lang/String;
move-result-object v0
const-string v1, ""
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_102
sget-boolean v0, Lcom/baidu/crabsdk/a;->n:Z
if-eqz v0, :cond_b7
invoke-static {p2}, Lcom/baidu/crabsdk/sender/c;->a(Ljava/lang/Throwable;)Z
move-result v0
if-eqz v0, :cond_b7
:try_start_62
sget-object v0, Lcom/baidu/crabsdk/sender/c;->a:Ljava/lang/String;
new-instance v1, Ljava/io/File;
invoke-direct {v1, v0}, Ljava/io/File;-><init>(Ljava/lang/String;)V
invoke-virtual {v1}, Ljava/io/File;->exists()Z
move-result v2
if-nez v2, :cond_87
invoke-virtual {v1}, Ljava/io/File;->mkdirs()Z
move-result v1
if-nez v1, :cond_125
new-instance v1, Ljava/lang/StringBuilder;
const-string v2, "app\u6587\u4ef6\u521b\u5efa\u5931\u8d25 fileName is "
invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v1}, Lcom/baidu/crabsdk/c/a;->t(Ljava/lang/String;)I
:cond_87
:goto_87
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v2
invoke-virtual {v0, v2, v3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, ".hprof"
invoke-virtual {v0, v1}, 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 {v0}, Landroid/os/Debug;->dumpHprofData(Ljava/lang/String;)V
new-instance v1, Ljava/lang/StringBuilder;
const-string v2, "\u8f93\u51faOOM\u7684dump\u4fe1\u606f name="
invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v1, v0}, 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 {v0}, Lcom/baidu/crabsdk/c/a;->s(Ljava/lang/String;)I
:try_end_b7
.catch Ljava/lang/Throwable; {:try_start_62 .. :try_end_b7} :catch_139
:cond_b7
:goto_b7
invoke-static {}, Lcom/baidu/crabsdk/sender/e;->X()Z
move-result v0
if-eqz v0, :cond_f9
invoke-static {}, Lcom/baidu/crabsdk/sender/e;->aa()Z
move-result v0
if-eqz v0, :cond_f9
invoke-static {p2}, Lcom/baidu/crabsdk/sender/e;->b(Ljava/lang/Throwable;)Z
move-result v0
if-eqz v0, :cond_f9
sput-boolean v4, Lcom/baidu/crabsdk/sender/c;->bA:Z
iget-object v0, p0, Lcom/baidu/crabsdk/sender/c;->d:Landroid/content/Context;
if-eqz v0, :cond_d3
if-eqz p1, :cond_d3
if-nez p2, :cond_152
:cond_d3
:goto_d3
:try_start_d3
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v0
:cond_d7
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v2
sget-boolean v4, Lcom/baidu/crabsdk/sender/c;->bA:Z
if-eqz v4, :cond_171
new-instance v4, Ljava/lang/StringBuilder;
const-string v5, "^^ upload finished()! --> cost : "
invoke-direct {v4, v5}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
sub-long v0, v2, v0
invoke-virtual {v4, v0, v1}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, "ms"
invoke-virtual {v0, v1}, 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 {v0}, Lcom/baidu/crabsdk/c/a;->s(Ljava/lang/String;)I
:try_end_f9
.catch Ljava/lang/Exception; {:try_start_d3 .. :try_end_f9} :catch_17f
:cond_f9
:goto_f9
sget-object v0, Lcom/baidu/crabsdk/a;->L:Lcom/baidu/crabsdk/OnAnrCrashListener;
if-eqz v0, :cond_102
sget-object v0, Lcom/baidu/crabsdk/a;->L:Lcom/baidu/crabsdk/OnAnrCrashListener;
invoke-interface {v0, p1, p2}, Lcom/baidu/crabsdk/OnAnrCrashListener;->onCrashStarted(Ljava/lang/Thread;Ljava/lang/Throwable;)V
:cond_102
iget-object v0, p0, Lcom/baidu/crabsdk/sender/c;->c:Ljava/lang/Thread$UncaughtExceptionHandler;
invoke-virtual {v0, p0}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_10f
iget-object v0, p0, Lcom/baidu/crabsdk/sender/c;->c:Ljava/lang/Thread$UncaughtExceptionHandler;
invoke-interface {v0, p1, p2}, Ljava/lang/Thread$UncaughtExceptionHandler;->uncaughtException(Ljava/lang/Thread;Ljava/lang/Throwable;)V
:cond_10f
new-instance v0, Ljava/lang/RuntimeException;
invoke-direct {v0, p2}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/Throwable;)V
throw v0
:cond_115
move-object v0, v1
goto/16 :goto_28
:catch_118
move-exception v0
const-string v0, ""
goto/16 :goto_28
:catch_11d
move-exception v1
const-string v2, "pw"
invoke-static {v2, v1}, Lcom/baidu/crabsdk/c/a;->a(Ljava/lang/String;Ljava/lang/Throwable;)I
goto/16 :goto_4a
:cond_125
:try_start_125
new-instance v1, Ljava/lang/StringBuilder;
const-string v2, "app\u6587\u4ef6\u521b\u5efaok fileName is "
invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v1}, Lcom/baidu/crabsdk/c/a;->t(Ljava/lang/String;)I
:try_end_137
.catch Ljava/lang/Throwable; {:try_start_125 .. :try_end_137} :catch_139
goto/16 :goto_87
:catch_139
move-exception v0
new-instance v1, Ljava/lang/StringBuilder;
const-string v2, "oom save fail"
invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v0}, Ljava/lang/Throwable;->getMessage()Ljava/lang/String;
move-result-object v0
invoke-virtual {v1, v0}, 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 {v0}, Lcom/baidu/crabsdk/c/a;->t(Ljava/lang/String;)I
goto/16 :goto_b7
:cond_152
iget-object v0, p0, Lcom/baidu/crabsdk/sender/c;->d:Landroid/content/Context;
invoke-static {v0, p2, v4}, Lcom/baidu/crabsdk/sender/d;->a(Landroid/content/Context;Ljava/lang/Throwable;Z)Ljava/util/Map;
move-result-object v0
invoke-static {v0}, Lcom/baidu/crabsdk/sender/f;->d(Ljava/util/Map;)Ljava/lang/String;
move-result-object v0
iget-object v1, p0, Lcom/baidu/crabsdk/sender/c;->d:Landroid/content/Context;
invoke-static {v1, v0}, Lcom/baidu/crabsdk/sender/f;->c(Landroid/content/Context;Ljava/lang/String;)V
invoke-static {p2}, Lcom/baidu/crabsdk/sender/e;->c(Ljava/lang/Throwable;)V
invoke-static {p2}, Lcom/baidu/crabsdk/sender/e;->d(Ljava/lang/Throwable;)V
invoke-static {}, Lcom/baidu/crabsdk/sender/e;->ad()V
iget-object v0, p0, Lcom/baidu/crabsdk/sender/c;->d:Landroid/content/Context;
invoke-static {v4, v0}, Lcom/baidu/crabsdk/sender/h;->a(ZLandroid/content/Context;)V
goto/16 :goto_d3
:cond_171
sub-long/2addr v2, v0
const-wide/16 v4, 0x9c4
cmp-long v2, v2, v4
if-lez v2, :cond_d7
:try_start_178
const-string v0, "T^T upload timeout!"
invoke-static {v0}, Lcom/baidu/crabsdk/c/a;->s(Ljava/lang/String;)I
:try_end_17d
.catch Ljava/lang/Exception; {:try_start_178 .. :try_end_17d} :catch_17f
goto/16 :goto_f9
:catch_17f
move-exception v0
invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
goto/16 :goto_f9
.end method