Files
rr3-apk/decompiled-community/sources/androidx/room/RoomTrackingLiveData.java
Daniel Elliott c080f0d97f Add Discord community version (64-bit only)
- Added realracing3-community.apk (71.57 MB)
- Removed 32-bit support (armeabi-v7a)
- Only includes arm64-v8a libraries
- Decompiled source code included
- Added README-community.md with analysis
2026-02-18 15:48:36 -08:00

159 lines
6.1 KiB
Java

package androidx.room;
import android.annotation.SuppressLint;
import androidx.arch.core.executor.ArchTaskExecutor;
import androidx.lifecycle.LiveData;
import androidx.room.InvalidationTracker;
import java.util.Set;
import java.util.concurrent.Callable;
import java.util.concurrent.Executor;
import java.util.concurrent.atomic.AtomicBoolean;
import kotlin.jvm.internal.Intrinsics;
@SuppressLint({"RestrictedApi"})
/* loaded from: classes.dex */
public final class RoomTrackingLiveData<T> extends LiveData<T> {
private final Callable<T> computeFunction;
private final AtomicBoolean computing;
private final InvalidationLiveDataContainer container;
private final RoomDatabase database;
private final boolean inTransaction;
private final AtomicBoolean invalid;
private final Runnable invalidationRunnable;
private final InvalidationTracker.Observer observer;
private final Runnable refreshRunnable;
private final AtomicBoolean registeredObserver;
public final Callable<T> getComputeFunction() {
return this.computeFunction;
}
public final AtomicBoolean getComputing() {
return this.computing;
}
public final RoomDatabase getDatabase() {
return this.database;
}
public final boolean getInTransaction() {
return this.inTransaction;
}
public final AtomicBoolean getInvalid() {
return this.invalid;
}
public final Runnable getInvalidationRunnable() {
return this.invalidationRunnable;
}
public final InvalidationTracker.Observer getObserver() {
return this.observer;
}
public final Runnable getRefreshRunnable() {
return this.refreshRunnable;
}
public final AtomicBoolean getRegisteredObserver() {
return this.registeredObserver;
}
public RoomTrackingLiveData(RoomDatabase database, InvalidationLiveDataContainer container, boolean z, Callable<T> computeFunction, final String[] tableNames) {
Intrinsics.checkNotNullParameter(database, "database");
Intrinsics.checkNotNullParameter(container, "container");
Intrinsics.checkNotNullParameter(computeFunction, "computeFunction");
Intrinsics.checkNotNullParameter(tableNames, "tableNames");
this.database = database;
this.container = container;
this.inTransaction = z;
this.computeFunction = computeFunction;
this.observer = new InvalidationTracker.Observer(tableNames) { // from class: androidx.room.RoomTrackingLiveData$observer$1
@Override // androidx.room.InvalidationTracker.Observer
public void onInvalidated(Set<String> tables) {
Intrinsics.checkNotNullParameter(tables, "tables");
ArchTaskExecutor.getInstance().executeOnMainThread(this.getInvalidationRunnable());
}
};
this.invalid = new AtomicBoolean(true);
this.computing = new AtomicBoolean(false);
this.registeredObserver = new AtomicBoolean(false);
this.refreshRunnable = new Runnable() { // from class: androidx.room.RoomTrackingLiveData$$ExternalSyntheticLambda0
@Override // java.lang.Runnable
public final void run() {
RoomTrackingLiveData.refreshRunnable$lambda$0(RoomTrackingLiveData.this);
}
};
this.invalidationRunnable = new Runnable() { // from class: androidx.room.RoomTrackingLiveData$$ExternalSyntheticLambda1
@Override // java.lang.Runnable
public final void run() {
RoomTrackingLiveData.invalidationRunnable$lambda$1(RoomTrackingLiveData.this);
}
};
}
/* JADX INFO: Access modifiers changed from: private */
public static final void refreshRunnable$lambda$0(RoomTrackingLiveData this$0) {
Intrinsics.checkNotNullParameter(this$0, "this$0");
if (this$0.registeredObserver.compareAndSet(false, true)) {
this$0.database.getInvalidationTracker().addWeakObserver(this$0.observer);
}
while (this$0.computing.compareAndSet(false, true)) {
T t = null;
boolean z = false;
while (this$0.invalid.compareAndSet(true, false)) {
try {
try {
t = this$0.computeFunction.call();
z = true;
} catch (Exception e) {
throw new RuntimeException("Exception while computing database live data.", e);
}
} finally {
this$0.computing.set(false);
}
}
if (z) {
this$0.postValue(t);
}
if (!z || !this$0.invalid.get()) {
return;
}
}
}
/* JADX INFO: Access modifiers changed from: private */
public static final void invalidationRunnable$lambda$1(RoomTrackingLiveData this$0) {
Intrinsics.checkNotNullParameter(this$0, "this$0");
boolean hasActiveObservers = this$0.hasActiveObservers();
if (this$0.invalid.compareAndSet(false, true) && hasActiveObservers) {
this$0.getQueryExecutor().execute(this$0.refreshRunnable);
}
}
@Override // androidx.lifecycle.LiveData
public void onActive() {
super.onActive();
InvalidationLiveDataContainer invalidationLiveDataContainer = this.container;
Intrinsics.checkNotNull(this, "null cannot be cast to non-null type androidx.lifecycle.LiveData<kotlin.Any>");
invalidationLiveDataContainer.onActive(this);
getQueryExecutor().execute(this.refreshRunnable);
}
@Override // androidx.lifecycle.LiveData
public void onInactive() {
super.onInactive();
InvalidationLiveDataContainer invalidationLiveDataContainer = this.container;
Intrinsics.checkNotNull(this, "null cannot be cast to non-null type androidx.lifecycle.LiveData<kotlin.Any>");
invalidationLiveDataContainer.onInactive(this);
}
public final Executor getQueryExecutor() {
if (this.inTransaction) {
return this.database.getTransactionExecutor();
}
return this.database.getQueryExecutor();
}
}