Files
rr3-apk/decompiled/sources/androidx/room/MultiInstanceInvalidationService.java
Daniel Elliott f9d20bb3fc Add decompiled APK source code (JADX)
- 28,932 files
- Full Java source code
- Smali files
- Resources

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-18 14:52:23 -08:00

125 lines
7.0 KiB
Java

package androidx.room;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.os.RemoteCallbackList;
import android.os.RemoteException;
import android.util.Log;
import androidx.room.IMultiInstanceInvalidationService;
import java.util.LinkedHashMap;
import java.util.Map;
import kotlin.Unit;
import kotlin.jvm.internal.Intrinsics;
@ExperimentalRoomApi
/* loaded from: classes.dex */
public final class MultiInstanceInvalidationService extends Service {
private int maxClientId;
private final Map<Integer, String> clientNames = new LinkedHashMap();
private final RemoteCallbackList<IMultiInstanceInvalidationCallback> callbackList = new RemoteCallbackList<IMultiInstanceInvalidationCallback>() { // from class: androidx.room.MultiInstanceInvalidationService$callbackList$1
@Override // android.os.RemoteCallbackList
public void onCallbackDied(IMultiInstanceInvalidationCallback callback, Object cookie) {
Intrinsics.checkNotNullParameter(callback, "callback");
Intrinsics.checkNotNullParameter(cookie, "cookie");
MultiInstanceInvalidationService.this.getClientNames$room_runtime_release().remove((Integer) cookie);
}
};
private final IMultiInstanceInvalidationService.Stub binder = new IMultiInstanceInvalidationService.Stub() { // from class: androidx.room.MultiInstanceInvalidationService$binder$1
@Override // androidx.room.IMultiInstanceInvalidationService
public int registerCallback(IMultiInstanceInvalidationCallback callback, String str) {
Intrinsics.checkNotNullParameter(callback, "callback");
int i = 0;
if (str == null) {
return 0;
}
RemoteCallbackList<IMultiInstanceInvalidationCallback> callbackList$room_runtime_release = MultiInstanceInvalidationService.this.getCallbackList$room_runtime_release();
MultiInstanceInvalidationService multiInstanceInvalidationService = MultiInstanceInvalidationService.this;
synchronized (callbackList$room_runtime_release) {
try {
multiInstanceInvalidationService.setMaxClientId$room_runtime_release(multiInstanceInvalidationService.getMaxClientId$room_runtime_release() + 1);
int maxClientId$room_runtime_release = multiInstanceInvalidationService.getMaxClientId$room_runtime_release();
if (multiInstanceInvalidationService.getCallbackList$room_runtime_release().register(callback, Integer.valueOf(maxClientId$room_runtime_release))) {
multiInstanceInvalidationService.getClientNames$room_runtime_release().put(Integer.valueOf(maxClientId$room_runtime_release), str);
i = maxClientId$room_runtime_release;
} else {
multiInstanceInvalidationService.setMaxClientId$room_runtime_release(multiInstanceInvalidationService.getMaxClientId$room_runtime_release() - 1);
multiInstanceInvalidationService.getMaxClientId$room_runtime_release();
}
} catch (Throwable th) {
throw th;
}
}
return i;
}
@Override // androidx.room.IMultiInstanceInvalidationService
public void unregisterCallback(IMultiInstanceInvalidationCallback callback, int i) {
Intrinsics.checkNotNullParameter(callback, "callback");
RemoteCallbackList<IMultiInstanceInvalidationCallback> callbackList$room_runtime_release = MultiInstanceInvalidationService.this.getCallbackList$room_runtime_release();
MultiInstanceInvalidationService multiInstanceInvalidationService = MultiInstanceInvalidationService.this;
synchronized (callbackList$room_runtime_release) {
multiInstanceInvalidationService.getCallbackList$room_runtime_release().unregister(callback);
multiInstanceInvalidationService.getClientNames$room_runtime_release().remove(Integer.valueOf(i));
}
}
@Override // androidx.room.IMultiInstanceInvalidationService
public void broadcastInvalidation(int i, String[] tables) {
Intrinsics.checkNotNullParameter(tables, "tables");
RemoteCallbackList<IMultiInstanceInvalidationCallback> callbackList$room_runtime_release = MultiInstanceInvalidationService.this.getCallbackList$room_runtime_release();
MultiInstanceInvalidationService multiInstanceInvalidationService = MultiInstanceInvalidationService.this;
synchronized (callbackList$room_runtime_release) {
String str = multiInstanceInvalidationService.getClientNames$room_runtime_release().get(Integer.valueOf(i));
if (str == null) {
Log.w(Room.LOG_TAG, "Remote invalidation client ID not registered");
return;
}
int beginBroadcast = multiInstanceInvalidationService.getCallbackList$room_runtime_release().beginBroadcast();
for (int i2 = 0; i2 < beginBroadcast; i2++) {
try {
Object broadcastCookie = multiInstanceInvalidationService.getCallbackList$room_runtime_release().getBroadcastCookie(i2);
Intrinsics.checkNotNull(broadcastCookie, "null cannot be cast to non-null type kotlin.Int");
int intValue = ((Integer) broadcastCookie).intValue();
String str2 = multiInstanceInvalidationService.getClientNames$room_runtime_release().get(Integer.valueOf(intValue));
if (i != intValue && Intrinsics.areEqual(str, str2)) {
try {
multiInstanceInvalidationService.getCallbackList$room_runtime_release().getBroadcastItem(i2).onInvalidation(tables);
} catch (RemoteException e) {
Log.w(Room.LOG_TAG, "Error invoking a remote callback", e);
}
}
} catch (Throwable th) {
multiInstanceInvalidationService.getCallbackList$room_runtime_release().finishBroadcast();
throw th;
}
}
multiInstanceInvalidationService.getCallbackList$room_runtime_release().finishBroadcast();
Unit unit = Unit.INSTANCE;
}
}
};
public final RemoteCallbackList<IMultiInstanceInvalidationCallback> getCallbackList$room_runtime_release() {
return this.callbackList;
}
public final Map<Integer, String> getClientNames$room_runtime_release() {
return this.clientNames;
}
public final int getMaxClientId$room_runtime_release() {
return this.maxClientId;
}
@Override // android.app.Service
public IBinder onBind(Intent intent) {
Intrinsics.checkNotNullParameter(intent, "intent");
return this.binder;
}
public final void setMaxClientId$room_runtime_release(int i) {
this.maxClientId = i;
}
}