.class public final Landroidx/room/InvalidationTracker$ObservedTableTracker; .super Ljava/lang/Object; .source "SourceFile" # annotations .annotation system Ldalvik/annotation/EnclosingClass; value = Landroidx/room/InvalidationTracker; .end annotation .annotation system Ldalvik/annotation/InnerClass; accessFlags = 0x19 name = "ObservedTableTracker" .end annotation .annotation system Ldalvik/annotation/MemberClasses; value = { Landroidx/room/InvalidationTracker$ObservedTableTracker$Companion; } .end annotation .annotation build Lkotlin/jvm/internal/SourceDebugExtension; value = { "SMAP\nInvalidationTracker.kt\nKotlin\n*S Kotlin\n*F\n+ 1 InvalidationTracker.kt\nandroidx/room/InvalidationTracker$ObservedTableTracker\n+ 2 _Arrays.kt\nkotlin/collections/ArraysKt___ArraysKt\n*L\n1#1,840:1\n13600#2,2:841\n13600#2,2:843\n13684#2,3:845\n*S KotlinDebug\n*F\n+ 1 InvalidationTracker.kt\nandroidx/room/InvalidationTracker$ObservedTableTracker\n*L\n711#1:841,2\n729#1:843,2\n765#1:845,3\n*E\n" } .end annotation # static fields .field public static final ADD:I = 0x1 .field public static final Companion:Landroidx/room/InvalidationTracker$ObservedTableTracker$Companion; .field public static final NO_OP:I = 0x0 .field public static final REMOVE:I = 0x2 # instance fields .field private needsSync:Z .field private final tableObservers:[J .field private final triggerStateChanges:[I .field private final triggerStates:[Z # direct methods .method static constructor ()V .locals 2 new-instance v0, Landroidx/room/InvalidationTracker$ObservedTableTracker$Companion; const/4 v1, 0x0 invoke-direct {v0, v1}, Landroidx/room/InvalidationTracker$ObservedTableTracker$Companion;->(Lkotlin/jvm/internal/DefaultConstructorMarker;)V sput-object v0, Landroidx/room/InvalidationTracker$ObservedTableTracker;->Companion:Landroidx/room/InvalidationTracker$ObservedTableTracker$Companion; return-void .end method .method public constructor (I)V .locals 1 .line 692 invoke-direct {p0}, Ljava/lang/Object;->()V .line 694 new-array v0, p1, [J iput-object v0, p0, Landroidx/room/InvalidationTracker$ObservedTableTracker;->tableObservers:[J .line 698 new-array v0, p1, [Z iput-object v0, p0, Landroidx/room/InvalidationTracker$ObservedTableTracker;->triggerStates:[Z .line 701 new-array p1, p1, [I iput-object p1, p0, Landroidx/room/InvalidationTracker$ObservedTableTracker;->triggerStateChanges:[I return-void .end method # virtual methods .method public final getNeedsSync()Z .locals 1 iget-boolean v0, p0, Landroidx/room/InvalidationTracker$ObservedTableTracker;->needsSync:Z return v0 .end method .method public final getTableObservers()[J .locals 1 iget-object v0, p0, Landroidx/room/InvalidationTracker$ObservedTableTracker;->tableObservers:[J return-object v0 .end method .method public final getTablesToSync()[I .locals 10 .annotation build Landroidx/annotation/VisibleForTesting; .end annotation .line 761 monitor-enter p0 :try_start_0 iget-boolean v0, p0, Landroidx/room/InvalidationTracker$ObservedTableTracker;->needsSync:Z :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 if-nez v0, :cond_0 .line 763 monitor-exit p0 const/4 v0, 0x0 return-object v0 :cond_0 :try_start_1 iget-object v0, p0, Landroidx/room/InvalidationTracker$ObservedTableTracker;->tableObservers:[J .line 13685 array-length v1, v0 const/4 v2, 0x0 move v3, v2 move v4, v3 :goto_0 if-ge v3, v1, :cond_4 aget-wide v5, v0, v3 add-int/lit8 v7, v4, 0x1 const-wide/16 v8, 0x0 cmp-long v5, v5, v8 const/4 v6, 0x1 if-lez v5, :cond_1 move v5, v6 goto :goto_1 :cond_1 move v5, v2 :goto_1 iget-object v8, p0, Landroidx/room/InvalidationTracker$ObservedTableTracker;->triggerStates:[Z .line 767 aget-boolean v9, v8, v4 if-eq v5, v9, :cond_3 iget-object v9, p0, Landroidx/room/InvalidationTracker$ObservedTableTracker;->triggerStateChanges:[I if-eqz v5, :cond_2 goto :goto_2 :cond_2 const/4 v6, 0x2 .line 768 :goto_2 aput v6, v9, v4 goto :goto_3 :catchall_0 move-exception v0 goto :goto_4 :cond_3 iget-object v6, p0, Landroidx/room/InvalidationTracker$ObservedTableTracker;->triggerStateChanges:[I .line 770 aput v2, v6, v4 .line 772 :goto_3 aput-boolean v5, v8, v4 add-int/lit8 v3, v3, 0x1 move v4, v7 goto :goto_0 :cond_4 iput-boolean v2, p0, Landroidx/room/InvalidationTracker$ObservedTableTracker;->needsSync:Z iget-object v0, p0, Landroidx/room/InvalidationTracker$ObservedTableTracker;->triggerStateChanges:[I .line 775 invoke-virtual {v0}, Ljava/lang/Object;->clone()Ljava/lang/Object; move-result-object v0 check-cast v0, [I :try_end_1 .catchall {:try_start_1 .. :try_end_1} :catchall_0 monitor-exit p0 return-object v0 :goto_4 monitor-exit p0 throw v0 .end method .method public final varargs onAdded([I)Z .locals 9 const-string v0, "tableIds" invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V .line 710 monitor-enter p0 .line 13600 :try_start_0 array-length v0, p1 const/4 v1, 0x0 move v2, v1 :goto_0 if-ge v1, v0, :cond_1 aget v3, p1, v1 iget-object v4, p0, Landroidx/room/InvalidationTracker$ObservedTableTracker;->tableObservers:[J .line 712 aget-wide v5, v4, v3 const-wide/16 v7, 0x1 add-long/2addr v7, v5 .line 713 aput-wide v7, v4, v3 const-wide/16 v3, 0x0 cmp-long v3, v5, v3 if-nez v3, :cond_0 const/4 v2, 0x1 iput-boolean v2, p0, Landroidx/room/InvalidationTracker$ObservedTableTracker;->needsSync:Z goto :goto_1 :catchall_0 move-exception p1 goto :goto_2 :cond_0 :goto_1 add-int/lit8 v1, v1, 0x1 goto :goto_0 .line 719 :cond_1 sget-object p1, Lkotlin/Unit;->INSTANCE:Lkotlin/Unit; :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 .line 710 monitor-exit p0 return v2 :goto_2 monitor-exit p0 throw p1 .end method .method public final varargs onRemoved([I)Z .locals 11 const-string v0, "tableIds" invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V .line 728 monitor-enter p0 .line 13600 :try_start_0 array-length v0, p1 const/4 v1, 0x0 move v2, v1 :goto_0 if-ge v1, v0, :cond_1 aget v3, p1, v1 iget-object v4, p0, Landroidx/room/InvalidationTracker$ObservedTableTracker;->tableObservers:[J .line 730 aget-wide v5, v4, v3 const-wide/16 v7, 0x1 sub-long v9, v5, v7 .line 731 aput-wide v9, v4, v3 cmp-long v3, v5, v7 if-nez v3, :cond_0 const/4 v2, 0x1 iput-boolean v2, p0, Landroidx/room/InvalidationTracker$ObservedTableTracker;->needsSync:Z goto :goto_1 :catchall_0 move-exception p1 goto :goto_2 :cond_0 :goto_1 add-int/lit8 v1, v1, 0x1 goto :goto_0 .line 737 :cond_1 sget-object p1, Lkotlin/Unit;->INSTANCE:Lkotlin/Unit; :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 .line 728 monitor-exit p0 return v2 :goto_2 monitor-exit p0 throw p1 .end method .method public final resetTriggerState()V .locals 2 .line 746 monitor-enter p0 :try_start_0 iget-object v0, p0, Landroidx/room/InvalidationTracker$ObservedTableTracker;->triggerStates:[Z const/4 v1, 0x0 .line 747 invoke-static {v0, v1}, Ljava/util/Arrays;->fill([ZZ)V const/4 v0, 0x1 iput-boolean v0, p0, Landroidx/room/InvalidationTracker$ObservedTableTracker;->needsSync:Z .line 749 sget-object v0, Lkotlin/Unit;->INSTANCE:Lkotlin/Unit; :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 .line 746 monitor-exit p0 return-void :catchall_0 move-exception v0 monitor-exit p0 throw v0 .end method .method public final setNeedsSync(Z)V .locals 0 iput-boolean p1, p0, Landroidx/room/InvalidationTracker$ObservedTableTracker;->needsSync:Z return-void .end method