b.smali
.class public final Lcn/jiguang/ay/b;
.super Ljava/lang/Object;
# static fields
.field private static a:Ljava/lang/String;
.field private static b:Ljava/lang/String;
.field private static c:Ljava/lang/String;
.field private static final d:Ljava/text/SimpleDateFormat;
.field private static e:Ljava/util/ArrayList;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/ArrayList",
"<",
"Ljava/lang/String;",
">;"
}
.end annotation
.end field
.field private static f:Z
.field private static g:Z
# direct methods
.method static constructor <clinit>()V
.registers 4
const/4 v3, 0x0
const-string v0, ".jpush"
sput-object v0, Lcn/jiguang/ay/b;->a:Ljava/lang/String;
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;->getAbsolutePath()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
sget-object v1, Lcn/jiguang/ay/b;->a:Ljava/lang/String;
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, Lcn/jiguang/ay/b;->b:Ljava/lang/String;
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
sget-object v1, Lcn/jiguang/ay/b;->b:Ljava/lang/String;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
sget-object v1, Lcn/jiguang/ay/b;->a: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, Lcn/jiguang/ay/b;->c:Ljava/lang/String;
new-instance v0, Ljava/text/SimpleDateFormat;
const-string v1, "MM.dd_HH:mm:ss_SSS"
sget-object v2, Ljava/util/Locale;->ENGLISH:Ljava/util/Locale;
invoke-direct {v0, v1, v2}, Ljava/text/SimpleDateFormat;-><init>(Ljava/lang/String;Ljava/util/Locale;)V
sput-object v0, Lcn/jiguang/ay/b;->d:Ljava/text/SimpleDateFormat;
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
sput-object v0, Lcn/jiguang/ay/b;->e:Ljava/util/ArrayList;
sput-boolean v3, Lcn/jiguang/ay/b;->f:Z
sput-boolean v3, Lcn/jiguang/ay/b;->g:Z
return-void
.end method
.method static synthetic a()Ljava/lang/String;
.registers 1
sget-object v0, Lcn/jiguang/ay/b;->c:Ljava/lang/String;
return-object v0
.end method
.method private static a(Ljava/lang/String;)V
.registers 4
sget-boolean v0, Lcn/jiguang/ay/b;->g:Z
if-eqz v0, :cond_5
:cond_4
:goto_4
return-void
:cond_5
:try_start_5
sget-object v0, Lcn/jiguang/ay/b;->e:Ljava/util/ArrayList;
invoke-virtual {v0, p0}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
sget-object v0, Lcn/jiguang/ay/b;->e:Ljava/util/ArrayList;
invoke-virtual {v0}, Ljava/util/ArrayList;->size()I
move-result v0
const/16 v1, 0x1f4
if-ne v0, v1, :cond_4
sget-object v0, Lcn/jiguang/ay/b;->e:Ljava/util/ArrayList;
new-instance v1, Ljava/util/ArrayList;
invoke-direct {v1}, Ljava/util/ArrayList;-><init>()V
sput-object v1, Lcn/jiguang/ay/b;->e:Ljava/util/ArrayList;
sget-object v1, Lcn/jiguang/internal/JConstants;->mApplicationContext:Landroid/content/Context;
const-string v2, "android.permission.WRITE_EXTERNAL_STORAGE"
invoke-static {v1, v2}, Lcn/jiguang/f/a;->c(Landroid/content/Context;Ljava/lang/String;)Z
move-result v1
sput-boolean v1, Lcn/jiguang/ay/b;->f:Z
sget-boolean v1, Lcn/jiguang/ay/b;->f:Z
if-eqz v1, :cond_3f
const-string v1, "Logger"
const-string v2, "have writable external storage, write log file"
invoke-static {v1, v2}, Lcn/jiguang/ay/c;->a(Ljava/lang/String;Ljava/lang/String;)V
invoke-static {v0}, Lcn/jiguang/ay/b;->a(Ljava/util/ArrayList;)V
:try_end_35
.catch Ljava/lang/ArrayIndexOutOfBoundsException; {:try_start_5 .. :try_end_35} :catch_36
.catch Ljava/lang/Throwable; {:try_start_5 .. :try_end_35} :catch_47
goto :goto_4
:catch_36
move-exception v0
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
sput-object v0, Lcn/jiguang/ay/b;->e:Ljava/util/ArrayList;
goto :goto_4
:cond_3f
:try_start_3f
const-string v0, "Logger"
const-string v1, "no writable external storage"
invoke-static {v0, v1}, Lcn/jiguang/ay/c;->a(Ljava/lang/String;Ljava/lang/String;)V
:try_end_46
.catch Ljava/lang/ArrayIndexOutOfBoundsException; {:try_start_3f .. :try_end_46} :catch_36
.catch Ljava/lang/Throwable; {:try_start_3f .. :try_end_46} :catch_47
goto :goto_4
:catch_47
move-exception v0
invoke-virtual {v0}, Ljava/lang/Throwable;->printStackTrace()V
goto :goto_4
.end method
.method public static a(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
.registers 10
if-eqz p1, :cond_e
invoke-virtual {p1}, 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-eqz v0, :cond_10
:cond_e
const-string p1, "Logger"
:cond_10
if-nez p2, :cond_13
:cond_12
:goto_12
return-void
:cond_13
:try_start_13
sget-object v0, Lcn/jiguang/ay/b;->d:Ljava/text/SimpleDateFormat;
new-instance v1, Ljava/util/Date;
invoke-direct {v1}, Ljava/util/Date;-><init>()V
invoke-virtual {v0, v1}, Ljava/text/SimpleDateFormat;->format(Ljava/util/Date;)Ljava/lang/String;
move-result-object v1
new-instance v0, Ljava/io/StringReader;
invoke-direct {v0, p2}, Ljava/io/StringReader;-><init>(Ljava/lang/String;)V
new-instance v2, Ljava/io/BufferedReader;
const/16 v3, 0x100
invoke-direct {v2, v0, v3}, Ljava/io/BufferedReader;-><init>(Ljava/io/Reader;I)V
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "["
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v3, "]"
invoke-virtual {v0, v3}, 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
const/16 v3, 0x18
invoke-static {v0, v3}, Lcn/jiguang/f/f;->a(Ljava/lang/String;I)Ljava/lang/String;
:try_end_48
.catch Ljava/lang/Throwable; {:try_start_13 .. :try_end_48} :catch_c0
move-result-object v0
:goto_49
:try_start_49
invoke-virtual {v2}, Ljava/io/BufferedReader;->readLine()Ljava/lang/String;
move-result-object v3
if-eqz v3, :cond_8d
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v4, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v4
const-string v5, " "
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
const/4 v5, 0x5
invoke-static {p0, v5}, Lcn/jiguang/f/f;->a(Ljava/lang/String;I)Ljava/lang/String;
move-result-object v5
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
const-string v5, " "
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
const-string v5, " "
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-static {v3}, Lcn/jiguang/ay/b;->a(Ljava/lang/String;)V
:try_end_82
.catch Ljava/io/IOException; {:try_start_49 .. :try_end_82} :catch_83
.catch Ljava/lang/Throwable; {:try_start_49 .. :try_end_82} :catch_c0
goto :goto_49
:catch_83
move-exception v0
:try_start_84
const-string v2, "Logger"
invoke-virtual {v0}, Ljava/io/IOException;->getMessage()Ljava/lang/String;
move-result-object v0
invoke-static {v2, v0}, Lcn/jiguang/ay/c;->i(Ljava/lang/String;Ljava/lang/String;)V
:cond_8d
if-eqz p3, :cond_12
new-instance v0, Ljava/io/StringWriter;
invoke-direct {v0}, Ljava/io/StringWriter;-><init>()V
new-instance v2, Ljava/io/PrintWriter;
invoke-direct {v2, v0}, Ljava/io/PrintWriter;-><init>(Ljava/io/Writer;)V
invoke-virtual {p3, v2}, Ljava/lang/Throwable;->printStackTrace(Ljava/io/PrintWriter;)V
invoke-virtual {v0}, Ljava/io/StringWriter;->toString()Ljava/lang/String;
move-result-object v0
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, " "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
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}, Lcn/jiguang/ay/b;->a(Ljava/lang/String;)V
:try_end_be
.catch Ljava/lang/Throwable; {:try_start_84 .. :try_end_be} :catch_c0
goto/16 :goto_12
:catch_c0
move-exception v0
const-string v1, "Logger"
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "logtofile call failed:"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v0}, Ljava/lang/Throwable;->getMessage()Ljava/lang/String;
move-result-object v0
invoke-virtual {v2, 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 {v1, v0}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
goto/16 :goto_12
.end method
.method private static a(Ljava/util/ArrayList;)V
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/ArrayList",
"<",
"Ljava/lang/String;",
">;)V"
}
.end annotation
:try_start_0
sget-object v0, Lcn/jiguang/internal/JConstants;->mApplicationContext:Landroid/content/Context;
if-eqz v0, :cond_16
sget-object v0, Lcn/jiguang/internal/JConstants;->mApplicationContext:Landroid/content/Context;
const-string v1, "android.permission.WRITE_EXTERNAL_STORAGE"
invoke-static {v0, v1}, Lcn/jiguang/f/a;->c(Landroid/content/Context;Ljava/lang/String;)Z
move-result v0
if-nez v0, :cond_16
const-string v0, "Logger"
const-string v1, "WRITE_EXTERNAL_STORAGE not get"
invoke-static {v0, v1}, Lcn/jiguang/ay/c;->g(Ljava/lang/String;Ljava/lang/String;)V
:goto_15
return-void
:cond_16
const-string v0, "NORMAL_TASK"
new-instance v1, Lcn/jiguang/ay/b$1;
const-string v2, "LogToFile#saveLogs"
invoke-direct {v1, v2, p0}, Lcn/jiguang/ay/b$1;-><init>(Ljava/lang/String;Ljava/util/ArrayList;)V
invoke-static {v0, v1}, Lcn/jiguang/bl/d;->a(Ljava/lang/String;Ljava/lang/Runnable;)V
:try_end_22
.catch Ljava/lang/Throwable; {:try_start_0 .. :try_end_22} :catch_23
goto :goto_15
:catch_23
move-exception v0
invoke-virtual {v0}, Ljava/lang/Throwable;->printStackTrace()V
goto :goto_15
.end method
.method static synthetic b()Ljava/util/ArrayList;
.registers 1
sget-object v0, Lcn/jiguang/ay/b;->e:Ljava/util/ArrayList;
return-object v0
.end method
.method static synthetic c()V
.registers 0
invoke-static {}, Lcn/jiguang/ay/b;->d()V
return-void
.end method
.method private static d()V
.registers 8
:try_start_0
new-instance v0, Ljava/io/File;
sget-object v1, Lcn/jiguang/ay/b;->b:Ljava/lang/String;
invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
invoke-virtual {v0}, Ljava/io/File;->exists()Z
move-result v1
if-nez v1, :cond_e
:cond_d
:goto_d
return-void
:cond_e
sget-object v1, Lcn/jiguang/ay/b;->a:Ljava/lang/String;
invoke-virtual {v1}, Ljava/lang/String;->length()I
move-result v1
add-int/lit8 v1, v1, 0x1
sget-object v2, Lcn/jiguang/f/b;->a:Ljava/lang/String;
invoke-virtual {v2}, Ljava/lang/String;->length()I
move-result v2
add-int/2addr v2, v1
invoke-virtual {v0}, Ljava/io/File;->listFiles()[Ljava/io/File;
move-result-object v3
if-eqz v3, :cond_d
invoke-virtual {v0}, Ljava/io/File;->listFiles()[Ljava/io/File;
move-result-object v3
array-length v4, v3
const/4 v0, 0x0
:goto_29
if-ge v0, v4, :cond_d
aget-object v5, v3, v0
invoke-virtual {v5}, Ljava/io/File;->getName()Ljava/lang/String;
move-result-object v6
invoke-virtual {v6, v1, v2}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v6
invoke-static {v6}, Lcn/jiguang/f/b;->b(Ljava/lang/String;)Ljava/util/Date;
move-result-object v6
const/4 v7, 0x2
invoke-static {v6, v7}, Lcn/jiguang/f/b;->a(Ljava/util/Date;I)Z
move-result v6
if-eqz v6, :cond_43
invoke-virtual {v5}, Ljava/io/File;->delete()Z
:try_end_43
.catch Ljava/lang/Throwable; {:try_start_0 .. :try_end_43} :catch_46
:cond_43
add-int/lit8 v0, v0, 0x1
goto :goto_29
:catch_46
move-exception v0
const-string v1, "Logger"
invoke-virtual {v0}, Ljava/lang/Throwable;->getMessage()Ljava/lang/String;
move-result-object v0
invoke-static {v1, v0}, Lcn/jiguang/ay/c;->i(Ljava/lang/String;Ljava/lang/String;)V
goto :goto_d
.end method