discord-jadx/app/src/main/java/androidx/room/MultiInstanceInvalidationSe...

98 lines
4.9 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.annotation.Nullable;
import androidx.annotation.RestrictTo;
import androidx.room.IMultiInstanceInvalidationService;
import java.util.HashMap;
@RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX})
public class MultiInstanceInvalidationService extends Service {
private final IMultiInstanceInvalidationService.Stub mBinder = new AnonymousClass2();
public final RemoteCallbackList<IMultiInstanceInvalidationCallback> mCallbackList = new AnonymousClass1();
public final HashMap<Integer, String> mClientNames = new HashMap<>();
public int mMaxClientId = 0;
/* renamed from: androidx.room.MultiInstanceInvalidationService$1 reason: invalid class name */
public class AnonymousClass1 extends RemoteCallbackList<IMultiInstanceInvalidationCallback> {
public AnonymousClass1() {
}
public void onCallbackDied(IMultiInstanceInvalidationCallback iMultiInstanceInvalidationCallback, Object obj) {
MultiInstanceInvalidationService.this.mClientNames.remove(Integer.valueOf(((Integer) obj).intValue()));
}
}
/* renamed from: androidx.room.MultiInstanceInvalidationService$2 reason: invalid class name */
public class AnonymousClass2 extends IMultiInstanceInvalidationService.Stub {
public AnonymousClass2() {
}
@Override // androidx.room.IMultiInstanceInvalidationService
public void broadcastInvalidation(int i, String[] strArr) {
synchronized (MultiInstanceInvalidationService.this.mCallbackList) {
String str = MultiInstanceInvalidationService.this.mClientNames.get(Integer.valueOf(i));
if (str == null) {
Log.w("ROOM", "Remote invalidation client ID not registered");
return;
}
int beginBroadcast = MultiInstanceInvalidationService.this.mCallbackList.beginBroadcast();
for (int i2 = 0; i2 < beginBroadcast; i2++) {
try {
int intValue = ((Integer) MultiInstanceInvalidationService.this.mCallbackList.getBroadcastCookie(i2)).intValue();
String str2 = MultiInstanceInvalidationService.this.mClientNames.get(Integer.valueOf(intValue));
if (i != intValue && str.equals(str2)) {
try {
MultiInstanceInvalidationService.this.mCallbackList.getBroadcastItem(i2).onInvalidation(strArr);
} catch (RemoteException e) {
Log.w("ROOM", "Error invoking a remote callback", e);
}
}
} catch (Throwable th) {
MultiInstanceInvalidationService.this.mCallbackList.finishBroadcast();
throw th;
}
}
MultiInstanceInvalidationService.this.mCallbackList.finishBroadcast();
}
}
@Override // androidx.room.IMultiInstanceInvalidationService
public int registerCallback(IMultiInstanceInvalidationCallback iMultiInstanceInvalidationCallback, String str) {
if (str == null) {
return 0;
}
synchronized (MultiInstanceInvalidationService.this.mCallbackList) {
MultiInstanceInvalidationService multiInstanceInvalidationService = MultiInstanceInvalidationService.this;
int i = multiInstanceInvalidationService.mMaxClientId + 1;
multiInstanceInvalidationService.mMaxClientId = i;
if (multiInstanceInvalidationService.mCallbackList.register(iMultiInstanceInvalidationCallback, Integer.valueOf(i))) {
MultiInstanceInvalidationService.this.mClientNames.put(Integer.valueOf(i), str);
return i;
}
MultiInstanceInvalidationService multiInstanceInvalidationService2 = MultiInstanceInvalidationService.this;
multiInstanceInvalidationService2.mMaxClientId--;
return 0;
}
}
@Override // androidx.room.IMultiInstanceInvalidationService
public void unregisterCallback(IMultiInstanceInvalidationCallback iMultiInstanceInvalidationCallback, int i) {
synchronized (MultiInstanceInvalidationService.this.mCallbackList) {
MultiInstanceInvalidationService.this.mCallbackList.unregister(iMultiInstanceInvalidationCallback);
MultiInstanceInvalidationService.this.mClientNames.remove(Integer.valueOf(i));
}
}
}
@Override // android.app.Service
@Nullable
public IBinder onBind(Intent intent) {
return this.mBinder;
}
}