CrashUtils$1.smali
.class final Lcom/blankj/utilcode/util/CrashUtils$1;
.super Ljava/lang/Object;
.source "CrashUtils.java"
# interfaces
.implements Ljava/lang/Thread$UncaughtExceptionHandler;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/blankj/utilcode/util/CrashUtils;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x8
name = null
.end annotation
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method constructor <init>()V
.registers 1
.line 67
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public uncaughtException(Ljava/lang/Thread;Ljava/lang/Throwable;)V
.registers 10
.param p1, "t" # Ljava/lang/Thread;
.param p2, "e" # Ljava/lang/Throwable;
.line 70
if-nez p2, :cond_1d
.line 71
# getter for: Lcom/blankj/utilcode/util/CrashUtils;->DEFAULT_UNCAUGHT_EXCEPTION_HANDLER:Ljava/lang/Thread$UncaughtExceptionHandler;
invoke-static {}, Lcom/blankj/utilcode/util/CrashUtils;->access$000()Ljava/lang/Thread$UncaughtExceptionHandler;
move-result-object v0
if-eqz v0, :cond_11
.line 72
# getter for: Lcom/blankj/utilcode/util/CrashUtils;->DEFAULT_UNCAUGHT_EXCEPTION_HANDLER:Ljava/lang/Thread$UncaughtExceptionHandler;
invoke-static {}, Lcom/blankj/utilcode/util/CrashUtils;->access$000()Ljava/lang/Thread$UncaughtExceptionHandler;
move-result-object v0
const/4 v1, 0x0
invoke-interface {v0, p1, v1}, Ljava/lang/Thread$UncaughtExceptionHandler;->uncaughtException(Ljava/lang/Thread;Ljava/lang/Throwable;)V
goto :goto_1c
.line 74
:cond_11
invoke-static {}, Landroid/os/Process;->myPid()I
move-result v0
invoke-static {v0}, Landroid/os/Process;->killProcess(I)V
.line 75
const/4 v0, 0x1
invoke-static {v0}, Ljava/lang/System;->exit(I)V
.line 77
:goto_1c
return-void
.line 80
:cond_1d
# getter for: Lcom/blankj/utilcode/util/CrashUtils;->FORMAT:Ljava/text/Format;
invoke-static {}, Lcom/blankj/utilcode/util/CrashUtils;->access$100()Ljava/text/Format;
move-result-object v0
new-instance v1, Ljava/util/Date;
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v2
invoke-direct {v1, v2, v3}, Ljava/util/Date;-><init>(J)V
invoke-virtual {v0, v1}, Ljava/text/Format;->format(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
.line 81
.local v0, "time":Ljava/lang/String;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
.line 82
.local v1, "sb":Ljava/lang/StringBuilder;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "************* Log Head ****************\nTime Of Crash : "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v3, "\nDevice Manufacturer: "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
sget-object v3, Landroid/os/Build;->MANUFACTURER:Ljava/lang/String;
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v3, "\nDevice Model : "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
sget-object v3, Landroid/os/Build;->MODEL:Ljava/lang/String;
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v3, "\nAndroid Version : "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
sget-object v3, Landroid/os/Build$VERSION;->RELEASE:Ljava/lang/String;
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v3, "\nAndroid SDK : "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
sget v3, Landroid/os/Build$VERSION;->SDK_INT:I
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v3, "\nApp VersionName : "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 88
# getter for: Lcom/blankj/utilcode/util/CrashUtils;->versionName:Ljava/lang/String;
invoke-static {}, Lcom/blankj/utilcode/util/CrashUtils;->access$200()Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v3, "\nApp VersionCode : "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 89
# getter for: Lcom/blankj/utilcode/util/CrashUtils;->versionCode:I
invoke-static {}, Lcom/blankj/utilcode/util/CrashUtils;->access$300()I
move-result v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v3, "\n************* Log Head ****************\n\n"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
.line 91
.local v2, "head":Ljava/lang/String;
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 92
invoke-static {p2}, Lcom/blankj/utilcode/util/ThrowableUtils;->getFullStackTrace(Ljava/lang/Throwable;)Ljava/lang/String;
move-result-object v3
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 93
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
.line 94
.local v3, "crashInfo":Ljava/lang/String;
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
# getter for: Lcom/blankj/utilcode/util/CrashUtils;->dir:Ljava/lang/String;
invoke-static {}, Lcom/blankj/utilcode/util/CrashUtils;->access$400()Ljava/lang/String;
move-result-object v5
if-nez v5, :cond_a7
# getter for: Lcom/blankj/utilcode/util/CrashUtils;->defaultDir:Ljava/lang/String;
invoke-static {}, Lcom/blankj/utilcode/util/CrashUtils;->access$500()Ljava/lang/String;
move-result-object v5
goto :goto_ab
:cond_a7
# getter for: Lcom/blankj/utilcode/util/CrashUtils;->dir:Ljava/lang/String;
invoke-static {}, Lcom/blankj/utilcode/util/CrashUtils;->access$400()Ljava/lang/String;
move-result-object v5
:goto_ab
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v5, ".txt"
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
.line 95
.local v4, "fullPath":Ljava/lang/String;
# invokes: Lcom/blankj/utilcode/util/CrashUtils;->createOrExistsFile(Ljava/lang/String;)Z
invoke-static {v4}, Lcom/blankj/utilcode/util/CrashUtils;->access$600(Ljava/lang/String;)Z
move-result v5
if-eqz v5, :cond_c4
.line 96
# invokes: Lcom/blankj/utilcode/util/CrashUtils;->input2File(Ljava/lang/String;Ljava/lang/String;)V
invoke-static {v3, v4}, Lcom/blankj/utilcode/util/CrashUtils;->access$700(Ljava/lang/String;Ljava/lang/String;)V
goto :goto_df
.line 98
:cond_c4
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
const-string v6, "create "
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v6, " failed!"
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
const-string v6, "CrashUtils"
invoke-static {v6, v5}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
.line 101
:goto_df
# getter for: Lcom/blankj/utilcode/util/CrashUtils;->sOnCrashListener:Lcom/blankj/utilcode/util/CrashUtils$OnCrashListener;
invoke-static {}, Lcom/blankj/utilcode/util/CrashUtils;->access$800()Lcom/blankj/utilcode/util/CrashUtils$OnCrashListener;
move-result-object v5
if-eqz v5, :cond_ec
.line 102
# getter for: Lcom/blankj/utilcode/util/CrashUtils;->sOnCrashListener:Lcom/blankj/utilcode/util/CrashUtils$OnCrashListener;
invoke-static {}, Lcom/blankj/utilcode/util/CrashUtils;->access$800()Lcom/blankj/utilcode/util/CrashUtils$OnCrashListener;
move-result-object v5
invoke-interface {v5, v3, p2}, Lcom/blankj/utilcode/util/CrashUtils$OnCrashListener;->onCrash(Ljava/lang/String;Ljava/lang/Throwable;)V
.line 105
:cond_ec
# getter for: Lcom/blankj/utilcode/util/CrashUtils;->DEFAULT_UNCAUGHT_EXCEPTION_HANDLER:Ljava/lang/Thread$UncaughtExceptionHandler;
invoke-static {}, Lcom/blankj/utilcode/util/CrashUtils;->access$000()Ljava/lang/Thread$UncaughtExceptionHandler;
move-result-object v5
if-eqz v5, :cond_f9
.line 106
# getter for: Lcom/blankj/utilcode/util/CrashUtils;->DEFAULT_UNCAUGHT_EXCEPTION_HANDLER:Ljava/lang/Thread$UncaughtExceptionHandler;
invoke-static {}, Lcom/blankj/utilcode/util/CrashUtils;->access$000()Ljava/lang/Thread$UncaughtExceptionHandler;
move-result-object v5
invoke-interface {v5, p1, p2}, Ljava/lang/Thread$UncaughtExceptionHandler;->uncaughtException(Ljava/lang/Thread;Ljava/lang/Throwable;)V
.line 108
:cond_f9
return-void
.end method