y.smali
.class public Lcom/bytedance/sdk/openadsdk/utils/y;
.super Ljava/lang/Object;
.source "SourceFile"
# 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 38
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 39
invoke-static {}, Ljava/lang/Thread;->getDefaultUncaughtExceptionHandler()Ljava/lang/Thread$UncaughtExceptionHandler;
move-result-object v0
iput-object v0, p0, Lcom/bytedance/sdk/openadsdk/utils/y;->a:Ljava/lang/Thread$UncaughtExceptionHandler;
.line 40
invoke-static {p0}, Ljava/lang/Thread;->setDefaultUncaughtExceptionHandler(Ljava/lang/Thread$UncaughtExceptionHandler;)V
.line 41
invoke-direct {p0}, Lcom/bytedance/sdk/openadsdk/utils/y;->b()V
return-void
.end method
.method public static a()Lcom/bytedance/sdk/openadsdk/utils/y;
.registers 1
.line 35
new-instance v0, Lcom/bytedance/sdk/openadsdk/utils/y;
invoke-direct {v0}, Lcom/bytedance/sdk/openadsdk/utils/y;-><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 99
:try_start_9
iget-object v5, v1, Lcom/bytedance/sdk/openadsdk/utils/y;->b:Ljava/lang/String;
invoke-static {v5}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v5
if-eqz v5, :cond_14
.line 101
invoke-direct/range {p0 .. p0}, Lcom/bytedance/sdk/openadsdk/utils/y;->b()V
.line 104
:cond_14
iget-object v5, v1, Lcom/bytedance/sdk/openadsdk/utils/y;->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 112
:cond_1d
new-instance v5, Ljava/io/File;
iget-object v6, v1, Lcom/bytedance/sdk/openadsdk/utils/y;->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 113
invoke-virtual {v5}, Ljava/io/File;->exists()Z
move-result v6
:try_end_2a
.catchall {:try_start_9 .. :try_end_2a} :catchall_103
const-string v7, "tt_crash_info"
const-string v8, "crash_last_time"
const-string v9, "crash_count"
if-eqz v6, :cond_d2
:try_start_32
invoke-virtual {v5}, Ljava/io/File;->isFile()Z
move-result v6
if-eqz v6, :cond_d2
invoke-virtual {v5}, Ljava/io/File;->canRead()Z
move-result v6
if-eqz v6, :cond_d2
.line 114
new-instance v6, Ljava/util/Properties;
invoke-direct {v6}, Ljava/util/Properties;-><init>()V
.line 115
new-instance v10, Ljava/io/FileInputStream;
invoke-direct {v10, v5}, Ljava/io/FileInputStream;-><init>(Ljava/io/File;)V
:try_end_48
.catchall {:try_start_32 .. :try_end_48} :catchall_103
.line 116
:try_start_48
invoke-virtual {v6, v10}, Ljava/util/Properties;->load(Ljava/io/InputStream;)V
.line 117
invoke-virtual {v6, v9, v2}, Ljava/util/Properties;->getProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v11
.line 118
invoke-virtual {v6, v8, v2}, Ljava/util/Properties;->getProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v2
.line 119
invoke-static {v11}, Ljava/lang/Integer;->valueOf(Ljava/lang/String;)Ljava/lang/Integer;
move-result-object v11
invoke-virtual {v11}, Ljava/lang/Integer;->intValue()I
move-result v11
.line 120
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 v12
.line 124
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v14
sub-long/2addr v14, v12
const-wide/32 v12, 0x493e0
const/4 v2, 0x0
const/16 v16, 0x1
cmp-long v17, v14, v12
if-gez v17, :cond_76
add-int/lit8 v11, v11, 0x1
const/4 v12, 0x0
goto :goto_78
:cond_76
const/4 v11, 0x1
const/4 v12, 0x1
:goto_78
const/4 v13, 0x3
if-lt v11, v13, :cond_7d
const/4 v13, 0x1
goto :goto_7e
:cond_7d
const/4 v13, 0x0
:goto_7e
if-eqz v13, :cond_81
goto :goto_82
:cond_81
move v2, v11
.line 137
:goto_82
new-instance v11, Ljava/lang/StringBuilder;
const-string v14, "=="
invoke-direct {v11, v14}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v11, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v11, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v11, v13}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
invoke-virtual {v11, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v11, v12}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
invoke-virtual {v11}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v3, v0}, Lcom/bytedance/sdk/openadsdk/utils/o;->e(Ljava/lang/String;Ljava/lang/String;)V
:try_end_9f
.catchall {:try_start_48 .. :try_end_9f} :catchall_ce
if-eqz v13, :cond_a7
.line 142
:try_start_a1
invoke-virtual {v5}, Ljava/io/File;->delete()Z
:try_end_a4
.catchall {:try_start_a1 .. :try_end_a4} :catchall_a5
goto :goto_c4
:catchall_a5
nop
goto :goto_c4
.line 146
:cond_a7
:try_start_a7
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 v12, :cond_bb
.line 148
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v11
invoke-static {v11, v12}, 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 150
:cond_bb
new-instance v2, Ljava/io/FileOutputStream;
invoke-direct {v2, v5}, Ljava/io/FileOutputStream;-><init>(Ljava/io/File;)V
:try_end_c0
.catchall {:try_start_a7 .. :try_end_c0} :catchall_ce
.line 151
:try_start_c0
invoke-virtual {v6, v2, v7}, Ljava/util/Properties;->store(Ljava/io/OutputStream;Ljava/lang/String;)V
:try_end_c3
.catchall {:try_start_c0 .. :try_end_c3} :catchall_cc
move-object v4, v2
:goto_c4
if-eqz v13, :cond_c9
.line 156
:try_start_c6
invoke-direct/range {p0 .. p0}, Lcom/bytedance/sdk/openadsdk/utils/y;->c()V
:try_end_c9
.catchall {:try_start_c6 .. :try_end_c9} :catchall_ce
:cond_c9
move-object v2, v4
move-object v4, v10
goto :goto_f4
:catchall_cc
move-exception v0
goto :goto_d0
:catchall_ce
move-exception v0
move-object v2, v4
:goto_d0
move-object v4, v10
goto :goto_105
.line 159
:cond_d2
:try_start_d2
new-instance v0, Ljava/util/Properties;
invoke-direct {v0}, Ljava/util/Properties;-><init>()V
const-string v2, "1"
.line 160
invoke-virtual {v0, v9, v2}, Ljava/util/Properties;->setProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
.line 161
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 162
new-instance v2, Ljava/io/FileOutputStream;
invoke-direct {v2, v5}, Ljava/io/FileOutputStream;-><init>(Ljava/io/File;)V
:try_end_ec
.catchall {:try_start_d2 .. :try_end_ec} :catchall_103
.line 163
:try_start_ec
invoke-virtual {v0, v2, v7}, Ljava/util/Properties;->store(Ljava/io/OutputStream;Ljava/lang/String;)V
const-string v0, "==first"
.line 165
invoke-static {v3, v0}, Lcom/bytedance/sdk/openadsdk/utils/o;->e(Ljava/lang/String;Ljava/lang/String;)V
:try_end_f4
.catchall {:try_start_ec .. :try_end_f4} :catchall_101
:goto_f4
if-eqz v4, :cond_fb
.line 173
:try_start_f6
invoke-virtual {v4}, Ljava/io/FileInputStream;->close()V
:try_end_f9
.catchall {:try_start_f6 .. :try_end_f9} :catchall_fa
goto :goto_fb
:catchall_fa
nop
:cond_fb
:goto_fb
if-eqz v2, :cond_116
.line 180
:try_start_fd
invoke-virtual {v2}, Ljava/io/FileOutputStream;->close()V
:try_end_100
.catchall {:try_start_fd .. :try_end_100} :catchall_100
:catchall_100
return-void
:catchall_101
move-exception v0
goto :goto_105
:catchall_103
move-exception v0
move-object v2, v4
:goto_105
:try_start_105
const-string v5, "crash count error"
.line 169
invoke-static {v3, v5, v0}, Lcom/bytedance/sdk/openadsdk/utils/o;->c(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
:try_end_10a
.catchall {:try_start_105 .. :try_end_10a} :catchall_117
if-eqz v4, :cond_111
.line 173
:try_start_10c
invoke-virtual {v4}, Ljava/io/FileInputStream;->close()V
:try_end_10f
.catchall {:try_start_10c .. :try_end_10f} :catchall_110
goto :goto_111
:catchall_110
nop
:cond_111
:goto_111
if-eqz v2, :cond_116
.line 180
:try_start_113
invoke-virtual {v2}, Ljava/io/FileOutputStream;->close()V
:try_end_116
.catchall {:try_start_113 .. :try_end_116} :catchall_116
:catchall_116
:cond_116
return-void
:catchall_117
move-exception v0
if-eqz v4, :cond_11f
.line 173
:try_start_11a
invoke-virtual {v4}, Ljava/io/FileInputStream;->close()V
:try_end_11d
.catchall {:try_start_11a .. :try_end_11d} :catchall_11e
goto :goto_11f
:catchall_11e
nop
:cond_11f
:goto_11f
if-eqz v2, :cond_124
.line 180
:try_start_121
invoke-virtual {v2}, Ljava/io/FileOutputStream;->close()V
:try_end_124
.catchall {:try_start_121 .. :try_end_124} :catchall_124
.line 184
:catchall_124
:cond_124
throw v0
.end method
.method private b()V
.registers 4
.line 45
invoke-static {}, Lcom/bytedance/sdk/openadsdk/core/o;->a()Landroid/content/Context;
move-result-object v0
if-nez v0, :cond_7
return-void
.line 51
:cond_7
:try_start_7
invoke-static {}, Landroid/os/Environment;->getExternalStorageState()Ljava/lang/String;
move-result-object v1
const-string v2, "mounted"
.line 53
invoke-virtual {v2, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
:try_end_11
.catchall {:try_start_7 .. :try_end_11} :catchall_3e
const-string v2, "TTCache"
if-eqz v1, :cond_24
.line 54
:try_start_15
invoke-virtual {v0, v2}, Landroid/content/Context;->getExternalFilesDir(Ljava/lang/String;)Ljava/io/File;
move-result-object v1
if-eqz v1, :cond_24
.line 56
invoke-virtual {v1}, Ljava/io/File;->mkdirs()Z
.line 57
invoke-virtual {v1}, Ljava/io/File;->getPath()Ljava/lang/String;
move-result-object v1
iput-object v1, p0, Lcom/bytedance/sdk/openadsdk/utils/y;->b:Ljava/lang/String;
.line 62
:cond_24
iget-object v1, p0, Lcom/bytedance/sdk/openadsdk/utils/y;->b:Ljava/lang/String;
invoke-static {v1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v1
if-eqz v1, :cond_3e
.line 63
invoke-virtual {v0}, Landroid/content/Context;->getFilesDir()Ljava/io/File;
move-result-object v0
.line 64
new-instance v1, Ljava/io/File;
invoke-direct {v1, v0, v2}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V
.line 65
invoke-virtual {v1}, Ljava/io/File;->mkdirs()Z
.line 66
invoke-virtual {v1}, Ljava/io/File;->getPath()Ljava/lang/String;
move-result-object v0
iput-object v0, p0, Lcom/bytedance/sdk/openadsdk/utils/y;->b:Ljava/lang/String;
:try_end_3e
.catchall {:try_start_15 .. :try_end_3e} :catchall_3e
:catchall_3e
:cond_3e
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"
new-array v5, v3, [Ljava/lang/Class;
.line 195
const-class v6, Landroid/content/Context;
aput-object v6, v5, v2
invoke-static {v4, v0, v5}, Lcom/bytedance/sdk/openadsdk/utils/z;->a(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v4
if-eqz v4, :cond_1e
new-array v5, v3, [Ljava/lang/Object;
.line 198
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
.catchall {:try_start_5 .. :try_end_1e} :catchall_1e
:catchall_1e
:cond_1e
:try_start_1e
const-string v4, "com.bytedance.sdk.openadsdk.TTC3Proxy"
new-array v5, v3, [Ljava/lang/Class;
.line 205
const-class v6, Landroid/content/Context;
aput-object v6, v5, v2
invoke-static {v4, v0, v5}, Lcom/bytedance/sdk/openadsdk/utils/z;->a(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v0
if-eqz v0, :cond_37
new-array v3, v3, [Ljava/lang/Object;
.line 208
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
.catchall {:try_start_1e .. :try_end_37} :catchall_37
.line 215
:catchall_37
:cond_37
:try_start_37
invoke-static {}, Lcom/bytedance/sdk/openadsdk/core/g/f;->a()V
:try_end_3a
.catchall {:try_start_37 .. :try_end_3a} :catchall_3a
.line 221
:catchall_3a
:try_start_3a
invoke-static {}, Lcom/bytedance/sdk/openadsdk/core/widget/webview/a/a;->b()V
:try_end_3d
.catchall {:try_start_3a .. :try_end_3d} :catchall_3d
.line 227
:catchall_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 228
invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v1
if-nez v1, :cond_59
.line 229
new-instance v1, Ljava/io/File;
invoke-direct {v1, v0}, Ljava/io/File;-><init>(Ljava/lang/String;)V
.line 230
invoke-virtual {v1}, Ljava/io/File;->exists()Z
move-result v0
if-eqz v0, :cond_59
.line 231
invoke-static {v1}, Lcom/bytedance/sdk/openadsdk/utils/i;->c(Ljava/io/File;)V
:try_end_59
.catchall {:try_start_3d .. :try_end_59} :catchall_59
:catchall_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 76
:try_start_1
new-instance v1, Ljava/io/StringWriter;
invoke-direct {v1}, Ljava/io/StringWriter;-><init>()V
.line 77
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 78
invoke-virtual {v1}, Ljava/io/StringWriter;->toString()Ljava/lang/String;
move-result-object v1
if-eqz v1, :cond_24
.line 80
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 81
invoke-virtual {v1, v2}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v0
:try_end_22
.catchall {:try_start_1 .. :try_end_22} :catchall_23
goto :goto_24
:catchall_23
nop
:cond_24
:goto_24
if-eqz v0, :cond_29
.line 87
invoke-direct {p0, p1, p2}, Lcom/bytedance/sdk/openadsdk/utils/y;->a(Ljava/lang/Thread;Ljava/lang/Throwable;)V
.line 89
:cond_29
iget-object v0, p0, Lcom/bytedance/sdk/openadsdk/utils/y;->a:Ljava/lang/Thread$UncaughtExceptionHandler;
if-eqz v0, :cond_32
if-eq v0, p0, :cond_32
.line 90
invoke-interface {v0, p1, p2}, Ljava/lang/Thread$UncaughtExceptionHandler;->uncaughtException(Ljava/lang/Thread;Ljava/lang/Throwable;)V
:cond_32
return-void
.end method