package com.google.firebase.firestore.remote;

import Z0.o;
import android.content.Context;
import androidx.media3.common.C1118r;
import com.google.android.gms.tasks.Task;
import com.google.android.gms.tasks.TaskCompletionSource;
import com.google.firebase.firestore.FirebaseFirestoreException;
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 com.google.firebase.firestore.util.Util;
import java.util.BitSet;
import k4.AbstractC2383B;
import k4.AbstractC2396i;
import k4.AbstractC2397j;
import k4.C2401n;
import k4.b0;
import k4.d0;
import k4.g0;
import k4.i0;
import k4.r0;
import q.AbstractC2761L;

/* JADX INFO: loaded from: classes3.dex */
public class FirestoreChannel {
    private static final d0 RESOURCE_PREFIX_HEADER;
    private static final d0 X_GOOG_API_CLIENT_HEADER;
    private static final d0 X_GOOG_REQUEST_PARAMS_HEADER;
    private static volatile String clientLanguage;
    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;

    static {
        C2401n c2401n = g0.f19867d;
        BitSet bitSet = d0.f19844d;
        X_GOOG_API_CLIENT_HEADER = new b0("x-goog-api-client", c2401n);
        RESOURCE_PREFIX_HEADER = new b0("google-cloud-resource-prefix", c2401n);
        X_GOOG_REQUEST_PARAMS_HEADER = new b0("x-goog-request-params", c2401n);
        clientLanguage = "gl-java/";
    }

    public FirestoreChannel(AsyncQueue asyncQueue, Context context, CredentialsProvider<User> credentialsProvider, CredentialsProvider<String> credentialsProvider2, DatabaseInfo databaseInfo, GrpcMetadataProvider grpcMetadataProvider) {
        this(asyncQueue, credentialsProvider, credentialsProvider2, databaseInfo.getDatabaseId(), grpcMetadataProvider, getGrpcCallProvider(asyncQueue, context, credentialsProvider, credentialsProvider2, databaseInfo));
    }

    /* JADX INFO: Access modifiers changed from: private */
    public FirebaseFirestoreException exceptionFromStatus(r0 r0Var) {
        return Datastore.isMissingSslCiphers(r0Var) ? new FirebaseFirestoreException("The Cloud Firestore client failed to establish a secure connection. This is likely a problem with your app, rather than with Cloud Firestore itself. See https://bit.ly/2XFpdma for instructions on how to enable TLS on Android 4.x devices.", FirebaseFirestoreException.Code.fromValue(r0Var.f19949a.f19933a), r0Var.f19951c) : Util.exceptionFromStatus(r0Var);
    }

    private String getGoogApiClientValue() {
        return o.n(clientLanguage, " fire/25.1.2 grpc/");
    }

    private static GrpcCallProvider getGrpcCallProvider(AsyncQueue asyncQueue, Context context, CredentialsProvider<User> credentialsProvider, CredentialsProvider<String> credentialsProvider2, DatabaseInfo databaseInfo) {
        return new GrpcCallProvider(asyncQueue, context, databaseInfo, new FirestoreCallCredentials(credentialsProvider, credentialsProvider2));
    }

    /* JADX INFO: Access modifiers changed from: private */
    public /* synthetic */ void lambda$runBidiStreamingRpc$0(final AbstractC2397j[] abstractC2397jArr, final IncomingStreamObserver incomingStreamObserver, Task task) {
        AbstractC2397j abstractC2397j = (AbstractC2397j) task.getResult();
        abstractC2397jArr[0] = abstractC2397j;
        abstractC2397j.start(new AbstractC2396i() { // from class: com.google.firebase.firestore.remote.FirestoreChannel.1
            @Override // k4.AbstractC2396i
            public void onClose(r0 r0Var, g0 g0Var) {
                try {
                    incomingStreamObserver.onClose(r0Var);
                } catch (Throwable th) {
                    FirestoreChannel.this.asyncQueue.panic(th);
                }
            }

            @Override // k4.AbstractC2396i
            public void onHeaders(g0 g0Var) {
                try {
                    incomingStreamObserver.onHeaders(g0Var);
                } catch (Throwable th) {
                    FirestoreChannel.this.asyncQueue.panic(th);
                }
            }

            @Override // k4.AbstractC2396i
            public void onMessage(RespT respt) {
                try {
                    incomingStreamObserver.onNext(respt);
                    abstractC2397jArr[0].request(1);
                } catch (Throwable th) {
                    FirestoreChannel.this.asyncQueue.panic(th);
                }
            }

            @Override // k4.AbstractC2396i
            public void onReady() {
            }
        }, requestHeaders());
        incomingStreamObserver.onOpen();
        abstractC2397jArr[0].request(1);
    }

    /* JADX INFO: Access modifiers changed from: private */
    public /* synthetic */ void lambda$runRpc$2(final TaskCompletionSource taskCompletionSource, Object obj, Task task) {
        AbstractC2397j abstractC2397j = (AbstractC2397j) task.getResult();
        abstractC2397j.start(new AbstractC2396i() { // from class: com.google.firebase.firestore.remote.FirestoreChannel.4
            @Override // k4.AbstractC2396i
            public void onClose(r0 r0Var, g0 g0Var) {
                if (!r0Var.e()) {
                    taskCompletionSource.setException(FirestoreChannel.this.exceptionFromStatus(r0Var));
                } else {
                    if (taskCompletionSource.getTask().isComplete()) {
                        return;
                    }
                    taskCompletionSource.setException(new FirebaseFirestoreException("Received onClose with status OK, but no message.", FirebaseFirestoreException.Code.INTERNAL));
                }
            }

            @Override // k4.AbstractC2396i
            public void onMessage(RespT respt) {
                taskCompletionSource.setResult(respt);
            }
        }, requestHeaders());
        abstractC2397j.request(2);
        abstractC2397j.sendMessage(obj);
        abstractC2397j.halfClose();
    }

    /* JADX INFO: Access modifiers changed from: private */
    public /* synthetic */ void lambda$runStreamingResponseRpc$1(final StreamingListener streamingListener, Object obj, Task task) {
        final AbstractC2397j abstractC2397j = (AbstractC2397j) task.getResult();
        abstractC2397j.start(new AbstractC2396i() { // from class: com.google.firebase.firestore.remote.FirestoreChannel.3
            @Override // k4.AbstractC2396i
            public void onClose(r0 r0Var, g0 g0Var) {
                streamingListener.onClose(r0Var);
            }

            @Override // k4.AbstractC2396i
            public void onMessage(RespT respt) {
                streamingListener.onMessage(respt);
                abstractC2397j.request(1);
            }
        }, requestHeaders());
        abstractC2397j.request(1);
        abstractC2397j.sendMessage(obj);
        abstractC2397j.halfClose();
    }

    private g0 requestHeaders() {
        g0 g0Var = new g0();
        g0Var.f(X_GOOG_API_CLIENT_HEADER, getGoogApiClientValue());
        g0Var.f(RESOURCE_PREFIX_HEADER, this.resourcePrefixValue);
        g0Var.f(X_GOOG_REQUEST_PARAMS_HEADER, this.resourcePrefixValue);
        GrpcMetadataProvider grpcMetadataProvider = this.metadataProvider;
        if (grpcMetadataProvider != null) {
            grpcMetadataProvider.updateMetadata(g0Var);
        }
        return g0Var;
    }

    public static void setClientLanguage(String str) {
        clientLanguage = str;
    }

    public void invalidateToken() {
        this.authProvider.invalidateToken();
        this.appCheckProvider.invalidateToken();
    }

    public <ReqT, RespT> AbstractC2397j runBidiStreamingRpc(i0 i0Var, IncomingStreamObserver<RespT> incomingStreamObserver) {
        final AbstractC2397j[] abstractC2397jArr = {null};
        final Task<AbstractC2397j> taskCreateClientCall = this.callProvider.createClientCall(i0Var);
        taskCreateClientCall.addOnCompleteListener(this.asyncQueue.getExecutor(), new f(this, abstractC2397jArr, incomingStreamObserver, 1));
        return new AbstractC2383B() { // from class: com.google.firebase.firestore.remote.FirestoreChannel.2
            @Override // k4.AbstractC2383B
            public AbstractC2397j delegate() {
                Assert.hardAssert(abstractC2397jArr[0] != null, "ClientCall used before onOpen() callback", new Object[0]);
                return abstractC2397jArr[0];
            }

            @Override // k4.AbstractC2383B, k4.AbstractC2397j
            public void halfClose() {
                if (abstractC2397jArr[0] == null) {
                    taskCreateClientCall.addOnSuccessListener(FirestoreChannel.this.asyncQueue.getExecutor(), new C1118r(27));
                } else {
                    super.halfClose();
                }
            }
        };
    }

    public <ReqT, RespT> Task<RespT> runRpc(i0 i0Var, ReqT reqt) {
        TaskCompletionSource taskCompletionSource = new TaskCompletionSource();
        this.callProvider.createClientCall(i0Var).addOnCompleteListener(this.asyncQueue.getExecutor(), new f(this, taskCompletionSource, reqt, 2));
        return taskCompletionSource.getTask();
    }

    public <ReqT, RespT> void runStreamingResponseRpc(i0 i0Var, ReqT reqt, StreamingListener<RespT> streamingListener) {
        this.callProvider.createClientCall(i0Var).addOnCompleteListener(this.asyncQueue.getExecutor(), new f(this, streamingListener, reqt, 3));
    }

    public void shutdown() {
        this.callProvider.shutdown();
    }

    public FirestoreChannel(AsyncQueue asyncQueue, CredentialsProvider<User> credentialsProvider, CredentialsProvider<String> credentialsProvider2, DatabaseId databaseId, GrpcMetadataProvider grpcMetadataProvider, GrpcCallProvider grpcCallProvider) {
        this.asyncQueue = asyncQueue;
        this.metadataProvider = grpcMetadataProvider;
        this.authProvider = credentialsProvider;
        this.appCheckProvider = credentialsProvider2;
        this.callProvider = grpcCallProvider;
        this.resourcePrefixValue = AbstractC2761L.g("projects/", databaseId.getProjectId(), "/databases/", databaseId.getDatabaseId());
    }

    public static abstract class StreamingListener<T> {
        public void onMessage(T t6) {
        }

        public void onClose(r0 r0Var) {
        }
    }
}
