- Imported from https://github.com/supermegamestre/Project-Real-Resurrection-3 - APKTool decompilation (Smali bytecode) for modding and rebuilding APK - Supports both 32-bit (armeabi-v7a) and 64-bit (arm64-v8a) architectures - Includes full Smali source, resources, and native libraries - Ready to rebuild APK after modifications with apktool b command - Added comprehensive README-apktool.md with modding guide This branch complements the JADX branches: - Use JADX (main/discord-community) to UNDERSTAND code (readable Java) - Use APKTool (this branch) to MODIFY and REBUILD APK (editable Smali) Total: 44,417 files, 538.51 MB Smali source code
1578 lines
46 KiB
Smali
1578 lines
46 KiB
Smali
.class public Lcom/google/firebase/perf/metrics/Trace;
|
|
.super Lcom/google/firebase/perf/application/AppStateUpdateHandler;
|
|
.source "SourceFile"
|
|
|
|
# interfaces
|
|
.implements Landroid/os/Parcelable;
|
|
.implements Lcom/google/firebase/perf/session/SessionAwareObject;
|
|
|
|
|
|
# static fields
|
|
.field public static final CREATOR:Landroid/os/Parcelable$Creator;
|
|
.annotation build Landroidx/annotation/Keep;
|
|
.end annotation
|
|
|
|
.annotation system Ldalvik/annotation/Signature;
|
|
value = {
|
|
"Landroid/os/Parcelable$Creator<",
|
|
"Lcom/google/firebase/perf/metrics/Trace;",
|
|
">;"
|
|
}
|
|
.end annotation
|
|
.end field
|
|
|
|
.field public static final CREATOR_DATAONLY:Landroid/os/Parcelable$Creator;
|
|
|
|
.field public static final logger:Lcom/google/firebase/perf/logging/AndroidLogger;
|
|
|
|
.field public static final traceNameToTraceMap:Ljava/util/Map;
|
|
|
|
|
|
# instance fields
|
|
.field public final clock:Lcom/google/firebase/perf/util/Clock;
|
|
|
|
.field public final counterNameToCounterMap:Ljava/util/Map;
|
|
|
|
.field public final customAttributesMap:Ljava/util/Map;
|
|
|
|
.field public endTime:Lcom/google/firebase/perf/util/Timer;
|
|
|
|
.field public final gaugeManager:Lcom/google/firebase/perf/session/gauges/GaugeManager;
|
|
|
|
.field public final name:Ljava/lang/String;
|
|
|
|
.field public final parent:Lcom/google/firebase/perf/metrics/Trace;
|
|
|
|
.field public final sessionAwareObject:Ljava/lang/ref/WeakReference;
|
|
|
|
.field public final sessions:Ljava/util/List;
|
|
|
|
.field public startTime:Lcom/google/firebase/perf/util/Timer;
|
|
|
|
.field public final subtraces:Ljava/util/List;
|
|
|
|
.field public final transportManager:Lcom/google/firebase/perf/transport/TransportManager;
|
|
|
|
|
|
# direct methods
|
|
.method static constructor <clinit>()V
|
|
.locals 1
|
|
|
|
.line 54
|
|
invoke-static {}, Lcom/google/firebase/perf/logging/AndroidLogger;->getInstance()Lcom/google/firebase/perf/logging/AndroidLogger;
|
|
|
|
move-result-object v0
|
|
|
|
sput-object v0, Lcom/google/firebase/perf/metrics/Trace;->logger:Lcom/google/firebase/perf/logging/AndroidLogger;
|
|
|
|
.line 55
|
|
new-instance v0, Ljava/util/concurrent/ConcurrentHashMap;
|
|
|
|
invoke-direct {v0}, Ljava/util/concurrent/ConcurrentHashMap;-><init>()V
|
|
|
|
sput-object v0, Lcom/google/firebase/perf/metrics/Trace;->traceNameToTraceMap:Ljava/util/Map;
|
|
|
|
.line 592
|
|
new-instance v0, Lcom/google/firebase/perf/metrics/Trace$1;
|
|
|
|
invoke-direct {v0}, Lcom/google/firebase/perf/metrics/Trace$1;-><init>()V
|
|
|
|
sput-object v0, Lcom/google/firebase/perf/metrics/Trace;->CREATOR:Landroid/os/Parcelable$Creator;
|
|
|
|
.line 703
|
|
new-instance v0, Lcom/google/firebase/perf/metrics/Trace$2;
|
|
|
|
invoke-direct {v0}, Lcom/google/firebase/perf/metrics/Trace$2;-><init>()V
|
|
|
|
sput-object v0, Lcom/google/firebase/perf/metrics/Trace;->CREATOR_DATAONLY:Landroid/os/Parcelable$Creator;
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public constructor <init>(Landroid/os/Parcel;Z)V
|
|
.locals 3
|
|
|
|
const/4 v0, 0x0
|
|
|
|
if-eqz p2, :cond_0
|
|
|
|
move-object v1, v0
|
|
|
|
goto :goto_0
|
|
|
|
.line 183
|
|
:cond_0
|
|
invoke-static {}, Lcom/google/firebase/perf/application/AppStateMonitor;->getInstance()Lcom/google/firebase/perf/application/AppStateMonitor;
|
|
|
|
move-result-object v1
|
|
|
|
:goto_0
|
|
invoke-direct {p0, v1}, Lcom/google/firebase/perf/application/AppStateUpdateHandler;-><init>(Lcom/google/firebase/perf/application/AppStateMonitor;)V
|
|
|
|
.line 57
|
|
new-instance v1, Ljava/lang/ref/WeakReference;
|
|
|
|
invoke-direct {v1, p0}, Ljava/lang/ref/WeakReference;-><init>(Ljava/lang/Object;)V
|
|
|
|
iput-object v1, p0, Lcom/google/firebase/perf/metrics/Trace;->sessionAwareObject:Ljava/lang/ref/WeakReference;
|
|
|
|
const-class v1, Lcom/google/firebase/perf/metrics/Trace;
|
|
|
|
.line 184
|
|
invoke-virtual {v1}, Ljava/lang/Class;->getClassLoader()Ljava/lang/ClassLoader;
|
|
|
|
move-result-object v2
|
|
|
|
invoke-virtual {p1, v2}, Landroid/os/Parcel;->readParcelable(Ljava/lang/ClassLoader;)Landroid/os/Parcelable;
|
|
|
|
move-result-object v2
|
|
|
|
check-cast v2, Lcom/google/firebase/perf/metrics/Trace;
|
|
|
|
iput-object v2, p0, Lcom/google/firebase/perf/metrics/Trace;->parent:Lcom/google/firebase/perf/metrics/Trace;
|
|
|
|
.line 185
|
|
invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
|
|
|
|
move-result-object v2
|
|
|
|
iput-object v2, p0, Lcom/google/firebase/perf/metrics/Trace;->name:Ljava/lang/String;
|
|
|
|
.line 186
|
|
new-instance v2, Ljava/util/ArrayList;
|
|
|
|
invoke-direct {v2}, Ljava/util/ArrayList;-><init>()V
|
|
|
|
iput-object v2, p0, Lcom/google/firebase/perf/metrics/Trace;->subtraces:Ljava/util/List;
|
|
|
|
.line 187
|
|
invoke-virtual {v1}, Ljava/lang/Class;->getClassLoader()Ljava/lang/ClassLoader;
|
|
|
|
move-result-object v1
|
|
|
|
invoke-virtual {p1, v2, v1}, Landroid/os/Parcel;->readList(Ljava/util/List;Ljava/lang/ClassLoader;)V
|
|
|
|
.line 188
|
|
new-instance v1, Ljava/util/concurrent/ConcurrentHashMap;
|
|
|
|
invoke-direct {v1}, Ljava/util/concurrent/ConcurrentHashMap;-><init>()V
|
|
|
|
iput-object v1, p0, Lcom/google/firebase/perf/metrics/Trace;->counterNameToCounterMap:Ljava/util/Map;
|
|
|
|
.line 189
|
|
new-instance v2, Ljava/util/concurrent/ConcurrentHashMap;
|
|
|
|
invoke-direct {v2}, Ljava/util/concurrent/ConcurrentHashMap;-><init>()V
|
|
|
|
iput-object v2, p0, Lcom/google/firebase/perf/metrics/Trace;->customAttributesMap:Ljava/util/Map;
|
|
|
|
const-class v2, Lcom/google/firebase/perf/metrics/Counter;
|
|
|
|
.line 190
|
|
invoke-virtual {v2}, Ljava/lang/Class;->getClassLoader()Ljava/lang/ClassLoader;
|
|
|
|
move-result-object v2
|
|
|
|
invoke-virtual {p1, v1, v2}, Landroid/os/Parcel;->readMap(Ljava/util/Map;Ljava/lang/ClassLoader;)V
|
|
|
|
const-class v1, Lcom/google/firebase/perf/util/Timer;
|
|
|
|
.line 191
|
|
invoke-virtual {v1}, Ljava/lang/Class;->getClassLoader()Ljava/lang/ClassLoader;
|
|
|
|
move-result-object v2
|
|
|
|
invoke-virtual {p1, v2}, Landroid/os/Parcel;->readParcelable(Ljava/lang/ClassLoader;)Landroid/os/Parcelable;
|
|
|
|
move-result-object v2
|
|
|
|
check-cast v2, Lcom/google/firebase/perf/util/Timer;
|
|
|
|
iput-object v2, p0, Lcom/google/firebase/perf/metrics/Trace;->startTime:Lcom/google/firebase/perf/util/Timer;
|
|
|
|
.line 192
|
|
invoke-virtual {v1}, Ljava/lang/Class;->getClassLoader()Ljava/lang/ClassLoader;
|
|
|
|
move-result-object v1
|
|
|
|
invoke-virtual {p1, v1}, Landroid/os/Parcel;->readParcelable(Ljava/lang/ClassLoader;)Landroid/os/Parcelable;
|
|
|
|
move-result-object v1
|
|
|
|
check-cast v1, Lcom/google/firebase/perf/util/Timer;
|
|
|
|
iput-object v1, p0, Lcom/google/firebase/perf/metrics/Trace;->endTime:Lcom/google/firebase/perf/util/Timer;
|
|
|
|
.line 193
|
|
new-instance v1, Ljava/util/ArrayList;
|
|
|
|
invoke-direct {v1}, Ljava/util/ArrayList;-><init>()V
|
|
|
|
invoke-static {v1}, Ljava/util/Collections;->synchronizedList(Ljava/util/List;)Ljava/util/List;
|
|
|
|
move-result-object v1
|
|
|
|
iput-object v1, p0, Lcom/google/firebase/perf/metrics/Trace;->sessions:Ljava/util/List;
|
|
|
|
const-class v2, Lcom/google/firebase/perf/session/PerfSession;
|
|
|
|
.line 194
|
|
invoke-virtual {v2}, Ljava/lang/Class;->getClassLoader()Ljava/lang/ClassLoader;
|
|
|
|
move-result-object v2
|
|
|
|
invoke-virtual {p1, v1, v2}, Landroid/os/Parcel;->readList(Ljava/util/List;Ljava/lang/ClassLoader;)V
|
|
|
|
if-eqz p2, :cond_1
|
|
|
|
iput-object v0, p0, Lcom/google/firebase/perf/metrics/Trace;->transportManager:Lcom/google/firebase/perf/transport/TransportManager;
|
|
|
|
iput-object v0, p0, Lcom/google/firebase/perf/metrics/Trace;->clock:Lcom/google/firebase/perf/util/Clock;
|
|
|
|
iput-object v0, p0, Lcom/google/firebase/perf/metrics/Trace;->gaugeManager:Lcom/google/firebase/perf/session/gauges/GaugeManager;
|
|
|
|
goto :goto_1
|
|
|
|
.line 201
|
|
:cond_1
|
|
invoke-static {}, Lcom/google/firebase/perf/transport/TransportManager;->getInstance()Lcom/google/firebase/perf/transport/TransportManager;
|
|
|
|
move-result-object p1
|
|
|
|
iput-object p1, p0, Lcom/google/firebase/perf/metrics/Trace;->transportManager:Lcom/google/firebase/perf/transport/TransportManager;
|
|
|
|
.line 202
|
|
new-instance p1, Lcom/google/firebase/perf/util/Clock;
|
|
|
|
invoke-direct {p1}, Lcom/google/firebase/perf/util/Clock;-><init>()V
|
|
|
|
iput-object p1, p0, Lcom/google/firebase/perf/metrics/Trace;->clock:Lcom/google/firebase/perf/util/Clock;
|
|
|
|
.line 203
|
|
invoke-static {}, Lcom/google/firebase/perf/session/gauges/GaugeManager;->getInstance()Lcom/google/firebase/perf/session/gauges/GaugeManager;
|
|
|
|
move-result-object p1
|
|
|
|
iput-object p1, p0, Lcom/google/firebase/perf/metrics/Trace;->gaugeManager:Lcom/google/firebase/perf/session/gauges/GaugeManager;
|
|
|
|
:goto_1
|
|
return-void
|
|
.end method
|
|
|
|
.method public synthetic constructor <init>(Landroid/os/Parcel;ZLcom/google/firebase/perf/metrics/Trace$1;)V
|
|
.locals 0
|
|
|
|
.line 51
|
|
invoke-direct {p0, p1, p2}, Lcom/google/firebase/perf/metrics/Trace;-><init>(Landroid/os/Parcel;Z)V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public constructor <init>(Ljava/lang/String;Lcom/google/firebase/perf/transport/TransportManager;Lcom/google/firebase/perf/util/Clock;Lcom/google/firebase/perf/application/AppStateMonitor;)V
|
|
.locals 6
|
|
|
|
.line 155
|
|
invoke-static {}, Lcom/google/firebase/perf/session/gauges/GaugeManager;->getInstance()Lcom/google/firebase/perf/session/gauges/GaugeManager;
|
|
|
|
move-result-object v5
|
|
|
|
move-object v0, p0
|
|
|
|
move-object v1, p1
|
|
|
|
move-object v2, p2
|
|
|
|
move-object v3, p3
|
|
|
|
move-object v4, p4
|
|
|
|
invoke-direct/range {v0 .. v5}, Lcom/google/firebase/perf/metrics/Trace;-><init>(Ljava/lang/String;Lcom/google/firebase/perf/transport/TransportManager;Lcom/google/firebase/perf/util/Clock;Lcom/google/firebase/perf/application/AppStateMonitor;Lcom/google/firebase/perf/session/gauges/GaugeManager;)V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public constructor <init>(Ljava/lang/String;Lcom/google/firebase/perf/transport/TransportManager;Lcom/google/firebase/perf/util/Clock;Lcom/google/firebase/perf/application/AppStateMonitor;Lcom/google/firebase/perf/session/gauges/GaugeManager;)V
|
|
.locals 0
|
|
|
|
.line 170
|
|
invoke-direct {p0, p4}, Lcom/google/firebase/perf/application/AppStateUpdateHandler;-><init>(Lcom/google/firebase/perf/application/AppStateMonitor;)V
|
|
|
|
.line 57
|
|
new-instance p4, Ljava/lang/ref/WeakReference;
|
|
|
|
invoke-direct {p4, p0}, Ljava/lang/ref/WeakReference;-><init>(Ljava/lang/Object;)V
|
|
|
|
iput-object p4, p0, Lcom/google/firebase/perf/metrics/Trace;->sessionAwareObject:Ljava/lang/ref/WeakReference;
|
|
|
|
const/4 p4, 0x0
|
|
|
|
iput-object p4, p0, Lcom/google/firebase/perf/metrics/Trace;->parent:Lcom/google/firebase/perf/metrics/Trace;
|
|
|
|
.line 172
|
|
invoke-virtual {p1}, Ljava/lang/String;->trim()Ljava/lang/String;
|
|
|
|
move-result-object p1
|
|
|
|
iput-object p1, p0, Lcom/google/firebase/perf/metrics/Trace;->name:Ljava/lang/String;
|
|
|
|
.line 173
|
|
new-instance p1, Ljava/util/ArrayList;
|
|
|
|
invoke-direct {p1}, Ljava/util/ArrayList;-><init>()V
|
|
|
|
iput-object p1, p0, Lcom/google/firebase/perf/metrics/Trace;->subtraces:Ljava/util/List;
|
|
|
|
.line 174
|
|
new-instance p1, Ljava/util/concurrent/ConcurrentHashMap;
|
|
|
|
invoke-direct {p1}, Ljava/util/concurrent/ConcurrentHashMap;-><init>()V
|
|
|
|
iput-object p1, p0, Lcom/google/firebase/perf/metrics/Trace;->counterNameToCounterMap:Ljava/util/Map;
|
|
|
|
.line 175
|
|
new-instance p1, Ljava/util/concurrent/ConcurrentHashMap;
|
|
|
|
invoke-direct {p1}, Ljava/util/concurrent/ConcurrentHashMap;-><init>()V
|
|
|
|
iput-object p1, p0, Lcom/google/firebase/perf/metrics/Trace;->customAttributesMap:Ljava/util/Map;
|
|
|
|
iput-object p3, p0, Lcom/google/firebase/perf/metrics/Trace;->clock:Lcom/google/firebase/perf/util/Clock;
|
|
|
|
iput-object p2, p0, Lcom/google/firebase/perf/metrics/Trace;->transportManager:Lcom/google/firebase/perf/transport/TransportManager;
|
|
|
|
.line 178
|
|
new-instance p1, Ljava/util/ArrayList;
|
|
|
|
invoke-direct {p1}, Ljava/util/ArrayList;-><init>()V
|
|
|
|
invoke-static {p1}, Ljava/util/Collections;->synchronizedList(Ljava/util/List;)Ljava/util/List;
|
|
|
|
move-result-object p1
|
|
|
|
iput-object p1, p0, Lcom/google/firebase/perf/metrics/Trace;->sessions:Ljava/util/List;
|
|
|
|
iput-object p5, p0, Lcom/google/firebase/perf/metrics/Trace;->gaugeManager:Lcom/google/firebase/perf/session/gauges/GaugeManager;
|
|
|
|
return-void
|
|
.end method
|
|
|
|
|
|
# virtual methods
|
|
.method public final checkAttribute(Ljava/lang/String;Ljava/lang/String;)V
|
|
.locals 2
|
|
|
|
.line 632
|
|
invoke-virtual {p0}, Lcom/google/firebase/perf/metrics/Trace;->isStopped()Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_2
|
|
|
|
iget-object v0, p0, Lcom/google/firebase/perf/metrics/Trace;->customAttributesMap:Ljava/util/Map;
|
|
|
|
.line 637
|
|
invoke-interface {v0, p1}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_1
|
|
|
|
iget-object v0, p0, Lcom/google/firebase/perf/metrics/Trace;->customAttributesMap:Ljava/util/Map;
|
|
|
|
.line 638
|
|
invoke-interface {v0}, Ljava/util/Map;->size()I
|
|
|
|
move-result v0
|
|
|
|
const/4 v1, 0x5
|
|
|
|
if-ge v0, v1, :cond_0
|
|
|
|
goto :goto_0
|
|
|
|
.line 639
|
|
:cond_0
|
|
new-instance p1, Ljava/lang/IllegalArgumentException;
|
|
|
|
sget-object p2, Ljava/util/Locale;->ENGLISH:Ljava/util/Locale;
|
|
|
|
.line 643
|
|
invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object v0
|
|
|
|
filled-new-array {v0}, [Ljava/lang/Object;
|
|
|
|
move-result-object v0
|
|
|
|
const-string v1, "Exceeds max limit of number of attributes - %d"
|
|
|
|
.line 640
|
|
invoke-static {p2, v1, v0}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
|
|
|
|
move-result-object p2
|
|
|
|
invoke-direct {p1, p2}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw p1
|
|
|
|
.line 645
|
|
:cond_1
|
|
:goto_0
|
|
invoke-static {p1, p2}, Lcom/google/firebase/perf/metrics/validator/PerfMetricValidator;->validateAttribute(Ljava/lang/String;Ljava/lang/String;)V
|
|
|
|
return-void
|
|
|
|
.line 633
|
|
:cond_2
|
|
new-instance p1, Ljava/lang/IllegalArgumentException;
|
|
|
|
sget-object p2, Ljava/util/Locale;->ENGLISH:Ljava/util/Locale;
|
|
|
|
iget-object v0, p0, Lcom/google/firebase/perf/metrics/Trace;->name:Ljava/lang/String;
|
|
|
|
filled-new-array {v0}, [Ljava/lang/Object;
|
|
|
|
move-result-object v0
|
|
|
|
const-string v1, "Trace \'%s\' has been stopped"
|
|
|
|
.line 634
|
|
invoke-static {p2, v1, v0}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
|
|
|
|
move-result-object p2
|
|
|
|
invoke-direct {p1, p2}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw p1
|
|
.end method
|
|
|
|
.method public describeContents()I
|
|
.locals 1
|
|
.annotation build Landroidx/annotation/Keep;
|
|
.end annotation
|
|
|
|
const/4 v0, 0x0
|
|
|
|
return v0
|
|
.end method
|
|
|
|
.method public finalize()V
|
|
.locals 6
|
|
|
|
.line 492
|
|
:try_start_0
|
|
invoke-virtual {p0}, Lcom/google/firebase/perf/metrics/Trace;->isActive()Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
sget-object v0, Lcom/google/firebase/perf/metrics/Trace;->logger:Lcom/google/firebase/perf/logging/AndroidLogger;
|
|
|
|
const-string v1, "Trace \'%s\' is started but not stopped when it is destructed!"
|
|
|
|
const/4 v2, 0x1
|
|
|
|
new-array v3, v2, [Ljava/lang/Object;
|
|
|
|
iget-object v4, p0, Lcom/google/firebase/perf/metrics/Trace;->name:Ljava/lang/String;
|
|
|
|
const/4 v5, 0x0
|
|
|
|
aput-object v4, v3, v5
|
|
|
|
.line 493
|
|
invoke-virtual {v0, v1, v3}, Lcom/google/firebase/perf/logging/AndroidLogger;->warn(Ljava/lang/String;[Ljava/lang/Object;)V
|
|
|
|
.line 494
|
|
invoke-virtual {p0, v2}, Lcom/google/firebase/perf/application/AppStateUpdateHandler;->incrementTsnsCount(I)V
|
|
:try_end_0
|
|
.catchall {:try_start_0 .. :try_end_0} :catchall_0
|
|
|
|
goto :goto_0
|
|
|
|
:catchall_0
|
|
move-exception v0
|
|
|
|
goto :goto_1
|
|
|
|
.line 497
|
|
:cond_0
|
|
:goto_0
|
|
invoke-super {p0}, Ljava/lang/Object;->finalize()V
|
|
|
|
return-void
|
|
|
|
:goto_1
|
|
invoke-super {p0}, Ljava/lang/Object;->finalize()V
|
|
|
|
.line 498
|
|
throw v0
|
|
.end method
|
|
|
|
.method public getAttribute(Ljava/lang/String;)Ljava/lang/String;
|
|
.locals 1
|
|
.param p1 # Ljava/lang/String;
|
|
.annotation build Landroidx/annotation/NonNull;
|
|
.end annotation
|
|
.end param
|
|
.annotation build Landroidx/annotation/Keep;
|
|
.end annotation
|
|
|
|
.annotation build Landroidx/annotation/Nullable;
|
|
.end annotation
|
|
|
|
iget-object v0, p0, Lcom/google/firebase/perf/metrics/Trace;->customAttributesMap:Ljava/util/Map;
|
|
|
|
.line 674
|
|
invoke-interface {v0, p1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
|
|
|
|
move-result-object p1
|
|
|
|
check-cast p1, Ljava/lang/String;
|
|
|
|
return-object p1
|
|
.end method
|
|
|
|
.method public getAttributes()Ljava/util/Map;
|
|
.locals 2
|
|
.annotation build Landroidx/annotation/Keep;
|
|
.end annotation
|
|
|
|
.annotation build Landroidx/annotation/NonNull;
|
|
.end annotation
|
|
|
|
.annotation system Ldalvik/annotation/Signature;
|
|
value = {
|
|
"()",
|
|
"Ljava/util/Map<",
|
|
"Ljava/lang/String;",
|
|
"Ljava/lang/String;",
|
|
">;"
|
|
}
|
|
.end annotation
|
|
|
|
.line 686
|
|
new-instance v0, Ljava/util/HashMap;
|
|
|
|
iget-object v1, p0, Lcom/google/firebase/perf/metrics/Trace;->customAttributesMap:Ljava/util/Map;
|
|
|
|
invoke-direct {v0, v1}, Ljava/util/HashMap;-><init>(Ljava/util/Map;)V
|
|
|
|
return-object v0
|
|
.end method
|
|
|
|
.method public getCounters()Ljava/util/Map;
|
|
.locals 1
|
|
|
|
iget-object v0, p0, Lcom/google/firebase/perf/metrics/Trace;->counterNameToCounterMap:Ljava/util/Map;
|
|
|
|
return-object v0
|
|
.end method
|
|
|
|
.method public getEndTime()Lcom/google/firebase/perf/util/Timer;
|
|
.locals 1
|
|
|
|
iget-object v0, p0, Lcom/google/firebase/perf/metrics/Trace;->endTime:Lcom/google/firebase/perf/util/Timer;
|
|
|
|
return-object v0
|
|
.end method
|
|
|
|
.method public getLongMetric(Ljava/lang/String;)J
|
|
.locals 2
|
|
.param p1 # Ljava/lang/String;
|
|
.annotation build Landroidx/annotation/NonNull;
|
|
.end annotation
|
|
.end param
|
|
.annotation build Landroidx/annotation/Keep;
|
|
.end annotation
|
|
|
|
if-eqz p1, :cond_0
|
|
|
|
iget-object v0, p0, Lcom/google/firebase/perf/metrics/Trace;->counterNameToCounterMap:Ljava/util/Map;
|
|
|
|
.line 368
|
|
invoke-virtual {p1}, Ljava/lang/String;->trim()Ljava/lang/String;
|
|
|
|
move-result-object p1
|
|
|
|
invoke-interface {v0, p1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
|
|
|
|
move-result-object p1
|
|
|
|
check-cast p1, Lcom/google/firebase/perf/metrics/Counter;
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
const/4 p1, 0x0
|
|
|
|
:goto_0
|
|
if-nez p1, :cond_1
|
|
|
|
const-wide/16 v0, 0x0
|
|
|
|
return-wide v0
|
|
|
|
.line 373
|
|
:cond_1
|
|
invoke-virtual {p1}, Lcom/google/firebase/perf/metrics/Counter;->getCount()J
|
|
|
|
move-result-wide v0
|
|
|
|
return-wide v0
|
|
.end method
|
|
|
|
.method public getName()Ljava/lang/String;
|
|
.locals 1
|
|
|
|
iget-object v0, p0, Lcom/google/firebase/perf/metrics/Trace;->name:Ljava/lang/String;
|
|
|
|
return-object v0
|
|
.end method
|
|
|
|
.method public getSessions()Ljava/util/List;
|
|
.locals 4
|
|
|
|
iget-object v0, p0, Lcom/google/firebase/perf/metrics/Trace;->sessions:Ljava/util/List;
|
|
|
|
.line 717
|
|
monitor-enter v0
|
|
|
|
.line 718
|
|
:try_start_0
|
|
new-instance v1, Ljava/util/ArrayList;
|
|
|
|
invoke-direct {v1}, Ljava/util/ArrayList;-><init>()V
|
|
|
|
iget-object v2, p0, Lcom/google/firebase/perf/metrics/Trace;->sessions:Ljava/util/List;
|
|
|
|
.line 721
|
|
invoke-interface {v2}, Ljava/util/List;->iterator()Ljava/util/Iterator;
|
|
|
|
move-result-object v2
|
|
|
|
:cond_0
|
|
:goto_0
|
|
invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z
|
|
|
|
move-result v3
|
|
|
|
if-eqz v3, :cond_1
|
|
|
|
invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
|
|
|
|
move-result-object v3
|
|
|
|
check-cast v3, Lcom/google/firebase/perf/session/PerfSession;
|
|
|
|
if-eqz v3, :cond_0
|
|
|
|
.line 723
|
|
invoke-virtual {v1, v3}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
|
|
|
|
goto :goto_0
|
|
|
|
:catchall_0
|
|
move-exception v1
|
|
|
|
goto :goto_1
|
|
|
|
.line 726
|
|
:cond_1
|
|
invoke-static {v1}, Ljava/util/Collections;->unmodifiableList(Ljava/util/List;)Ljava/util/List;
|
|
|
|
move-result-object v1
|
|
|
|
monitor-exit v0
|
|
|
|
return-object v1
|
|
|
|
.line 727
|
|
:goto_1
|
|
monitor-exit v0
|
|
:try_end_0
|
|
.catchall {:try_start_0 .. :try_end_0} :catchall_0
|
|
|
|
throw v1
|
|
.end method
|
|
|
|
.method public getStartTime()Lcom/google/firebase/perf/util/Timer;
|
|
.locals 1
|
|
|
|
iget-object v0, p0, Lcom/google/firebase/perf/metrics/Trace;->startTime:Lcom/google/firebase/perf/util/Timer;
|
|
|
|
return-object v0
|
|
.end method
|
|
|
|
.method public getSubtraces()Ljava/util/List;
|
|
.locals 1
|
|
|
|
iget-object v0, p0, Lcom/google/firebase/perf/metrics/Trace;->subtraces:Ljava/util/List;
|
|
|
|
return-object v0
|
|
.end method
|
|
|
|
.method public hasStarted()Z
|
|
.locals 1
|
|
|
|
iget-object v0, p0, Lcom/google/firebase/perf/metrics/Trace;->startTime:Lcom/google/firebase/perf/util/Timer;
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
const/4 v0, 0x1
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
const/4 v0, 0x0
|
|
|
|
:goto_0
|
|
return v0
|
|
.end method
|
|
|
|
.method public incrementMetric(Ljava/lang/String;J)V
|
|
.locals 2
|
|
.param p1 # Ljava/lang/String;
|
|
.annotation build Landroidx/annotation/NonNull;
|
|
.end annotation
|
|
.end param
|
|
.annotation build Landroidx/annotation/Keep;
|
|
.end annotation
|
|
|
|
.line 332
|
|
invoke-static {p1}, Lcom/google/firebase/perf/metrics/validator/PerfMetricValidator;->validateMetricName(Ljava/lang/String;)Ljava/lang/String;
|
|
|
|
move-result-object v0
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
sget-object p2, Lcom/google/firebase/perf/metrics/Trace;->logger:Lcom/google/firebase/perf/logging/AndroidLogger;
|
|
|
|
const-string p3, "Cannot increment metric \'%s\'. Metric name is invalid.(%s)"
|
|
|
|
filled-new-array {p1, v0}, [Ljava/lang/Object;
|
|
|
|
move-result-object p1
|
|
|
|
.line 334
|
|
invoke-virtual {p2, p3, p1}, Lcom/google/firebase/perf/logging/AndroidLogger;->error(Ljava/lang/String;[Ljava/lang/Object;)V
|
|
|
|
return-void
|
|
|
|
.line 337
|
|
:cond_0
|
|
invoke-virtual {p0}, Lcom/google/firebase/perf/metrics/Trace;->hasStarted()Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_1
|
|
|
|
sget-object p2, Lcom/google/firebase/perf/metrics/Trace;->logger:Lcom/google/firebase/perf/logging/AndroidLogger;
|
|
|
|
iget-object p3, p0, Lcom/google/firebase/perf/metrics/Trace;->name:Ljava/lang/String;
|
|
|
|
filled-new-array {p1, p3}, [Ljava/lang/Object;
|
|
|
|
move-result-object p1
|
|
|
|
const-string p3, "Cannot increment metric \'%s\' for trace \'%s\' because it\'s not started"
|
|
|
|
.line 338
|
|
invoke-virtual {p2, p3, p1}, Lcom/google/firebase/perf/logging/AndroidLogger;->warn(Ljava/lang/String;[Ljava/lang/Object;)V
|
|
|
|
return-void
|
|
|
|
.line 342
|
|
:cond_1
|
|
invoke-virtual {p0}, Lcom/google/firebase/perf/metrics/Trace;->isStopped()Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_2
|
|
|
|
sget-object p2, Lcom/google/firebase/perf/metrics/Trace;->logger:Lcom/google/firebase/perf/logging/AndroidLogger;
|
|
|
|
iget-object p3, p0, Lcom/google/firebase/perf/metrics/Trace;->name:Ljava/lang/String;
|
|
|
|
filled-new-array {p1, p3}, [Ljava/lang/Object;
|
|
|
|
move-result-object p1
|
|
|
|
const-string p3, "Cannot increment metric \'%s\' for trace \'%s\' because it\'s been stopped"
|
|
|
|
.line 343
|
|
invoke-virtual {p2, p3, p1}, Lcom/google/firebase/perf/logging/AndroidLogger;->warn(Ljava/lang/String;[Ljava/lang/Object;)V
|
|
|
|
return-void
|
|
|
|
.line 350
|
|
:cond_2
|
|
invoke-virtual {p1}, Ljava/lang/String;->trim()Ljava/lang/String;
|
|
|
|
move-result-object v0
|
|
|
|
invoke-virtual {p0, v0}, Lcom/google/firebase/perf/metrics/Trace;->obtainOrCreateCounterByName(Ljava/lang/String;)Lcom/google/firebase/perf/metrics/Counter;
|
|
|
|
move-result-object v0
|
|
|
|
.line 351
|
|
invoke-virtual {v0, p2, p3}, Lcom/google/firebase/perf/metrics/Counter;->increment(J)V
|
|
|
|
sget-object p2, Lcom/google/firebase/perf/metrics/Trace;->logger:Lcom/google/firebase/perf/logging/AndroidLogger;
|
|
|
|
.line 353
|
|
invoke-virtual {v0}, Lcom/google/firebase/perf/metrics/Counter;->getCount()J
|
|
|
|
move-result-wide v0
|
|
|
|
invoke-static {v0, v1}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
|
|
|
|
move-result-object p3
|
|
|
|
iget-object v0, p0, Lcom/google/firebase/perf/metrics/Trace;->name:Ljava/lang/String;
|
|
|
|
filled-new-array {p1, p3, v0}, [Ljava/lang/Object;
|
|
|
|
move-result-object p1
|
|
|
|
const-string p3, "Incrementing metric \'%s\' to %d on trace \'%s\'"
|
|
|
|
.line 352
|
|
invoke-virtual {p2, p3, p1}, Lcom/google/firebase/perf/logging/AndroidLogger;->debug(Ljava/lang/String;[Ljava/lang/Object;)V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public isActive()Z
|
|
.locals 1
|
|
|
|
.line 564
|
|
invoke-virtual {p0}, Lcom/google/firebase/perf/metrics/Trace;->hasStarted()Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
invoke-virtual {p0}, Lcom/google/firebase/perf/metrics/Trace;->isStopped()Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_0
|
|
|
|
const/4 v0, 0x1
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
const/4 v0, 0x0
|
|
|
|
:goto_0
|
|
return v0
|
|
.end method
|
|
|
|
.method public isStopped()Z
|
|
.locals 1
|
|
|
|
iget-object v0, p0, Lcom/google/firebase/perf/metrics/Trace;->endTime:Lcom/google/firebase/perf/util/Timer;
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
const/4 v0, 0x1
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
const/4 v0, 0x0
|
|
|
|
:goto_0
|
|
return v0
|
|
.end method
|
|
|
|
.method public final obtainOrCreateCounterByName(Ljava/lang/String;)Lcom/google/firebase/perf/metrics/Counter;
|
|
.locals 2
|
|
|
|
iget-object v0, p0, Lcom/google/firebase/perf/metrics/Trace;->counterNameToCounterMap:Ljava/util/Map;
|
|
|
|
.line 313
|
|
invoke-interface {v0, p1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
|
|
|
|
move-result-object v0
|
|
|
|
check-cast v0, Lcom/google/firebase/perf/metrics/Counter;
|
|
|
|
if-nez v0, :cond_0
|
|
|
|
.line 315
|
|
new-instance v0, Lcom/google/firebase/perf/metrics/Counter;
|
|
|
|
invoke-direct {v0, p1}, Lcom/google/firebase/perf/metrics/Counter;-><init>(Ljava/lang/String;)V
|
|
|
|
iget-object v1, p0, Lcom/google/firebase/perf/metrics/Trace;->counterNameToCounterMap:Ljava/util/Map;
|
|
|
|
.line 316
|
|
invoke-interface {v1, p1, v0}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
|
|
|
|
:cond_0
|
|
return-object v0
|
|
.end method
|
|
|
|
.method public putAttribute(Ljava/lang/String;Ljava/lang/String;)V
|
|
.locals 7
|
|
.param p1 # Ljava/lang/String;
|
|
.annotation build Landroidx/annotation/NonNull;
|
|
.end annotation
|
|
.end param
|
|
.param p2 # Ljava/lang/String;
|
|
.annotation build Landroidx/annotation/NonNull;
|
|
.end annotation
|
|
.end param
|
|
.annotation build Landroidx/annotation/Keep;
|
|
.end annotation
|
|
|
|
const/4 v0, 0x0
|
|
|
|
.line 617
|
|
:try_start_0
|
|
invoke-virtual {p1}, Ljava/lang/String;->trim()Ljava/lang/String;
|
|
|
|
move-result-object p1
|
|
|
|
.line 618
|
|
invoke-virtual {p2}, Ljava/lang/String;->trim()Ljava/lang/String;
|
|
|
|
move-result-object p2
|
|
|
|
.line 619
|
|
invoke-virtual {p0, p1, p2}, Lcom/google/firebase/perf/metrics/Trace;->checkAttribute(Ljava/lang/String;Ljava/lang/String;)V
|
|
|
|
sget-object v1, Lcom/google/firebase/perf/metrics/Trace;->logger:Lcom/google/firebase/perf/logging/AndroidLogger;
|
|
|
|
const-string v2, "Setting attribute \'%s\' to \'%s\' on trace \'%s\'"
|
|
|
|
const/4 v3, 0x3
|
|
|
|
new-array v3, v3, [Ljava/lang/Object;
|
|
|
|
aput-object p1, v3, v0
|
|
|
|
const/4 v4, 0x1
|
|
|
|
aput-object p2, v3, v4
|
|
|
|
iget-object v5, p0, Lcom/google/firebase/perf/metrics/Trace;->name:Ljava/lang/String;
|
|
|
|
const/4 v6, 0x2
|
|
|
|
aput-object v5, v3, v6
|
|
|
|
.line 620
|
|
invoke-virtual {v1, v2, v3}, Lcom/google/firebase/perf/logging/AndroidLogger;->debug(Ljava/lang/String;[Ljava/lang/Object;)V
|
|
:try_end_0
|
|
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
|
|
|
|
move v0, v4
|
|
|
|
goto :goto_0
|
|
|
|
:catch_0
|
|
move-exception v1
|
|
|
|
sget-object v2, Lcom/google/firebase/perf/metrics/Trace;->logger:Lcom/google/firebase/perf/logging/AndroidLogger;
|
|
|
|
.line 623
|
|
invoke-virtual {v1}, Ljava/lang/Throwable;->getMessage()Ljava/lang/String;
|
|
|
|
move-result-object v1
|
|
|
|
filled-new-array {p1, p2, v1}, [Ljava/lang/Object;
|
|
|
|
move-result-object v1
|
|
|
|
const-string v3, "Can not set attribute \'%s\' with value \'%s\' (%s)"
|
|
|
|
.line 622
|
|
invoke-virtual {v2, v3, v1}, Lcom/google/firebase/perf/logging/AndroidLogger;->error(Ljava/lang/String;[Ljava/lang/Object;)V
|
|
|
|
:goto_0
|
|
if-eqz v0, :cond_0
|
|
|
|
iget-object v0, p0, Lcom/google/firebase/perf/metrics/Trace;->customAttributesMap:Ljava/util/Map;
|
|
|
|
.line 627
|
|
invoke-interface {v0, p1, p2}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
|
|
|
|
:cond_0
|
|
return-void
|
|
.end method
|
|
|
|
.method public putMetric(Ljava/lang/String;J)V
|
|
.locals 1
|
|
.param p1 # Ljava/lang/String;
|
|
.annotation build Landroidx/annotation/NonNull;
|
|
.end annotation
|
|
.end param
|
|
.annotation build Landroidx/annotation/Keep;
|
|
.end annotation
|
|
|
|
.line 388
|
|
invoke-static {p1}, Lcom/google/firebase/perf/metrics/validator/PerfMetricValidator;->validateMetricName(Ljava/lang/String;)Ljava/lang/String;
|
|
|
|
move-result-object v0
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
sget-object p2, Lcom/google/firebase/perf/metrics/Trace;->logger:Lcom/google/firebase/perf/logging/AndroidLogger;
|
|
|
|
const-string p3, "Cannot set value for metric \'%s\'. Metric name is invalid.(%s)"
|
|
|
|
filled-new-array {p1, v0}, [Ljava/lang/Object;
|
|
|
|
move-result-object p1
|
|
|
|
.line 390
|
|
invoke-virtual {p2, p3, p1}, Lcom/google/firebase/perf/logging/AndroidLogger;->error(Ljava/lang/String;[Ljava/lang/Object;)V
|
|
|
|
return-void
|
|
|
|
.line 394
|
|
:cond_0
|
|
invoke-virtual {p0}, Lcom/google/firebase/perf/metrics/Trace;->hasStarted()Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_1
|
|
|
|
sget-object p2, Lcom/google/firebase/perf/metrics/Trace;->logger:Lcom/google/firebase/perf/logging/AndroidLogger;
|
|
|
|
iget-object p3, p0, Lcom/google/firebase/perf/metrics/Trace;->name:Ljava/lang/String;
|
|
|
|
filled-new-array {p1, p3}, [Ljava/lang/Object;
|
|
|
|
move-result-object p1
|
|
|
|
const-string p3, "Cannot set value for metric \'%s\' for trace \'%s\' because it\'s not started"
|
|
|
|
.line 395
|
|
invoke-virtual {p2, p3, p1}, Lcom/google/firebase/perf/logging/AndroidLogger;->warn(Ljava/lang/String;[Ljava/lang/Object;)V
|
|
|
|
return-void
|
|
|
|
.line 400
|
|
:cond_1
|
|
invoke-virtual {p0}, Lcom/google/firebase/perf/metrics/Trace;->isStopped()Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_2
|
|
|
|
sget-object p2, Lcom/google/firebase/perf/metrics/Trace;->logger:Lcom/google/firebase/perf/logging/AndroidLogger;
|
|
|
|
iget-object p3, p0, Lcom/google/firebase/perf/metrics/Trace;->name:Ljava/lang/String;
|
|
|
|
filled-new-array {p1, p3}, [Ljava/lang/Object;
|
|
|
|
move-result-object p1
|
|
|
|
const-string p3, "Cannot set value for metric \'%s\' for trace \'%s\' because it\'s been stopped"
|
|
|
|
.line 401
|
|
invoke-virtual {p2, p3, p1}, Lcom/google/firebase/perf/logging/AndroidLogger;->warn(Ljava/lang/String;[Ljava/lang/Object;)V
|
|
|
|
return-void
|
|
|
|
.line 406
|
|
:cond_2
|
|
invoke-virtual {p1}, Ljava/lang/String;->trim()Ljava/lang/String;
|
|
|
|
move-result-object v0
|
|
|
|
invoke-virtual {p0, v0}, Lcom/google/firebase/perf/metrics/Trace;->obtainOrCreateCounterByName(Ljava/lang/String;)Lcom/google/firebase/perf/metrics/Counter;
|
|
|
|
move-result-object v0
|
|
|
|
.line 407
|
|
invoke-virtual {v0, p2, p3}, Lcom/google/firebase/perf/metrics/Counter;->setCount(J)V
|
|
|
|
sget-object v0, Lcom/google/firebase/perf/metrics/Trace;->logger:Lcom/google/firebase/perf/logging/AndroidLogger;
|
|
|
|
.line 408
|
|
invoke-static {p2, p3}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
|
|
|
|
move-result-object p2
|
|
|
|
iget-object p3, p0, Lcom/google/firebase/perf/metrics/Trace;->name:Ljava/lang/String;
|
|
|
|
filled-new-array {p1, p2, p3}, [Ljava/lang/Object;
|
|
|
|
move-result-object p1
|
|
|
|
const-string p2, "Setting metric \'%s\' to \'%s\' on trace \'%s\'"
|
|
|
|
invoke-virtual {v0, p2, p1}, Lcom/google/firebase/perf/logging/AndroidLogger;->debug(Ljava/lang/String;[Ljava/lang/Object;)V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public removeAttribute(Ljava/lang/String;)V
|
|
.locals 1
|
|
.param p1 # Ljava/lang/String;
|
|
.annotation build Landroidx/annotation/NonNull;
|
|
.end annotation
|
|
.end param
|
|
.annotation build Landroidx/annotation/Keep;
|
|
.end annotation
|
|
|
|
.line 657
|
|
invoke-virtual {p0}, Lcom/google/firebase/perf/metrics/Trace;->isStopped()Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
sget-object p1, Lcom/google/firebase/perf/metrics/Trace;->logger:Lcom/google/firebase/perf/logging/AndroidLogger;
|
|
|
|
const-string v0, "Can\'t remove a attribute from a Trace that\'s stopped."
|
|
|
|
.line 658
|
|
invoke-virtual {p1, v0}, Lcom/google/firebase/perf/logging/AndroidLogger;->error(Ljava/lang/String;)V
|
|
|
|
return-void
|
|
|
|
:cond_0
|
|
iget-object v0, p0, Lcom/google/firebase/perf/metrics/Trace;->customAttributesMap:Ljava/util/Map;
|
|
|
|
.line 661
|
|
invoke-interface {v0, p1}, Ljava/util/Map;->remove(Ljava/lang/Object;)Ljava/lang/Object;
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public final setEndTimeOfLastStage(Lcom/google/firebase/perf/util/Timer;)V
|
|
.locals 2
|
|
|
|
iget-object v0, p0, Lcom/google/firebase/perf/metrics/Trace;->subtraces:Ljava/util/List;
|
|
|
|
.line 279
|
|
invoke-interface {v0}, Ljava/util/List;->isEmpty()Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
return-void
|
|
|
|
:cond_0
|
|
iget-object v0, p0, Lcom/google/firebase/perf/metrics/Trace;->subtraces:Ljava/util/List;
|
|
|
|
.line 282
|
|
invoke-interface {v0}, Ljava/util/List;->size()I
|
|
|
|
move-result v0
|
|
|
|
add-int/lit8 v0, v0, -0x1
|
|
|
|
iget-object v1, p0, Lcom/google/firebase/perf/metrics/Trace;->subtraces:Ljava/util/List;
|
|
|
|
.line 283
|
|
invoke-interface {v1, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
|
|
|
|
move-result-object v0
|
|
|
|
check-cast v0, Lcom/google/firebase/perf/metrics/Trace;
|
|
|
|
.line 285
|
|
iget-object v1, v0, Lcom/google/firebase/perf/metrics/Trace;->endTime:Lcom/google/firebase/perf/util/Timer;
|
|
|
|
if-nez v1, :cond_1
|
|
|
|
.line 286
|
|
iput-object p1, v0, Lcom/google/firebase/perf/metrics/Trace;->endTime:Lcom/google/firebase/perf/util/Timer;
|
|
|
|
:cond_1
|
|
return-void
|
|
.end method
|
|
|
|
.method public start()V
|
|
.locals 3
|
|
.annotation build Landroidx/annotation/Keep;
|
|
.end annotation
|
|
|
|
.line 210
|
|
invoke-static {}, Lcom/google/firebase/perf/config/ConfigResolver;->getInstance()Lcom/google/firebase/perf/config/ConfigResolver;
|
|
|
|
move-result-object v0
|
|
|
|
invoke-virtual {v0}, Lcom/google/firebase/perf/config/ConfigResolver;->isPerformanceMonitoringEnabled()Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_0
|
|
|
|
sget-object v0, Lcom/google/firebase/perf/metrics/Trace;->logger:Lcom/google/firebase/perf/logging/AndroidLogger;
|
|
|
|
const-string v1, "Trace feature is disabled."
|
|
|
|
.line 211
|
|
invoke-virtual {v0, v1}, Lcom/google/firebase/perf/logging/AndroidLogger;->debug(Ljava/lang/String;)V
|
|
|
|
return-void
|
|
|
|
:cond_0
|
|
iget-object v0, p0, Lcom/google/firebase/perf/metrics/Trace;->name:Ljava/lang/String;
|
|
|
|
.line 215
|
|
invoke-static {v0}, Lcom/google/firebase/perf/metrics/validator/PerfMetricValidator;->validateTraceName(Ljava/lang/String;)Ljava/lang/String;
|
|
|
|
move-result-object v0
|
|
|
|
if-eqz v0, :cond_1
|
|
|
|
sget-object v1, Lcom/google/firebase/perf/metrics/Trace;->logger:Lcom/google/firebase/perf/logging/AndroidLogger;
|
|
|
|
iget-object v2, p0, Lcom/google/firebase/perf/metrics/Trace;->name:Ljava/lang/String;
|
|
|
|
filled-new-array {v2, v0}, [Ljava/lang/Object;
|
|
|
|
move-result-object v0
|
|
|
|
const-string v2, "Cannot start trace \'%s\'. Trace name is invalid.(%s)"
|
|
|
|
.line 218
|
|
invoke-virtual {v1, v2, v0}, Lcom/google/firebase/perf/logging/AndroidLogger;->error(Ljava/lang/String;[Ljava/lang/Object;)V
|
|
|
|
return-void
|
|
|
|
:cond_1
|
|
iget-object v0, p0, Lcom/google/firebase/perf/metrics/Trace;->startTime:Lcom/google/firebase/perf/util/Timer;
|
|
|
|
if-eqz v0, :cond_2
|
|
|
|
sget-object v0, Lcom/google/firebase/perf/metrics/Trace;->logger:Lcom/google/firebase/perf/logging/AndroidLogger;
|
|
|
|
iget-object v1, p0, Lcom/google/firebase/perf/metrics/Trace;->name:Ljava/lang/String;
|
|
|
|
filled-new-array {v1}, [Ljava/lang/Object;
|
|
|
|
move-result-object v1
|
|
|
|
const-string v2, "Trace \'%s\' has already started, should not start again!"
|
|
|
|
.line 223
|
|
invoke-virtual {v0, v2, v1}, Lcom/google/firebase/perf/logging/AndroidLogger;->error(Ljava/lang/String;[Ljava/lang/Object;)V
|
|
|
|
return-void
|
|
|
|
:cond_2
|
|
iget-object v0, p0, Lcom/google/firebase/perf/metrics/Trace;->clock:Lcom/google/firebase/perf/util/Clock;
|
|
|
|
.line 227
|
|
invoke-virtual {v0}, Lcom/google/firebase/perf/util/Clock;->getTime()Lcom/google/firebase/perf/util/Timer;
|
|
|
|
move-result-object v0
|
|
|
|
iput-object v0, p0, Lcom/google/firebase/perf/metrics/Trace;->startTime:Lcom/google/firebase/perf/util/Timer;
|
|
|
|
.line 229
|
|
invoke-virtual {p0}, Lcom/google/firebase/perf/application/AppStateUpdateHandler;->registerForAppState()V
|
|
|
|
.line 231
|
|
invoke-static {}, Lcom/google/firebase/perf/session/SessionManager;->getInstance()Lcom/google/firebase/perf/session/SessionManager;
|
|
|
|
move-result-object v0
|
|
|
|
.line 232
|
|
invoke-virtual {v0}, Lcom/google/firebase/perf/session/SessionManager;->perfSession()Lcom/google/firebase/perf/session/PerfSession;
|
|
|
|
move-result-object v0
|
|
|
|
.line 233
|
|
invoke-static {}, Lcom/google/firebase/perf/session/SessionManager;->getInstance()Lcom/google/firebase/perf/session/SessionManager;
|
|
|
|
move-result-object v1
|
|
|
|
iget-object v2, p0, Lcom/google/firebase/perf/metrics/Trace;->sessionAwareObject:Ljava/lang/ref/WeakReference;
|
|
|
|
invoke-virtual {v1, v2}, Lcom/google/firebase/perf/session/SessionManager;->registerForSessionUpdates(Ljava/lang/ref/WeakReference;)V
|
|
|
|
.line 235
|
|
invoke-virtual {p0, v0}, Lcom/google/firebase/perf/metrics/Trace;->updateSession(Lcom/google/firebase/perf/session/PerfSession;)V
|
|
|
|
.line 237
|
|
invoke-virtual {v0}, Lcom/google/firebase/perf/session/PerfSession;->isGaugeAndEventCollectionEnabled()Z
|
|
|
|
move-result v1
|
|
|
|
if-eqz v1, :cond_3
|
|
|
|
iget-object v1, p0, Lcom/google/firebase/perf/metrics/Trace;->gaugeManager:Lcom/google/firebase/perf/session/gauges/GaugeManager;
|
|
|
|
.line 238
|
|
invoke-virtual {v0}, Lcom/google/firebase/perf/session/PerfSession;->getTimer()Lcom/google/firebase/perf/util/Timer;
|
|
|
|
move-result-object v0
|
|
|
|
invoke-virtual {v1, v0}, Lcom/google/firebase/perf/session/gauges/GaugeManager;->collectGaugeMetricOnce(Lcom/google/firebase/perf/util/Timer;)V
|
|
|
|
:cond_3
|
|
return-void
|
|
.end method
|
|
|
|
.method public stop()V
|
|
.locals 3
|
|
.annotation build Landroidx/annotation/Keep;
|
|
.end annotation
|
|
|
|
.line 245
|
|
invoke-virtual {p0}, Lcom/google/firebase/perf/metrics/Trace;->hasStarted()Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_0
|
|
|
|
sget-object v0, Lcom/google/firebase/perf/metrics/Trace;->logger:Lcom/google/firebase/perf/logging/AndroidLogger;
|
|
|
|
iget-object v1, p0, Lcom/google/firebase/perf/metrics/Trace;->name:Ljava/lang/String;
|
|
|
|
filled-new-array {v1}, [Ljava/lang/Object;
|
|
|
|
move-result-object v1
|
|
|
|
const-string v2, "Trace \'%s\' has not been started so unable to stop!"
|
|
|
|
.line 246
|
|
invoke-virtual {v0, v2, v1}, Lcom/google/firebase/perf/logging/AndroidLogger;->error(Ljava/lang/String;[Ljava/lang/Object;)V
|
|
|
|
return-void
|
|
|
|
.line 249
|
|
:cond_0
|
|
invoke-virtual {p0}, Lcom/google/firebase/perf/metrics/Trace;->isStopped()Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_1
|
|
|
|
sget-object v0, Lcom/google/firebase/perf/metrics/Trace;->logger:Lcom/google/firebase/perf/logging/AndroidLogger;
|
|
|
|
iget-object v1, p0, Lcom/google/firebase/perf/metrics/Trace;->name:Ljava/lang/String;
|
|
|
|
filled-new-array {v1}, [Ljava/lang/Object;
|
|
|
|
move-result-object v1
|
|
|
|
const-string v2, "Trace \'%s\' has already stopped, should not stop again!"
|
|
|
|
.line 250
|
|
invoke-virtual {v0, v2, v1}, Lcom/google/firebase/perf/logging/AndroidLogger;->error(Ljava/lang/String;[Ljava/lang/Object;)V
|
|
|
|
return-void
|
|
|
|
.line 254
|
|
:cond_1
|
|
invoke-static {}, Lcom/google/firebase/perf/session/SessionManager;->getInstance()Lcom/google/firebase/perf/session/SessionManager;
|
|
|
|
move-result-object v0
|
|
|
|
iget-object v1, p0, Lcom/google/firebase/perf/metrics/Trace;->sessionAwareObject:Ljava/lang/ref/WeakReference;
|
|
|
|
invoke-virtual {v0, v1}, Lcom/google/firebase/perf/session/SessionManager;->unregisterForSessionUpdates(Ljava/lang/ref/WeakReference;)V
|
|
|
|
.line 256
|
|
invoke-virtual {p0}, Lcom/google/firebase/perf/application/AppStateUpdateHandler;->unregisterForAppState()V
|
|
|
|
iget-object v0, p0, Lcom/google/firebase/perf/metrics/Trace;->clock:Lcom/google/firebase/perf/util/Clock;
|
|
|
|
.line 257
|
|
invoke-virtual {v0}, Lcom/google/firebase/perf/util/Clock;->getTime()Lcom/google/firebase/perf/util/Timer;
|
|
|
|
move-result-object v0
|
|
|
|
iput-object v0, p0, Lcom/google/firebase/perf/metrics/Trace;->endTime:Lcom/google/firebase/perf/util/Timer;
|
|
|
|
iget-object v1, p0, Lcom/google/firebase/perf/metrics/Trace;->parent:Lcom/google/firebase/perf/metrics/Trace;
|
|
|
|
if-nez v1, :cond_3
|
|
|
|
.line 259
|
|
invoke-virtual {p0, v0}, Lcom/google/firebase/perf/metrics/Trace;->setEndTimeOfLastStage(Lcom/google/firebase/perf/util/Timer;)V
|
|
|
|
iget-object v0, p0, Lcom/google/firebase/perf/metrics/Trace;->name:Ljava/lang/String;
|
|
|
|
.line 260
|
|
invoke-virtual {v0}, Ljava/lang/String;->isEmpty()Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_2
|
|
|
|
iget-object v0, p0, Lcom/google/firebase/perf/metrics/Trace;->transportManager:Lcom/google/firebase/perf/transport/TransportManager;
|
|
|
|
.line 261
|
|
new-instance v1, Lcom/google/firebase/perf/metrics/TraceMetricBuilder;
|
|
|
|
invoke-direct {v1, p0}, Lcom/google/firebase/perf/metrics/TraceMetricBuilder;-><init>(Lcom/google/firebase/perf/metrics/Trace;)V
|
|
|
|
invoke-virtual {v1}, Lcom/google/firebase/perf/metrics/TraceMetricBuilder;->build()Lcom/google/firebase/perf/v1/TraceMetric;
|
|
|
|
move-result-object v1
|
|
|
|
invoke-virtual {p0}, Lcom/google/firebase/perf/application/AppStateUpdateHandler;->getAppState()Lcom/google/firebase/perf/v1/ApplicationProcessState;
|
|
|
|
move-result-object v2
|
|
|
|
invoke-virtual {v0, v1, v2}, Lcom/google/firebase/perf/transport/TransportManager;->log(Lcom/google/firebase/perf/v1/TraceMetric;Lcom/google/firebase/perf/v1/ApplicationProcessState;)V
|
|
|
|
.line 263
|
|
invoke-static {}, Lcom/google/firebase/perf/session/SessionManager;->getInstance()Lcom/google/firebase/perf/session/SessionManager;
|
|
|
|
move-result-object v0
|
|
|
|
invoke-virtual {v0}, Lcom/google/firebase/perf/session/SessionManager;->perfSession()Lcom/google/firebase/perf/session/PerfSession;
|
|
|
|
move-result-object v0
|
|
|
|
invoke-virtual {v0}, Lcom/google/firebase/perf/session/PerfSession;->isGaugeAndEventCollectionEnabled()Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_3
|
|
|
|
iget-object v0, p0, Lcom/google/firebase/perf/metrics/Trace;->gaugeManager:Lcom/google/firebase/perf/session/gauges/GaugeManager;
|
|
|
|
.line 265
|
|
invoke-static {}, Lcom/google/firebase/perf/session/SessionManager;->getInstance()Lcom/google/firebase/perf/session/SessionManager;
|
|
|
|
move-result-object v1
|
|
|
|
invoke-virtual {v1}, Lcom/google/firebase/perf/session/SessionManager;->perfSession()Lcom/google/firebase/perf/session/PerfSession;
|
|
|
|
move-result-object v1
|
|
|
|
invoke-virtual {v1}, Lcom/google/firebase/perf/session/PerfSession;->getTimer()Lcom/google/firebase/perf/util/Timer;
|
|
|
|
move-result-object v1
|
|
|
|
.line 264
|
|
invoke-virtual {v0, v1}, Lcom/google/firebase/perf/session/gauges/GaugeManager;->collectGaugeMetricOnce(Lcom/google/firebase/perf/util/Timer;)V
|
|
|
|
goto :goto_0
|
|
|
|
:cond_2
|
|
sget-object v0, Lcom/google/firebase/perf/metrics/Trace;->logger:Lcom/google/firebase/perf/logging/AndroidLogger;
|
|
|
|
const-string v1, "Trace name is empty, no log is sent to server"
|
|
|
|
.line 268
|
|
invoke-virtual {v0, v1}, Lcom/google/firebase/perf/logging/AndroidLogger;->error(Ljava/lang/String;)V
|
|
|
|
:cond_3
|
|
:goto_0
|
|
return-void
|
|
.end method
|
|
|
|
.method public updateSession(Lcom/google/firebase/perf/session/PerfSession;)V
|
|
.locals 1
|
|
|
|
if-nez p1, :cond_0
|
|
|
|
sget-object p1, Lcom/google/firebase/perf/metrics/Trace;->logger:Lcom/google/firebase/perf/logging/AndroidLogger;
|
|
|
|
const-string v0, "Unable to add new SessionId to the Trace. Continuing without it."
|
|
|
|
.line 81
|
|
invoke-virtual {p1, v0}, Lcom/google/firebase/perf/logging/AndroidLogger;->warn(Ljava/lang/String;)V
|
|
|
|
return-void
|
|
|
|
.line 85
|
|
:cond_0
|
|
invoke-virtual {p0}, Lcom/google/firebase/perf/metrics/Trace;->hasStarted()Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_1
|
|
|
|
invoke-virtual {p0}, Lcom/google/firebase/perf/metrics/Trace;->isStopped()Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_1
|
|
|
|
iget-object v0, p0, Lcom/google/firebase/perf/metrics/Trace;->sessions:Ljava/util/List;
|
|
|
|
.line 86
|
|
invoke-interface {v0, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
|
|
|
|
:cond_1
|
|
return-void
|
|
.end method
|
|
|
|
.method public writeToParcel(Landroid/os/Parcel;I)V
|
|
.locals 1
|
|
.param p1 # Landroid/os/Parcel;
|
|
.annotation build Landroidx/annotation/NonNull;
|
|
.end annotation
|
|
.end param
|
|
.annotation build Landroidx/annotation/Keep;
|
|
.end annotation
|
|
|
|
iget-object p2, p0, Lcom/google/firebase/perf/metrics/Trace;->parent:Lcom/google/firebase/perf/metrics/Trace;
|
|
|
|
const/4 v0, 0x0
|
|
|
|
.line 576
|
|
invoke-virtual {p1, p2, v0}, Landroid/os/Parcel;->writeParcelable(Landroid/os/Parcelable;I)V
|
|
|
|
iget-object p2, p0, Lcom/google/firebase/perf/metrics/Trace;->name:Ljava/lang/String;
|
|
|
|
.line 577
|
|
invoke-virtual {p1, p2}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
|
|
|
|
iget-object p2, p0, Lcom/google/firebase/perf/metrics/Trace;->subtraces:Ljava/util/List;
|
|
|
|
.line 578
|
|
invoke-virtual {p1, p2}, Landroid/os/Parcel;->writeList(Ljava/util/List;)V
|
|
|
|
iget-object p2, p0, Lcom/google/firebase/perf/metrics/Trace;->counterNameToCounterMap:Ljava/util/Map;
|
|
|
|
.line 579
|
|
invoke-virtual {p1, p2}, Landroid/os/Parcel;->writeMap(Ljava/util/Map;)V
|
|
|
|
iget-object p2, p0, Lcom/google/firebase/perf/metrics/Trace;->startTime:Lcom/google/firebase/perf/util/Timer;
|
|
|
|
.line 580
|
|
invoke-virtual {p1, p2, v0}, Landroid/os/Parcel;->writeParcelable(Landroid/os/Parcelable;I)V
|
|
|
|
iget-object p2, p0, Lcom/google/firebase/perf/metrics/Trace;->endTime:Lcom/google/firebase/perf/util/Timer;
|
|
|
|
.line 581
|
|
invoke-virtual {p1, p2, v0}, Landroid/os/Parcel;->writeParcelable(Landroid/os/Parcelable;I)V
|
|
|
|
iget-object p2, p0, Lcom/google/firebase/perf/metrics/Trace;->sessions:Ljava/util/List;
|
|
|
|
.line 582
|
|
monitor-enter p2
|
|
|
|
:try_start_0
|
|
iget-object v0, p0, Lcom/google/firebase/perf/metrics/Trace;->sessions:Ljava/util/List;
|
|
|
|
.line 583
|
|
invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeList(Ljava/util/List;)V
|
|
|
|
.line 584
|
|
monitor-exit p2
|
|
|
|
return-void
|
|
|
|
:catchall_0
|
|
move-exception p1
|
|
|
|
monitor-exit p2
|
|
:try_end_0
|
|
.catchall {:try_start_0 .. :try_end_0} :catchall_0
|
|
|
|
throw p1
|
|
.end method
|