UMCrashManager.smali
.class public Lcom/umeng/commonsdk/internal/crash/UMCrashManager;
.super Ljava/lang/Object;
.source "UMCrashManager.java"
# static fields
.field private static final CM_VERSION:Ljava/lang/String; = "2.0"
.field private static isReportCrash:Z
.field private static mObject:Ljava/lang/Object;
# direct methods
.method static constructor <clinit>()V
.registers 1
.line 1
new-instance v0, Ljava/lang/Object;
invoke-direct {v0}, Ljava/lang/Object;-><init>()V
sput-object v0, Lcom/umeng/commonsdk/internal/crash/UMCrashManager;->mObject:Ljava/lang/Object;
return-void
.end method
.method public constructor <init>()V
.registers 1
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static buildEnvelope(Landroid/content/Context;Ljava/lang/Object;)V
.registers 12
const-string v0, "MobclickRT"
const-string v1, "--->>> UMCrashManager.buildEnvelope enter."
.line 1
invoke-static {v0, v1}, Lcom/umeng/commonsdk/debug/UMRTLog;->e(Ljava/lang/String;Ljava/lang/String;)V
.line 2
:try_start_7
sget-object v0, Lcom/umeng/commonsdk/internal/crash/UMCrashManager;->mObject:Ljava/lang/Object;
monitor-enter v0
:try_end_a
.catch Ljava/lang/Throwable; {:try_start_7 .. :try_end_a} :catch_8a
if-eqz p0, :cond_85
if-nez p1, :cond_f
goto :goto_85
.line 3
:cond_f
:try_start_f
check-cast p1, Ljava/lang/String;
.line 4
invoke-static {p1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v1
if-nez v1, :cond_83
.line 5
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {p0}, Landroid/content/Context;->getFilesDir()Ljava/io/File;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
sget-object v2, Ljava/io/File;->separator:Ljava/lang/String;
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v2, ".emitter"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
.line 6
new-instance v2, Ljava/io/File;
invoke-direct {v2, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
.line 7
invoke-virtual {v2}, Ljava/io/File;->isDirectory()Z
move-result v3
if-nez v3, :cond_3f
.line 8
invoke-virtual {v2}, Ljava/io/File;->mkdir()Z
:cond_3f
const-string v2, "c"
const/16 v3, 0xa
.line 9
invoke-static {p0, v1, v2, v3}, Lcom/umeng/commonsdk/stateless/d;->a(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;I)V
:try_end_46
.catchall {:try_start_f .. :try_end_46} :catchall_87
.line 10
:try_start_46
new-instance v5, Lorg/json/JSONObject;
invoke-direct {v5}, Lorg/json/JSONObject;-><init>()V
const-string v1, "c_sdk_v"
const-string v2, "2.0"
.line 11
invoke-virtual {v5, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
.line 12
new-instance v1, Lorg/json/JSONObject;
invoke-direct {v1}, Lorg/json/JSONObject;-><init>()V
const-string v2, "content"
.line 13
invoke-virtual {v1, v2, p1}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
const-string p1, "ts"
.line 14
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v2
invoke-virtual {v1, p1, v2, v3}, Lorg/json/JSONObject;->put(Ljava/lang/String;J)Lorg/json/JSONObject;
.line 15
new-instance p1, Lorg/json/JSONObject;
invoke-direct {p1}, Lorg/json/JSONObject;-><init>()V
const-string v2, "crash"
.line 16
invoke-virtual {p1, v2, v1}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
.line 17
new-instance v6, Lorg/json/JSONObject;
invoke-direct {v6}, Lorg/json/JSONObject;-><init>()V
const-string v1, "tp"
.line 18
invoke-virtual {v6, v1, p1}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
.line 19
sget-object v7, Lcom/umeng/commonsdk/statistics/UMServerURL;->PATH_INNER_CRASH:Ljava/lang/String;
const-string v8, "c"
const-string v9, "2.0"
move-object v4, p0
invoke-static/range {v4 .. v9}, Lcom/umeng/commonsdk/framework/UMEnvelopeBuild;->buildEnvelopeWithExtHeader(Landroid/content/Context;Lorg/json/JSONObject;Lorg/json/JSONObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/json/JSONObject;
:try_end_83
.catch Lorg/json/JSONException; {:try_start_46 .. :try_end_83} :catch_83
.catchall {:try_start_46 .. :try_end_83} :catchall_87
.line 20
:catch_83
:cond_83
:try_start_83
monitor-exit v0
goto :goto_8a
.line 21
:cond_85
:goto_85
monitor-exit v0
return-void
:catchall_87
move-exception p0
.line 22
monitor-exit v0
:try_end_89
.catchall {:try_start_83 .. :try_end_89} :catchall_87
:try_start_89
throw p0
:try_end_8a
.catch Ljava/lang/Throwable; {:try_start_89 .. :try_end_8a} :catch_8a
:catch_8a
:goto_8a
return-void
.end method
.method public static reportCrash(Landroid/content/Context;Ljava/lang/Throwable;)V
.registers 5
.line 1
sget-object v0, Lcom/umeng/commonsdk/internal/crash/UMCrashManager;->mObject:Ljava/lang/Object;
monitor-enter v0
.line 2
:try_start_3
sget-boolean v1, Lcom/umeng/commonsdk/internal/crash/UMCrashManager;->isReportCrash:Z
if-nez v1, :cond_1c
const/4 v1, 0x1
.line 3
sput-boolean v1, Lcom/umeng/commonsdk/internal/crash/UMCrashManager;->isReportCrash:Z
.line 4
invoke-static {p1}, Lcom/umeng/commonsdk/internal/crash/a;->a(Ljava/lang/Throwable;)Ljava/lang/String;
move-result-object p1
const v1, 0x8012
.line 5
invoke-static {p0}, Lcom/umeng/commonsdk/internal/b;->a(Landroid/content/Context;)Lcom/umeng/commonsdk/internal/b;
move-result-object v2
invoke-virtual {v2}, Lcom/umeng/commonsdk/internal/b;->a()Lcom/umeng/commonsdk/internal/c;
move-result-object v2
.line 6
invoke-static {p0, v1, v2, p1}, Lcom/umeng/commonsdk/framework/UMWorkDispatch;->sendEvent(Landroid/content/Context;ILcom/umeng/commonsdk/framework/UMLogDataProtocol;Ljava/lang/Object;)V
.line 7
:cond_1c
monitor-exit v0
return-void
:catchall_1e
move-exception p0
monitor-exit v0
:try_end_20
.catchall {:try_start_3 .. :try_end_20} :catchall_1e
throw p0
.end method