z.smali
.class public Lcom/bytedance/sdk/openadsdk/utils/z;
.super Ljava/lang/Object;
.source "TTCrashHandler.java"
# interfaces
.implements Ljava/lang/Thread$UncaughtExceptionHandler;
# instance fields
.field private a:Ljava/lang/Thread$UncaughtExceptionHandler;
.field private b:Ljava/lang/String;
# direct methods
.method private constructor <init>()V
.registers 2
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
invoke-static {}, Ljava/lang/Thread;->getDefaultUncaughtExceptionHandler()Ljava/lang/Thread$UncaughtExceptionHandler;
move-result-object v0
iput-object v0, p0, Lcom/bytedance/sdk/openadsdk/utils/z;->a:Ljava/lang/Thread$UncaughtExceptionHandler;
.line 3
invoke-static {p0}, Ljava/lang/Thread;->setDefaultUncaughtExceptionHandler(Ljava/lang/Thread$UncaughtExceptionHandler;)V
.line 4
invoke-direct {p0}, Lcom/bytedance/sdk/openadsdk/utils/z;->b()V
return-void
.end method
.method public static a()Lcom/bytedance/sdk/openadsdk/utils/z;
.registers 1
.line 1
new-instance v0, Lcom/bytedance/sdk/openadsdk/utils/z;
invoke-direct {v0}, Lcom/bytedance/sdk/openadsdk/utils/z;-><init>()V
return-object v0
.end method
.method private a(Ljava/lang/Thread;Ljava/lang/Throwable;)V
.registers 21
move-object/from16 v1, p0
const-string v0, ", "
const-string v2, "0"
const-string v3, "TTCrashHandler"
const/4 v4, 0x0
.line 2
:try_start_9
iget-object v5, v1, Lcom/bytedance/sdk/openadsdk/utils/z;->b:Ljava/lang/String;
invoke-static {v5}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v5
if-eqz v5, :cond_14
.line 3
invoke-direct/range {p0 .. p0}, Lcom/bytedance/sdk/openadsdk/utils/z;->b()V
.line 4
:cond_14
iget-object v5, v1, Lcom/bytedance/sdk/openadsdk/utils/z;->b:Ljava/lang/String;
invoke-static {v5}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v5
if-eqz v5, :cond_1d
return-void
.line 5
:cond_1d
new-instance v5, Ljava/io/File;
iget-object v6, v1, Lcom/bytedance/sdk/openadsdk/utils/z;->b:Ljava/lang/String;
const-string v7, "tt_crash_count.properties"
invoke-direct {v5, v6, v7}, Ljava/io/File;-><init>(Ljava/lang/String;Ljava/lang/String;)V
.line 6
invoke-virtual {v5}, Ljava/io/File;->exists()Z
move-result v6
:try_end_2a
.catch Ljava/lang/Throwable; {:try_start_9 .. :try_end_2a} :catch_10c
.catchall {:try_start_9 .. :try_end_2a} :catchall_109
const-string v7, "tt_crash_info"
const-string v8, "crash_last_time"
const-string v9, "crash_count"
const/4 v10, 0x1
if-eqz v6, :cond_d6
:try_start_33
invoke-virtual {v5}, Ljava/io/File;->isFile()Z
move-result v6
if-eqz v6, :cond_d6
invoke-virtual {v5}, Ljava/io/File;->canRead()Z
move-result v6
if-eqz v6, :cond_d6
.line 7
new-instance v6, Ljava/util/Properties;
invoke-direct {v6}, Ljava/util/Properties;-><init>()V
.line 8
new-instance v11, Ljava/io/FileInputStream;
invoke-direct {v11, v5}, Ljava/io/FileInputStream;-><init>(Ljava/io/File;)V
:try_end_49
.catch Ljava/lang/Throwable; {:try_start_33 .. :try_end_49} :catch_10c
.catchall {:try_start_33 .. :try_end_49} :catchall_109
.line 9
:try_start_49
invoke-virtual {v6, v11}, Ljava/util/Properties;->load(Ljava/io/InputStream;)V
.line 10
invoke-virtual {v6, v9, v2}, Ljava/util/Properties;->getProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v12
.line 11
invoke-virtual {v6, v8, v2}, Ljava/util/Properties;->getProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v2
.line 12
invoke-static {v12}, Ljava/lang/Integer;->valueOf(Ljava/lang/String;)Ljava/lang/Integer;
move-result-object v12
invoke-virtual {v12}, Ljava/lang/Integer;->intValue()I
move-result v12
.line 13
invoke-static {v2}, Ljava/lang/Long;->valueOf(Ljava/lang/String;)Ljava/lang/Long;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/Long;->longValue()J
move-result-wide v13
.line 14
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v15
sub-long/2addr v15, v13
const-wide/32 v13, 0x493e0
const/4 v2, 0x0
cmp-long v17, v15, v13
if-gez v17, :cond_74
add-int/2addr v12, v10
const/4 v13, 0x0
goto :goto_76
:cond_74
const/4 v12, 0x1
const/4 v13, 0x1
:goto_76
const/4 v14, 0x3
if-lt v12, v14, :cond_7a
goto :goto_7b
:cond_7a
const/4 v10, 0x0
:goto_7b
if-eqz v10, :cond_7e
goto :goto_7f
:cond_7e
move v2, v12
.line 15
:goto_7f
new-instance v12, Ljava/lang/StringBuilder;
invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
const-string v14, "=="
invoke-virtual {v12, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v12, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v12, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v12, v10}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
invoke-virtual {v12, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v3, v0}, Lcom/bytedance/sdk/openadsdk/utils/p;->e(Ljava/lang/String;Ljava/lang/String;)V
:try_end_9f
.catch Ljava/lang/Throwable; {:try_start_49 .. :try_end_9f} :catch_d2
.catchall {:try_start_49 .. :try_end_9f} :catchall_ce
if-eqz v10, :cond_a5
.line 16
:try_start_a1
invoke-virtual {v5}, Ljava/io/File;->delete()Z
:try_end_a4
.catch Ljava/lang/Throwable; {:try_start_a1 .. :try_end_a4} :catch_c2
.catchall {:try_start_a1 .. :try_end_a4} :catchall_ce
goto :goto_c2
.line 17
:cond_a5
:try_start_a5
invoke-static {v2}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
move-result-object v0
invoke-virtual {v6, v9, v0}, Ljava/util/Properties;->setProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
if-eqz v13, :cond_b9
.line 18
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v12
invoke-static {v12, v13}, Ljava/lang/String;->valueOf(J)Ljava/lang/String;
move-result-object v0
invoke-virtual {v6, v8, v0}, Ljava/util/Properties;->setProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
.line 19
:cond_b9
new-instance v2, Ljava/io/FileOutputStream;
invoke-direct {v2, v5}, Ljava/io/FileOutputStream;-><init>(Ljava/io/File;)V
:try_end_be
.catch Ljava/lang/Throwable; {:try_start_a5 .. :try_end_be} :catch_d2
.catchall {:try_start_a5 .. :try_end_be} :catchall_ce
.line 20
:try_start_be
invoke-virtual {v6, v2, v7}, Ljava/util/Properties;->store(Ljava/io/OutputStream;Ljava/lang/String;)V
:try_end_c1
.catch Ljava/lang/Throwable; {:try_start_be .. :try_end_c1} :catch_cc
.catchall {:try_start_be .. :try_end_c1} :catchall_ca
move-object v4, v2
:catch_c2
:goto_c2
if-eqz v10, :cond_c7
.line 21
:try_start_c4
invoke-direct/range {p0 .. p0}, Lcom/bytedance/sdk/openadsdk/utils/z;->c()V
:try_end_c7
.catch Ljava/lang/Throwable; {:try_start_c4 .. :try_end_c7} :catch_d2
.catchall {:try_start_c4 .. :try_end_c7} :catchall_ce
:cond_c7
move-object v2, v4
move-object v4, v11
goto :goto_fa
:catchall_ca
move-exception v0
goto :goto_d0
:catch_cc
move-exception v0
goto :goto_d4
:catchall_ce
move-exception v0
move-object v2, v4
:goto_d0
move-object v4, v11
goto :goto_11f
:catch_d2
move-exception v0
move-object v2, v4
:goto_d4
move-object v4, v11
goto :goto_10e
.line 22
:cond_d6
:try_start_d6
new-instance v0, Ljava/util/Properties;
invoke-direct {v0}, Ljava/util/Properties;-><init>()V
.line 23
invoke-static {v10}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
move-result-object v2
invoke-virtual {v0, v9, v2}, Ljava/util/Properties;->setProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
.line 24
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v9
invoke-static {v9, v10}, Ljava/lang/String;->valueOf(J)Ljava/lang/String;
move-result-object v2
invoke-virtual {v0, v8, v2}, Ljava/util/Properties;->setProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
.line 25
new-instance v2, Ljava/io/FileOutputStream;
invoke-direct {v2, v5}, Ljava/io/FileOutputStream;-><init>(Ljava/io/File;)V
:try_end_f2
.catch Ljava/lang/Throwable; {:try_start_d6 .. :try_end_f2} :catch_10c
.catchall {:try_start_d6 .. :try_end_f2} :catchall_109
.line 26
:try_start_f2
invoke-virtual {v0, v2, v7}, Ljava/util/Properties;->store(Ljava/io/OutputStream;Ljava/lang/String;)V
const-string v0, "==first"
.line 27
invoke-static {v3, v0}, Lcom/bytedance/sdk/openadsdk/utils/p;->e(Ljava/lang/String;Ljava/lang/String;)V
:try_end_fa
.catch Ljava/lang/Throwable; {:try_start_f2 .. :try_end_fa} :catch_107
.catchall {:try_start_f2 .. :try_end_fa} :catchall_11e
:goto_fa
if-eqz v4, :cond_101
.line 28
:try_start_fc
invoke-virtual {v4}, Ljava/io/FileInputStream;->close()V
:try_end_ff
.catch Ljava/lang/Throwable; {:try_start_fc .. :try_end_ff} :catch_100
goto :goto_101
:catch_100
nop
:cond_101
:goto_101
if-eqz v2, :cond_11d
.line 29
:goto_103
:try_start_103
invoke-virtual {v2}, Ljava/io/FileOutputStream;->close()V
:try_end_106
.catch Ljava/lang/Throwable; {:try_start_103 .. :try_end_106} :catch_11d
goto :goto_11d
:catch_107
move-exception v0
goto :goto_10e
:catchall_109
move-exception v0
move-object v2, v4
goto :goto_11f
:catch_10c
move-exception v0
move-object v2, v4
:goto_10e
:try_start_10e
const-string v5, "crash count error"
.line 30
invoke-static {v3, v5, v0}, Lcom/bytedance/sdk/openadsdk/utils/p;->c(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
:try_end_113
.catchall {:try_start_10e .. :try_end_113} :catchall_11e
if-eqz v4, :cond_11a
.line 31
:try_start_115
invoke-virtual {v4}, Ljava/io/FileInputStream;->close()V
:try_end_118
.catch Ljava/lang/Throwable; {:try_start_115 .. :try_end_118} :catch_119
goto :goto_11a
:catch_119
nop
:cond_11a
:goto_11a
if-eqz v2, :cond_11d
goto :goto_103
:catch_11d
:cond_11d
:goto_11d
return-void
:catchall_11e
move-exception v0
:goto_11f
if-eqz v4, :cond_126
:try_start_121
invoke-virtual {v4}, Ljava/io/FileInputStream;->close()V
:try_end_124
.catch Ljava/lang/Throwable; {:try_start_121 .. :try_end_124} :catch_125
goto :goto_126
:catch_125
nop
:cond_126
:goto_126
if-eqz v2, :cond_12b
.line 32
:try_start_128
invoke-virtual {v2}, Ljava/io/FileOutputStream;->close()V
:try_end_12b
.catch Ljava/lang/Throwable; {:try_start_128 .. :try_end_12b} :catch_12b
.line 33
:catch_12b
:cond_12b
goto :goto_12d
:goto_12c
throw v0
:goto_12d
goto :goto_12c
.end method
.method private b()V
.registers 4
.line 1
invoke-static {}, Lcom/bytedance/sdk/openadsdk/core/o;->a()Landroid/content/Context;
move-result-object v0
if-nez v0, :cond_7
return-void
.line 2
:cond_7
:try_start_7
invoke-virtual {v0}, Landroid/content/Context;->getFilesDir()Ljava/io/File;
move-result-object v0
.line 3
new-instance v1, Ljava/io/File;
const-string v2, "TTCache"
invoke-direct {v1, v0, v2}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V
.line 4
invoke-virtual {v1}, Ljava/io/File;->mkdirs()Z
.line 5
invoke-virtual {v1}, Ljava/io/File;->getPath()Ljava/lang/String;
move-result-object v0
iput-object v0, p0, Lcom/bytedance/sdk/openadsdk/utils/z;->b:Ljava/lang/String;
:try_end_1b
.catch Ljava/lang/Throwable; {:try_start_7 .. :try_end_1b} :catch_1b
:catch_1b
return-void
.end method
.method private c()V
.registers 8
const-string v0, "a"
const/4 v1, 0x0
const/4 v2, 0x0
const/4 v3, 0x1
:try_start_5
const-string v4, "com.bytedance.sdk.openadsdk.TTC2Proxy"
.line 1
new-array v5, v3, [Ljava/lang/Class;
const-class v6, Landroid/content/Context;
aput-object v6, v5, v2
invoke-static {v4, v0, v5}, Lcom/bytedance/sdk/openadsdk/utils/aa;->a(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v4
if-eqz v4, :cond_1e
.line 2
new-array v5, v3, [Ljava/lang/Object;
invoke-static {}, Lcom/bytedance/sdk/openadsdk/core/o;->a()Landroid/content/Context;
move-result-object v6
aput-object v6, v5, v2
invoke-virtual {v4, v1, v5}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
:try_end_1e
.catch Ljava/lang/Throwable; {:try_start_5 .. :try_end_1e} :catch_1e
:catch_1e
:cond_1e
:try_start_1e
const-string v4, "com.bytedance.sdk.openadsdk.TTC3Proxy"
.line 3
new-array v5, v3, [Ljava/lang/Class;
const-class v6, Landroid/content/Context;
aput-object v6, v5, v2
invoke-static {v4, v0, v5}, Lcom/bytedance/sdk/openadsdk/utils/aa;->a(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v0
if-eqz v0, :cond_37
.line 4
new-array v3, v3, [Ljava/lang/Object;
invoke-static {}, Lcom/bytedance/sdk/openadsdk/core/o;->a()Landroid/content/Context;
move-result-object v4
aput-object v4, v3, v2
invoke-virtual {v0, v1, v3}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
:try_end_37
.catch Ljava/lang/Throwable; {:try_start_1e .. :try_end_37} :catch_37
.line 5
:catch_37
:cond_37
:try_start_37
invoke-static {}, Lcom/bytedance/sdk/openadsdk/core/g/f;->a()V
:try_end_3a
.catch Ljava/lang/Throwable; {:try_start_37 .. :try_end_3a} :catch_3a
.line 6
:catch_3a
:try_start_3a
invoke-static {}, Lcom/bytedance/sdk/openadsdk/core/widget/webview/a/a;->b()V
:try_end_3d
.catch Ljava/lang/Throwable; {:try_start_3a .. :try_end_3d} :catch_3d
.line 7
:catch_3d
:try_start_3d
invoke-static {}, Lcom/bytedance/sdk/openadsdk/core/o;->a()Landroid/content/Context;
move-result-object v0
invoke-static {v0}, Lcom/bytedance/sdk/adnet/a;->b(Landroid/content/Context;)Ljava/lang/String;
move-result-object v0
.line 8
invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v1
if-nez v1, :cond_59
.line 9
new-instance v1, Ljava/io/File;
invoke-direct {v1, v0}, Ljava/io/File;-><init>(Ljava/lang/String;)V
.line 10
invoke-virtual {v1}, Ljava/io/File;->exists()Z
move-result v0
if-eqz v0, :cond_59
.line 11
invoke-static {v1}, Lcom/bytedance/sdk/openadsdk/utils/j;->c(Ljava/io/File;)V
:try_end_59
.catch Ljava/lang/Throwable; {:try_start_3d .. :try_end_59} :catch_59
:catch_59
:cond_59
return-void
.end method
# virtual methods
.method public uncaughtException(Ljava/lang/Thread;Ljava/lang/Throwable;)V
.registers 6
const/4 v0, 0x0
.line 1
:try_start_1
new-instance v1, Ljava/io/StringWriter;
invoke-direct {v1}, Ljava/io/StringWriter;-><init>()V
.line 2
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
.line 3
invoke-virtual {v1}, Ljava/io/StringWriter;->toString()Ljava/lang/String;
move-result-object v1
if-eqz v1, :cond_22
.line 4
const-class v2, Lcom/bytedance/sdk/openadsdk/AdSlot;
invoke-virtual {v2}, Ljava/lang/Class;->getPackage()Ljava/lang/Package;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/Package;->getName()Ljava/lang/String;
move-result-object v2
.line 5
invoke-virtual {v1, v2}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v0
:try_end_22
.catch Ljava/lang/Throwable; {:try_start_1 .. :try_end_22} :catch_22
:catch_22
:cond_22
if-eqz v0, :cond_27
.line 6
invoke-direct {p0, p1, p2}, Lcom/bytedance/sdk/openadsdk/utils/z;->a(Ljava/lang/Thread;Ljava/lang/Throwable;)V
.line 7
:cond_27
iget-object v0, p0, Lcom/bytedance/sdk/openadsdk/utils/z;->a:Ljava/lang/Thread$UncaughtExceptionHandler;
if-eqz v0, :cond_30
if-eq v0, p0, :cond_30
.line 8
invoke-interface {v0, p1, p2}, Ljava/lang/Thread$UncaughtExceptionHandler;->uncaughtException(Ljava/lang/Thread;Ljava/lang/Throwable;)V
:cond_30
return-void
.end method