Files
rr3-apk/decompiled-community/sources/androidx/room/MultiInstanceInvalidationClient.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

198 lines
8.8 KiB
Java

package androidx.room;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.IBinder;
import android.os.RemoteException;
import android.util.Log;
import androidx.room.IMultiInstanceInvalidationService;
import androidx.room.InvalidationTracker;
import java.util.Set;
import java.util.concurrent.Executor;
import java.util.concurrent.atomic.AtomicBoolean;
import kotlin.jvm.internal.Intrinsics;
import kotlin.jvm.internal.SourceDebugExtension;
@SourceDebugExtension({"SMAP\nMultiInstanceInvalidationClient.kt\nKotlin\n*S Kotlin\n*F\n+ 1 MultiInstanceInvalidationClient.kt\nandroidx/room/MultiInstanceInvalidationClient\n+ 2 ArraysJVM.kt\nkotlin/collections/ArraysKt__ArraysJVMKt\n*L\n1#1,130:1\n37#2,2:131\n*S KotlinDebug\n*F\n+ 1 MultiInstanceInvalidationClient.kt\nandroidx/room/MultiInstanceInvalidationClient\n*L\n95#1:131,2\n*E\n"})
/* loaded from: classes.dex */
public final class MultiInstanceInvalidationClient {
private final Context appContext;
private final IMultiInstanceInvalidationCallback callback;
private int clientId;
private final Executor executor;
private final InvalidationTracker invalidationTracker;
private final String name;
public InvalidationTracker.Observer observer;
private final Runnable removeObserverRunnable;
private IMultiInstanceInvalidationService service;
private final ServiceConnection serviceConnection;
private final Runnable setUpRunnable;
private final AtomicBoolean stopped;
public final IMultiInstanceInvalidationCallback getCallback() {
return this.callback;
}
public final int getClientId() {
return this.clientId;
}
public final Executor getExecutor() {
return this.executor;
}
public final InvalidationTracker getInvalidationTracker() {
return this.invalidationTracker;
}
public final String getName() {
return this.name;
}
public final Runnable getRemoveObserverRunnable() {
return this.removeObserverRunnable;
}
public final IMultiInstanceInvalidationService getService() {
return this.service;
}
public final ServiceConnection getServiceConnection() {
return this.serviceConnection;
}
public final Runnable getSetUpRunnable() {
return this.setUpRunnable;
}
public final AtomicBoolean getStopped() {
return this.stopped;
}
public final void setClientId(int i) {
this.clientId = i;
}
public final void setObserver(InvalidationTracker.Observer observer) {
Intrinsics.checkNotNullParameter(observer, "<set-?>");
this.observer = observer;
}
public final void setService(IMultiInstanceInvalidationService iMultiInstanceInvalidationService) {
this.service = iMultiInstanceInvalidationService;
}
public MultiInstanceInvalidationClient(Context context, String name, Intent serviceIntent, InvalidationTracker invalidationTracker, Executor executor) {
Intrinsics.checkNotNullParameter(context, "context");
Intrinsics.checkNotNullParameter(name, "name");
Intrinsics.checkNotNullParameter(serviceIntent, "serviceIntent");
Intrinsics.checkNotNullParameter(invalidationTracker, "invalidationTracker");
Intrinsics.checkNotNullParameter(executor, "executor");
this.name = name;
this.invalidationTracker = invalidationTracker;
this.executor = executor;
Context applicationContext = context.getApplicationContext();
this.appContext = applicationContext;
this.callback = new MultiInstanceInvalidationClient$callback$1(this);
this.stopped = new AtomicBoolean(false);
ServiceConnection serviceConnection = new ServiceConnection() { // from class: androidx.room.MultiInstanceInvalidationClient$serviceConnection$1
@Override // android.content.ServiceConnection
public void onServiceConnected(ComponentName name2, IBinder service) {
Intrinsics.checkNotNullParameter(name2, "name");
Intrinsics.checkNotNullParameter(service, "service");
MultiInstanceInvalidationClient.this.setService(IMultiInstanceInvalidationService.Stub.asInterface(service));
MultiInstanceInvalidationClient.this.getExecutor().execute(MultiInstanceInvalidationClient.this.getSetUpRunnable());
}
@Override // android.content.ServiceConnection
public void onServiceDisconnected(ComponentName name2) {
Intrinsics.checkNotNullParameter(name2, "name");
MultiInstanceInvalidationClient.this.getExecutor().execute(MultiInstanceInvalidationClient.this.getRemoveObserverRunnable());
MultiInstanceInvalidationClient.this.setService(null);
}
};
this.serviceConnection = serviceConnection;
this.setUpRunnable = new Runnable() { // from class: androidx.room.MultiInstanceInvalidationClient$$ExternalSyntheticLambda0
@Override // java.lang.Runnable
public final void run() {
MultiInstanceInvalidationClient.setUpRunnable$lambda$1(MultiInstanceInvalidationClient.this);
}
};
this.removeObserverRunnable = new Runnable() { // from class: androidx.room.MultiInstanceInvalidationClient$$ExternalSyntheticLambda1
@Override // java.lang.Runnable
public final void run() {
MultiInstanceInvalidationClient.removeObserverRunnable$lambda$2(MultiInstanceInvalidationClient.this);
}
};
setObserver(new InvalidationTracker.Observer((String[]) invalidationTracker.getTableIdLookup$room_runtime_release().keySet().toArray(new String[0])) { // from class: androidx.room.MultiInstanceInvalidationClient.1
@Override // androidx.room.InvalidationTracker.Observer
public boolean isRemote$room_runtime_release() {
return true;
}
@Override // androidx.room.InvalidationTracker.Observer
public void onInvalidated(Set<String> tables) {
Intrinsics.checkNotNullParameter(tables, "tables");
if (MultiInstanceInvalidationClient.this.getStopped().get()) {
return;
}
try {
IMultiInstanceInvalidationService service = MultiInstanceInvalidationClient.this.getService();
if (service != null) {
service.broadcastInvalidation(MultiInstanceInvalidationClient.this.getClientId(), (String[]) tables.toArray(new String[0]));
}
} catch (RemoteException e) {
Log.w(Room.LOG_TAG, "Cannot broadcast invalidation", e);
}
}
});
applicationContext.bindService(serviceIntent, serviceConnection, 1);
}
public final InvalidationTracker.Observer getObserver() {
InvalidationTracker.Observer observer = this.observer;
if (observer != null) {
return observer;
}
Intrinsics.throwUninitializedPropertyAccessException("observer");
return null;
}
/* JADX INFO: Access modifiers changed from: private */
public static final void setUpRunnable$lambda$1(MultiInstanceInvalidationClient this$0) {
Intrinsics.checkNotNullParameter(this$0, "this$0");
try {
IMultiInstanceInvalidationService iMultiInstanceInvalidationService = this$0.service;
if (iMultiInstanceInvalidationService != null) {
this$0.clientId = iMultiInstanceInvalidationService.registerCallback(this$0.callback, this$0.name);
this$0.invalidationTracker.addObserver(this$0.getObserver());
}
} catch (RemoteException e) {
Log.w(Room.LOG_TAG, "Cannot register multi-instance invalidation callback", e);
}
}
/* JADX INFO: Access modifiers changed from: private */
public static final void removeObserverRunnable$lambda$2(MultiInstanceInvalidationClient this$0) {
Intrinsics.checkNotNullParameter(this$0, "this$0");
this$0.invalidationTracker.removeObserver(this$0.getObserver());
}
public final void stop() {
if (this.stopped.compareAndSet(false, true)) {
this.invalidationTracker.removeObserver(getObserver());
try {
IMultiInstanceInvalidationService iMultiInstanceInvalidationService = this.service;
if (iMultiInstanceInvalidationService != null) {
iMultiInstanceInvalidationService.unregisterCallback(this.callback, this.clientId);
}
} catch (RemoteException e) {
Log.w(Room.LOG_TAG, "Cannot unregister multi-instance invalidation callback", e);
}
this.appContext.unbindService(this.serviceConnection);
}
}
}