what-the-bank/sources/com/google/firebase/firestore/remote/FirestoreChannel.java

174 lines
8.1 KiB
Java

package com.google.firebase.firestore.remote;
import android.content.Context;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.firestore.auth.CredentialsProvider;
import com.google.firebase.firestore.auth.User;
import com.google.firebase.firestore.core.DatabaseInfo;
import com.google.firebase.firestore.model.DatabaseId;
import com.google.firebase.firestore.util.Assert;
import com.google.firebase.firestore.util.AsyncQueue;
import io.grpc.ClientCall;
import io.grpc.ForwardingClientCall;
import io.grpc.Metadata;
import io.grpc.MethodDescriptor;
import io.grpc.Status;
/* loaded from: classes2.dex */
public class FirestoreChannel {
private final CredentialsProvider<String> appCheckProvider;
private final AsyncQueue asyncQueue;
private final CredentialsProvider<User> authProvider;
private final GrpcCallProvider callProvider;
private final GrpcMetadataProvider metadataProvider;
private final String resourcePrefixValue;
private static final Metadata.Key<String> X_GOOG_API_CLIENT_HEADER = Metadata.Key.of("x-goog-api-client", Metadata.ASCII_STRING_MARSHALLER);
private static final Metadata.Key<String> RESOURCE_PREFIX_HEADER = Metadata.Key.of("google-cloud-resource-prefix", Metadata.ASCII_STRING_MARSHALLER);
private static final Metadata.Key<String> X_GOOG_REQUEST_PARAMS_HEADER = Metadata.Key.of("x-goog-request-params", Metadata.ASCII_STRING_MARSHALLER);
private static volatile String clientLanguage = "gl-java/";
/* JADX INFO: Access modifiers changed from: package-private */
public FirestoreChannel(AsyncQueue asyncQueue, Context context, CredentialsProvider<User> credentialsProvider, CredentialsProvider<String> credentialsProvider2, DatabaseInfo databaseInfo, GrpcMetadataProvider grpcMetadataProvider) {
this.asyncQueue = asyncQueue;
this.metadataProvider = grpcMetadataProvider;
this.authProvider = credentialsProvider;
this.appCheckProvider = credentialsProvider2;
this.callProvider = new GrpcCallProvider(asyncQueue, context, databaseInfo, new FirestoreCallCredentials(credentialsProvider, credentialsProvider2));
DatabaseId databaseId = databaseInfo.getDatabaseId();
this.resourcePrefixValue = String.format("projects/%s/databases/%s", databaseId.getProjectId(), databaseId.getDatabaseId());
}
/* JADX INFO: Access modifiers changed from: package-private */
public <ReqT, RespT> ClientCall<ReqT, RespT> runBidiStreamingRpc(MethodDescriptor<ReqT, RespT> methodDescriptor, final IncomingStreamObserver<RespT> incomingStreamObserver) {
final ClientCall[] clientCallArr = {null};
Task<ClientCall<ReqT, RespT>> createClientCall = this.callProvider.createClientCall(methodDescriptor);
createClientCall.addOnCompleteListener(this.asyncQueue.getExecutor(), new OnCompleteListener(this, clientCallArr, incomingStreamObserver) { // from class: com.google.firebase.firestore.remote.FirestoreChannel$$ExternalSyntheticLambda2
public final FirestoreChannel f$0;
public final ClientCall[] f$1;
public final IncomingStreamObserver f$2;
@Override // com.google.android.gms.tasks.OnCompleteListener
public final void onComplete(Task task) {
this.f$0.m243xae2b8084(this.f$1, this.f$2, task);
}
{
this.f$0 = this;
this.f$1 = clientCallArr;
this.f$2 = incomingStreamObserver;
}
});
return new AnonymousClass2(this, clientCallArr, createClientCall);
}
/* JADX INFO: Access modifiers changed from: package-private */
/* renamed from: lambda$runBidiStreamingRpc$0$com-google-firebase-firestore-remote-FirestoreChannel, reason: not valid java name */
public /* synthetic */ void m243xae2b8084(ClientCall[] clientCallArr, IncomingStreamObserver incomingStreamObserver, Task task) {
ClientCall clientCall = (ClientCall) task.getResult();
clientCallArr[0] = clientCall;
clientCall.start(new ClientCall.Listener<RespT>(this, incomingStreamObserver, clientCallArr) { // from class: com.google.firebase.firestore.remote.FirestoreChannel.1
final FirestoreChannel this$0;
final ClientCall[] val$call;
final IncomingStreamObserver val$observer;
@Override // io.grpc.ClientCall.Listener
public void onReady() {
}
{
this.this$0 = this;
this.val$observer = incomingStreamObserver;
this.val$call = clientCallArr;
}
@Override // io.grpc.ClientCall.Listener
public void onHeaders(Metadata metadata) {
try {
this.val$observer.onHeaders(metadata);
} catch (Throwable th) {
this.this$0.asyncQueue.panic(th);
}
}
@Override // io.grpc.ClientCall.Listener
public void onMessage(RespT respt) {
try {
this.val$observer.onNext(respt);
this.val$call[0].request(1);
} catch (Throwable th) {
this.this$0.asyncQueue.panic(th);
}
}
@Override // io.grpc.ClientCall.Listener
public void onClose(Status status, Metadata metadata) {
try {
this.val$observer.onClose(status);
} catch (Throwable th) {
this.this$0.asyncQueue.panic(th);
}
}
}, requestHeaders());
incomingStreamObserver.onOpen();
clientCallArr[0].request(1);
}
/* JADX INFO: Add missing generic type declarations: [ReqT, RespT] */
/* renamed from: com.google.firebase.firestore.remote.FirestoreChannel$2, reason: invalid class name */
/* loaded from: classes2.dex */
class AnonymousClass2<ReqT, RespT> extends ForwardingClientCall<ReqT, RespT> {
final FirestoreChannel this$0;
final ClientCall[] val$call;
final Task val$clientCall;
AnonymousClass2(FirestoreChannel firestoreChannel, ClientCall[] clientCallArr, Task task) {
this.this$0 = firestoreChannel;
this.val$call = clientCallArr;
this.val$clientCall = task;
}
@Override // io.grpc.ForwardingClientCall, io.grpc.PartialForwardingClientCall
public ClientCall<ReqT, RespT> delegate() {
Assert.hardAssert(this.val$call[0] != null, "ClientCall used before onOpen() callback", new Object[0]);
return this.val$call[0];
}
@Override // io.grpc.ForwardingClientCall, io.grpc.PartialForwardingClientCall, io.grpc.ClientCall
public void halfClose() {
if (this.val$call[0] == null) {
this.val$clientCall.addOnSuccessListener(this.this$0.asyncQueue.getExecutor(), new OnSuccessListener() { // from class: com.google.firebase.firestore.remote.FirestoreChannel$2$$ExternalSyntheticLambda0
@Override // com.google.android.gms.tasks.OnSuccessListener
public final void onSuccess(Object obj) {
((ClientCall) obj).halfClose();
}
});
} else {
super.halfClose();
}
}
}
public void invalidateToken() {
this.authProvider.invalidateToken();
this.appCheckProvider.invalidateToken();
}
private String getGoogApiClientValue() {
return String.format("%s fire/%s grpc/", clientLanguage, "24.3.0");
}
private Metadata requestHeaders() {
Metadata metadata = new Metadata();
metadata.put(X_GOOG_API_CLIENT_HEADER, getGoogApiClientValue());
metadata.put(RESOURCE_PREFIX_HEADER, this.resourcePrefixValue);
metadata.put(X_GOOG_REQUEST_PARAMS_HEADER, this.resourcePrefixValue);
GrpcMetadataProvider grpcMetadataProvider = this.metadataProvider;
if (grpcMetadataProvider != null) {
grpcMetadataProvider.updateMetadata(metadata);
}
return metadata;
}
}