.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 ()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;->()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;->()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;->()V sput-object v0, Lcom/google/firebase/perf/metrics/Trace;->CREATOR_DATAONLY:Landroid/os/Parcelable$Creator; return-void .end method .method public constructor (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;->(Lcom/google/firebase/perf/application/AppStateMonitor;)V .line 57 new-instance v1, Ljava/lang/ref/WeakReference; invoke-direct {v1, p0}, Ljava/lang/ref/WeakReference;->(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;->()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;->()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;->()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;->()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;->()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 (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;->(Landroid/os/Parcel;Z)V return-void .end method .method public constructor (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;->(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 (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;->(Lcom/google/firebase/perf/application/AppStateMonitor;)V .line 57 new-instance p4, Ljava/lang/ref/WeakReference; invoke-direct {p4, p0}, Ljava/lang/ref/WeakReference;->(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;->()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;->()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;->()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;->()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;->(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;->(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;->(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;->()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;->(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;->(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