.class public Landroidx/core/app/FrameMetricsAggregator$a; .super Landroidx/core/app/FrameMetricsAggregator$b; .source "FrameMetricsAggregator.java" # annotations .annotation build Landroidx/annotation/RequiresApi; value = 0x18 .end annotation .annotation system Ldalvik/annotation/EnclosingClass; value = Landroidx/core/app/FrameMetricsAggregator; .end annotation .annotation system Ldalvik/annotation/InnerClass; accessFlags = 0x9 name = "a" .end annotation # static fields .field public static final e:I = 0xf4240 .field public static final f:I = 0x7a120 .field public static g:Landroid/os/HandlerThread; .field public static h:Landroid/os/Handler; # instance fields .field public a:I .field public b:[Landroid/util/SparseIntArray; .field public c:Ljava/util/ArrayList; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/ArrayList<", "Ljava/lang/ref/WeakReference<", "Landroid/app/Activity;", ">;>;" } .end annotation .end field .field public d:Landroid/view/Window$OnFrameMetricsAvailableListener; # direct methods .method public static constructor ()V .locals 0 return-void .end method .method public constructor (I)V .locals 1 .line 1 invoke-direct {p0}, Landroidx/core/app/FrameMetricsAggregator$b;->()V const/16 v0, 0x9 new-array v0, v0, [Landroid/util/SparseIntArray; .line 2 iput-object v0, p0, Landroidx/core/app/FrameMetricsAggregator$a;->b:[Landroid/util/SparseIntArray; .line 3 new-instance v0, Ljava/util/ArrayList; invoke-direct {v0}, Ljava/util/ArrayList;->()V iput-object v0, p0, Landroidx/core/app/FrameMetricsAggregator$a;->c:Ljava/util/ArrayList; .line 4 new-instance v0, Landroidx/core/app/FrameMetricsAggregator$a$a; invoke-direct {v0, p0}, Landroidx/core/app/FrameMetricsAggregator$a$a;->(Landroidx/core/app/FrameMetricsAggregator$a;)V iput-object v0, p0, Landroidx/core/app/FrameMetricsAggregator$a;->d:Landroid/view/Window$OnFrameMetricsAvailableListener; .line 5 iput p1, p0, Landroidx/core/app/FrameMetricsAggregator$a;->a:I return-void .end method # virtual methods .method public a(Landroid/app/Activity;)V .locals 4 .line 1 sget-object v0, Landroidx/core/app/FrameMetricsAggregator$a;->g:Landroid/os/HandlerThread; if-nez v0, :cond_0 .line 2 new-instance v0, Landroid/os/HandlerThread; const-string v1, "FrameMetricsAggregator" invoke-direct {v0, v1}, Landroid/os/HandlerThread;->(Ljava/lang/String;)V sput-object v0, Landroidx/core/app/FrameMetricsAggregator$a;->g:Landroid/os/HandlerThread; .line 3 invoke-virtual {v0}, Landroid/os/HandlerThread;->start()V .line 4 new-instance v0, Landroid/os/Handler; sget-object v1, Landroidx/core/app/FrameMetricsAggregator$a;->g:Landroid/os/HandlerThread; invoke-virtual {v1}, Landroid/os/HandlerThread;->getLooper()Landroid/os/Looper; move-result-object v1 invoke-direct {v0, v1}, Landroid/os/Handler;->(Landroid/os/Looper;)V sput-object v0, Landroidx/core/app/FrameMetricsAggregator$a;->h:Landroid/os/Handler; :cond_0 const/4 v0, 0x0 :goto_0 const/16 v1, 0x8 if-gt v0, v1, :cond_2 .line 5 iget-object v1, p0, Landroidx/core/app/FrameMetricsAggregator$a;->b:[Landroid/util/SparseIntArray; aget-object v2, v1, v0 if-nez v2, :cond_1 iget v2, p0, Landroidx/core/app/FrameMetricsAggregator$a;->a:I const/4 v3, 0x1 shl-int/2addr v3, v0 and-int/2addr v2, v3 if-eqz v2, :cond_1 .line 6 new-instance v2, Landroid/util/SparseIntArray; invoke-direct {v2}, Landroid/util/SparseIntArray;->()V aput-object v2, v1, v0 :cond_1 add-int/lit8 v0, v0, 0x1 goto :goto_0 .line 7 :cond_2 invoke-virtual {p1}, Landroid/app/Activity;->getWindow()Landroid/view/Window; move-result-object v0 iget-object v1, p0, Landroidx/core/app/FrameMetricsAggregator$a;->d:Landroid/view/Window$OnFrameMetricsAvailableListener; sget-object v2, Landroidx/core/app/FrameMetricsAggregator$a;->h:Landroid/os/Handler; invoke-virtual {v0, v1, v2}, Landroid/view/Window;->addOnFrameMetricsAvailableListener(Landroid/view/Window$OnFrameMetricsAvailableListener;Landroid/os/Handler;)V .line 8 iget-object v0, p0, Landroidx/core/app/FrameMetricsAggregator$a;->c:Ljava/util/ArrayList; new-instance v1, Ljava/lang/ref/WeakReference; invoke-direct {v1, p1}, Ljava/lang/ref/WeakReference;->(Ljava/lang/Object;)V invoke-virtual {v0, v1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z return-void .end method .method public b()[Landroid/util/SparseIntArray; .locals 1 .line 1 iget-object v0, p0, Landroidx/core/app/FrameMetricsAggregator$a;->b:[Landroid/util/SparseIntArray; return-object v0 .end method .method public c(Landroid/app/Activity;)[Landroid/util/SparseIntArray; .locals 3 .line 1 iget-object v0, p0, Landroidx/core/app/FrameMetricsAggregator$a;->c:Ljava/util/ArrayList; invoke-virtual {v0}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; move-result-object v0 :cond_0 invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z move-result v1 if-eqz v1, :cond_1 invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v1 check-cast v1, Ljava/lang/ref/WeakReference; .line 2 invoke-virtual {v1}, Ljava/lang/ref/WeakReference;->get()Ljava/lang/Object; move-result-object v2 if-ne v2, p1, :cond_0 .line 3 iget-object v0, p0, Landroidx/core/app/FrameMetricsAggregator$a;->c:Ljava/util/ArrayList; invoke-virtual {v0, v1}, Ljava/util/ArrayList;->remove(Ljava/lang/Object;)Z .line 4 :cond_1 invoke-virtual {p1}, Landroid/app/Activity;->getWindow()Landroid/view/Window; move-result-object p1 iget-object v0, p0, Landroidx/core/app/FrameMetricsAggregator$a;->d:Landroid/view/Window$OnFrameMetricsAvailableListener; invoke-virtual {p1, v0}, Landroid/view/Window;->removeOnFrameMetricsAvailableListener(Landroid/view/Window$OnFrameMetricsAvailableListener;)V .line 5 iget-object p1, p0, Landroidx/core/app/FrameMetricsAggregator$a;->b:[Landroid/util/SparseIntArray; return-object p1 .end method .method public d()[Landroid/util/SparseIntArray; .locals 2 .line 1 iget-object v0, p0, Landroidx/core/app/FrameMetricsAggregator$a;->b:[Landroid/util/SparseIntArray; const/16 v1, 0x9 new-array v1, v1, [Landroid/util/SparseIntArray; .line 2 iput-object v1, p0, Landroidx/core/app/FrameMetricsAggregator$a;->b:[Landroid/util/SparseIntArray; return-object v0 .end method .method public e()[Landroid/util/SparseIntArray; .locals 3 .line 1 iget-object v0, p0, Landroidx/core/app/FrameMetricsAggregator$a;->c:Ljava/util/ArrayList; invoke-virtual {v0}, Ljava/util/ArrayList;->size()I move-result v0 add-int/lit8 v0, v0, -0x1 :goto_0 if-ltz v0, :cond_1 .line 2 iget-object v1, p0, Landroidx/core/app/FrameMetricsAggregator$a;->c:Ljava/util/ArrayList; invoke-virtual {v1, v0}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; move-result-object v1 check-cast v1, Ljava/lang/ref/WeakReference; .line 3 invoke-virtual {v1}, Ljava/lang/ref/WeakReference;->get()Ljava/lang/Object; move-result-object v2 check-cast v2, Landroid/app/Activity; .line 4 invoke-virtual {v1}, Ljava/lang/ref/WeakReference;->get()Ljava/lang/Object; move-result-object v1 if-eqz v1, :cond_0 .line 5 invoke-virtual {v2}, Landroid/app/Activity;->getWindow()Landroid/view/Window; move-result-object v1 iget-object v2, p0, Landroidx/core/app/FrameMetricsAggregator$a;->d:Landroid/view/Window$OnFrameMetricsAvailableListener; invoke-virtual {v1, v2}, Landroid/view/Window;->removeOnFrameMetricsAvailableListener(Landroid/view/Window$OnFrameMetricsAvailableListener;)V .line 6 iget-object v1, p0, Landroidx/core/app/FrameMetricsAggregator$a;->c:Ljava/util/ArrayList; invoke-virtual {v1, v0}, Ljava/util/ArrayList;->remove(I)Ljava/lang/Object; :cond_0 add-int/lit8 v0, v0, -0x1 goto :goto_0 .line 7 :cond_1 iget-object v0, p0, Landroidx/core/app/FrameMetricsAggregator$a;->b:[Landroid/util/SparseIntArray; return-object v0 .end method .method public f(Landroid/util/SparseIntArray;J)V .locals 4 if-eqz p1, :cond_0 const-wide/32 v0, 0x7a120 add-long/2addr v0, p2 const-wide/32 v2, 0xf4240 .line 1 div-long/2addr v0, v2 long-to-int v0, v0 const-wide/16 v1, 0x0 cmp-long p2, p2, v1 if-ltz p2, :cond_0 .line 2 invoke-virtual {p1, v0}, Landroid/util/SparseIntArray;->get(I)I move-result p2 add-int/lit8 p2, p2, 0x1 .line 3 invoke-virtual {p1, v0, p2}, Landroid/util/SparseIntArray;->put(II)V :cond_0 return-void .end method