f.smali
.class public La2/f;
.super Ljava/lang/Thread;
.source "LoganThread.java"
# instance fields
.field public final a:Ljava/lang/Object;
.field public final b:Ljava/lang/Object;
.field public volatile c:Z
.field public d:J
.field public e:Z
.field public f:Ljava/io/File;
.field public g:Z
.field public h:J
.field public i:La2/d;
.field public j:Ljava/util/concurrent/ConcurrentLinkedQueue;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/concurrent/ConcurrentLinkedQueue<",
"Lcom/dianping/logan/LoganModel;",
">;"
}
.end annotation
.end field
.field public k:Ljava/lang/String;
.field public l:Ljava/lang/String;
.field public m:J
.field public n:J
.field public o:J
.field public p:Ljava/lang/String;
.field public q:Ljava/lang/String;
.field public r:I
.field public s:Ljava/util/concurrent/ConcurrentLinkedQueue;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/concurrent/ConcurrentLinkedQueue<",
"Lcom/dianping/logan/LoganModel;",
">;"
}
.end annotation
.end field
.field public t:Ljava/util/concurrent/ExecutorService;
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method public constructor <init>(Ljava/util/concurrent/ConcurrentLinkedQueue;Ljava/lang/String;Ljava/lang/String;JJJLjava/lang/String;Ljava/lang/String;)V
.registers 13
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/concurrent/ConcurrentLinkedQueue<",
"Lcom/dianping/logan/LoganModel;",
">;",
"Ljava/lang/String;",
"Ljava/lang/String;",
"JJJ",
"Ljava/lang/String;",
"Ljava/lang/String;",
")V"
}
.end annotation
invoke-direct {p0}, Ljava/lang/Thread;-><init>()V
new-instance v0, Ljava/lang/Object;
invoke-direct {v0}, Ljava/lang/Object;-><init>()V
iput-object v0, p0, La2/f;->a:Ljava/lang/Object;
new-instance v0, Ljava/lang/Object;
invoke-direct {v0}, Ljava/lang/Object;-><init>()V
iput-object v0, p0, La2/f;->b:Ljava/lang/Object;
const/4 v0, 0x1
iput-boolean v0, p0, La2/f;->c:Z
new-instance v0, Ljava/util/concurrent/ConcurrentLinkedQueue;
invoke-direct {v0}, Ljava/util/concurrent/ConcurrentLinkedQueue;-><init>()V
iput-object v0, p0, La2/f;->s:Ljava/util/concurrent/ConcurrentLinkedQueue;
iput-object p1, p0, La2/f;->j:Ljava/util/concurrent/ConcurrentLinkedQueue;
iput-object p2, p0, La2/f;->k:Ljava/lang/String;
iput-object p3, p0, La2/f;->l:Ljava/lang/String;
iput-wide p4, p0, La2/f;->m:J
iput-wide p6, p0, La2/f;->n:J
iput-wide p8, p0, La2/f;->o:J
iput-object p10, p0, La2/f;->p:Ljava/lang/String;
iput-object p11, p0, La2/f;->q:Ljava/lang/String;
return-void
.end method
.method public static synthetic a(La2/f;I)I
.registers 2
iput p1, p0, La2/f;->r:I
return p1
.end method
.method public static synthetic a(La2/f;)Ljava/lang/Object;
.registers 1
iget-object p0, p0, La2/f;->b:Ljava/lang/Object;
return-object p0
.end method
.method public static synthetic b(La2/f;)Ljava/util/concurrent/ConcurrentLinkedQueue;
.registers 1
iget-object p0, p0, La2/f;->s:Ljava/util/concurrent/ConcurrentLinkedQueue;
return-object p0
.end method
.method public static synthetic c(La2/f;)Ljava/util/concurrent/ConcurrentLinkedQueue;
.registers 1
iget-object p0, p0, La2/f;->j:Ljava/util/concurrent/ConcurrentLinkedQueue;
return-object p0
.end method
# virtual methods
.method public final a()V
.registers 3
sget-boolean v0, La2/a;->c:Z
if-eqz v0, :cond_b
const-string v0, "LoganThread"
const-string v1, "Logan flush start"
invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
:cond_b
iget-object v0, p0, La2/f;->i:La2/d;
if-eqz v0, :cond_12
invoke-virtual {v0}, La2/d;->a()V
:cond_12
return-void
.end method
.method public final a(J)V
.registers 12
new-instance v0, Ljava/io/File;
iget-object v1, p0, La2/f;->l:Ljava/lang/String;
invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
invoke-virtual {v0}, Ljava/io/File;->isDirectory()Z
move-result v1
if-eqz v1, :cond_4e
invoke-virtual {v0}, Ljava/io/File;->list()[Ljava/lang/String;
move-result-object v0
if-eqz v0, :cond_4e
array-length v1, v0
const/4 v2, 0x0
const/4 v3, 0x0
:goto_16
if-ge v3, v1, :cond_4e
aget-object v4, v0, v3
:try_start_1a
invoke-static {v4}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v5
if-eqz v5, :cond_21
goto :goto_4b
:cond_21
const-string v5, "\\."
invoke-virtual {v4, v5}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v5
array-length v6, v5
if-lez v6, :cond_4b
aget-object v6, v5, v2
invoke-static {v6}, Ljava/lang/Long;->valueOf(Ljava/lang/String;)Ljava/lang/Long;
move-result-object v6
invoke-virtual {v6}, Ljava/lang/Long;->longValue()J
move-result-wide v6
cmp-long v8, v6, p1
if-gtz v8, :cond_4b
array-length v5, v5
const/4 v6, 0x1
if-ne v5, v6, :cond_4b
new-instance v5, Ljava/io/File;
iget-object v6, p0, La2/f;->l:Ljava/lang/String;
invoke-direct {v5, v6, v4}, Ljava/io/File;-><init>(Ljava/lang/String;Ljava/lang/String;)V
invoke-virtual {v5}, Ljava/io/File;->delete()Z
:try_end_46
.catch Ljava/lang/Exception; {:try_start_1a .. :try_end_46} :catch_47
goto :goto_4b
:catch_47
move-exception v4
invoke-virtual {v4}, Ljava/lang/Exception;->printStackTrace()V
:cond_4b
:goto_4b
add-int/lit8 v3, v3, 0x1
goto :goto_16
:cond_4e
return-void
.end method
.method public final a(La2/h;)V
.registers 4
sget-boolean v0, La2/a;->c:Z
const-string v1, "LoganThread"
if-eqz v0, :cond_b
const-string v0, "Logan send start"
invoke-static {v1, v0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
:cond_b
iget-object v0, p0, La2/f;->l:Ljava/lang/String;
invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v0
if-nez v0, :cond_55
if-eqz p1, :cond_55
invoke-virtual {p1}, La2/h;->a()Z
move-result v0
if-nez v0, :cond_1c
goto :goto_55
:cond_1c
invoke-virtual {p0, p1}, La2/f;->b(La2/h;)Z
move-result v0
if-nez v0, :cond_2c
sget-boolean p1, La2/a;->c:Z
if-eqz p1, :cond_2b
const-string p1, "Logan prepare log file failed, can\'t find log file"
invoke-static {v1, p1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
:cond_2b
return-void
:cond_2c
iget-object v0, p1, La2/h;->d:La2/i;
invoke-virtual {v0, p1}, La2/i;->a(La2/h;)V
iget-object v0, p1, La2/h;->d:La2/i;
new-instance v1, La2/f$b;
invoke-direct {v1, p0}, La2/f$b;-><init>(La2/f;)V
invoke-virtual {v0, v1}, La2/i;->a(La2/i$a;)V
const/16 v0, 0x2711
iput v0, p0, La2/f;->r:I
iget-object v0, p0, La2/f;->t:Ljava/util/concurrent/ExecutorService;
if-nez v0, :cond_4e
new-instance v0, La2/f$c;
invoke-direct {v0, p0}, La2/f$c;-><init>(La2/f;)V
invoke-static {v0}, Ljava/util/concurrent/Executors;->newSingleThreadExecutor(Ljava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ExecutorService;
move-result-object v0
iput-object v0, p0, La2/f;->t:Ljava/util/concurrent/ExecutorService;
:cond_4e
iget-object v0, p0, La2/f;->t:Ljava/util/concurrent/ExecutorService;
iget-object p1, p1, La2/h;->d:La2/i;
invoke-interface {v0, p1}, Ljava/util/concurrent/ExecutorService;->execute(Ljava/lang/Runnable;)V
:cond_55
:goto_55
return-void
.end method
.method public final a(La2/k;)V
.registers 12
sget-boolean v0, La2/a;->c:Z
if-eqz v0, :cond_b
const-string v0, "LoganThread"
const-string v1, "Logan write start"
invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
:cond_b
iget-object v0, p0, La2/f;->f:Ljava/io/File;
if-nez v0, :cond_18
new-instance v0, Ljava/io/File;
iget-object v1, p0, La2/f;->l:Ljava/lang/String;
invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
iput-object v0, p0, La2/f;->f:Ljava/io/File;
:cond_18
invoke-virtual {p0}, La2/f;->c()Z
move-result v0
if-nez v0, :cond_34
invoke-static {}, La2/j;->a()J
move-result-wide v0
iget-wide v2, p0, La2/f;->m:J
sub-long v2, v0, v2
invoke-virtual {p0, v2, v3}, La2/f;->a(J)V
iput-wide v0, p0, La2/f;->d:J
iget-object v2, p0, La2/f;->i:La2/d;
invoke-static {v0, v1}, Ljava/lang/String;->valueOf(J)Ljava/lang/String;
move-result-object v0
invoke-virtual {v2, v0}, La2/d;->a(Ljava/lang/String;)V
:cond_34
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v0
iget-wide v2, p0, La2/f;->h:J
sub-long/2addr v0, v2
const-wide/32 v2, 0xea60
cmp-long v4, v0, v2
if-lez v4, :cond_48
invoke-virtual {p0}, La2/f;->b()Z
move-result v0
iput-boolean v0, p0, La2/f;->g:Z
:cond_48
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v0
iput-wide v0, p0, La2/f;->h:J
iget-boolean v0, p0, La2/f;->g:Z
if-nez v0, :cond_53
return-void
:cond_53
iget-object v1, p0, La2/f;->i:La2/d;
iget v2, p1, La2/k;->f:I
iget-object v3, p1, La2/k;->a:Ljava/lang/String;
iget-wide v4, p1, La2/k;->e:J
iget-object v6, p1, La2/k;->d:Ljava/lang/String;
iget-wide v7, p1, La2/k;->c:J
iget-boolean v9, p1, La2/k;->b:Z
invoke-virtual/range {v1 .. v9}, La2/d;->a(ILjava/lang/String;JLjava/lang/String;JZ)V
return-void
.end method
.method public final a(Lcom/dianping/logan/LoganModel;)V
.registers 10
if-eqz p1, :cond_68
invoke-virtual {p1}, Lcom/dianping/logan/LoganModel;->a()Z
move-result v0
if-nez v0, :cond_9
goto :goto_68
:cond_9
iget-object v0, p0, La2/f;->i:La2/d;
if-nez v0, :cond_32
invoke-static {}, La2/d;->b()La2/d;
move-result-object v0
iput-object v0, p0, La2/f;->i:La2/d;
new-instance v1, La2/f$a;
invoke-direct {v1, p0}, La2/f$a;-><init>(La2/f;)V
invoke-virtual {v0, v1}, La2/d;->a(La2/g;)V
iget-object v2, p0, La2/f;->i:La2/d;
iget-object v3, p0, La2/f;->k:Ljava/lang/String;
iget-object v4, p0, La2/f;->l:Ljava/lang/String;
iget-wide v0, p0, La2/f;->n:J
long-to-int v5, v0
iget-object v6, p0, La2/f;->p:Ljava/lang/String;
iget-object v7, p0, La2/f;->q:Ljava/lang/String;
invoke-virtual/range {v2 .. v7}, La2/d;->a(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V
iget-object v0, p0, La2/f;->i:La2/d;
sget-boolean v1, La2/a;->c:Z
invoke-virtual {v0, v1}, La2/d;->a(Z)V
:cond_32
iget-object v0, p1, Lcom/dianping/logan/LoganModel;->a:Lcom/dianping/logan/LoganModel$Action;
sget-object v1, Lcom/dianping/logan/LoganModel$Action;->WRITE:Lcom/dianping/logan/LoganModel$Action;
if-ne v0, v1, :cond_3e
iget-object p1, p1, Lcom/dianping/logan/LoganModel;->b:La2/k;
invoke-virtual {p0, p1}, La2/f;->a(La2/k;)V
goto :goto_68
:cond_3e
sget-object v1, Lcom/dianping/logan/LoganModel$Action;->SEND:Lcom/dianping/logan/LoganModel$Action;
if-ne v0, v1, :cond_61
iget-object v0, p1, Lcom/dianping/logan/LoganModel;->c:La2/h;
iget-object v0, v0, La2/h;->d:La2/i;
if-eqz v0, :cond_68
iget-object v0, p0, La2/f;->b:Ljava/lang/Object;
monitor-enter v0
:try_start_4b
iget v1, p0, La2/f;->r:I
const/16 v2, 0x2711
if-ne v1, v2, :cond_57
iget-object v1, p0, La2/f;->s:Ljava/util/concurrent/ConcurrentLinkedQueue;
invoke-virtual {v1, p1}, Ljava/util/concurrent/ConcurrentLinkedQueue;->add(Ljava/lang/Object;)Z
goto :goto_5c
:cond_57
iget-object p1, p1, Lcom/dianping/logan/LoganModel;->c:La2/h;
invoke-virtual {p0, p1}, La2/f;->a(La2/h;)V
:goto_5c
monitor-exit v0
goto :goto_68
:catchall_5e
move-exception p1
monitor-exit v0
:try_end_60
.catchall {:try_start_4b .. :try_end_60} :catchall_5e
throw p1
:cond_61
sget-object p1, Lcom/dianping/logan/LoganModel$Action;->FLUSH:Lcom/dianping/logan/LoganModel$Action;
if-ne v0, p1, :cond_68
invoke-virtual {p0}, La2/f;->a()V
:cond_68
:goto_68
return-void
.end method
.method public final a(Ljava/lang/String;)Z
.registers 6
iget-object v0, p0, La2/f;->l:Ljava/lang/String;
invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v0
const/4 v1, 0x0
if-eqz v0, :cond_a
return v1
:cond_a
new-instance v0, Ljava/io/File;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
iget-object v3, p0, La2/f;->l:Ljava/lang/String;
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
sget-object v3, Ljava/io/File;->separator:Ljava/lang/String;
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {v0, p1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
invoke-virtual {v0}, Ljava/io/File;->exists()Z
move-result p1
if-eqz p1, :cond_32
invoke-virtual {v0}, Ljava/io/File;->isFile()Z
move-result p1
if-eqz p1, :cond_32
const/4 v1, 0x1
:cond_32
return v1
.end method
.method public final a(Ljava/lang/String;Ljava/lang/String;)Z
.registers 7
const/4 v0, 0x0
const/4 v1, 0x0
:try_start_2
new-instance v2, Ljava/io/FileInputStream;
new-instance v3, Ljava/io/File;
invoke-direct {v3, p1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
invoke-direct {v2, v3}, Ljava/io/FileInputStream;-><init>(Ljava/io/File;)V
:try_end_c
.catch Ljava/io/FileNotFoundException; {:try_start_2 .. :try_end_c} :catch_63
.catch Ljava/io/IOException; {:try_start_2 .. :try_end_c} :catch_4e
.catchall {:try_start_2 .. :try_end_c} :catchall_4b
:try_start_c
new-instance p1, Ljava/io/FileOutputStream;
new-instance v3, Ljava/io/File;
invoke-direct {v3, p2}, Ljava/io/File;-><init>(Ljava/lang/String;)V
invoke-direct {p1, v3}, Ljava/io/FileOutputStream;-><init>(Ljava/io/File;)V
:try_end_16
.catch Ljava/io/FileNotFoundException; {:try_start_c .. :try_end_16} :catch_47
.catch Ljava/io/IOException; {:try_start_c .. :try_end_16} :catch_43
.catchall {:try_start_c .. :try_end_16} :catchall_3f
const/16 p2, 0x400
:try_start_18
new-array p2, p2, [B
:goto_1a
invoke-virtual {v2, p2}, Ljava/io/FileInputStream;->read([B)I
move-result v0
if-ltz v0, :cond_27
invoke-virtual {p1, p2, v1, v0}, Ljava/io/FileOutputStream;->write([BII)V
invoke-virtual {p1}, Ljava/io/FileOutputStream;->flush()V
:try_end_26
.catch Ljava/io/FileNotFoundException; {:try_start_18 .. :try_end_26} :catch_3d
.catch Ljava/io/IOException; {:try_start_18 .. :try_end_26} :catch_3b
.catchall {:try_start_18 .. :try_end_26} :catchall_39
goto :goto_1a
:cond_27
const/4 v1, 0x1
:try_start_28
invoke-virtual {v2}, Ljava/io/FileInputStream;->close()V
:try_end_2b
.catch Ljava/lang/Exception; {:try_start_28 .. :try_end_2b} :catch_2c
goto :goto_30
:catch_2c
move-exception p2
invoke-virtual {p2}, Ljava/lang/Exception;->printStackTrace()V
:goto_30
:try_start_30
invoke-virtual {p1}, Ljava/io/FileOutputStream;->close()V
:try_end_33
.catch Ljava/lang/Exception; {:try_start_30 .. :try_end_33} :catch_34
goto :goto_77
:catch_34
move-exception p1
invoke-virtual {p1}, Ljava/lang/Exception;->printStackTrace()V
goto :goto_77
:catchall_39
move-exception p2
goto :goto_41
:catch_3b
move-exception p2
goto :goto_45
:catch_3d
move-exception p2
goto :goto_49
:catchall_3f
move-exception p2
move-object p1, v0
:goto_41
move-object v0, v2
goto :goto_79
:catch_43
move-exception p2
move-object p1, v0
:goto_45
move-object v0, v2
goto :goto_50
:catch_47
move-exception p2
move-object p1, v0
:goto_49
move-object v0, v2
goto :goto_65
:catchall_4b
move-exception p2
move-object p1, v0
goto :goto_79
:catch_4e
move-exception p2
move-object p1, v0
:goto_50
:try_start_50
invoke-virtual {p2}, Ljava/io/IOException;->printStackTrace()V
:try_end_53
.catchall {:try_start_50 .. :try_end_53} :catchall_78
if-eqz v0, :cond_5d
:try_start_55
invoke-virtual {v0}, Ljava/io/FileInputStream;->close()V
:try_end_58
.catch Ljava/lang/Exception; {:try_start_55 .. :try_end_58} :catch_59
goto :goto_5d
:catch_59
move-exception p2
invoke-virtual {p2}, Ljava/lang/Exception;->printStackTrace()V
:cond_5d
:goto_5d
if-eqz p1, :cond_77
:try_start_5f
invoke-virtual {p1}, Ljava/io/FileOutputStream;->close()V
:try_end_62
.catch Ljava/lang/Exception; {:try_start_5f .. :try_end_62} :catch_34
goto :goto_77
:catch_63
move-exception p2
move-object p1, v0
:goto_65
:try_start_65
invoke-virtual {p2}, Ljava/io/FileNotFoundException;->printStackTrace()V
:try_end_68
.catchall {:try_start_65 .. :try_end_68} :catchall_78
if-eqz v0, :cond_72
:try_start_6a
invoke-virtual {v0}, Ljava/io/FileInputStream;->close()V
:try_end_6d
.catch Ljava/lang/Exception; {:try_start_6a .. :try_end_6d} :catch_6e
goto :goto_72
:catch_6e
move-exception p2
invoke-virtual {p2}, Ljava/lang/Exception;->printStackTrace()V
:cond_72
:goto_72
if-eqz p1, :cond_77
:try_start_74
invoke-virtual {p1}, Ljava/io/FileOutputStream;->close()V
:try_end_77
.catch Ljava/lang/Exception; {:try_start_74 .. :try_end_77} :catch_34
:cond_77
:goto_77
return v1
:catchall_78
move-exception p2
:goto_79
if-eqz v0, :cond_83
:try_start_7b
invoke-virtual {v0}, Ljava/io/FileInputStream;->close()V
:try_end_7e
.catch Ljava/lang/Exception; {:try_start_7b .. :try_end_7e} :catch_7f
goto :goto_83
:catch_7f
move-exception v0
invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
:cond_83
:goto_83
if-eqz p1, :cond_8d
:try_start_85
invoke-virtual {p1}, Ljava/io/FileOutputStream;->close()V
:try_end_88
.catch Ljava/lang/Exception; {:try_start_85 .. :try_end_88} :catch_89
goto :goto_8d
:catch_89
move-exception p1
invoke-virtual {p1}, Ljava/lang/Exception;->printStackTrace()V
:cond_8d
:goto_8d
goto :goto_8f
:goto_8e
throw p2
:goto_8f
goto :goto_8e
.end method
.method public final b()Z
.registers 7
const/4 v0, 0x0
:try_start_1
new-instance v1, Landroid/os/StatFs;
iget-object v2, p0, La2/f;->l:Ljava/lang/String;
invoke-direct {v1, v2}, Landroid/os/StatFs;-><init>(Ljava/lang/String;)V
invoke-virtual {v1}, Landroid/os/StatFs;->getBlockSize()I
move-result v2
int-to-long v2, v2
invoke-virtual {v1}, Landroid/os/StatFs;->getAvailableBlocks()I
move-result v1
int-to-long v4, v1
mul-long v4, v4, v2
iget-wide v1, p0, La2/f;->o:J
:try_end_16
.catch Ljava/lang/IllegalArgumentException; {:try_start_1 .. :try_end_16} :catch_1c
cmp-long v3, v4, v1
if-lez v3, :cond_20
const/4 v0, 0x1
goto :goto_20
:catch_1c
move-exception v1
invoke-virtual {v1}, Ljava/lang/IllegalArgumentException;->printStackTrace()V
:cond_20
:goto_20
return v0
.end method
.method public final b(La2