ANRChecker$2.smali

.class Lcom/cleanmaster/hpsharelib/base/util/debug/ANRChecker$2;
.super Ljava/lang/Object;
.source "ANRChecker.java"

# interfaces
.implements Ljava/lang/Runnable;


# instance fields
.field final synthetic this$0:Lcom/cleanmaster/hpsharelib/base/util/debug/ANRChecker;


# direct methods
.method constructor <init>(Lcom/cleanmaster/hpsharelib/base/util/debug/ANRChecker;)V
    .registers 2

    .prologue
    .line 101
    iput-object p1, p0, Lcom/cleanmaster/hpsharelib/base/util/debug/ANRChecker$2;->this$0:Lcom/cleanmaster/hpsharelib/base/util/debug/ANRChecker;

    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    return-void
.end method


# virtual methods
.method public run()V
    .registers 10

    .prologue
    .line 106
    :try_start_0
    invoke-static {}, Ljava/lang/Thread;->getAllStackTraces()Ljava/util/Map;

    move-result-object v4

    .line 107
    invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;

    move-result-object v5

    .line 108
    const-wide/16 v2, 0x0

    .line 109
    new-instance v6, Ljava/lang/StringBuilder;

    invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V

    .line 110
    const-string v0, "-----thread info-----\n"

    invoke-virtual {v6, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    .line 112
    if-eqz v4, :cond_6a

    invoke-interface {v4}, Ljava/util/Map;->size()I

    move-result v0

    if-lez v0, :cond_6a

    .line 113
    iget-object v0, p0, Lcom/cleanmaster/hpsharelib/base/util/debug/ANRChecker$2;->this$0:Lcom/cleanmaster/hpsharelib/base/util/debug/ANRChecker;

    # getter for: Lcom/cleanmaster/hpsharelib/base/util/debug/ANRChecker;->mMainThread:Ljava/lang/Thread;
    invoke-static {v0}, Lcom/cleanmaster/hpsharelib/base/util/debug/ANRChecker;->access$500(Lcom/cleanmaster/hpsharelib/base/util/debug/ANRChecker;)Ljava/lang/Thread;

    move-result-object v0

    invoke-interface {v4, v0}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, [Ljava/lang/StackTraceElement;

    .line 114
    if-eqz v0, :cond_3e

    array-length v1, v0

    if-lez v1, :cond_3e

    .line 115
    iget-object v1, p0, Lcom/cleanmaster/hpsharelib/base/util/debug/ANRChecker$2;->this$0:Lcom/cleanmaster/hpsharelib/base/util/debug/ANRChecker;

    iget-object v2, p0, Lcom/cleanmaster/hpsharelib/base/util/debug/ANRChecker$2;->this$0:Lcom/cleanmaster/hpsharelib/base/util/debug/ANRChecker;

    # getter for: Lcom/cleanmaster/hpsharelib/base/util/debug/ANRChecker;->mMainThread:Ljava/lang/Thread;
    invoke-static {v2}, Lcom/cleanmaster/hpsharelib/base/util/debug/ANRChecker;->access$500(Lcom/cleanmaster/hpsharelib/base/util/debug/ANRChecker;)Ljava/lang/Thread;

    move-result-object v2

    # invokes: Lcom/cleanmaster/hpsharelib/base/util/debug/ANRChecker;->PrintStack(Ljava/lang/Thread;[Ljava/lang/StackTraceElement;Ljava/lang/StringBuilder;)V
    invoke-static {v1, v2, v0, v6}, Lcom/cleanmaster/hpsharelib/base/util/debug/ANRChecker;->access$600(Lcom/cleanmaster/hpsharelib/base/util/debug/ANRChecker;Ljava/lang/Thread;[Ljava/lang/StackTraceElement;Ljava/lang/StringBuilder;)V

    .line 117
    iget-object v1, p0, Lcom/cleanmaster/hpsharelib/base/util/debug/ANRChecker$2;->this$0:Lcom/cleanmaster/hpsharelib/base/util/debug/ANRChecker;

    # invokes: Lcom/cleanmaster/hpsharelib/base/util/debug/ANRChecker;->getANRkey([Ljava/lang/StackTraceElement;)J
    invoke-static {v1, v0}, Lcom/cleanmaster/hpsharelib/base/util/debug/ANRChecker;->access$700(Lcom/cleanmaster/hpsharelib/base/util/debug/ANRChecker;[Ljava/lang/StackTraceElement;)J

    move-result-wide v2

    .line 120
    :cond_3e
    invoke-interface {v4}, Ljava/util/Map;->keySet()Ljava/util/Set;

    move-result-object v0

    invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator;

    move-result-object v7

    .line 121
    :cond_46
    :goto_46
    invoke-interface {v7}, Ljava/util/Iterator;->hasNext()Z

    move-result v0

    if-eqz v0, :cond_6a

    .line 122
    invoke-interface {v7}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Ljava/lang/Thread;

    .line 123
    invoke-interface {v4, v0}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v1

    check-cast v1, [Ljava/lang/StackTraceElement;

    .line 125
    iget-object v8, p0, Lcom/cleanmaster/hpsharelib/base/util/debug/ANRChecker$2;->this$0:Lcom/cleanmaster/hpsharelib/base/util/debug/ANRChecker;

    # getter for: Lcom/cleanmaster/hpsharelib/base/util/debug/ANRChecker;->mMainThread:Ljava/lang/Thread;
    invoke-static {v8}, Lcom/cleanmaster/hpsharelib/base/util/debug/ANRChecker;->access$500(Lcom/cleanmaster/hpsharelib/base/util/debug/ANRChecker;)Ljava/lang/Thread;

    move-result-object v8

    if-eq v0, v8, :cond_46

    if-eq v0, v5, :cond_46

    .line 126
    iget-object v8, p0, Lcom/cleanmaster/hpsharelib/base/util/debug/ANRChecker$2;->this$0:Lcom/cleanmaster/hpsharelib/base/util/debug/ANRChecker;

    # invokes: Lcom/cleanmaster/hpsharelib/base/util/debug/ANRChecker;->PrintStack(Ljava/lang/Thread;[Ljava/lang/StackTraceElement;Ljava/lang/StringBuilder;)V
    invoke-static {v8, v0, v1, v6}, Lcom/cleanmaster/hpsharelib/base/util/debug/ANRChecker;->access$600(Lcom/cleanmaster/hpsharelib/base/util/debug/ANRChecker;Ljava/lang/Thread;[Ljava/lang/StackTraceElement;Ljava/lang/StringBuilder;)V

    goto :goto_46

    .line 140
    :catch_68
    move-exception v0

    .line 143
    :cond_69
    :goto_69
    return-void

    :cond_6a
    move-wide v0, v2

    .line 129
    const-string v2, "\n\n"

    invoke-virtual {v6, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    .line 130
    const-string v2, "-----anrkey-----\n"

    invoke-virtual {v6, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    .line 131
    const-string v2, "anrkey="

    invoke-virtual {v6, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    .line 132
    invoke-virtual {v6, v0, v1}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;

    .line 133
    const-string v0, "\n\n"

    invoke-virtual {v6, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    .line 137
    iget-object v0, p0, Lcom/cleanmaster/hpsharelib/base/util/debug/ANRChecker$2;->this$0:Lcom/cleanmaster/hpsharelib/base/util/debug/ANRChecker;

    # getter for: Lcom/cleanmaster/hpsharelib/base/util/debug/ANRChecker;->mAnrObsever:Lcom/cleanmaster/hpsharelib/base/util/debug/ANRChecker$ANRListener;
    invoke-static {v0}, Lcom/cleanmaster/hpsharelib/base/util/debug/ANRChecker;->access$800(Lcom/cleanmaster/hpsharelib/base/util/debug/ANRChecker;)Lcom/cleanmaster/hpsharelib/base/util/debug/ANRChecker$ANRListener;

    move-result-object v0

    if-eqz v0, :cond_69

    .line 138
    iget-object v0, p0, Lcom/cleanmaster/hpsharelib/base/util/debug/ANRChecker$2;->this$0:Lcom/cleanmaster/hpsharelib/base/util/debug/ANRChecker;

    # getter for: Lcom/cleanmaster/hpsharelib/base/util/debug/ANRChecker;->mAnrObsever:Lcom/cleanmaster/hpsharelib/base/util/debug/ANRChecker$ANRListener;
    invoke-static {v0}, Lcom/cleanmaster/hpsharelib/base/util/debug/ANRChecker;->access$800(Lcom/cleanmaster/hpsharelib/base/util/debug/ANRChecker;)Lcom/cleanmaster/hpsharelib/base/util/debug/ANRChecker$ANRListener;

    move-result-object v0

    invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v1

    invoke-interface {v0, v1}, Lcom/cleanmaster/hpsharelib/base/util/debug/ANRChecker$ANRListener;->onAppAnr(Ljava/lang/String;)V
    :try_end_97
    .catch Ljava/lang/Throwable; {:try_start_0 .. :try_end_97} :catch_68

    goto :goto_69
.end method