UIViewOperationQueue$DispatchUIFrameCallback.smali
.class public Lcom/facebook/react/uimanager/UIViewOperationQueue$DispatchUIFrameCallback;
.super Lcom/facebook/react/uimanager/GuardedFrameCallback;
.source "UIViewOperationQueue.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/facebook/react/uimanager/UIViewOperationQueue;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = "DispatchUIFrameCallback"
.end annotation
# static fields
.field public static final FRAME_TIME_MS:I
# instance fields
.field public final mMinTimeLeftInFrameForNonBatchedOperationMs:I
.field public final synthetic this$0:Lcom/facebook/react/uimanager/UIViewOperationQueue;
# direct methods
.method static constructor <clinit>()V
.registers 1
const v0, 0x4a
invoke-static {v0}, Lnp/NPFog;->d(I)I
move-result v0
sput v0, Lcom/facebook/react/uimanager/UIViewOperationQueue$DispatchUIFrameCallback;->FRAME_TIME_MS:I
return-void
.end method
.method public constructor <init>(Lcom/facebook/react/uimanager/UIViewOperationQueue;Lcom/facebook/react/bridge/ReactContext;I)V
.registers 4
iput-object p1, p0, Lcom/facebook/react/uimanager/UIViewOperationQueue$DispatchUIFrameCallback;->this$0:Lcom/facebook/react/uimanager/UIViewOperationQueue;
invoke-direct {p0, p2}, Lcom/facebook/react/uimanager/GuardedFrameCallback;-><init>(Lcom/facebook/react/bridge/ReactContext;)V
iput p3, p0, Lcom/facebook/react/uimanager/UIViewOperationQueue$DispatchUIFrameCallback;->mMinTimeLeftInFrameForNonBatchedOperationMs:I
return-void
.end method
.method public synthetic constructor <init>(Lcom/facebook/react/uimanager/UIViewOperationQueue;Lcom/facebook/react/bridge/ReactContext;ILcom/facebook/react/uimanager/UIViewOperationQueue$1;)V
.registers 5
invoke-direct {p0, p1, p2, p3}, Lcom/facebook/react/uimanager/UIViewOperationQueue$DispatchUIFrameCallback;-><init>(Lcom/facebook/react/uimanager/UIViewOperationQueue;Lcom/facebook/react/bridge/ReactContext;I)V
return-void
.end method
.method private dispatchPendingNonBatchedOperations(J)V
.registers 11
:goto_0
const-wide/16 v0, 0x10
invoke-static {}, Ljava/lang/System;->nanoTime()J
move-result-wide v2
sub-long/2addr v2, p1
const-wide/32 v4, 0xf4240
div-long/2addr v2, v4
sub-long/2addr v0, v2
iget v2, p0, Lcom/facebook/react/uimanager/UIViewOperationQueue$DispatchUIFrameCallback;->mMinTimeLeftInFrameForNonBatchedOperationMs:I
int-to-long v2, v2
cmp-long v4, v0, v2
if-gez v4, :cond_14
goto :goto_28
:cond_14
iget-object v0, p0, Lcom/facebook/react/uimanager/UIViewOperationQueue$DispatchUIFrameCallback;->this$0:Lcom/facebook/react/uimanager/UIViewOperationQueue;
# getter for: Lcom/facebook/react/uimanager/UIViewOperationQueue;->mNonBatchedOperationsLock:Ljava/lang/Object;
invoke-static {v0}, Lcom/facebook/react/uimanager/UIViewOperationQueue;->access$2700(Lcom/facebook/react/uimanager/UIViewOperationQueue;)Ljava/lang/Object;
move-result-object v0
monitor-enter v0
:try_start_1b
iget-object v1, p0, Lcom/facebook/react/uimanager/UIViewOperationQueue$DispatchUIFrameCallback;->this$0:Lcom/facebook/react/uimanager/UIViewOperationQueue;
# getter for: Lcom/facebook/react/uimanager/UIViewOperationQueue;->mNonBatchedOperations:Ljava/util/ArrayDeque;
invoke-static {v1}, Lcom/facebook/react/uimanager/UIViewOperationQueue;->access$2800(Lcom/facebook/react/uimanager/UIViewOperationQueue;)Ljava/util/ArrayDeque;
move-result-object v1
invoke-virtual {v1}, Ljava/util/ArrayDeque;->isEmpty()Z
move-result v1
if-eqz v1, :cond_29
monitor-exit v0
:goto_28
return-void
:cond_29
iget-object v1, p0, Lcom/facebook/react/uimanager/UIViewOperationQueue$DispatchUIFrameCallback;->this$0:Lcom/facebook/react/uimanager/UIViewOperationQueue;
# getter for: Lcom/facebook/react/uimanager/UIViewOperationQueue;->mNonBatchedOperations:Ljava/util/ArrayDeque;
invoke-static {v1}, Lcom/facebook/react/uimanager/UIViewOperationQueue;->access$2800(Lcom/facebook/react/uimanager/UIViewOperationQueue;)Ljava/util/ArrayDeque;
move-result-object v1
invoke-virtual {v1}, Ljava/util/ArrayDeque;->pollFirst()Ljava/lang/Object;
move-result-object v1
check-cast v1, Lcom/facebook/react/uimanager/UIViewOperationQueue$UIOperation;
monitor-exit v0
:try_end_36
.catchall {:try_start_1b .. :try_end_36} :catchall_57
:try_start_36
invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J
move-result-wide v2
invoke-interface {v1}, Lcom/facebook/react/uimanager/UIViewOperationQueue$UIOperation;->execute()V
iget-object v0, p0, Lcom/facebook/react/uimanager/UIViewOperationQueue$DispatchUIFrameCallback;->this$0:Lcom/facebook/react/uimanager/UIViewOperationQueue;
iget-object v1, p0, Lcom/facebook/react/uimanager/UIViewOperationQueue$DispatchUIFrameCallback;->this$0:Lcom/facebook/react/uimanager/UIViewOperationQueue;
# getter for: Lcom/facebook/react/uimanager/UIViewOperationQueue;->mNonBatchedExecutionTotalTime:J
invoke-static {v1}, Lcom/facebook/react/uimanager/UIViewOperationQueue;->access$2900(Lcom/facebook/react/uimanager/UIViewOperationQueue;)J
move-result-wide v4
invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J
move-result-wide v6
sub-long/2addr v6, v2
add-long/2addr v4, v6
# setter for: Lcom/facebook/react/uimanager/UIViewOperationQueue;->mNonBatchedExecutionTotalTime:J
invoke-static {v0, v4, v5}, Lcom/facebook/react/uimanager/UIViewOperationQueue;->access$2902(Lcom/facebook/react/uimanager/UIViewOperationQueue;J)J
:try_end_4e
.catch Ljava/lang/Exception; {:try_start_36 .. :try_end_4e} :catch_4f
goto :goto_0
:catch_4f
move-exception p1
iget-object p2, p0, Lcom/facebook/react/uimanager/UIViewOperationQueue$DispatchUIFrameCallback;->this$0:Lcom/facebook/react/uimanager/UIViewOperationQueue;
const/4 v0, 0x1
# setter for: Lcom/facebook/react/uimanager/UIViewOperationQueue;->mIsInIllegalUIState:Z
invoke-static {p2, v0}, Lcom/facebook/react/uimanager/UIViewOperationQueue;->access$2502(Lcom/facebook/react/uimanager/UIViewOperationQueue;Z)Z
throw p1
:catchall_57
move-exception p1
:try_start_58
monitor-exit v0
:try_end_59
.catchall {:try_start_58 .. :try_end_59} :catchall_57
goto :goto_5b
:goto_5a
throw p1
:goto_5b
goto :goto_5a
.end method
# virtual methods
.method public doFrameGuarded(J)V
.registers 6
iget-object v0, p0, Lcom/facebook/react/uimanager/UIViewOperationQueue$DispatchUIFrameCallback;->this$0:Lcom/facebook/react/uimanager/UIViewOperationQueue;
# getter for: Lcom/facebook/react/uimanager/UIViewOperationQueue;->mIsInIllegalUIState:Z
invoke-static {v0}, Lcom/facebook/react/uimanager/UIViewOperationQueue;->access$2500(Lcom/facebook/react/uimanager/UIViewOperationQueue;)Z
move-result v0
if-eqz v0, :cond_10
const-string p1, "ReactNative"
const-string p2, "Not flushing pending UI operations because of previously thrown Exception"
invoke-static {p1, p2}, Lcom/facebook/common/logging/FLog;->w(Ljava/lang/String;Ljava/lang/String;)V
return-void
:cond_10
const-wide/16 v0, 0x0
const-string v2, "dispatchNonBatchedUIOperations"
invoke-static {v0, v1, v2}, Lcom/facebook/systrace/Systrace;->beginSection(JLjava/lang/String;)V
:try_start_17
invoke-direct {p0, p1, p2}, Lcom/facebook/react/uimanager/UIViewOperationQueue$DispatchUIFrameCallback;->dispatchPendingNonBatchedOperations(J)V
:try_end_1a
.catchall {:try_start_17 .. :try_end_1a} :catchall_2c
invoke-static {v0, v1}, Lcom/facebook/systrace/Systrace;->endSection(J)V
iget-object p1, p0, Lcom/facebook/react/uimanager/UIViewOperationQueue$DispatchUIFrameCallback;->this$0:Lcom/facebook/react/uimanager/UIViewOperationQueue;
# invokes: Lcom/facebook/react/uimanager/UIViewOperationQueue;->flushPendingBatches()V
invoke-static {p1}, Lcom/facebook/react/uimanager/UIViewOperationQueue;->access$2600(Lcom/facebook/react/uimanager/UIViewOperationQueue;)V
invoke-static {}, Lcom/facebook/react/modules/core/ReactChoreographer;->getInstance()Lcom/facebook/react/modules/core/ReactChoreographer;
move-result-object p1
sget-object p2, Lcom/facebook/react/modules/core/ReactChoreographer$CallbackType;->DISPATCH_UI:Lcom/facebook/react/modules/core/ReactChoreographer$CallbackType;
invoke-virtual {p1, p2, p0}, Lcom/facebook/react/modules/core/ReactChoreographer;->postFrameCallback(Lcom/facebook/react/modules/core/ReactChoreographer$CallbackType;Lcom/facebook/react/modules/core/ChoreographerCompat$FrameCallback;)V
return-void
:catchall_2c
move-exception p1
invoke-static {v0, v1}, Lcom/facebook/systrace/Systrace;->endSection(J)V
throw p1
.end method