From 4d3f262d59dbf763288636607d920e7093f7d793 Mon Sep 17 00:00:00 2001 From: gdlbo <41114720+gdlbo@users.noreply.github.com> Date: Wed, 22 Jun 2022 12:08:56 +0300 Subject: [PATCH] fix network --- smali/assets/version.properties | 8 +- ...kMetricsReporter$perfStorageWriter$2.smali | 92 ++ .../network/stat/NetworkMetricsReporter.smali | 9 + .../b/h/q/c/a/AppStartDurationChecker$a.smali | 77 ++ .../b/h/q/c/a/AppStartDurationChecker$b.smali | 46 + .../b/h/q/c/a/AppStartDurationChecker$c.smali | 137 +++ .../b/h/q/c/a/AppStartDurationChecker.smali | 415 ++++++++ .../performance/anr/ANR$ANRChecker$a.smali | 168 +++ .../anr/ANR$ANRChecker$executor$2.smali | 78 ++ .../anr/ANR$ANRChecker$start$1.smali | 92 ++ .../performance/anr/ANR$ANRChecker.smali | 359 +++++++ .../vk/metrics/performance/anr/ANR$a.smali | 34 + .../vk/metrics/performance/anr/ANR$b.smali | 70 ++ .../vk/metrics/performance/anr/ANR$c.smali | 19 + .../com/vk/metrics/performance/anr/ANR.smali | 245 +++++ .../com/vk/metrics/performance/anr/ANR1.smali | 40 + .../performance/anr/AnrException.smali | 42 + .../performance/memory/MemoryChecker$b.smali | 1 + .../reporters/PerformanceReporter$a.smali | 991 ++++++++++++++++++ .../reporters/PerformanceReporter$b.smali | 49 + .../reporters/PerformanceReporter.smali | 837 +++++++++++++++ 21 files changed, 3805 insertions(+), 4 deletions(-) create mode 100644 smali/smali_classes2/com/vk/core/network/stat/NetworkMetricsReporter$perfStorageWriter$2.smali create mode 100644 smali/smali_classes3/b/h/q/c/a/AppStartDurationChecker$a.smali create mode 100644 smali/smali_classes3/b/h/q/c/a/AppStartDurationChecker$b.smali create mode 100644 smali/smali_classes3/b/h/q/c/a/AppStartDurationChecker$c.smali create mode 100644 smali/smali_classes3/b/h/q/c/a/AppStartDurationChecker.smali create mode 100644 smali/smali_classes3/com/vk/metrics/performance/anr/ANR$ANRChecker$a.smali create mode 100644 smali/smali_classes3/com/vk/metrics/performance/anr/ANR$ANRChecker$executor$2.smali create mode 100644 smali/smali_classes3/com/vk/metrics/performance/anr/ANR$ANRChecker$start$1.smali create mode 100644 smali/smali_classes3/com/vk/metrics/performance/anr/ANR$ANRChecker.smali create mode 100644 smali/smali_classes3/com/vk/metrics/performance/anr/ANR$a.smali create mode 100644 smali/smali_classes3/com/vk/metrics/performance/anr/ANR$b.smali create mode 100644 smali/smali_classes3/com/vk/metrics/performance/anr/ANR$c.smali create mode 100644 smali/smali_classes3/com/vk/metrics/performance/anr/ANR.smali create mode 100644 smali/smali_classes3/com/vk/metrics/performance/anr/ANR1.smali create mode 100644 smali/smali_classes3/com/vk/metrics/performance/anr/AnrException.smali create mode 100644 smali/smali_classes3/com/vk/metrics/reporters/PerformanceReporter$a.smali create mode 100644 smali/smali_classes3/com/vk/metrics/reporters/PerformanceReporter$b.smali create mode 100644 smali/smali_classes3/com/vk/metrics/reporters/PerformanceReporter.smali diff --git a/smali/assets/version.properties b/smali/assets/version.properties index f09cf693c..a255c816a 100644 --- a/smali/assets/version.properties +++ b/smali/assets/version.properties @@ -1,12 +1,12 @@ -VERSION_BUILD=1a42c24 +VERSION_BUILD=95feb48 VERSION_BRANCH=vtl-remaster VERSION_BASE= VERSION_BRANCHID=vtl-remaster VERSION_BRANCHTYPE=vtl-remaster -VERSION_COMMIT=1a42c24dab1dc16281d3487975d3582d188e3d7a +VERSION_COMMIT=95feb481a9575d6920e560ba4ecf00ddbe40c7be VERSION_GRADLE= -VERSION_DISPLAY=vtl-remaster-1a42c24-dirty -VERSION_FULL=vtl-remaster-1a42c24-dirty +VERSION_DISPLAY=vtl-remaster-95feb48-dirty +VERSION_FULL=vtl-remaster-95feb48-dirty VERSION_SCM=git VERSION_TAG= VERSION_LAST_TAG=v0.2.9-beta2 diff --git a/smali/smali_classes2/com/vk/core/network/stat/NetworkMetricsReporter$perfStorageWriter$2.smali b/smali/smali_classes2/com/vk/core/network/stat/NetworkMetricsReporter$perfStorageWriter$2.smali new file mode 100644 index 000000000..e27ba0d64 --- /dev/null +++ b/smali/smali_classes2/com/vk/core/network/stat/NetworkMetricsReporter$perfStorageWriter$2.smali @@ -0,0 +1,92 @@ +.class final Lcom/vk/core/network/stat/NetworkMetricsReporter$perfStorageWriter$2; +.super Lkotlin/jvm/internal/Lambda; +.source "NetworkMetricsReporter.kt" + +# interfaces +.implements Lkotlin/jvm/b/Functions; + + +# annotations +.annotation system Ldalvik/annotation/EnclosingMethod; + value = Lcom/vk/core/network/stat/NetworkMetricsReporter;->(Lkotlin/jvm/b/Functions2;)V +.end annotation + +.annotation system Ldalvik/annotation/InnerClass; + accessFlags = 0x18 + name = null +.end annotation + +.annotation system Ldalvik/annotation/Signature; + value = { + "Lkotlin/jvm/internal/Lambda;", + "Lkotlin/jvm/b/Functions<", + "Lcom/vk/core/network/stat/PeriodicalPerfStorageWriter;", + ">;" + } +.end annotation + + +# static fields +.field public static final a:Lcom/vk/core/network/stat/NetworkMetricsReporter$perfStorageWriter$2; + + +# direct methods +.method static constructor ()V + .locals 1 + + new-instance v0, Lcom/vk/core/network/stat/NetworkMetricsReporter$perfStorageWriter$2; + + invoke-direct {v0}, Lcom/vk/core/network/stat/NetworkMetricsReporter$perfStorageWriter$2;->()V + + sput-object v0, Lcom/vk/core/network/stat/NetworkMetricsReporter$perfStorageWriter$2;->a:Lcom/vk/core/network/stat/NetworkMetricsReporter$perfStorageWriter$2; + + return-void +.end method + +.method constructor ()V + .locals 1 + + const/4 v0, 0x0 + + invoke-direct {p0, v0}, Lkotlin/jvm/internal/Lambda;->(I)V + + return-void +.end method + + +# virtual methods +.method public final invoke()Lcom/vk/core/network/stat/PeriodicalPerfStorageWriter; + .locals 7 + + .line 2 + new-instance v6, Lcom/vk/core/network/stat/PeriodicalPerfStorageWriter; + + sget-object v0, Lcom/vk/metrics/reporters/PerformanceReporter;->j:Lcom/vk/metrics/reporters/PerformanceReporter; + + invoke-virtual {v0}, Lcom/vk/metrics/reporters/PerformanceReporter;->c()Lb/h/q/c/c/PerformanceStorage; + + move-result-object v1 + + const-wide/16 v2, 0x0 + + const/4 v4, 0x2 + + const/4 v5, 0x0 + + move-object v0, v6 + + invoke-direct/range {v0 .. v5}, Lcom/vk/core/network/stat/PeriodicalPerfStorageWriter;->(Lb/h/q/c/c/PerformanceStorage;JILkotlin/jvm/internal/DefaultConstructorMarker;)V + + return-object v6 +.end method + +.method public bridge synthetic invoke()Ljava/lang/Object; + .locals 1 + + .line 1 + invoke-virtual {p0}, Lcom/vk/core/network/stat/NetworkMetricsReporter$perfStorageWriter$2;->invoke()Lcom/vk/core/network/stat/PeriodicalPerfStorageWriter; + + move-result-object v0 + + return-object v0 +.end method diff --git a/smali/smali_classes2/com/vk/core/network/stat/NetworkMetricsReporter.smali b/smali/smali_classes2/com/vk/core/network/stat/NetworkMetricsReporter.smali index 93b353b56..7fdffd438 100644 --- a/smali/smali_classes2/com/vk/core/network/stat/NetworkMetricsReporter.smali +++ b/smali/smali_classes2/com/vk/core/network/stat/NetworkMetricsReporter.smali @@ -134,6 +134,15 @@ iput-object p1, p0, Lcom/vk/core/network/stat/NetworkMetricsReporter;->d:Lcom/vk/core/network/stat/MetricsCollector; + .line 6 + sget-object p1, Lcom/vk/core/network/stat/NetworkMetricsReporter$perfStorageWriter$2;->a:Lcom/vk/core/network/stat/NetworkMetricsReporter$perfStorageWriter$2; + + invoke-static {p1}, Lkotlin/g;->a(Lkotlin/jvm/b/Functions;)Lkotlin/Lazy2; + + move-result-object p1 + + iput-object p1, p0, Lcom/vk/core/network/stat/NetworkMetricsReporter;->e:Lkotlin/Lazy2; + return-void .end method diff --git a/smali/smali_classes3/b/h/q/c/a/AppStartDurationChecker$a.smali b/smali/smali_classes3/b/h/q/c/a/AppStartDurationChecker$a.smali new file mode 100644 index 000000000..813f477f2 --- /dev/null +++ b/smali/smali_classes3/b/h/q/c/a/AppStartDurationChecker$a.smali @@ -0,0 +1,77 @@ +.class public final Lb/h/q/c/a/AppStartDurationChecker$a; +.super Lb/h/n/AppLifecycleDispatcher$a; +.source "AppStartDurationChecker.kt" + + +# annotations +.annotation system Ldalvik/annotation/EnclosingMethod; + value = Lb/h/q/c/a/AppStartDurationChecker;->a()V +.end annotation + +.annotation system Ldalvik/annotation/InnerClass; + accessFlags = 0x19 + name = null +.end annotation + + +# instance fields +.field final synthetic a:Lb/h/q/c/a/AppStartDurationChecker; + + +# direct methods +.method constructor (Lb/h/q/c/a/AppStartDurationChecker;)V + .locals 0 + .annotation system Ldalvik/annotation/Signature; + value = { + "()V" + } + .end annotation + + .line 1 + iput-object p1, p0, Lb/h/q/c/a/AppStartDurationChecker$a;->a:Lb/h/q/c/a/AppStartDurationChecker; + + invoke-direct {p0}, Lb/h/n/AppLifecycleDispatcher$a;->()V + + return-void +.end method + + +# virtual methods +.method public a()V + .locals 2 + + .line 2 + iget-object v0, p0, Lb/h/q/c/a/AppStartDurationChecker$a;->a:Lb/h/q/c/a/AppStartDurationChecker; + + const/4 v1, 0x1 + + invoke-static {v0, v1}, Lb/h/q/c/a/AppStartDurationChecker;->b(Lb/h/q/c/a/AppStartDurationChecker;Z)V + + return-void +.end method + +.method public a(Landroid/app/Activity;)V + .locals 2 + + .line 1 + iget-object p1, p0, Lb/h/q/c/a/AppStartDurationChecker$a;->a:Lb/h/q/c/a/AppStartDurationChecker; + + invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J + + move-result-wide v0 + + invoke-static {p1, v0, v1}, Lb/h/q/c/a/AppStartDurationChecker;->a(Lb/h/q/c/a/AppStartDurationChecker;J)V + + return-void +.end method + +.method public c(Landroid/app/Activity;)V + .locals 1 + + .line 1 + iget-object v0, p0, Lb/h/q/c/a/AppStartDurationChecker$a;->a:Lb/h/q/c/a/AppStartDurationChecker; + + invoke-static {v0, p1}, Lb/h/q/c/a/AppStartDurationChecker;->a(Lb/h/q/c/a/AppStartDurationChecker;Landroid/app/Activity;)V + + return-void +.end method diff --git a/smali/smali_classes3/b/h/q/c/a/AppStartDurationChecker$b.smali b/smali/smali_classes3/b/h/q/c/a/AppStartDurationChecker$b.smali new file mode 100644 index 000000000..611e65190 --- /dev/null +++ b/smali/smali_classes3/b/h/q/c/a/AppStartDurationChecker$b.smali @@ -0,0 +1,46 @@ +.class final Lb/h/q/c/a/AppStartDurationChecker$b; +.super Ljava/lang/Object; +.source "AppStartDurationChecker.kt" + +# interfaces +.implements Ljava/lang/Runnable; + + +# annotations +.annotation system Ldalvik/annotation/EnclosingMethod; + value = Lb/h/q/c/a/AppStartDurationChecker;->b()V +.end annotation + +.annotation system Ldalvik/annotation/InnerClass; + accessFlags = 0x18 + name = null +.end annotation + + +# instance fields +.field final synthetic a:Lb/h/q/c/a/AppStartDurationChecker; + + +# direct methods +.method constructor (Lb/h/q/c/a/AppStartDurationChecker;)V + .locals 0 + + iput-object p1, p0, Lb/h/q/c/a/AppStartDurationChecker$b;->a:Lb/h/q/c/a/AppStartDurationChecker; + + invoke-direct {p0}, Ljava/lang/Object;->()V + + return-void +.end method + + +# virtual methods +.method public final run()V + .locals 1 + + .line 1 + iget-object v0, p0, Lb/h/q/c/a/AppStartDurationChecker$b;->a:Lb/h/q/c/a/AppStartDurationChecker; + + invoke-virtual {v0}, Lb/h/q/c/a/AppStartDurationChecker;->d()V + + return-void +.end method diff --git a/smali/smali_classes3/b/h/q/c/a/AppStartDurationChecker$c.smali b/smali/smali_classes3/b/h/q/c/a/AppStartDurationChecker$c.smali new file mode 100644 index 000000000..2ab83f6fa --- /dev/null +++ b/smali/smali_classes3/b/h/q/c/a/AppStartDurationChecker$c.smali @@ -0,0 +1,137 @@ +.class final Lb/h/q/c/a/AppStartDurationChecker$c; +.super Ljava/lang/Object; +.source "AppStartDurationChecker.kt" + +# interfaces +.implements Landroid/os/MessageQueue$IdleHandler; + + +# annotations +.annotation system Ldalvik/annotation/EnclosingMethod; + value = Lb/h/q/c/a/AppStartDurationChecker;->a(Landroid/app/Activity;)V +.end annotation + +.annotation system Ldalvik/annotation/InnerClass; + accessFlags = 0x18 + name = null +.end annotation + + +# instance fields +.field final synthetic a:Lb/h/q/c/a/AppStartDurationChecker; + +.field final synthetic b:Landroid/app/Activity; + + +# direct methods +.method constructor (Lb/h/q/c/a/AppStartDurationChecker;Landroid/app/Activity;)V + .locals 0 + + iput-object p1, p0, Lb/h/q/c/a/AppStartDurationChecker$c;->a:Lb/h/q/c/a/AppStartDurationChecker; + + iput-object p2, p0, Lb/h/q/c/a/AppStartDurationChecker$c;->b:Landroid/app/Activity; + + invoke-direct {p0}, Ljava/lang/Object;->()V + + return-void +.end method + + +# virtual methods +.method public final queueIdle()Z + .locals 5 + + .line 1 + sget-object v0, Lcom/vk/metrics/reporters/PerformanceReporter;->j:Lcom/vk/metrics/reporters/PerformanceReporter; + + invoke-virtual {v0}, Lcom/vk/metrics/reporters/PerformanceReporter;->b()Lb/h/q/c/b/PerformanceProfiler; + + move-result-object v0 + + invoke-virtual {v0}, Lb/h/q/c/b/PerformanceProfiler;->b()V + + .line 2 + iget-object v0, p0, Lb/h/q/c/a/AppStartDurationChecker$c;->a:Lb/h/q/c/a/AppStartDurationChecker; + + invoke-static {v0}, Lb/h/q/c/a/AppStartDurationChecker;->a(Lb/h/q/c/a/AppStartDurationChecker;)Z + + move-result v0 + + const-string v1, "activity.componentName.shortClassName" + + const-string v2, "activity.componentName" + + const/4 v3, 0x0 + + if-eqz v0, :cond_0 + + .line 3 + iget-object v0, p0, Lb/h/q/c/a/AppStartDurationChecker$c;->a:Lb/h/q/c/a/AppStartDurationChecker; + + invoke-static {v0, v3}, Lb/h/q/c/a/AppStartDurationChecker;->a(Lb/h/q/c/a/AppStartDurationChecker;Z)V + + .line 4 + sget-object v0, Lcom/vk/metrics/reporters/PerformanceReporter;->j:Lcom/vk/metrics/reporters/PerformanceReporter; + + invoke-virtual {v0}, Lcom/vk/metrics/reporters/PerformanceReporter;->c()Lb/h/q/c/c/PerformanceStorage; + + move-result-object v0 + + invoke-virtual {v0}, Lb/h/q/c/c/PerformanceStorage;->t()V + + .line 5 + iget-object v0, p0, Lb/h/q/c/a/AppStartDurationChecker$c;->a:Lb/h/q/c/a/AppStartDurationChecker; + + iget-object v4, p0, Lb/h/q/c/a/AppStartDurationChecker$c;->b:Landroid/app/Activity; + + invoke-virtual {v4}, Landroid/app/Activity;->getComponentName()Landroid/content/ComponentName; + + move-result-object v4 + + invoke-static {v4, v2}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/String;)V + + invoke-virtual {v4}, Landroid/content/ComponentName;->getShortClassName()Ljava/lang/String; + + move-result-object v4 + + invoke-static {v4, v1}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/String;)V + + invoke-static {v0, v4}, Lb/h/q/c/a/AppStartDurationChecker;->a(Lb/h/q/c/a/AppStartDurationChecker;Ljava/lang/String;)V + + .line 6 + :cond_0 + iget-object v0, p0, Lb/h/q/c/a/AppStartDurationChecker$c;->a:Lb/h/q/c/a/AppStartDurationChecker; + + invoke-static {v0}, Lb/h/q/c/a/AppStartDurationChecker;->b(Lb/h/q/c/a/AppStartDurationChecker;)Z + + move-result v0 + + if-eqz v0, :cond_1 + + .line 7 + iget-object v0, p0, Lb/h/q/c/a/AppStartDurationChecker$c;->a:Lb/h/q/c/a/AppStartDurationChecker; + + invoke-static {v0, v3}, Lb/h/q/c/a/AppStartDurationChecker;->b(Lb/h/q/c/a/AppStartDurationChecker;Z)V + + .line 8 + iget-object v0, p0, Lb/h/q/c/a/AppStartDurationChecker$c;->a:Lb/h/q/c/a/AppStartDurationChecker; + + iget-object v4, p0, Lb/h/q/c/a/AppStartDurationChecker$c;->b:Landroid/app/Activity; + + invoke-virtual {v4}, Landroid/app/Activity;->getComponentName()Landroid/content/ComponentName; + + move-result-object v4 + + invoke-static {v4, v2}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/String;)V + + invoke-virtual {v4}, Landroid/content/ComponentName;->getShortClassName()Ljava/lang/String; + + move-result-object v2 + + invoke-static {v2, v1}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/String;)V + + invoke-static {v0, v2}, Lb/h/q/c/a/AppStartDurationChecker;->b(Lb/h/q/c/a/AppStartDurationChecker;Ljava/lang/String;)V + + :cond_1 + return v3 +.end method diff --git a/smali/smali_classes3/b/h/q/c/a/AppStartDurationChecker.smali b/smali/smali_classes3/b/h/q/c/a/AppStartDurationChecker.smali new file mode 100644 index 000000000..f1ce92fe5 --- /dev/null +++ b/smali/smali_classes3/b/h/q/c/a/AppStartDurationChecker.smali @@ -0,0 +1,415 @@ +.class public final Lb/h/q/c/a/AppStartDurationChecker; +.super Ljava/lang/Object; +.source "AppStartDurationChecker.kt" + + +# instance fields +.field private a:Lcom/vk/metrics/eventtracking/Tracker; + +.field private b:J + +.field private c:Z + +.field private d:J + +.field private e:Z + + +# direct methods +.method public constructor ()V + .locals 1 + + .line 1 + invoke-direct {p0}, Ljava/lang/Object;->()V + + .line 2 + sget-object v0, Lcom/vk/metrics/eventtracking/VkTracker;->k:Lcom/vk/metrics/eventtracking/VkTracker; + + iput-object v0, p0, Lb/h/q/c/a/AppStartDurationChecker;->a:Lcom/vk/metrics/eventtracking/Tracker; + + const/4 v0, 0x1 + + .line 3 + iput-boolean v0, p0, Lb/h/q/c/a/AppStartDurationChecker;->c:Z + + return-void +.end method + +.method private final a(J)J + .locals 2 + + .line 17 + invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J + + move-result-wide v0 + + sub-long/2addr v0, p1 + + return-wide v0 +.end method + +.method private final a(Landroid/app/Activity;)V + .locals 2 + + .line 18 + invoke-static {}, Landroid/os/Looper;->myQueue()Landroid/os/MessageQueue; + + move-result-object v0 + + new-instance v1, Lb/h/q/c/a/AppStartDurationChecker$c; + + invoke-direct {v1, p0, p1}, Lb/h/q/c/a/AppStartDurationChecker$c;->(Lb/h/q/c/a/AppStartDurationChecker;Landroid/app/Activity;)V + + invoke-virtual {v0, v1}, Landroid/os/MessageQueue;->addIdleHandler(Landroid/os/MessageQueue$IdleHandler;)V + + return-void +.end method + +.method public static final synthetic a(Lb/h/q/c/a/AppStartDurationChecker;J)V + .locals 0 + + .line 5 + iput-wide p1, p0, Lb/h/q/c/a/AppStartDurationChecker;->d:J + + return-void +.end method + +.method public static final synthetic a(Lb/h/q/c/a/AppStartDurationChecker;Landroid/app/Activity;)V + .locals 0 + + .line 3 + invoke-direct {p0, p1}, Lb/h/q/c/a/AppStartDurationChecker;->a(Landroid/app/Activity;)V + + return-void +.end method + +.method public static final synthetic a(Lb/h/q/c/a/AppStartDurationChecker;Ljava/lang/String;)V + .locals 0 + + .line 2 + invoke-direct {p0, p1}, Lb/h/q/c/a/AppStartDurationChecker;->a(Ljava/lang/String;)V + + return-void +.end method + +.method public static final synthetic a(Lb/h/q/c/a/AppStartDurationChecker;Z)V + .locals 0 + + .line 4 + iput-boolean p1, p0, Lb/h/q/c/a/AppStartDurationChecker;->c:Z + + return-void +.end method + +.method private final a(Ljava/lang/String;)V + .locals 5 + + .line 8 + iget-wide v0, p0, Lb/h/q/c/a/AppStartDurationChecker;->b:J + + invoke-direct {p0, v0, v1}, Lb/h/q/c/a/AppStartDurationChecker;->a(J)J + + move-result-wide v0 + + const/4 v2, 0x1 + + new-array v2, v2, [Ljava/lang/Object; + + .line 9 + new-instance v3, Ljava/lang/StringBuilder; + + invoke-direct {v3}, Ljava/lang/StringBuilder;->()V + + const-string v4, "performance: measured cold start on " + + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + invoke-virtual {v3, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + const-string v4, " is " + + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + invoke-virtual {v3, v0, v1}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder; + + const-string v4, " (ms)" + + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v3 + + const/4 v4, 0x0 + + aput-object v3, v2, v4 + + invoke-static {v2}, Lcom/vk/log/L;->c([Ljava/lang/Object;)V + + .line 10 + iget-object v2, p0, Lb/h/q/c/a/AppStartDurationChecker;->a:Lcom/vk/metrics/eventtracking/Tracker; + + sget-object v3, Lcom/vk/metrics/eventtracking/Event;->b:Lcom/vk/metrics/eventtracking/Event$b; + + invoke-virtual {v3}, Lcom/vk/metrics/eventtracking/Event$b;->a()Lcom/vk/metrics/eventtracking/Event$a; + + move-result-object v3 + + const-string v4, "PERF.APP.COLD_START" + + .line 11 + invoke-virtual {v3, v4}, Lcom/vk/metrics/eventtracking/Event$a;->a(Ljava/lang/String;)Lcom/vk/metrics/eventtracking/Event$a; + + .line 12 + sget-object v4, Lcom/vk/metrics/eventtracking/Event$LogType;->ONCE_PER_SESSION:Lcom/vk/metrics/eventtracking/Event$LogType; + + invoke-virtual {v3, v4}, Lcom/vk/metrics/eventtracking/Event$a;->a(Lcom/vk/metrics/eventtracking/Event$LogType;)Lcom/vk/metrics/eventtracking/Event$a; + + const-string v4, "activityName" + + .line 13 + invoke-virtual {v3, v4, p1}, Lcom/vk/metrics/eventtracking/Event$a;->a(Ljava/lang/String;Ljava/lang/String;)Lcom/vk/metrics/eventtracking/Event$a; + + .line 14 + invoke-static {v0, v1}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; + + move-result-object p1 + + const-string v0, "duration" + + invoke-virtual {v3, v0, p1}, Lcom/vk/metrics/eventtracking/Event$a;->a(Ljava/lang/String;Ljava/lang/Number;)Lcom/vk/metrics/eventtracking/Event$a; + + .line 15 + invoke-virtual {v3}, Lcom/vk/metrics/eventtracking/Event$a;->a()Lcom/vk/metrics/eventtracking/Event; + + move-result-object p1 + + .line 16 + invoke-interface {v2, p1}, Lcom/vk/metrics/eventtracking/Tracker;->a(Lcom/vk/metrics/eventtracking/Event;)V + + return-void +.end method + +.method public static final synthetic a(Lb/h/q/c/a/AppStartDurationChecker;)Z + .locals 0 + + .line 1 + iget-boolean p0, p0, Lb/h/q/c/a/AppStartDurationChecker;->c:Z + + return p0 +.end method + +.method public static final synthetic b(Lb/h/q/c/a/AppStartDurationChecker;Ljava/lang/String;)V + .locals 0 + + .line 2 + invoke-direct {p0, p1}, Lb/h/q/c/a/AppStartDurationChecker;->b(Ljava/lang/String;)V + + return-void +.end method + +.method public static final synthetic b(Lb/h/q/c/a/AppStartDurationChecker;Z)V + .locals 0 + + .line 3 + iput-boolean p1, p0, Lb/h/q/c/a/AppStartDurationChecker;->e:Z + + return-void +.end method + +.method private final b(Ljava/lang/String;)V + .locals 5 + + .line 9 + iget-wide v0, p0, Lb/h/q/c/a/AppStartDurationChecker;->d:J + + invoke-direct {p0, v0, v1}, Lb/h/q/c/a/AppStartDurationChecker;->a(J)J + + move-result-wide v0 + + const/4 v2, 0x1 + + new-array v2, v2, [Ljava/lang/Object; + + .line 10 + new-instance v3, Ljava/lang/StringBuilder; + + invoke-direct {v3}, Ljava/lang/StringBuilder;->()V + + const-string v4, "performance: measured warm start on " + + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + invoke-virtual {v3, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + const-string v4, " is " + + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + invoke-virtual {v3, v0, v1}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder; + + const-string v4, " (ms)" + + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v3 + + const/4 v4, 0x0 + + aput-object v3, v2, v4 + + invoke-static {v2}, Lcom/vk/log/L;->c([Ljava/lang/Object;)V + + .line 11 + iget-object v2, p0, Lb/h/q/c/a/AppStartDurationChecker;->a:Lcom/vk/metrics/eventtracking/Tracker; + + sget-object v3, Lcom/vk/metrics/eventtracking/Event;->b:Lcom/vk/metrics/eventtracking/Event$b; + + invoke-virtual {v3}, Lcom/vk/metrics/eventtracking/Event$b;->a()Lcom/vk/metrics/eventtracking/Event$a; + + move-result-object v3 + + const-string v4, "PERF.APP.WARM_START" + + .line 12 + invoke-virtual {v3, v4}, Lcom/vk/metrics/eventtracking/Event$a;->a(Ljava/lang/String;)Lcom/vk/metrics/eventtracking/Event$a; + + const-string v4, "activityName" + + .line 13 + invoke-virtual {v3, v4, p1}, Lcom/vk/metrics/eventtracking/Event$a;->a(Ljava/lang/String;Ljava/lang/String;)Lcom/vk/metrics/eventtracking/Event$a; + + .line 14 + invoke-static {v0, v1}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; + + move-result-object p1 + + const-string v0, "duration" + + invoke-virtual {v3, v0, p1}, Lcom/vk/metrics/eventtracking/Event$a;->a(Ljava/lang/String;Ljava/lang/Number;)Lcom/vk/metrics/eventtracking/Event$a; + + .line 15 + invoke-virtual {v3}, Lcom/vk/metrics/eventtracking/Event$a;->a()Lcom/vk/metrics/eventtracking/Event; + + move-result-object p1 + + .line 16 + invoke-interface {v2, p1}, Lcom/vk/metrics/eventtracking/Tracker;->a(Lcom/vk/metrics/eventtracking/Event;)V + + return-void +.end method + +.method public static final synthetic b(Lb/h/q/c/a/AppStartDurationChecker;)Z + .locals 0 + + .line 1 + iget-boolean p0, p0, Lb/h/q/c/a/AppStartDurationChecker;->e:Z + + return p0 +.end method + + +# virtual methods +.method public final a()V + .locals 2 + + .line 6 + sget-object v0, Lcom/vk/metrics/reporters/PerformanceReporter;->j:Lcom/vk/metrics/reporters/PerformanceReporter; + + invoke-virtual {v0}, Lcom/vk/metrics/reporters/PerformanceReporter;->b()Lb/h/q/c/b/PerformanceProfiler; + + move-result-object v0 + + invoke-virtual {v0}, Lb/h/q/c/b/PerformanceProfiler;->a()V + + .line 7 + sget-object v0, Lb/h/n/AppLifecycleDispatcher;->h:Lb/h/n/AppLifecycleDispatcher; + + new-instance v1, Lb/h/q/c/a/AppStartDurationChecker$a; + + invoke-direct {v1, p0}, Lb/h/q/c/a/AppStartDurationChecker$a;->(Lb/h/q/c/a/AppStartDurationChecker;)V + + invoke-virtual {v0, v1}, Lb/h/n/AppLifecycleDispatcher;->a(Lb/h/n/AppLifecycleDispatcher$a;)V + + return-void +.end method + +.method public final b()V + .locals 5 + + .line 4 + invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J + + move-result-wide v0 + + iput-wide v0, p0, Lb/h/q/c/a/AppStartDurationChecker;->b:J + + .line 5 + sget-object v0, Lcom/vk/metrics/reporters/PerformanceReporter;->j:Lcom/vk/metrics/reporters/PerformanceReporter; + + invoke-virtual {v0}, Lcom/vk/metrics/reporters/PerformanceReporter;->c()Lb/h/q/c/c/PerformanceStorage; + + move-result-object v0 + + invoke-virtual {v0}, Lb/h/q/c/c/PerformanceStorage;->q()V + + .line 6 + new-instance v0, Landroid/os/Handler; + + invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper; + + move-result-object v1 + + invoke-direct {v0, v1}, Landroid/os/Handler;->(Landroid/os/Looper;)V + + new-instance v1, Lb/h/q/c/a/AppStartDurationChecker$b; + + invoke-direct {v1, p0}, Lb/h/q/c/a/AppStartDurationChecker$b;->(Lb/h/q/c/a/AppStartDurationChecker;)V + + .line 7 + sget-object v2, Ljava/util/concurrent/TimeUnit;->SECONDS:Ljava/util/concurrent/TimeUnit; + + const-wide/16 v3, 0xa + + invoke-virtual {v2, v3, v4}, Ljava/util/concurrent/TimeUnit;->toMillis(J)J + + move-result-wide v2 + + .line 8 + invoke-virtual {v0, v1, v2, v3}, Landroid/os/Handler;->postDelayed(Ljava/lang/Runnable;J)Z + + return-void +.end method + +.method public final c()V + .locals 0 + + .line 1 + invoke-virtual {p0}, Lb/h/q/c/a/AppStartDurationChecker;->d()V + + return-void +.end method + +.method public final d()V + .locals 1 + + const/4 v0, 0x0 + + .line 1 + iput-boolean v0, p0, Lb/h/q/c/a/AppStartDurationChecker;->c:Z + + .line 2 + sget-object v0, Lb/h/n/AppLifecycleDispatcher;->h:Lb/h/n/AppLifecycleDispatcher; + + invoke-virtual {v0}, Lb/h/n/AppLifecycleDispatcher;->a()Z + + move-result v0 + + xor-int/lit8 v0, v0, 0x1 + + iput-boolean v0, p0, Lb/h/q/c/a/AppStartDurationChecker;->e:Z + + return-void +.end method diff --git a/smali/smali_classes3/com/vk/metrics/performance/anr/ANR$ANRChecker$a.smali b/smali/smali_classes3/com/vk/metrics/performance/anr/ANR$ANRChecker$a.smali new file mode 100644 index 000000000..1617fe8c1 --- /dev/null +++ b/smali/smali_classes3/com/vk/metrics/performance/anr/ANR$ANRChecker$a.smali @@ -0,0 +1,168 @@ +.class final Lcom/vk/metrics/performance/anr/ANR$ANRChecker$a; +.super Ljava/lang/Object; +.source "ANR.kt" + +# interfaces +.implements Ljava/lang/Runnable; + + +# annotations +.annotation system Ldalvik/annotation/EnclosingMethod; + value = Lcom/vk/metrics/performance/anr/ANR$ANRChecker;->f()V +.end annotation + +.annotation system Ldalvik/annotation/InnerClass; + accessFlags = 0x18 + name = null +.end annotation + + +# instance fields +.field final synthetic a:Lcom/vk/metrics/performance/anr/ANR$ANRChecker; + + +# direct methods +.method constructor (Lcom/vk/metrics/performance/anr/ANR$ANRChecker;)V + .locals 0 + + iput-object p1, p0, Lcom/vk/metrics/performance/anr/ANR$ANRChecker$a;->a:Lcom/vk/metrics/performance/anr/ANR$ANRChecker; + + invoke-direct {p0}, Ljava/lang/Object;->()V + + return-void +.end method + + +# virtual methods +.method public final run()V + .locals 5 + + .line 1 + :cond_0 + :goto_0 + iget-object v0, p0, Lcom/vk/metrics/performance/anr/ANR$ANRChecker$a;->a:Lcom/vk/metrics/performance/anr/ANR$ANRChecker; + + iget-object v0, v0, Lcom/vk/metrics/performance/anr/ANR$ANRChecker;->f:Lcom/vk/metrics/performance/anr/ANR; + + invoke-static {v0}, Lcom/vk/metrics/performance/anr/ANR;->a(Lcom/vk/metrics/performance/anr/ANR;)Z + + move-result v0 + + if-nez v0, :cond_1 + + iget-object v0, p0, Lcom/vk/metrics/performance/anr/ANR$ANRChecker$a;->a:Lcom/vk/metrics/performance/anr/ANR$ANRChecker; + + iget-object v0, v0, Lcom/vk/metrics/performance/anr/ANR$ANRChecker;->f:Lcom/vk/metrics/performance/anr/ANR; + + invoke-static {v0}, Lcom/vk/metrics/performance/anr/ANR;->e(Lcom/vk/metrics/performance/anr/ANR;)Z + + move-result v0 + + if-nez v0, :cond_1 + + .line 2 + iget-object v0, p0, Lcom/vk/metrics/performance/anr/ANR$ANRChecker$a;->a:Lcom/vk/metrics/performance/anr/ANR$ANRChecker; + + invoke-static {v0}, Lcom/vk/metrics/performance/anr/ANR$ANRChecker;->a(Lcom/vk/metrics/performance/anr/ANR$ANRChecker;)Ljava/util/concurrent/atomic/AtomicLong; + + move-result-object v0 + + invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicLong;->get()J + + move-result-wide v0 + + .line 3 + iget-object v2, p0, Lcom/vk/metrics/performance/anr/ANR$ANRChecker$a;->a:Lcom/vk/metrics/performance/anr/ANR$ANRChecker; + + iget-object v2, v2, Lcom/vk/metrics/performance/anr/ANR$ANRChecker;->f:Lcom/vk/metrics/performance/anr/ANR; + + invoke-static {v2}, Lcom/vk/metrics/performance/anr/ANR;->d(Lcom/vk/metrics/performance/anr/ANR;)Landroid/os/Handler; + + move-result-object v2 + + iget-object v3, p0, Lcom/vk/metrics/performance/anr/ANR$ANRChecker$a;->a:Lcom/vk/metrics/performance/anr/ANR$ANRChecker; + + invoke-virtual {v2, v3}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z + + .line 4 + iget-object v2, p0, Lcom/vk/metrics/performance/anr/ANR$ANRChecker$a;->a:Lcom/vk/metrics/performance/anr/ANR$ANRChecker; + + invoke-static {v2}, Lcom/vk/metrics/performance/anr/ANR$ANRChecker;->b(Lcom/vk/metrics/performance/anr/ANR$ANRChecker;)Landroid/os/ConditionVariable; + + move-result-object v2 + + iget-object v3, p0, Lcom/vk/metrics/performance/anr/ANR$ANRChecker$a;->a:Lcom/vk/metrics/performance/anr/ANR$ANRChecker; + + invoke-static {v3}, Lcom/vk/metrics/performance/anr/ANR$ANRChecker;->c(Lcom/vk/metrics/performance/anr/ANR$ANRChecker;)J + + move-result-wide v3 + + invoke-virtual {v2, v3, v4}, Landroid/os/ConditionVariable;->block(J)Z + + .line 5 + iget-object v2, p0, Lcom/vk/metrics/performance/anr/ANR$ANRChecker$a;->a:Lcom/vk/metrics/performance/anr/ANR$ANRChecker; + + iget-object v2, v2, Lcom/vk/metrics/performance/anr/ANR$ANRChecker;->f:Lcom/vk/metrics/performance/anr/ANR; + + invoke-static {v2}, Lcom/vk/metrics/performance/anr/ANR;->a(Lcom/vk/metrics/performance/anr/ANR;)Z + + move-result v2 + + if-nez v2, :cond_0 + + iget-object v2, p0, Lcom/vk/metrics/performance/anr/ANR$ANRChecker$a;->a:Lcom/vk/metrics/performance/anr/ANR$ANRChecker; + + invoke-static {v2}, Lcom/vk/metrics/performance/anr/ANR$ANRChecker;->a(Lcom/vk/metrics/performance/anr/ANR$ANRChecker;)Ljava/util/concurrent/atomic/AtomicLong; + + move-result-object v2 + + invoke-virtual {v2}, Ljava/util/concurrent/atomic/AtomicLong;->get()J + + move-result-wide v2 + + cmp-long v4, v0, v2 + + if-nez v4, :cond_0 + + .line 6 + iget-object v0, p0, Lcom/vk/metrics/performance/anr/ANR$ANRChecker$a;->a:Lcom/vk/metrics/performance/anr/ANR$ANRChecker; + + iget-object v0, v0, Lcom/vk/metrics/performance/anr/ANR$ANRChecker;->f:Lcom/vk/metrics/performance/anr/ANR; + + invoke-static {v0}, Lcom/vk/metrics/performance/anr/ANR;->c(Lcom/vk/metrics/performance/anr/ANR;)Lcom/vk/metrics/performance/anr/AnrException; + + move-result-object v0 + + if-eqz v0, :cond_0 + + .line 7 + iget-object v1, p0, Lcom/vk/metrics/performance/anr/ANR$ANRChecker$a;->a:Lcom/vk/metrics/performance/anr/ANR$ANRChecker; + + iget-object v1, v1, Lcom/vk/metrics/performance/anr/ANR$ANRChecker;->f:Lcom/vk/metrics/performance/anr/ANR; + + invoke-static {v1}, Lcom/vk/metrics/performance/anr/ANR;->b(Lcom/vk/metrics/performance/anr/ANR;)Lcom/vk/metrics/performance/anr/ANR$c; + + move-result-object v1 + + iget-object v2, p0, Lcom/vk/metrics/performance/anr/ANR$ANRChecker$a;->a:Lcom/vk/metrics/performance/anr/ANR$ANRChecker; + + invoke-static {v2}, Lcom/vk/metrics/performance/anr/ANR$ANRChecker;->c(Lcom/vk/metrics/performance/anr/ANR$ANRChecker;)J + + move-result-wide v2 + + invoke-interface {v1, v2, v3, v0}, Lcom/vk/metrics/performance/anr/ANR$c;->a(JLjava/lang/Throwable;)V + + .line 8 + iget-object v0, p0, Lcom/vk/metrics/performance/anr/ANR$ANRChecker$a;->a:Lcom/vk/metrics/performance/anr/ANR$ANRChecker; + + iget-object v0, v0, Lcom/vk/metrics/performance/anr/ANR$ANRChecker;->f:Lcom/vk/metrics/performance/anr/ANR; + + const/4 v1, 0x1 + + invoke-static {v0, v1}, Lcom/vk/metrics/performance/anr/ANR;->a(Lcom/vk/metrics/performance/anr/ANR;Z)V + + goto :goto_0 + + :cond_1 + return-void +.end method diff --git a/smali/smali_classes3/com/vk/metrics/performance/anr/ANR$ANRChecker$executor$2.smali b/smali/smali_classes3/com/vk/metrics/performance/anr/ANR$ANRChecker$executor$2.smali new file mode 100644 index 000000000..a6f85c7f8 --- /dev/null +++ b/smali/smali_classes3/com/vk/metrics/performance/anr/ANR$ANRChecker$executor$2.smali @@ -0,0 +1,78 @@ +.class final Lcom/vk/metrics/performance/anr/ANR$ANRChecker$executor$2; +.super Lkotlin/jvm/internal/Lambda; +.source "ANR.kt" + +# interfaces +.implements Lkotlin/jvm/b/Functions; + + +# annotations +.annotation system Ldalvik/annotation/EnclosingMethod; + value = Lcom/vk/metrics/performance/anr/ANR$ANRChecker;->(Lcom/vk/metrics/performance/anr/ANR;J)V +.end annotation + +.annotation system Ldalvik/annotation/InnerClass; + accessFlags = 0x18 + name = null +.end annotation + +.annotation system Ldalvik/annotation/Signature; + value = { + "Lkotlin/jvm/internal/Lambda;", + "Lkotlin/jvm/b/Functions<", + "Ljava/util/concurrent/ScheduledExecutorService;", + ">;" + } +.end annotation + + +# static fields +.field public static final a:Lcom/vk/metrics/performance/anr/ANR$ANRChecker$executor$2; + + +# direct methods +.method static constructor ()V + .locals 1 + + new-instance v0, Lcom/vk/metrics/performance/anr/ANR$ANRChecker$executor$2; + + invoke-direct {v0}, Lcom/vk/metrics/performance/anr/ANR$ANRChecker$executor$2;->()V + + sput-object v0, Lcom/vk/metrics/performance/anr/ANR$ANRChecker$executor$2;->a:Lcom/vk/metrics/performance/anr/ANR$ANRChecker$executor$2; + + return-void +.end method + +.method constructor ()V + .locals 1 + + const/4 v0, 0x0 + + invoke-direct {p0, v0}, Lkotlin/jvm/internal/Lambda;->(I)V + + return-void +.end method + + +# virtual methods +.method public bridge synthetic invoke()Ljava/lang/Object; + .locals 1 + + .line 1 + invoke-virtual {p0}, Lcom/vk/metrics/performance/anr/ANR$ANRChecker$executor$2;->invoke()Ljava/util/concurrent/ScheduledExecutorService; + + move-result-object v0 + + return-object v0 +.end method + +.method public final invoke()Ljava/util/concurrent/ScheduledExecutorService; + .locals 1 + + .line 2 + invoke-static {}, Ljava/util/concurrent/Executors;->newSingleThreadScheduledExecutor()Ljava/util/concurrent/ScheduledExecutorService; + + move-result-object v0 + + return-object v0 +.end method diff --git a/smali/smali_classes3/com/vk/metrics/performance/anr/ANR$ANRChecker$start$1.smali b/smali/smali_classes3/com/vk/metrics/performance/anr/ANR$ANRChecker$start$1.smali new file mode 100644 index 000000000..3a0fc4015 --- /dev/null +++ b/smali/smali_classes3/com/vk/metrics/performance/anr/ANR$ANRChecker$start$1.smali @@ -0,0 +1,92 @@ +.class final synthetic Lcom/vk/metrics/performance/anr/ANR$ANRChecker$start$1; +.super Lkotlin/jvm/internal/FunctionReference; +.source "ANR.kt" + +# interfaces +.implements Lkotlin/jvm/b/Functions; + + +# annotations +.annotation system Ldalvik/annotation/EnclosingMethod; + value = Lcom/vk/metrics/performance/anr/ANR$ANRChecker;->b()V +.end annotation + +.annotation system Ldalvik/annotation/InnerClass; + accessFlags = 0x1018 + name = null +.end annotation + +.annotation system Ldalvik/annotation/Signature; + value = { + "Lkotlin/jvm/internal/FunctionReference;", + "Lkotlin/jvm/b/Functions<", + "Lkotlin/Unit;", + ">;" + } +.end annotation + + +# direct methods +.method constructor (Lcom/vk/metrics/performance/anr/ANR$ANRChecker;)V + .locals 1 + + const/4 v0, 0x0 + + invoke-direct {p0, v0, p1}, Lkotlin/jvm/internal/FunctionReference;->(ILjava/lang/Object;)V + + return-void +.end method + + +# virtual methods +.method public final e()Ljava/lang/String; + .locals 1 + + const-string v0, "startImpl" + + return-object v0 +.end method + +.method public final f()Lkotlin/u/KDeclarationContainer; + .locals 1 + + const-class v0, Lcom/vk/metrics/performance/anr/ANR$ANRChecker; + + invoke-static {v0}, Lkotlin/jvm/internal/Reflection;->a(Ljava/lang/Class;)Lkotlin/u/KClass; + + move-result-object v0 + + return-object v0 +.end method + +.method public final h()Ljava/lang/String; + .locals 1 + + const-string v0, "startImpl()V" + + return-object v0 +.end method + +.method public bridge synthetic invoke()Ljava/lang/Object; + .locals 1 + + .line 1 + invoke-virtual {p0}, Lcom/vk/metrics/performance/anr/ANR$ANRChecker$start$1;->invoke()V + + sget-object v0, Lkotlin/Unit;->a:Lkotlin/Unit; + + return-object v0 +.end method + +.method public final invoke()V + .locals 1 + + iget-object v0, p0, Lkotlin/jvm/internal/CallableReference;->receiver:Ljava/lang/Object; + + check-cast v0, Lcom/vk/metrics/performance/anr/ANR$ANRChecker; + + .line 2 + invoke-static {v0}, Lcom/vk/metrics/performance/anr/ANR$ANRChecker;->d(Lcom/vk/metrics/performance/anr/ANR$ANRChecker;)V + + return-void +.end method diff --git a/smali/smali_classes3/com/vk/metrics/performance/anr/ANR$ANRChecker.smali b/smali/smali_classes3/com/vk/metrics/performance/anr/ANR$ANRChecker.smali new file mode 100644 index 000000000..6d68812ad --- /dev/null +++ b/smali/smali_classes3/com/vk/metrics/performance/anr/ANR$ANRChecker.smali @@ -0,0 +1,359 @@ +.class Lcom/vk/metrics/performance/anr/ANR$ANRChecker; +.super Lb/h/q/c/c/PerformanceChecker; +.source "ANR.kt" + +# interfaces +.implements Ljava/lang/Runnable; + + +# annotations +.annotation system Ldalvik/annotation/EnclosingClass; + value = Lcom/vk/metrics/performance/anr/ANR; +.end annotation + +.annotation system Ldalvik/annotation/InnerClass; + accessFlags = 0x2 + name = "ANRChecker" +.end annotation + + +# static fields +.field static final synthetic g:[Lkotlin/u/KProperty5; + + +# instance fields +.field private final a:Lkotlin/Lazy2; + +.field private final b:Ljava/util/concurrent/atomic/AtomicLong; + +.field private final c:Landroid/os/ConditionVariable; + +.field private d:Ljava/util/concurrent/ScheduledFuture; + .annotation system Ldalvik/annotation/Signature; + value = { + "Ljava/util/concurrent/ScheduledFuture<", + "*>;" + } + .end annotation +.end field + +.field private final e:J + +.field final synthetic f:Lcom/vk/metrics/performance/anr/ANR; + + +# direct methods +.method static constructor ()V + .locals 5 + + const/4 v0, 0x1 + + new-array v0, v0, [Lkotlin/u/KProperty5; + + new-instance v1, Lkotlin/jvm/internal/PropertyReference1Impl; + + const-class v2, Lcom/vk/metrics/performance/anr/ANR$ANRChecker; + + invoke-static {v2}, Lkotlin/jvm/internal/Reflection;->a(Ljava/lang/Class;)Lkotlin/u/KClass; + + move-result-object v2 + + const-string v3, "executor" + + const-string v4, "getExecutor()Ljava/util/concurrent/ScheduledExecutorService;" + + invoke-direct {v1, v2, v3, v4}, Lkotlin/jvm/internal/PropertyReference1Impl;->(Lkotlin/u/KDeclarationContainer;Ljava/lang/String;Ljava/lang/String;)V + + invoke-static {v1}, Lkotlin/jvm/internal/Reflection;->a(Lkotlin/jvm/internal/PropertyReference1;)Lkotlin/u/KProperty2; + + const/4 v2, 0x0 + + aput-object v1, v0, v2 + + sput-object v0, Lcom/vk/metrics/performance/anr/ANR$ANRChecker;->g:[Lkotlin/u/KProperty5; + + return-void +.end method + +.method public constructor (Lcom/vk/metrics/performance/anr/ANR;J)V + .locals 0 + .annotation system Ldalvik/annotation/Signature; + value = { + "(J)V" + } + .end annotation + + .line 1 + iput-object p1, p0, Lcom/vk/metrics/performance/anr/ANR$ANRChecker;->f:Lcom/vk/metrics/performance/anr/ANR; + + invoke-direct {p0}, Lb/h/q/c/c/PerformanceChecker;->()V + + iput-wide p2, p0, Lcom/vk/metrics/performance/anr/ANR$ANRChecker;->e:J + + .line 2 + sget-object p1, Lcom/vk/metrics/performance/anr/ANR$ANRChecker$executor$2;->a:Lcom/vk/metrics/performance/anr/ANR$ANRChecker$executor$2; + + invoke-static {p1}, Lkotlin/g;->a(Lkotlin/jvm/b/Functions;)Lkotlin/Lazy2; + + move-result-object p1 + + iput-object p1, p0, Lcom/vk/metrics/performance/anr/ANR$ANRChecker;->a:Lkotlin/Lazy2; + + .line 3 + new-instance p1, Ljava/util/concurrent/atomic/AtomicLong; + + const-wide/16 p2, 0x0 + + invoke-direct {p1, p2, p3}, Ljava/util/concurrent/atomic/AtomicLong;->(J)V + + iput-object p1, p0, Lcom/vk/metrics/performance/anr/ANR$ANRChecker;->b:Ljava/util/concurrent/atomic/AtomicLong; + + .line 4 + new-instance p1, Landroid/os/ConditionVariable; + + invoke-direct {p1}, Landroid/os/ConditionVariable;->()V + + iput-object p1, p0, Lcom/vk/metrics/performance/anr/ANR$ANRChecker;->c:Landroid/os/ConditionVariable; + + return-void +.end method + +.method public static final synthetic a(Lcom/vk/metrics/performance/anr/ANR$ANRChecker;)Ljava/util/concurrent/atomic/AtomicLong; + .locals 0 + + .line 1 + iget-object p0, p0, Lcom/vk/metrics/performance/anr/ANR$ANRChecker;->b:Ljava/util/concurrent/atomic/AtomicLong; + + return-object p0 +.end method + +.method public static final synthetic b(Lcom/vk/metrics/performance/anr/ANR$ANRChecker;)Landroid/os/ConditionVariable; + .locals 0 + + .line 1 + iget-object p0, p0, Lcom/vk/metrics/performance/anr/ANR$ANRChecker;->c:Landroid/os/ConditionVariable; + + return-object p0 +.end method + +.method public static final synthetic c(Lcom/vk/metrics/performance/anr/ANR$ANRChecker;)J + .locals 2 + + .line 1 + iget-wide v0, p0, Lcom/vk/metrics/performance/anr/ANR$ANRChecker;->e:J + + return-wide v0 +.end method + +.method public static final synthetic d(Lcom/vk/metrics/performance/anr/ANR$ANRChecker;)V + .locals 0 + + .line 1 + invoke-direct {p0}, Lcom/vk/metrics/performance/anr/ANR$ANRChecker;->f()V + + return-void +.end method + +.method private final e()Ljava/util/concurrent/ScheduledExecutorService; + .locals 3 + + iget-object v0, p0, Lcom/vk/metrics/performance/anr/ANR$ANRChecker;->a:Lkotlin/Lazy2; + + sget-object v1, Lcom/vk/metrics/performance/anr/ANR$ANRChecker;->g:[Lkotlin/u/KProperty5; + + const/4 v2, 0x0 + + aget-object v1, v1, v2 + + invoke-interface {v0}, Lkotlin/Lazy2;->getValue()Ljava/lang/Object; + + move-result-object v0 + + check-cast v0, Ljava/util/concurrent/ScheduledExecutorService; + + return-object v0 +.end method + +.method private final f()V + .locals 5 + + .line 1 + iget-object v0, p0, Lcom/vk/metrics/performance/anr/ANR$ANRChecker;->b:Ljava/util/concurrent/atomic/AtomicLong; + + invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicLong;->get()J + + move-result-wide v0 + + const-wide/16 v2, 0x0 + + cmp-long v4, v0, v2 + + if-gtz v4, :cond_1 + + iget-object v0, p0, Lcom/vk/metrics/performance/anr/ANR$ANRChecker;->f:Lcom/vk/metrics/performance/anr/ANR; + + invoke-static {v0}, Lcom/vk/metrics/performance/anr/ANR;->a(Lcom/vk/metrics/performance/anr/ANR;)Z + + move-result v0 + + if-eqz v0, :cond_0 + + goto :goto_0 + + :cond_0 + const/4 v0, 0x1 + + new-array v0, v0, [Ljava/lang/Object; + + const/4 v1, 0x0 + + .line 2 + new-instance v2, Ljava/lang/StringBuilder; + + invoke-direct {v2}, Ljava/lang/StringBuilder;->()V + + const-string v3, "start ANR checker on variance " + + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + iget-wide v3, p0, Lcom/vk/metrics/performance/anr/ANR$ANRChecker;->e:J + + invoke-virtual {v2, v3, v4}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder; + + const-string v3, " ms" + + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v2 + + aput-object v2, v0, v1 + + invoke-static {v0}, Lcom/vk/log/L;->a([Ljava/lang/Object;)V + + .line 3 + iget-object v0, p0, Lcom/vk/metrics/performance/anr/ANR$ANRChecker;->c:Landroid/os/ConditionVariable; + + invoke-virtual {v0}, Landroid/os/ConditionVariable;->close()V + + .line 4 + iget-object v0, p0, Lcom/vk/metrics/performance/anr/ANR$ANRChecker;->b:Ljava/util/concurrent/atomic/AtomicLong; + + invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicLong;->incrementAndGet()J + + .line 5 + invoke-direct {p0}, Lcom/vk/metrics/performance/anr/ANR$ANRChecker;->e()Ljava/util/concurrent/ScheduledExecutorService; + + move-result-object v0 + + new-instance v1, Lcom/vk/metrics/performance/anr/ANR$ANRChecker$a; + + invoke-direct {v1, p0}, Lcom/vk/metrics/performance/anr/ANR$ANRChecker$a;->(Lcom/vk/metrics/performance/anr/ANR$ANRChecker;)V + + invoke-interface {v0, v1}, Ljava/util/concurrent/ScheduledExecutorService;->execute(Ljava/lang/Runnable;)V + + :cond_1 + :goto_0 + return-void +.end method + + +# virtual methods +.method public b()V + .locals 5 + + .line 2 + invoke-direct {p0}, Lcom/vk/metrics/performance/anr/ANR$ANRChecker;->e()Ljava/util/concurrent/ScheduledExecutorService; + + move-result-object v0 + + new-instance v1, Lcom/vk/metrics/performance/anr/ANR$ANRChecker$start$1; + + invoke-direct {v1, p0}, Lcom/vk/metrics/performance/anr/ANR$ANRChecker$start$1;->(Lcom/vk/metrics/performance/anr/ANR$ANRChecker;)V + + new-instance v2, Lcom/vk/metrics/performance/anr/ANR1; + + invoke-direct {v2, v1}, Lcom/vk/metrics/performance/anr/ANR1;->(Lkotlin/jvm/b/Functions;)V + + sget-object v1, Ljava/util/concurrent/TimeUnit;->SECONDS:Ljava/util/concurrent/TimeUnit; + + const-wide/16 v3, 0x4 + + invoke-interface {v0, v2, v3, v4, v1}, Ljava/util/concurrent/ScheduledExecutorService;->schedule(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture; + + move-result-object v0 + + iput-object v0, p0, Lcom/vk/metrics/performance/anr/ANR$ANRChecker;->d:Ljava/util/concurrent/ScheduledFuture; + + return-void +.end method + +.method public d()V + .locals 3 + + .line 2 + iget-object v0, p0, Lcom/vk/metrics/performance/anr/ANR$ANRChecker;->d:Ljava/util/concurrent/ScheduledFuture; + + if-eqz v0, :cond_0 + + const/4 v1, 0x1 + + invoke-interface {v0, v1}, Ljava/util/concurrent/ScheduledFuture;->cancel(Z)Z + + .line 3 + :cond_0 + iget-object v0, p0, Lcom/vk/metrics/performance/anr/ANR$ANRChecker;->c:Landroid/os/ConditionVariable; + + invoke-virtual {v0}, Landroid/os/ConditionVariable;->open()V + + .line 4 + iget-object v0, p0, Lcom/vk/metrics/performance/anr/ANR$ANRChecker;->f:Lcom/vk/metrics/performance/anr/ANR; + + invoke-static {v0}, Lcom/vk/metrics/performance/anr/ANR;->d(Lcom/vk/metrics/performance/anr/ANR;)Landroid/os/Handler; + + move-result-object v0 + + invoke-virtual {v0, p0}, Landroid/os/Handler;->removeCallbacksAndMessages(Ljava/lang/Object;)V + + .line 5 + iget-object v0, p0, Lcom/vk/metrics/performance/anr/ANR$ANRChecker;->b:Ljava/util/concurrent/atomic/AtomicLong; + + const-wide/16 v1, 0x0 + + invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/atomic/AtomicLong;->set(J)V + + return-void +.end method + +.method public run()V + .locals 4 + + .line 1 + iget-object v0, p0, Lcom/vk/metrics/performance/anr/ANR$ANRChecker;->f:Lcom/vk/metrics/performance/anr/ANR; + + invoke-static {v0}, Lcom/vk/metrics/performance/anr/ANR;->a(Lcom/vk/metrics/performance/anr/ANR;)Z + + move-result v0 + + if-nez v0, :cond_0 + + .line 2 + iget-object v0, p0, Lcom/vk/metrics/performance/anr/ANR$ANRChecker;->b:Ljava/util/concurrent/atomic/AtomicLong; + + invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicLong;->incrementAndGet()J + + move-result-wide v0 + + const-wide v2, 0x7fffffffffffffffL + + rem-long/2addr v0, v2 + + .line 3 + iget-object v2, p0, Lcom/vk/metrics/performance/anr/ANR$ANRChecker;->b:Ljava/util/concurrent/atomic/AtomicLong; + + invoke-virtual {v2, v0, v1}, Ljava/util/concurrent/atomic/AtomicLong;->set(J)V + + :cond_0 + return-void +.end method diff --git a/smali/smali_classes3/com/vk/metrics/performance/anr/ANR$a.smali b/smali/smali_classes3/com/vk/metrics/performance/anr/ANR$a.smali new file mode 100644 index 000000000..0bda1bf6d --- /dev/null +++ b/smali/smali_classes3/com/vk/metrics/performance/anr/ANR$a.smali @@ -0,0 +1,34 @@ +.class public final Lcom/vk/metrics/performance/anr/ANR$a; +.super Ljava/lang/Object; +.source "ANR.kt" + + +# annotations +.annotation system Ldalvik/annotation/EnclosingClass; + value = Lcom/vk/metrics/performance/anr/ANR; +.end annotation + +.annotation system Ldalvik/annotation/InnerClass; + accessFlags = 0x19 + name = "a" +.end annotation + + +# direct methods +.method private constructor ()V + .locals 0 + + .line 1 + invoke-direct {p0}, Ljava/lang/Object;->()V + + return-void +.end method + +.method public synthetic constructor (Lkotlin/jvm/internal/DefaultConstructorMarker;)V + .locals 0 + + .line 2 + invoke-direct {p0}, Lcom/vk/metrics/performance/anr/ANR$a;->()V + + return-void +.end method diff --git a/smali/smali_classes3/com/vk/metrics/performance/anr/ANR$b.smali b/smali/smali_classes3/com/vk/metrics/performance/anr/ANR$b.smali new file mode 100644 index 000000000..20bf26491 --- /dev/null +++ b/smali/smali_classes3/com/vk/metrics/performance/anr/ANR$b.smali @@ -0,0 +1,70 @@ +.class final Lcom/vk/metrics/performance/anr/ANR$b; +.super Ljava/lang/Object; +.source "ANR.kt" + +# interfaces +.implements Ljava/lang/Thread$UncaughtExceptionHandler; + + +# annotations +.annotation system Ldalvik/annotation/EnclosingClass; + value = Lcom/vk/metrics/performance/anr/ANR; +.end annotation + +.annotation system Ldalvik/annotation/InnerClass; + accessFlags = 0x12 + name = "b" +.end annotation + + +# instance fields +.field private final a:Ljava/lang/Thread$UncaughtExceptionHandler; + +.field final synthetic b:Lcom/vk/metrics/performance/anr/ANR; + + +# direct methods +.method public constructor (Lcom/vk/metrics/performance/anr/ANR;)V + .locals 1 + .annotation system Ldalvik/annotation/Signature; + value = { + "()V" + } + .end annotation + + .line 1 + iput-object p1, p0, Lcom/vk/metrics/performance/anr/ANR$b;->b:Lcom/vk/metrics/performance/anr/ANR; + + invoke-direct {p0}, Ljava/lang/Object;->()V + + .line 2 + invoke-static {}, Ljava/lang/Thread;->getDefaultUncaughtExceptionHandler()Ljava/lang/Thread$UncaughtExceptionHandler; + + move-result-object p1 + + const-string v0, "Thread.getDefaultUncaughtExceptionHandler()" + + invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/String;)V + + iput-object p1, p0, Lcom/vk/metrics/performance/anr/ANR$b;->a:Ljava/lang/Thread$UncaughtExceptionHandler; + + return-void +.end method + + +# virtual methods +.method public uncaughtException(Ljava/lang/Thread;Ljava/lang/Throwable;)V + .locals 1 + + .line 1 + iget-object v0, p0, Lcom/vk/metrics/performance/anr/ANR$b;->b:Lcom/vk/metrics/performance/anr/ANR; + + invoke-virtual {v0}, Lcom/vk/metrics/performance/anr/ANR;->c()V + + .line 2 + iget-object v0, p0, Lcom/vk/metrics/performance/anr/ANR$b;->a:Ljava/lang/Thread$UncaughtExceptionHandler; + + invoke-interface {v0, p1, p2}, Ljava/lang/Thread$UncaughtExceptionHandler;->uncaughtException(Ljava/lang/Thread;Ljava/lang/Throwable;)V + + return-void +.end method diff --git a/smali/smali_classes3/com/vk/metrics/performance/anr/ANR$c.smali b/smali/smali_classes3/com/vk/metrics/performance/anr/ANR$c.smali new file mode 100644 index 000000000..a8d4a5022 --- /dev/null +++ b/smali/smali_classes3/com/vk/metrics/performance/anr/ANR$c.smali @@ -0,0 +1,19 @@ +.class public interface abstract Lcom/vk/metrics/performance/anr/ANR$c; +.super Ljava/lang/Object; +.source "ANR.kt" + + +# annotations +.annotation system Ldalvik/annotation/EnclosingClass; + value = Lcom/vk/metrics/performance/anr/ANR; +.end annotation + +.annotation system Ldalvik/annotation/InnerClass; + accessFlags = 0x609 + name = "c" +.end annotation + + +# virtual methods +.method public abstract a(JLjava/lang/Throwable;)V +.end method diff --git a/smali/smali_classes3/com/vk/metrics/performance/anr/ANR.smali b/smali/smali_classes3/com/vk/metrics/performance/anr/ANR.smali new file mode 100644 index 000000000..f9cddace9 --- /dev/null +++ b/smali/smali_classes3/com/vk/metrics/performance/anr/ANR.smali @@ -0,0 +1,245 @@ +.class public final Lcom/vk/metrics/performance/anr/ANR; +.super Ljava/lang/Object; +.source "ANR.kt" + + +# annotations +.annotation system Ldalvik/annotation/MemberClasses; + value = { + Lcom/vk/metrics/performance/anr/ANR$c;, + Lcom/vk/metrics/performance/anr/ANR$ANRChecker;, + Lcom/vk/metrics/performance/anr/ANR$b;, + Lcom/vk/metrics/performance/anr/ANR$a; + } +.end annotation + + +# instance fields +.field private volatile a:Z + +.field private final b:Landroid/os/Handler; + +.field private final c:Lcom/vk/metrics/performance/anr/ANR$c; + + +# direct methods +.method static constructor ()V + .locals 2 + + new-instance v0, Lcom/vk/metrics/performance/anr/ANR$a; + + const/4 v1, 0x0 + + invoke-direct {v0, v1}, Lcom/vk/metrics/performance/anr/ANR$a;->(Lkotlin/jvm/internal/DefaultConstructorMarker;)V + + return-void +.end method + +.method public constructor (Lcom/vk/metrics/performance/anr/ANR$c;)V + .locals 1 + + .line 1 + invoke-direct {p0}, Ljava/lang/Object;->()V + + iput-object p1, p0, Lcom/vk/metrics/performance/anr/ANR;->c:Lcom/vk/metrics/performance/anr/ANR$c; + + .line 2 + new-instance p1, Landroid/os/Handler; + + invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper; + + move-result-object v0 + + invoke-direct {p1, v0}, Landroid/os/Handler;->(Landroid/os/Looper;)V + + iput-object p1, p0, Lcom/vk/metrics/performance/anr/ANR;->b:Landroid/os/Handler; + + return-void +.end method + +.method public static final synthetic a(Lcom/vk/metrics/performance/anr/ANR;Z)V + .locals 0 + + .line 2 + iput-boolean p1, p0, Lcom/vk/metrics/performance/anr/ANR;->a:Z + + return-void +.end method + +.method public static final synthetic a(Lcom/vk/metrics/performance/anr/ANR;)Z + .locals 0 + + .line 1 + iget-boolean p0, p0, Lcom/vk/metrics/performance/anr/ANR;->a:Z + + return p0 +.end method + +.method public static final synthetic b(Lcom/vk/metrics/performance/anr/ANR;)Lcom/vk/metrics/performance/anr/ANR$c; + .locals 0 + + .line 1 + iget-object p0, p0, Lcom/vk/metrics/performance/anr/ANR;->c:Lcom/vk/metrics/performance/anr/ANR$c; + + return-object p0 +.end method + +.method public static final synthetic c(Lcom/vk/metrics/performance/anr/ANR;)Lcom/vk/metrics/performance/anr/AnrException; + .locals 0 + + .line 1 + invoke-direct {p0}, Lcom/vk/metrics/performance/anr/ANR;->d()Lcom/vk/metrics/performance/anr/AnrException; + + move-result-object p0 + + return-object p0 +.end method + +.method public static final synthetic d(Lcom/vk/metrics/performance/anr/ANR;)Landroid/os/Handler; + .locals 0 + + .line 1 + iget-object p0, p0, Lcom/vk/metrics/performance/anr/ANR;->b:Landroid/os/Handler; + + return-object p0 +.end method + +.method private final d()Lcom/vk/metrics/performance/anr/AnrException; + .locals 4 + + const/4 v0, 0x0 + + .line 2 + :try_start_0 + invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper; + + move-result-object v1 + + invoke-virtual {v1}, Landroid/os/Looper;->getThread()Ljava/lang/Thread; + + move-result-object v1 + + const-string v2, "Looper.getMainLooper().getThread()" + + invoke-static {v1, v2}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/String;)V + + .line 3 + new-instance v2, Lcom/vk/metrics/performance/anr/AnrException; + + invoke-static {}, Lb/h/q/c/c/ExceptionExt;->a()Ljava/lang/Throwable; + + move-result-object v3 + + invoke-direct {v2, v3}, Lcom/vk/metrics/performance/anr/AnrException;->(Ljava/lang/Throwable;)V + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + .line 4 + :try_start_1 + invoke-virtual {v1}, Ljava/lang/Thread;->getStackTrace()[Ljava/lang/StackTraceElement; + + move-result-object v0 + + invoke-virtual {v2, v0}, Ljava/lang/RuntimeException;->setStackTrace([Ljava/lang/StackTraceElement;)V + :try_end_1 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_1 + + goto :goto_0 + + :catch_0 + move-object v2, v0 + + :catch_1 + :goto_0 + return-object v2 +.end method + +.method private final e()Z + .locals 1 + + .line 2 + invoke-static {}, Landroid/os/Debug;->isDebuggerConnected()Z + + move-result v0 + + return v0 +.end method + +.method public static final synthetic e(Lcom/vk/metrics/performance/anr/ANR;)Z + .locals 0 + + .line 1 + invoke-direct {p0}, Lcom/vk/metrics/performance/anr/ANR;->e()Z + + move-result p0 + + return p0 +.end method + + +# virtual methods +.method public final a()Ljava/util/ArrayList; + .locals 4 + .annotation system Ldalvik/annotation/Signature; + value = { + "()", + "Ljava/util/ArrayList<", + "Lb/h/q/c/c/PerformanceChecker;", + ">;" + } + .end annotation + + .line 3 + new-instance v0, Ljava/util/ArrayList; + + invoke-direct {v0}, Ljava/util/ArrayList;->()V + + .line 4 + invoke-direct {p0}, Lcom/vk/metrics/performance/anr/ANR;->e()Z + + move-result v1 + + if-eqz v1, :cond_0 + + return-object v0 + + .line 5 + :cond_0 + new-instance v1, Lcom/vk/metrics/performance/anr/ANR$ANRChecker; + + const-wide/16 v2, 0x1388 + + invoke-direct {v1, p0, v2, v3}, Lcom/vk/metrics/performance/anr/ANR$ANRChecker;->(Lcom/vk/metrics/performance/anr/ANR;J)V + + invoke-virtual {v0, v1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z + + new-instance v1, Lcom/vk/metrics/performance/anr/ANR$b; + + invoke-direct {v1, p0}, Lcom/vk/metrics/performance/anr/ANR$b;->(Lcom/vk/metrics/performance/anr/ANR;)V + + invoke-static {v1}, Ljava/lang/Thread;->setDefaultUncaughtExceptionHandler(Ljava/lang/Thread$UncaughtExceptionHandler;)V + + return-object v0 +.end method + +.method public final b()V + .locals 1 + + const/4 v0, 0x0 + + .line 2 + iput-boolean v0, p0, Lcom/vk/metrics/performance/anr/ANR;->a:Z + + return-void +.end method + +.method public final c()V + .locals 1 + + const/4 v0, 0x1 + + .line 2 + iput-boolean v0, p0, Lcom/vk/metrics/performance/anr/ANR;->a:Z + + return-void +.end method diff --git a/smali/smali_classes3/com/vk/metrics/performance/anr/ANR1.smali b/smali/smali_classes3/com/vk/metrics/performance/anr/ANR1.smali new file mode 100644 index 000000000..d86049b5e --- /dev/null +++ b/smali/smali_classes3/com/vk/metrics/performance/anr/ANR1.smali @@ -0,0 +1,40 @@ +.class final Lcom/vk/metrics/performance/anr/ANR1; +.super Ljava/lang/Object; +.source "ANR.kt" + +# interfaces +.implements Ljava/lang/Runnable; + + +# instance fields +.field private final synthetic a:Lkotlin/jvm/b/Functions; + + +# direct methods +.method constructor (Lkotlin/jvm/b/Functions;)V + .locals 0 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + iput-object p1, p0, Lcom/vk/metrics/performance/anr/ANR1;->a:Lkotlin/jvm/b/Functions; + + return-void +.end method + + +# virtual methods +.method public final synthetic run()V + .locals 2 + + iget-object v0, p0, Lcom/vk/metrics/performance/anr/ANR1;->a:Lkotlin/jvm/b/Functions; + + invoke-interface {v0}, Lkotlin/jvm/b/Functions;->invoke()Ljava/lang/Object; + + move-result-object v0 + + const-string v1, "invoke(...)" + + invoke-static {v0, v1}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/String;)V + + return-void +.end method diff --git a/smali/smali_classes3/com/vk/metrics/performance/anr/AnrException.smali b/smali/smali_classes3/com/vk/metrics/performance/anr/AnrException.smali new file mode 100644 index 000000000..43703386b --- /dev/null +++ b/smali/smali_classes3/com/vk/metrics/performance/anr/AnrException.smali @@ -0,0 +1,42 @@ +.class public final Lcom/vk/metrics/performance/anr/AnrException; +.super Ljava/lang/RuntimeException; +.source "AnrException.kt" + + +# direct methods +.method public constructor ()V + .locals 2 + + const/4 v0, 0x0 + + const/4 v1, 0x1 + + invoke-direct {p0, v0, v1, v0}, Lcom/vk/metrics/performance/anr/AnrException;->(Ljava/lang/Throwable;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + + return-void +.end method + +.method public constructor (Ljava/lang/Throwable;)V + .locals 0 + + .line 1 + invoke-direct {p0, p1}, Ljava/lang/RuntimeException;->(Ljava/lang/Throwable;)V + + return-void +.end method + +.method public synthetic constructor (Ljava/lang/Throwable;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + .locals 0 + + and-int/lit8 p2, p2, 0x1 + + if-eqz p2, :cond_0 + + const/4 p1, 0x0 + + .line 2 + :cond_0 + invoke-direct {p0, p1}, Lcom/vk/metrics/performance/anr/AnrException;->(Ljava/lang/Throwable;)V + + return-void +.end method diff --git a/smali/smali_classes3/com/vk/metrics/performance/memory/MemoryChecker$b.smali b/smali/smali_classes3/com/vk/metrics/performance/memory/MemoryChecker$b.smali index cae9a07fc..d9ed457fd 100644 --- a/smali/smali_classes3/com/vk/metrics/performance/memory/MemoryChecker$b.smali +++ b/smali/smali_classes3/com/vk/metrics/performance/memory/MemoryChecker$b.smali @@ -77,5 +77,6 @@ invoke-static {v1}, Lcom/vk/log/L;->a([Ljava/lang/Object;)V + return-void .end method diff --git a/smali/smali_classes3/com/vk/metrics/reporters/PerformanceReporter$a.smali b/smali/smali_classes3/com/vk/metrics/reporters/PerformanceReporter$a.smali new file mode 100644 index 000000000..e0f8390ea --- /dev/null +++ b/smali/smali_classes3/com/vk/metrics/reporters/PerformanceReporter$a.smali @@ -0,0 +1,991 @@ +.class public final Lcom/vk/metrics/reporters/PerformanceReporter$a; +.super Ljava/lang/Object; +.source "PerformanceReporter.kt" + + +# annotations +.annotation system Ldalvik/annotation/EnclosingClass; + value = Lcom/vk/metrics/reporters/PerformanceReporter; +.end annotation + +.annotation system Ldalvik/annotation/InnerClass; + accessFlags = 0x19 + name = "a" +.end annotation + + +# instance fields +.field private final a:Ljava/lang/Integer; + +.field private final b:Ljava/lang/Long; + +.field private final c:Ljava/lang/Long; + +.field private final d:Ljava/lang/Long; + +.field private final e:Ljava/lang/Long; + +.field private final f:Ljava/lang/Long; + +.field private final g:Ljava/lang/Integer; + +.field private final h:Ljava/lang/Integer; + +.field private final i:Ljava/lang/Integer; + +.field private final j:Ljava/lang/Integer; + +.field private final k:Ljava/lang/Integer; + +.field private final l:Ljava/lang/Integer; + +.field private final m:Ljava/lang/Integer; + +.field private final n:Ljava/lang/Integer; + +.field private final o:Ljava/lang/Integer; + +.field private final p:Ljava/lang/Integer; + +.field private final q:Ljava/lang/Integer; + +.field private final r:Ljava/lang/Boolean; + + +# direct methods +.method public constructor (Ljava/lang/Integer;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Boolean;)V + .locals 2 + + move-object v0, p0 + + .line 1 + invoke-direct {p0}, Ljava/lang/Object;->()V + + move-object v1, p1 + + iput-object v1, v0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->a:Ljava/lang/Integer; + + move-object v1, p2 + + iput-object v1, v0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->b:Ljava/lang/Long; + + move-object v1, p3 + + iput-object v1, v0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->c:Ljava/lang/Long; + + move-object v1, p4 + + iput-object v1, v0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->d:Ljava/lang/Long; + + move-object v1, p5 + + iput-object v1, v0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->e:Ljava/lang/Long; + + move-object v1, p6 + + iput-object v1, v0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->f:Ljava/lang/Long; + + move-object v1, p7 + + iput-object v1, v0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->g:Ljava/lang/Integer; + + move-object v1, p8 + + iput-object v1, v0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->h:Ljava/lang/Integer; + + move-object v1, p9 + + iput-object v1, v0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->i:Ljava/lang/Integer; + + move-object v1, p10 + + iput-object v1, v0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->j:Ljava/lang/Integer; + + move-object v1, p11 + + iput-object v1, v0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->k:Ljava/lang/Integer; + + move-object v1, p12 + + iput-object v1, v0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->l:Ljava/lang/Integer; + + move-object v1, p13 + + iput-object v1, v0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->m:Ljava/lang/Integer; + + move-object/from16 v1, p14 + + iput-object v1, v0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->n:Ljava/lang/Integer; + + move-object/from16 v1, p15 + + iput-object v1, v0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->o:Ljava/lang/Integer; + + move-object/from16 v1, p16 + + iput-object v1, v0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->p:Ljava/lang/Integer; + + move-object/from16 v1, p17 + + iput-object v1, v0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->q:Ljava/lang/Integer; + + move-object/from16 v1, p18 + + iput-object v1, v0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->r:Ljava/lang/Boolean; + + return-void +.end method + + +# virtual methods +.method public final a()Ljava/lang/Boolean; + .locals 1 + + .line 1 + iget-object v0, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->r:Ljava/lang/Boolean; + + return-object v0 +.end method + +.method public final b()Ljava/lang/Long; + .locals 1 + + .line 1 + iget-object v0, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->e:Ljava/lang/Long; + + return-object v0 +.end method + +.method public final c()Ljava/lang/Long; + .locals 1 + + .line 1 + iget-object v0, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->f:Ljava/lang/Long; + + return-object v0 +.end method + +.method public final d()Ljava/lang/Long; + .locals 1 + + .line 1 + iget-object v0, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->d:Ljava/lang/Long; + + return-object v0 +.end method + +.method public final e()Ljava/lang/Integer; + .locals 1 + + .line 1 + iget-object v0, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->j:Ljava/lang/Integer; + + return-object v0 +.end method + +.method public equals(Ljava/lang/Object;)Z + .locals 2 + + if-eq p0, p1, :cond_1 + + instance-of v0, p1, Lcom/vk/metrics/reporters/PerformanceReporter$a; + + if-eqz v0, :cond_0 + + check-cast p1, Lcom/vk/metrics/reporters/PerformanceReporter$a; + + iget-object v0, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->a:Ljava/lang/Integer; + + iget-object v1, p1, Lcom/vk/metrics/reporters/PerformanceReporter$a;->a:Ljava/lang/Integer; + + invoke-static {v0, v1}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/Object;)Z + + move-result v0 + + if-eqz v0, :cond_0 + + iget-object v0, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->b:Ljava/lang/Long; + + iget-object v1, p1, Lcom/vk/metrics/reporters/PerformanceReporter$a;->b:Ljava/lang/Long; + + invoke-static {v0, v1}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/Object;)Z + + move-result v0 + + if-eqz v0, :cond_0 + + iget-object v0, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->c:Ljava/lang/Long; + + iget-object v1, p1, Lcom/vk/metrics/reporters/PerformanceReporter$a;->c:Ljava/lang/Long; + + invoke-static {v0, v1}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/Object;)Z + + move-result v0 + + if-eqz v0, :cond_0 + + iget-object v0, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->d:Ljava/lang/Long; + + iget-object v1, p1, Lcom/vk/metrics/reporters/PerformanceReporter$a;->d:Ljava/lang/Long; + + invoke-static {v0, v1}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/Object;)Z + + move-result v0 + + if-eqz v0, :cond_0 + + iget-object v0, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->e:Ljava/lang/Long; + + iget-object v1, p1, Lcom/vk/metrics/reporters/PerformanceReporter$a;->e:Ljava/lang/Long; + + invoke-static {v0, v1}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/Object;)Z + + move-result v0 + + if-eqz v0, :cond_0 + + iget-object v0, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->f:Ljava/lang/Long; + + iget-object v1, p1, Lcom/vk/metrics/reporters/PerformanceReporter$a;->f:Ljava/lang/Long; + + invoke-static {v0, v1}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/Object;)Z + + move-result v0 + + if-eqz v0, :cond_0 + + iget-object v0, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->g:Ljava/lang/Integer; + + iget-object v1, p1, Lcom/vk/metrics/reporters/PerformanceReporter$a;->g:Ljava/lang/Integer; + + invoke-static {v0, v1}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/Object;)Z + + move-result v0 + + if-eqz v0, :cond_0 + + iget-object v0, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->h:Ljava/lang/Integer; + + iget-object v1, p1, Lcom/vk/metrics/reporters/PerformanceReporter$a;->h:Ljava/lang/Integer; + + invoke-static {v0, v1}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/Object;)Z + + move-result v0 + + if-eqz v0, :cond_0 + + iget-object v0, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->i:Ljava/lang/Integer; + + iget-object v1, p1, Lcom/vk/metrics/reporters/PerformanceReporter$a;->i:Ljava/lang/Integer; + + invoke-static {v0, v1}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/Object;)Z + + move-result v0 + + if-eqz v0, :cond_0 + + iget-object v0, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->j:Ljava/lang/Integer; + + iget-object v1, p1, Lcom/vk/metrics/reporters/PerformanceReporter$a;->j:Ljava/lang/Integer; + + invoke-static {v0, v1}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/Object;)Z + + move-result v0 + + if-eqz v0, :cond_0 + + iget-object v0, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->k:Ljava/lang/Integer; + + iget-object v1, p1, Lcom/vk/metrics/reporters/PerformanceReporter$a;->k:Ljava/lang/Integer; + + invoke-static {v0, v1}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/Object;)Z + + move-result v0 + + if-eqz v0, :cond_0 + + iget-object v0, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->l:Ljava/lang/Integer; + + iget-object v1, p1, Lcom/vk/metrics/reporters/PerformanceReporter$a;->l:Ljava/lang/Integer; + + invoke-static {v0, v1}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/Object;)Z + + move-result v0 + + if-eqz v0, :cond_0 + + iget-object v0, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->m:Ljava/lang/Integer; + + iget-object v1, p1, Lcom/vk/metrics/reporters/PerformanceReporter$a;->m:Ljava/lang/Integer; + + invoke-static {v0, v1}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/Object;)Z + + move-result v0 + + if-eqz v0, :cond_0 + + iget-object v0, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->n:Ljava/lang/Integer; + + iget-object v1, p1, Lcom/vk/metrics/reporters/PerformanceReporter$a;->n:Ljava/lang/Integer; + + invoke-static {v0, v1}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/Object;)Z + + move-result v0 + + if-eqz v0, :cond_0 + + iget-object v0, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->o:Ljava/lang/Integer; + + iget-object v1, p1, Lcom/vk/metrics/reporters/PerformanceReporter$a;->o:Ljava/lang/Integer; + + invoke-static {v0, v1}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/Object;)Z + + move-result v0 + + if-eqz v0, :cond_0 + + iget-object v0, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->p:Ljava/lang/Integer; + + iget-object v1, p1, Lcom/vk/metrics/reporters/PerformanceReporter$a;->p:Ljava/lang/Integer; + + invoke-static {v0, v1}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/Object;)Z + + move-result v0 + + if-eqz v0, :cond_0 + + iget-object v0, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->q:Ljava/lang/Integer; + + iget-object v1, p1, Lcom/vk/metrics/reporters/PerformanceReporter$a;->q:Ljava/lang/Integer; + + invoke-static {v0, v1}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/Object;)Z + + move-result v0 + + if-eqz v0, :cond_0 + + iget-object v0, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->r:Ljava/lang/Boolean; + + iget-object p1, p1, Lcom/vk/metrics/reporters/PerformanceReporter$a;->r:Ljava/lang/Boolean; + + invoke-static {v0, p1}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/Object;)Z + + move-result p1 + + if-eqz p1, :cond_0 + + goto :goto_0 + + :cond_0 + const/4 p1, 0x0 + + return p1 + + :cond_1 + :goto_0 + const/4 p1, 0x1 + + return p1 +.end method + +.method public final f()Ljava/lang/Integer; + .locals 1 + + .line 1 + iget-object v0, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->i:Ljava/lang/Integer; + + return-object v0 +.end method + +.method public final g()Ljava/lang/Integer; + .locals 1 + + .line 1 + iget-object v0, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->h:Ljava/lang/Integer; + + return-object v0 +.end method + +.method public final h()Ljava/lang/Integer; + .locals 1 + + .line 1 + iget-object v0, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->g:Ljava/lang/Integer; + + return-object v0 +.end method + +.method public hashCode()I + .locals 3 + + iget-object v0, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->a:Ljava/lang/Integer; + + const/4 v1, 0x0 + + if-eqz v0, :cond_0 + + invoke-virtual {v0}, Ljava/lang/Object;->hashCode()I + + move-result v0 + + goto :goto_0 + + :cond_0 + const/4 v0, 0x0 + + :goto_0 + mul-int/lit8 v0, v0, 0x1f + + iget-object v2, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->b:Ljava/lang/Long; + + if-eqz v2, :cond_1 + + invoke-virtual {v2}, Ljava/lang/Object;->hashCode()I + + move-result v2 + + goto :goto_1 + + :cond_1 + const/4 v2, 0x0 + + :goto_1 + add-int/2addr v0, v2 + + mul-int/lit8 v0, v0, 0x1f + + iget-object v2, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->c:Ljava/lang/Long; + + if-eqz v2, :cond_2 + + invoke-virtual {v2}, Ljava/lang/Object;->hashCode()I + + move-result v2 + + goto :goto_2 + + :cond_2 + const/4 v2, 0x0 + + :goto_2 + add-int/2addr v0, v2 + + mul-int/lit8 v0, v0, 0x1f + + iget-object v2, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->d:Ljava/lang/Long; + + if-eqz v2, :cond_3 + + invoke-virtual {v2}, Ljava/lang/Object;->hashCode()I + + move-result v2 + + goto :goto_3 + + :cond_3 + const/4 v2, 0x0 + + :goto_3 + add-int/2addr v0, v2 + + mul-int/lit8 v0, v0, 0x1f + + iget-object v2, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->e:Ljava/lang/Long; + + if-eqz v2, :cond_4 + + invoke-virtual {v2}, Ljava/lang/Object;->hashCode()I + + move-result v2 + + goto :goto_4 + + :cond_4 + const/4 v2, 0x0 + + :goto_4 + add-int/2addr v0, v2 + + mul-int/lit8 v0, v0, 0x1f + + iget-object v2, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->f:Ljava/lang/Long; + + if-eqz v2, :cond_5 + + invoke-virtual {v2}, Ljava/lang/Object;->hashCode()I + + move-result v2 + + goto :goto_5 + + :cond_5 + const/4 v2, 0x0 + + :goto_5 + add-int/2addr v0, v2 + + mul-int/lit8 v0, v0, 0x1f + + iget-object v2, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->g:Ljava/lang/Integer; + + if-eqz v2, :cond_6 + + invoke-virtual {v2}, Ljava/lang/Object;->hashCode()I + + move-result v2 + + goto :goto_6 + + :cond_6 + const/4 v2, 0x0 + + :goto_6 + add-int/2addr v0, v2 + + mul-int/lit8 v0, v0, 0x1f + + iget-object v2, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->h:Ljava/lang/Integer; + + if-eqz v2, :cond_7 + + invoke-virtual {v2}, Ljava/lang/Object;->hashCode()I + + move-result v2 + + goto :goto_7 + + :cond_7 + const/4 v2, 0x0 + + :goto_7 + add-int/2addr v0, v2 + + mul-int/lit8 v0, v0, 0x1f + + iget-object v2, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->i:Ljava/lang/Integer; + + if-eqz v2, :cond_8 + + invoke-virtual {v2}, Ljava/lang/Object;->hashCode()I + + move-result v2 + + goto :goto_8 + + :cond_8 + const/4 v2, 0x0 + + :goto_8 + add-int/2addr v0, v2 + + mul-int/lit8 v0, v0, 0x1f + + iget-object v2, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->j:Ljava/lang/Integer; + + if-eqz v2, :cond_9 + + invoke-virtual {v2}, Ljava/lang/Object;->hashCode()I + + move-result v2 + + goto :goto_9 + + :cond_9 + const/4 v2, 0x0 + + :goto_9 + add-int/2addr v0, v2 + + mul-int/lit8 v0, v0, 0x1f + + iget-object v2, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->k:Ljava/lang/Integer; + + if-eqz v2, :cond_a + + invoke-virtual {v2}, Ljava/lang/Object;->hashCode()I + + move-result v2 + + goto :goto_a + + :cond_a + const/4 v2, 0x0 + + :goto_a + add-int/2addr v0, v2 + + mul-int/lit8 v0, v0, 0x1f + + iget-object v2, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->l:Ljava/lang/Integer; + + if-eqz v2, :cond_b + + invoke-virtual {v2}, Ljava/lang/Object;->hashCode()I + + move-result v2 + + goto :goto_b + + :cond_b + const/4 v2, 0x0 + + :goto_b + add-int/2addr v0, v2 + + mul-int/lit8 v0, v0, 0x1f + + iget-object v2, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->m:Ljava/lang/Integer; + + if-eqz v2, :cond_c + + invoke-virtual {v2}, Ljava/lang/Object;->hashCode()I + + move-result v2 + + goto :goto_c + + :cond_c + const/4 v2, 0x0 + + :goto_c + add-int/2addr v0, v2 + + mul-int/lit8 v0, v0, 0x1f + + iget-object v2, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->n:Ljava/lang/Integer; + + if-eqz v2, :cond_d + + invoke-virtual {v2}, Ljava/lang/Object;->hashCode()I + + move-result v2 + + goto :goto_d + + :cond_d + const/4 v2, 0x0 + + :goto_d + add-int/2addr v0, v2 + + mul-int/lit8 v0, v0, 0x1f + + iget-object v2, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->o:Ljava/lang/Integer; + + if-eqz v2, :cond_e + + invoke-virtual {v2}, Ljava/lang/Object;->hashCode()I + + move-result v2 + + goto :goto_e + + :cond_e + const/4 v2, 0x0 + + :goto_e + add-int/2addr v0, v2 + + mul-int/lit8 v0, v0, 0x1f + + iget-object v2, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->p:Ljava/lang/Integer; + + if-eqz v2, :cond_f + + invoke-virtual {v2}, Ljava/lang/Object;->hashCode()I + + move-result v2 + + goto :goto_f + + :cond_f + const/4 v2, 0x0 + + :goto_f + add-int/2addr v0, v2 + + mul-int/lit8 v0, v0, 0x1f + + iget-object v2, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->q:Ljava/lang/Integer; + + if-eqz v2, :cond_10 + + invoke-virtual {v2}, Ljava/lang/Object;->hashCode()I + + move-result v2 + + goto :goto_10 + + :cond_10 + const/4 v2, 0x0 + + :goto_10 + add-int/2addr v0, v2 + + mul-int/lit8 v0, v0, 0x1f + + iget-object v2, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->r:Ljava/lang/Boolean; + + if-eqz v2, :cond_11 + + invoke-virtual {v2}, Ljava/lang/Object;->hashCode()I + + move-result v1 + + :cond_11 + add-int/2addr v0, v1 + + return v0 +.end method + +.method public final i()Ljava/lang/Integer; + .locals 1 + + .line 1 + iget-object v0, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->l:Ljava/lang/Integer; + + return-object v0 +.end method + +.method public final j()Ljava/lang/Integer; + .locals 1 + + .line 1 + iget-object v0, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->k:Ljava/lang/Integer; + + return-object v0 +.end method + +.method public final k()Ljava/lang/Long; + .locals 1 + + .line 1 + iget-object v0, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->c:Ljava/lang/Long; + + return-object v0 +.end method + +.method public final l()Ljava/lang/Long; + .locals 1 + + .line 1 + iget-object v0, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->b:Ljava/lang/Long; + + return-object v0 +.end method + +.method public final m()Ljava/lang/Integer; + .locals 1 + + .line 1 + iget-object v0, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->p:Ljava/lang/Integer; + + return-object v0 +.end method + +.method public final n()Ljava/lang/Integer; + .locals 1 + + .line 1 + iget-object v0, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->q:Ljava/lang/Integer; + + return-object v0 +.end method + +.method public final o()Ljava/lang/Integer; + .locals 1 + + .line 1 + iget-object v0, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->o:Ljava/lang/Integer; + + return-object v0 +.end method + +.method public final p()Ljava/lang/Integer; + .locals 1 + + .line 1 + iget-object v0, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->n:Ljava/lang/Integer; + + return-object v0 +.end method + +.method public final q()Ljava/lang/Integer; + .locals 1 + + .line 1 + iget-object v0, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->m:Ljava/lang/Integer; + + return-object v0 +.end method + +.method public final r()Ljava/lang/Integer; + .locals 1 + + .line 1 + iget-object v0, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->a:Ljava/lang/Integer; + + return-object v0 +.end method + +.method public toString()Ljava/lang/String; + .locals 2 + + new-instance v0, Ljava/lang/StringBuilder; + + invoke-direct {v0}, Ljava/lang/StringBuilder;->()V + + const-string v1, "PerformanceMetrics(ramSize=" + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + iget-object v1, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->a:Ljava/lang/Integer; + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; + + const-string v1, ", appLoadingTime=" + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + iget-object v1, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->b:Ljava/lang/Long; + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; + + const-string v1, ", appInitTime=" + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + iget-object v1, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->c:Ljava/lang/Long; + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; + + const-string v1, ", appFirstScreenTime=" + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + iget-object v1, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->d:Ljava/lang/Long; + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; + + const-string v1, ", appFirstFeedDataTime=" + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + iget-object v1, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->e:Ljava/lang/Long; + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; + + const-string v1, ", appFirstLongpollConnection=" + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + iget-object v1, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->f:Ljava/lang/Long; + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; + + const-string v1, ", appFtrFeed=" + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + iget-object v1, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->g:Ljava/lang/Integer; + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; + + const-string v1, ", appFtrDiscover=" + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + iget-object v1, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->h:Ljava/lang/Integer; + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; + + const-string v1, ", appFtrDialogs=" + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + iget-object v1, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->i:Ljava/lang/Integer; + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; + + const-string v1, ", appFtrDialog=" + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + iget-object v1, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->j:Ljava/lang/Integer; + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; + + const-string v1, ", appFtrFriends=" + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + iget-object v1, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->k:Ljava/lang/Integer; + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; + + const-string v1, ", appFtrFeedVideo=" + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + iget-object v1, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->l:Ljava/lang/Integer; + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; + + const-string v1, ", netUsageStart=" + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + iget-object v1, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->m:Ljava/lang/Integer; + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; + + const-string v1, ", netUsage=" + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + iget-object v1, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->n:Ljava/lang/Integer; + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; + + const-string v1, ", netLoadApiCount=" + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + iget-object v1, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->o:Ljava/lang/Integer; + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; + + const-string v1, ", netBackgroundTraffic=" + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + iget-object v1, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->p:Ljava/lang/Integer; + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; + + const-string v1, ", netErrorCount=" + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + iget-object v1, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->q:Ljava/lang/Integer; + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; + + const-string v1, ", appANR=" + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + iget-object v1, p0, Lcom/vk/metrics/reporters/PerformanceReporter$a;->r:Ljava/lang/Boolean; + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; + + const-string v1, ")" + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v0 + + return-object v0 +.end method diff --git a/smali/smali_classes3/com/vk/metrics/reporters/PerformanceReporter$b.smali b/smali/smali_classes3/com/vk/metrics/reporters/PerformanceReporter$b.smali new file mode 100644 index 000000000..ff26e7bd6 --- /dev/null +++ b/smali/smali_classes3/com/vk/metrics/reporters/PerformanceReporter$b.smali @@ -0,0 +1,49 @@ +.class public final Lcom/vk/metrics/reporters/PerformanceReporter$b; +.super Lb/h/n/AppLifecycleDispatcher$a; +.source "PerformanceReporter.kt" + + +# annotations +.annotation system Ldalvik/annotation/EnclosingMethod; + value = Lcom/vk/metrics/reporters/PerformanceReporter;->a(Landroid/content/Context;)V +.end annotation + +.annotation system Ldalvik/annotation/InnerClass; + accessFlags = 0x19 + name = null +.end annotation + + +# direct methods +.method constructor ()V + .locals 0 + + .line 1 + invoke-direct {p0}, Lb/h/n/AppLifecycleDispatcher$a;->()V + + return-void +.end method + + +# virtual methods +.method public b()V + .locals 1 + + .line 1 + sget-object v0, Lcom/vk/metrics/reporters/PerformanceReporter;->j:Lcom/vk/metrics/reporters/PerformanceReporter; + + invoke-static {v0}, Lcom/vk/metrics/reporters/PerformanceReporter;->b(Lcom/vk/metrics/reporters/PerformanceReporter;)V + + return-void +.end method + +.method public c(Landroid/app/Activity;)V + .locals 0 + + .line 1 + sget-object p1, Lcom/vk/metrics/reporters/PerformanceReporter;->j:Lcom/vk/metrics/reporters/PerformanceReporter; + + invoke-static {p1}, Lcom/vk/metrics/reporters/PerformanceReporter;->a(Lcom/vk/metrics/reporters/PerformanceReporter;)V + + return-void +.end method diff --git a/smali/smali_classes3/com/vk/metrics/reporters/PerformanceReporter.smali b/smali/smali_classes3/com/vk/metrics/reporters/PerformanceReporter.smali new file mode 100644 index 000000000..4cc5df75e --- /dev/null +++ b/smali/smali_classes3/com/vk/metrics/reporters/PerformanceReporter.smali @@ -0,0 +1,837 @@ +.class public final Lcom/vk/metrics/reporters/PerformanceReporter; +.super Ljava/lang/Object; +.source "PerformanceReporter.kt" + +# interfaces +.implements Lcom/vk/metrics/performance/anr/ANR$c; +.implements Lcom/vk/metrics/performance/memory/LargeTransactionChecker$d; + + +# annotations +.annotation system Ldalvik/annotation/MemberClasses; + value = { + Lcom/vk/metrics/reporters/PerformanceReporter$a; + } +.end annotation + + +# static fields +.field private static final a:J + +.field private static final b:Ljava/util/ArrayList; + .annotation system Ldalvik/annotation/Signature; + value = { + "Ljava/util/ArrayList<", + "Lb/h/q/c/c/PerformanceChecker;", + ">;" + } + .end annotation +.end field + +.field private static final c:Lb/h/q/c/a/AppStartDurationChecker; + +.field private static d:Z + +.field private static final e:Lb/h/q/c/c/PerformanceStorage; + +.field private static final f:Lb/h/q/c/b/PerformanceProfiler; + +.field private static g:Lcom/vk/metrics/performance/anr/ANR; + +.field private static h:Lcom/vk/metrics/performance/memory/LargeTransactionChecker; + +.field private static i:Lcom/vk/metrics/performance/scroll/ScreenScrollPerformanceChecker; + +.field public static final j:Lcom/vk/metrics/reporters/PerformanceReporter; + + +# direct methods +.method static constructor ()V + .locals 4 + + .line 1 + new-instance v0, Lcom/vk/metrics/reporters/PerformanceReporter; + + invoke-direct {v0}, Lcom/vk/metrics/reporters/PerformanceReporter;->()V + + sput-object v0, Lcom/vk/metrics/reporters/PerformanceReporter;->j:Lcom/vk/metrics/reporters/PerformanceReporter; + + .line 2 + sget-object v1, Ljava/util/concurrent/TimeUnit;->SECONDS:Ljava/util/concurrent/TimeUnit; + + const-wide/16 v2, 0x2 + + invoke-virtual {v1, v2, v3}, Ljava/util/concurrent/TimeUnit;->toMillis(J)J + + move-result-wide v1 + + sput-wide v1, Lcom/vk/metrics/reporters/PerformanceReporter;->a:J + + .line 3 + new-instance v1, Ljava/util/ArrayList; + + invoke-direct {v1}, Ljava/util/ArrayList;->()V + + sput-object v1, Lcom/vk/metrics/reporters/PerformanceReporter;->b:Ljava/util/ArrayList; + + .line 4 + new-instance v1, Lb/h/q/c/a/AppStartDurationChecker; + + invoke-direct {v1}, Lb/h/q/c/a/AppStartDurationChecker;->()V + + sput-object v1, Lcom/vk/metrics/reporters/PerformanceReporter;->c:Lb/h/q/c/a/AppStartDurationChecker; + + .line 5 + new-instance v1, Lb/h/q/c/c/PerformanceStorage; + + invoke-direct {v1}, Lb/h/q/c/c/PerformanceStorage;->()V + + sput-object v1, Lcom/vk/metrics/reporters/PerformanceReporter;->e:Lb/h/q/c/c/PerformanceStorage; + + .line 6 + new-instance v1, Lb/h/q/c/b/PerformanceProfiler; + + invoke-direct {v1}, Lb/h/q/c/b/PerformanceProfiler;->()V + + sput-object v1, Lcom/vk/metrics/reporters/PerformanceReporter;->f:Lb/h/q/c/b/PerformanceProfiler; + + .line 7 + new-instance v1, Lcom/vk/metrics/performance/anr/ANR; + + invoke-direct {v1, v0}, Lcom/vk/metrics/performance/anr/ANR;->(Lcom/vk/metrics/performance/anr/ANR$c;)V + + sput-object v1, Lcom/vk/metrics/reporters/PerformanceReporter;->g:Lcom/vk/metrics/performance/anr/ANR; + + return-void +.end method + +.method private constructor ()V + .locals 0 + + .line 1 + invoke-direct {p0}, Ljava/lang/Object;->()V + + return-void +.end method + +.method private final a(Lcom/vk/metrics/performance/scroll/ScrollScreenType;)Ljava/lang/Integer; + .locals 6 + + .line 24 + sget-object v0, Lcom/vk/metrics/reporters/PerformanceReporter;->e:Lb/h/q/c/c/PerformanceStorage; + + invoke-virtual {v0, p1}, Lb/h/q/c/c/PerformanceStorage;->a(Lcom/vk/metrics/performance/scroll/ScrollScreenType;)Lkotlin/Pair; + + move-result-object v0 + + const/4 v1, 0x0 + + if-eqz v0, :cond_1 + + .line 25 + invoke-virtual {v0}, Lkotlin/Pair;->c()Ljava/lang/Object; + + move-result-object v0 + + check-cast v0, Ljava/lang/Number; + + invoke-virtual {v0}, Ljava/lang/Number;->longValue()J + + move-result-wide v2 + + .line 26 + sget-wide v4, Lcom/vk/metrics/reporters/PerformanceReporter;->a:J + + cmp-long v0, v2, v4 + + if-gez v0, :cond_0 + + return-object v1 + + .line 27 + :cond_0 + sget-object v0, Lcom/vk/metrics/reporters/PerformanceReporter;->e:Lb/h/q/c/c/PerformanceStorage; + + invoke-virtual {v0, p1}, Lb/h/q/c/c/PerformanceStorage;->b(Lcom/vk/metrics/performance/scroll/ScrollScreenType;)Lkotlin/Pair; + + move-result-object p1 + + if-eqz p1, :cond_1 + + .line 28 + invoke-virtual {p1}, Lkotlin/Pair;->c()Ljava/lang/Object; + + move-result-object p1 + + check-cast p1, Ljava/lang/Number; + + invoke-virtual {p1}, Ljava/lang/Number;->longValue()J + + move-result-wide v0 + + const/high16 p1, 0x42c80000 # 100.0f + + long-to-float v0, v0 + + mul-float v0, v0, p1 + + long-to-float p1, v2 + + div-float/2addr v0, p1 + + float-to-int p1, v0 + + .line 29 + invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; + + move-result-object p1 + + return-object p1 + + :cond_1 + return-object v1 +.end method + +.method public static final synthetic a(Lcom/vk/metrics/reporters/PerformanceReporter;)V + .locals 0 + + .line 1 + invoke-direct {p0}, Lcom/vk/metrics/reporters/PerformanceReporter;->f()V + + return-void +.end method + +.method public static final synthetic b(Lcom/vk/metrics/reporters/PerformanceReporter;)V + .locals 0 + + .line 1 + invoke-direct {p0}, Lcom/vk/metrics/reporters/PerformanceReporter;->g()V + + return-void +.end method + +.method private final f()V + .locals 2 + + .line 1 + sget-object v0, Lcom/vk/metrics/reporters/PerformanceReporter;->g:Lcom/vk/metrics/performance/anr/ANR; + + invoke-virtual {v0}, Lcom/vk/metrics/performance/anr/ANR;->b()V + + .line 2 + sget-object v0, Lcom/vk/metrics/reporters/PerformanceReporter;->b:Ljava/util/ArrayList; + + .line 3 + invoke-interface {v0}, Ljava/lang/Iterable;->iterator()Ljava/util/Iterator; + + move-result-object v0 + + :goto_0 + invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z + + move-result v1 + + if-eqz v1, :cond_0 + + invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; + + move-result-object v1 + + check-cast v1, Lb/h/q/c/c/PerformanceChecker; + + .line 4 + invoke-virtual {v1}, Lb/h/q/c/c/PerformanceChecker;->b()V + + goto :goto_0 + + :cond_0 + return-void +.end method + +.method private final g()V + .locals 2 + + .line 1 + sget-object v0, Lcom/vk/metrics/reporters/PerformanceReporter;->g:Lcom/vk/metrics/performance/anr/ANR; + + invoke-virtual {v0}, Lcom/vk/metrics/performance/anr/ANR;->c()V + + .line 2 + sget-object v0, Lcom/vk/metrics/reporters/PerformanceReporter;->b:Ljava/util/ArrayList; + + .line 3 + invoke-interface {v0}, Ljava/lang/Iterable;->iterator()Ljava/util/Iterator; + + move-result-object v0 + + :goto_0 + invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z + + move-result v1 + + if-eqz v1, :cond_0 + + invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; + + move-result-object v1 + + check-cast v1, Lb/h/q/c/c/PerformanceChecker; + + .line 4 + invoke-virtual {v1}, Lb/h/q/c/c/PerformanceChecker;->d()V + + goto :goto_0 + + :cond_0 + return-void +.end method + + +# virtual methods +.method public final a()Lb/h/q/c/a/AppStartDurationChecker; + .locals 1 + + .line 2 + sget-object v0, Lcom/vk/metrics/reporters/PerformanceReporter;->c:Lb/h/q/c/a/AppStartDurationChecker; + + return-object v0 +.end method + +.method public a(JLjava/lang/Throwable;)V + .locals 3 + + const/4 v0, 0x1 + + new-array v0, v0, [Ljava/lang/Object; + + .line 16 + new-instance v1, Ljava/lang/StringBuilder; + + invoke-direct {v1}, Ljava/lang/StringBuilder;->()V + + const-string v2, "ERROR: <<<==== ANR ====>>> on main thread with " + + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + invoke-virtual {v1, p1, p2}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder; + + const-string v2, " ms" + + 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 + + const/4 v2, 0x0 + + aput-object v1, v0, v2 + + invoke-static {v0}, Lcom/vk/log/L;->b([Ljava/lang/Object;)V + + const-wide/16 v0, 0x190 + + cmp-long v2, p1, v0 + + if-nez v2, :cond_0 + + .line 17 + sget-object p1, Lcom/vk/metrics/eventtracking/VkTracker;->k:Lcom/vk/metrics/eventtracking/VkTracker; + + invoke-virtual {p1, p3}, Lcom/vk/metrics/eventtracking/VkTracker;->a(Ljava/lang/Throwable;)V + + goto :goto_0 + + :cond_0 + const-wide/16 v0, 0x1388 + + cmp-long v2, p1, v0 + + if-nez v2, :cond_1 + + .line 18 + sget-object p1, Lcom/vk/metrics/reporters/PerformanceReporter;->e:Lb/h/q/c/c/PerformanceStorage; + + invoke-virtual {p1}, Lb/h/q/c/c/PerformanceStorage;->o()V + + .line 19 + sget-object p1, Lcom/vk/metrics/eventtracking/VkTracker;->k:Lcom/vk/metrics/eventtracking/VkTracker; + + invoke-virtual {p1, p3}, Lcom/vk/metrics/eventtracking/VkTracker;->a(Ljava/lang/Throwable;)V + + .line 20 + sget-object p1, Lcom/vk/metrics/eventtracking/VkTracker;->k:Lcom/vk/metrics/eventtracking/VkTracker; + + const-string p2, "PERF.APP.ANR" + + invoke-virtual {p1, p2}, Lcom/vk/metrics/eventtracking/VkTracker;->a(Ljava/lang/String;)V + + :cond_1 + :goto_0 + return-void +.end method + +.method public final a(Landroid/content/Context;)V + .locals 2 + .annotation build Landroid/annotation/SuppressLint; + value = { + "NewApi" + } + .end annotation + + .line 3 + sget-object v0, Lb/h/q/MetricPrefs;->b:Lb/h/q/MetricPrefs; + + const-string v1, "config_app_performance_enable" + + invoke-virtual {v0, v1}, Lb/h/q/MetricPrefs;->b(Ljava/lang/String;)Ljava/lang/String; + + move-result-object v0 + + const-string v1, "1" + + .line 4 + invoke-static {v0, v1}, Landroid/text/TextUtils;->equals(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z + + move-result v0 + + if-eqz v0, :cond_0 + + .line 5 + sget-object v0, Lcom/vk/metrics/reporters/PerformanceReporter;->h:Lcom/vk/metrics/performance/memory/LargeTransactionChecker; + + if-nez v0, :cond_0 + + .line 6 + new-instance v0, Lcom/vk/metrics/performance/memory/LargeTransactionChecker; + + invoke-direct {v0, p0, p1}, Lcom/vk/metrics/performance/memory/LargeTransactionChecker;->(Lcom/vk/metrics/performance/memory/LargeTransactionChecker$d;Landroid/content/Context;)V + + sput-object v0, Lcom/vk/metrics/reporters/PerformanceReporter;->h:Lcom/vk/metrics/performance/memory/LargeTransactionChecker; + + .line 7 + :cond_0 + invoke-virtual {p1}, Landroid/content/Context;->getApplicationInfo()Landroid/content/pm/ApplicationInfo; + + move-result-object v0 + + iget v0, v0, Landroid/content/pm/ApplicationInfo;->flags:I + + and-int/lit8 v0, v0, 0x2 + + if-eqz v0, :cond_1 + + const/4 v0, 0x1 + + goto :goto_0 + + :cond_1 + const/4 v0, 0x0 + + :goto_0 + sput-boolean v0, Lcom/vk/metrics/reporters/PerformanceReporter;->d:Z + + .line 8 + sget-object v0, Lcom/vk/metrics/reporters/PerformanceReporter;->b:Ljava/util/ArrayList; + + invoke-virtual {v0}, Ljava/util/ArrayList;->isEmpty()Z + + move-result v0 + + if-eqz v0, :cond_2 + + .line 9 + sget-object v0, Lcom/vk/metrics/reporters/PerformanceReporter;->b:Ljava/util/ArrayList; + + sget-object v1, Lcom/vk/metrics/reporters/PerformanceReporter;->g:Lcom/vk/metrics/performance/anr/ANR; + + invoke-virtual {v1}, Lcom/vk/metrics/performance/anr/ANR;->a()Ljava/util/ArrayList; + + move-result-object v1 + + invoke-virtual {v0, v1}, Ljava/util/ArrayList;->addAll(Ljava/util/Collection;)Z + + .line 10 + sget-object v0, Lcom/vk/metrics/reporters/PerformanceReporter;->b:Ljava/util/ArrayList; + + new-instance v1, Lcom/vk/metrics/performance/memory/MemoryChecker; + + invoke-direct {v1, p1}, Lcom/vk/metrics/performance/memory/MemoryChecker;->(Landroid/content/Context;)V + + invoke-virtual {v0, v1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z + + .line 11 + :cond_2 + sget-object p1, Lb/h/n/AppLifecycleDispatcher;->h:Lb/h/n/AppLifecycleDispatcher; + + new-instance v0, Lcom/vk/metrics/reporters/PerformanceReporter$b; + + invoke-direct {v0}, Lcom/vk/metrics/reporters/PerformanceReporter$b;->()V + + invoke-virtual {p1, v0}, Lb/h/n/AppLifecycleDispatcher;->a(Lb/h/n/AppLifecycleDispatcher$a;)V + + return-void +.end method + +.method public final a(Lcom/vk/metrics/performance/scroll/ScrollScreenType;Landroidx/recyclerview/widget/RecyclerView;)V + .locals 3 + .annotation build Landroidx/annotation/UiThread; + .end annotation + + .line 12 + sget-object v0, Lcom/vk/metrics/reporters/PerformanceReporter;->i:Lcom/vk/metrics/performance/scroll/ScreenScrollPerformanceChecker; + + if-eqz v0, :cond_0 + + goto :goto_0 + + .line 13 + :cond_0 + new-instance v0, Lcom/vk/metrics/performance/scroll/ScreenScrollPerformanceChecker; + + invoke-static {}, Landroid/view/Choreographer;->getInstance()Landroid/view/Choreographer; + + move-result-object v1 + + const-string v2, "Choreographer.getInstance()" + + invoke-static {v1, v2}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/String;)V + + sget-object v2, Lcom/vk/metrics/reporters/PerformanceReporter;->e:Lb/h/q/c/c/PerformanceStorage; + + invoke-direct {v0, v1, v2}, Lcom/vk/metrics/performance/scroll/ScreenScrollPerformanceChecker;->(Landroid/view/Choreographer;Lb/h/q/c/c/PerformanceStorage;)V + + .line 14 + sput-object v0, Lcom/vk/metrics/reporters/PerformanceReporter;->i:Lcom/vk/metrics/performance/scroll/ScreenScrollPerformanceChecker; + + .line 15 + :goto_0 + invoke-virtual {v0, p1, p2}, Lcom/vk/metrics/performance/scroll/ScreenScrollPerformanceChecker;->a(Lcom/vk/metrics/performance/scroll/ScrollScreenType;Landroidx/recyclerview/widget/RecyclerView;)V + + return-void +.end method + +.method public a(Ljava/lang/Throwable;)V + .locals 3 + + const/4 v0, 0x1 + + new-array v0, v0, [Ljava/lang/Object; + + const/4 v1, 0x0 + + const-string v2, "ERROR: <<<==== LARGE TRANSACTION ====>>>" + + aput-object v2, v0, v1 + + .line 21 + invoke-static {v0}, Lcom/vk/log/L;->b([Ljava/lang/Object;)V + + .line 22 + sget-object v0, Lcom/vk/metrics/eventtracking/VkTracker;->k:Lcom/vk/metrics/eventtracking/VkTracker; + + invoke-virtual {v0, p1}, Lcom/vk/metrics/eventtracking/VkTracker;->a(Ljava/lang/Throwable;)V + + .line 23 + sget-object p1, Lcom/vk/metrics/eventtracking/VkTracker;->k:Lcom/vk/metrics/eventtracking/VkTracker; + + const-string v0, "PERF.APP.LARGE.TRANSACTION" + + invoke-virtual {p1, v0}, Lcom/vk/metrics/eventtracking/VkTracker;->a(Ljava/lang/String;)V + + return-void +.end method + +.method public final b()Lb/h/q/c/b/PerformanceProfiler; + .locals 1 + + .line 2 + sget-object v0, Lcom/vk/metrics/reporters/PerformanceReporter;->f:Lb/h/q/c/b/PerformanceProfiler; + + return-object v0 +.end method + +.method public final c()Lb/h/q/c/c/PerformanceStorage; + .locals 1 + + .line 1 + sget-object v0, Lcom/vk/metrics/reporters/PerformanceReporter;->e:Lb/h/q/c/c/PerformanceStorage; + + return-object v0 +.end method + +.method public final d()Z + .locals 1 + + .line 1 + sget-boolean v0, Lcom/vk/metrics/reporters/PerformanceReporter;->d:Z + + return v0 +.end method + +.method public final e()Lcom/vk/metrics/reporters/PerformanceReporter$a; + .locals 25 + + move-object/from16 v0, p0 + + .line 1 + sget-object v1, Lcom/vk/metrics/reporters/PerformanceReporter;->e:Lb/h/q/c/c/PerformanceStorage; + + invoke-virtual {v1}, Lb/h/q/c/c/PerformanceStorage;->e()Ljava/lang/Long; + + move-result-object v1 + + .line 2 + sget-object v2, Lcom/vk/metrics/reporters/PerformanceReporter;->e:Lb/h/q/c/c/PerformanceStorage; + + invoke-virtual {v2}, Lb/h/q/c/c/PerformanceStorage;->d()Ljava/lang/Long; + + move-result-object v2 + + const/4 v3, 0x0 + + if-eqz v1, :cond_0 + + if-eqz v2, :cond_0 + + .line 3 + invoke-virtual {v1}, Ljava/lang/Long;->longValue()J + + move-result-wide v4 + + invoke-virtual {v2}, Ljava/lang/Long;->longValue()J + + move-result-wide v6 + + sub-long/2addr v4, v6 + + const-wide/16 v6, 0x0 + + cmp-long v8, v4, v6 + + if-gez v8, :cond_0 + + const/4 v4, 0x1 + + new-array v4, v4, [Ljava/lang/Object; + + const/4 v5, 0x0 + + .line 4 + new-instance v6, Ljava/lang/StringBuilder; + + invoke-direct {v6}, Ljava/lang/StringBuilder;->()V + + const-string v7, "Hmm, loadingTime=" + + invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + invoke-virtual {v6, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; + + const-string v1, " less then initTime=" + + invoke-virtual {v6, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + invoke-virtual {v6, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; + + invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v1 + + aput-object v1, v4, v5 + + invoke-static {v4}, Lcom/vk/log/L;->e([Ljava/lang/Object;)V + + move-object v8, v3 + + move-object v9, v8 + + goto :goto_0 + + :cond_0 + move-object v8, v1 + + move-object v9, v2 + + .line 5 + :goto_0 + new-instance v1, Lcom/vk/metrics/reporters/PerformanceReporter$a; + + .line 6 + sget-object v2, Lcom/vk/metrics/reporters/PerformanceReporter;->e:Lb/h/q/c/c/PerformanceStorage; + + invoke-virtual {v2}, Lb/h/q/c/c/PerformanceStorage;->m()Ljava/lang/Integer; + + move-result-object v7 + + .line 7 + sget-object v2, Lcom/vk/metrics/reporters/PerformanceReporter;->e:Lb/h/q/c/c/PerformanceStorage; + + invoke-virtual {v2}, Lb/h/q/c/c/PerformanceStorage;->h()Ljava/lang/Long; + + move-result-object v10 + + .line 8 + sget-object v2, Lcom/vk/metrics/reporters/PerformanceReporter;->e:Lb/h/q/c/c/PerformanceStorage; + + invoke-virtual {v2}, Lb/h/q/c/c/PerformanceStorage;->f()Ljava/lang/Long; + + move-result-object v11 + + .line 9 + sget-object v2, Lcom/vk/metrics/reporters/PerformanceReporter;->e:Lb/h/q/c/c/PerformanceStorage; + + invoke-virtual {v2}, Lb/h/q/c/c/PerformanceStorage;->g()Ljava/lang/Long; + + move-result-object v12 + + .line 10 + sget-object v2, Lcom/vk/metrics/performance/scroll/ScrollScreenType;->FEED:Lcom/vk/metrics/performance/scroll/ScrollScreenType; + + invoke-direct {v0, v2}, Lcom/vk/metrics/reporters/PerformanceReporter;->a(Lcom/vk/metrics/performance/scroll/ScrollScreenType;)Ljava/lang/Integer; + + move-result-object v13 + + .line 11 + sget-object v2, Lcom/vk/metrics/performance/scroll/ScrollScreenType;->DISCOVER:Lcom/vk/metrics/performance/scroll/ScrollScreenType; + + invoke-direct {v0, v2}, Lcom/vk/metrics/reporters/PerformanceReporter;->a(Lcom/vk/metrics/performance/scroll/ScrollScreenType;)Ljava/lang/Integer; + + move-result-object v14 + + .line 12 + sget-object v2, Lcom/vk/metrics/performance/scroll/ScrollScreenType;->DIALOGS:Lcom/vk/metrics/performance/scroll/ScrollScreenType; + + invoke-direct {v0, v2}, Lcom/vk/metrics/reporters/PerformanceReporter;->a(Lcom/vk/metrics/performance/scroll/ScrollScreenType;)Ljava/lang/Integer; + + move-result-object v15 + + .line 13 + sget-object v2, Lcom/vk/metrics/performance/scroll/ScrollScreenType;->DIALOG:Lcom/vk/metrics/performance/scroll/ScrollScreenType; + + invoke-direct {v0, v2}, Lcom/vk/metrics/reporters/PerformanceReporter;->a(Lcom/vk/metrics/performance/scroll/ScrollScreenType;)Ljava/lang/Integer; + + move-result-object v16 + + .line 14 + sget-object v2, Lcom/vk/metrics/performance/scroll/ScrollScreenType;->FRIENDS:Lcom/vk/metrics/performance/scroll/ScrollScreenType; + + invoke-direct {v0, v2}, Lcom/vk/metrics/reporters/PerformanceReporter;->a(Lcom/vk/metrics/performance/scroll/ScrollScreenType;)Ljava/lang/Integer; + + move-result-object v17 + + .line 15 + sget-object v2, Lcom/vk/metrics/performance/scroll/ScrollScreenType;->FEED_VIDEO:Lcom/vk/metrics/performance/scroll/ScrollScreenType; + + invoke-direct {v0, v2}, Lcom/vk/metrics/reporters/PerformanceReporter;->a(Lcom/vk/metrics/performance/scroll/ScrollScreenType;)Ljava/lang/Integer; + + move-result-object v18 + + .line 16 + sget-object v2, Lcom/vk/metrics/reporters/PerformanceReporter;->e:Lb/h/q/c/c/PerformanceStorage; + + invoke-virtual {v2}, Lb/h/q/c/c/PerformanceStorage;->k()Ljava/lang/Long; + + move-result-object v2 + + if-eqz v2, :cond_1 + + invoke-virtual {v2}, Ljava/lang/Long;->longValue()J + + move-result-wide v4 + + long-to-int v2, v4 + + invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; + + move-result-object v2 + + move-object/from16 v19, v2 + + goto :goto_1 + + :cond_1 + move-object/from16 v19, v3 + + .line 17 + :goto_1 + sget-object v2, Lcom/vk/metrics/reporters/PerformanceReporter;->e:Lb/h/q/c/c/PerformanceStorage; + + invoke-virtual {v2}, Lb/h/q/c/c/PerformanceStorage;->j()Ljava/lang/Long; + + move-result-object v2 + + if-eqz v2, :cond_2 + + invoke-virtual {v2}, Ljava/lang/Long;->longValue()J + + move-result-wide v4 + + long-to-int v2, v4 + + invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; + + move-result-object v2 + + move-object/from16 v20, v2 + + goto :goto_2 + + :cond_2 + move-object/from16 v20, v3 + + .line 18 + :goto_2 + sget-object v2, Lcom/vk/metrics/reporters/PerformanceReporter;->e:Lb/h/q/c/c/PerformanceStorage; + + invoke-virtual {v2}, Lb/h/q/c/c/PerformanceStorage;->i()Ljava/lang/Long; + + move-result-object v2 + + if-eqz v2, :cond_3 + + invoke-virtual {v2}, Ljava/lang/Long;->longValue()J + + move-result-wide v2 + + long-to-int v3, v2 + + invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; + + move-result-object v3 + + :cond_3 + move-object/from16 v22, v3 + + .line 19 + sget-object v2, Lcom/vk/metrics/reporters/PerformanceReporter;->e:Lb/h/q/c/c/PerformanceStorage; + + invoke-virtual {v2}, Lb/h/q/c/c/PerformanceStorage;->c()Ljava/lang/Integer; + + move-result-object v21 + + .line 20 + sget-object v2, Lcom/vk/metrics/reporters/PerformanceReporter;->e:Lb/h/q/c/c/PerformanceStorage; + + invoke-virtual {v2}, Lb/h/q/c/c/PerformanceStorage;->l()Ljava/lang/Integer; + + move-result-object v23 + + .line 21 + sget-object v2, Lcom/vk/metrics/reporters/PerformanceReporter;->e:Lb/h/q/c/c/PerformanceStorage; + + invoke-virtual {v2}, Lb/h/q/c/c/PerformanceStorage;->n()Z + + move-result v2 + + invoke-static {v2}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean; + + move-result-object v24 + + move-object v6, v1 + + .line 22 + invoke-direct/range {v6 .. v24}, Lcom/vk/metrics/reporters/PerformanceReporter$a;->(Ljava/lang/Integer;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Boolean;)V + + return-object v1 +.end method