.class public Landroidx/room/InvalidationTracker$ObservedTableTracker; .super Ljava/lang/Object; .source "InvalidationTracker.java" # annotations .annotation system Ldalvik/annotation/EnclosingClass; value = Landroidx/room/InvalidationTracker; .end annotation .annotation system Ldalvik/annotation/InnerClass; accessFlags = 0x9 name = "ObservedTableTracker" .end annotation # static fields .field public static final ADD:I = 0x1 .field public static final NO_OP:I = 0x0 .field public static final REMOVE:I = 0x2 # instance fields .field public mNeedsSync:Z .field public mPendingSync:Z .field public final mTableObservers:[J .field public final mTriggerStateChanges:[I .field public final mTriggerStates:[Z # direct methods .method public constructor (I)V .locals 4 invoke-direct {p0}, Ljava/lang/Object;->()V new-array v0, p1, [J iput-object v0, p0, Landroidx/room/InvalidationTracker$ObservedTableTracker;->mTableObservers:[J new-array v1, p1, [Z iput-object v1, p0, Landroidx/room/InvalidationTracker$ObservedTableTracker;->mTriggerStates:[Z new-array p1, p1, [I iput-object p1, p0, Landroidx/room/InvalidationTracker$ObservedTableTracker;->mTriggerStateChanges:[I const-wide/16 v2, 0x0 invoke-static {v0, v2, v3}, Ljava/util/Arrays;->fill([JJ)V const/4 p1, 0x0 invoke-static {v1, p1}, Ljava/util/Arrays;->fill([ZZ)V return-void .end method # virtual methods .method public getTablesToSync()[I .locals 9 .annotation build Landroidx/annotation/Nullable; .end annotation monitor-enter p0 :try_start_0 iget-boolean v0, p0, Landroidx/room/InvalidationTracker$ObservedTableTracker;->mNeedsSync:Z if-eqz v0, :cond_5 iget-boolean v0, p0, Landroidx/room/InvalidationTracker$ObservedTableTracker;->mPendingSync:Z if-eqz v0, :cond_0 goto :goto_4 :cond_0 iget-object v0, p0, Landroidx/room/InvalidationTracker$ObservedTableTracker;->mTableObservers:[J array-length v0, v0 const/4 v1, 0x0 const/4 v2, 0x0 :goto_0 const/4 v3, 0x1 if-ge v2, v0, :cond_4 iget-object v4, p0, Landroidx/room/InvalidationTracker$ObservedTableTracker;->mTableObservers:[J aget-wide v5, v4, v2 const-wide/16 v7, 0x0 cmp-long v4, v5, v7 if-lez v4, :cond_1 const/4 v4, 0x1 goto :goto_1 :cond_1 const/4 v4, 0x0 :goto_1 iget-object v5, p0, Landroidx/room/InvalidationTracker$ObservedTableTracker;->mTriggerStates:[Z aget-boolean v6, v5, v2 if-eq v4, v6, :cond_3 iget-object v6, p0, Landroidx/room/InvalidationTracker$ObservedTableTracker;->mTriggerStateChanges:[I if-eqz v4, :cond_2 goto :goto_2 :cond_2 const/4 v3, 0x2 :goto_2 aput v3, v6, v2 goto :goto_3 :cond_3 iget-object v3, p0, Landroidx/room/InvalidationTracker$ObservedTableTracker;->mTriggerStateChanges:[I aput v1, v3, v2 :goto_3 aput-boolean v4, v5, v2 add-int/lit8 v2, v2, 0x1 goto :goto_0 :cond_4 iput-boolean v3, p0, Landroidx/room/InvalidationTracker$ObservedTableTracker;->mPendingSync:Z iput-boolean v1, p0, Landroidx/room/InvalidationTracker$ObservedTableTracker;->mNeedsSync:Z iget-object v0, p0, Landroidx/room/InvalidationTracker$ObservedTableTracker;->mTriggerStateChanges:[I monitor-exit p0 return-object v0 :cond_5 :goto_4 const/4 v0, 0x0 monitor-exit p0 return-object v0 :catchall_0 move-exception v0 monitor-exit p0 :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 throw v0 .end method .method public varargs onAdded([I)Z .locals 9 monitor-enter p0 :try_start_0 array-length v0, p1 const/4 v1, 0x0 const/4 v2, 0x0 :goto_0 if-ge v1, v0, :cond_1 aget v3, p1, v1 iget-object v4, p0, Landroidx/room/InvalidationTracker$ObservedTableTracker;->mTableObservers:[J aget-wide v5, v4, v3 const-wide/16 v7, 0x1 add-long/2addr v7, v5 aput-wide v7, v4, v3 const-wide/16 v3, 0x0 const/4 v7, 0x1 cmp-long v8, v5, v3 if-nez v8, :cond_0 iput-boolean v7, p0, Landroidx/room/InvalidationTracker$ObservedTableTracker;->mNeedsSync:Z const/4 v2, 0x1 :cond_0 add-int/lit8 v1, v1, 0x1 goto :goto_0 :cond_1 monitor-exit p0 return v2 :catchall_0 move-exception p1 monitor-exit p0 :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 throw p1 .end method .method public varargs onRemoved([I)Z .locals 11 monitor-enter p0 :try_start_0 array-length v0, p1 const/4 v1, 0x0 const/4 v2, 0x0 :goto_0 if-ge v1, v0, :cond_1 aget v3, p1, v1 iget-object v4, p0, Landroidx/room/InvalidationTracker$ObservedTableTracker;->mTableObservers:[J aget-wide v5, v4, v3 const-wide/16 v7, 0x1 sub-long v9, v5, v7 aput-wide v9, v4, v3 const/4 v3, 0x1 cmp-long v4, v5, v7 if-nez v4, :cond_0 iput-boolean v3, p0, Landroidx/room/InvalidationTracker$ObservedTableTracker;->mNeedsSync:Z const/4 v2, 0x1 :cond_0 add-int/lit8 v1, v1, 0x1 goto :goto_0 :cond_1 monitor-exit p0 return v2 :catchall_0 move-exception p1 monitor-exit p0 :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 throw p1 .end method .method public onSyncCompleted()V .locals 1 monitor-enter p0 const/4 v0, 0x0 :try_start_0 iput-boolean v0, p0, Landroidx/room/InvalidationTracker$ObservedTableTracker;->mPendingSync:Z monitor-exit p0 return-void :catchall_0 move-exception v0 monitor-exit p0 :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 throw v0 .end method