package com.google.firebase.firestore.remote;

import C0.D;
import com.google.firebase.firestore.model.SnapshotVersion;
import com.google.firebase.firestore.model.mutation.Mutation;
import com.google.firebase.firestore.model.mutation.MutationResult;
import com.google.firebase.firestore.remote.Stream;
import com.google.firebase.firestore.util.Assert;
import com.google.firebase.firestore.util.AsyncQueue;
import com.google.firebase.firestore.util.Preconditions;
import com.google.protobuf.AbstractC1320n;
import com.google.protobuf.C1343z;
import e4.C;
import e4.M0;
import e4.O0;
import e4.P0;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import k4.h0;
import k4.i0;
import r4.AbstractC2890c;
import r4.C2889b;

/* JADX INFO: loaded from: classes3.dex */
public class WriteStream extends AbstractStream<O0, P0, Callback> {
    public static final AbstractC1320n EMPTY_STREAM_TOKEN = AbstractC1320n.f14310b;
    protected boolean handshakeComplete;
    private AbstractC1320n lastStreamToken;
    private final RemoteSerializer serializer;

    public interface Callback extends Stream.StreamCallback {
        void onHandshakeComplete();

        void onWriteResponse(SnapshotVersion snapshotVersion, List<MutationResult> list);
    }

    /* JADX WARN: Illegal instructions before constructor call */
    public WriteStream(FirestoreChannel firestoreChannel, AsyncQueue asyncQueue, RemoteSerializer remoteSerializer, Callback callback) {
        i0 i0VarB = C.f16283d;
        if (i0VarB == null) {
            synchronized (C.class) {
                try {
                    i0VarB = C.f16283d;
                    if (i0VarB == null) {
                        D dB = i0.b();
                        dB.f521d = h0.f19876c;
                        dB.f522e = i0.a("google.firestore.v1.Firestore", "Write");
                        dB.f518a = true;
                        O0 o0I = O0.i();
                        C1343z c1343z = AbstractC2890c.f24005a;
                        dB.f519b = new C2889b(o0I);
                        dB.f520c = new C2889b(P0.g());
                        i0VarB = dB.b();
                        C.f16283d = i0VarB;
                    }
                } finally {
                }
            }
        }
        super(firestoreChannel, i0VarB, asyncQueue, AsyncQueue.TimerId.WRITE_STREAM_CONNECTION_BACKOFF, AsyncQueue.TimerId.WRITE_STREAM_IDLE, AsyncQueue.TimerId.HEALTH_CHECK_TIMEOUT, callback);
        this.handshakeComplete = false;
        this.lastStreamToken = EMPTY_STREAM_TOKEN;
        this.serializer = remoteSerializer;
    }

    public AbstractC1320n getLastStreamToken() {
        return this.lastStreamToken;
    }

    @Override // com.google.firebase.firestore.remote.AbstractStream, com.google.firebase.firestore.remote.Stream
    public /* bridge */ /* synthetic */ void inhibitBackoff() {
        super.inhibitBackoff();
    }

    public boolean isHandshakeComplete() {
        return this.handshakeComplete;
    }

    @Override // com.google.firebase.firestore.remote.AbstractStream, com.google.firebase.firestore.remote.Stream
    public /* bridge */ /* synthetic */ boolean isOpen() {
        return super.isOpen();
    }

    @Override // com.google.firebase.firestore.remote.AbstractStream, com.google.firebase.firestore.remote.Stream
    public /* bridge */ /* synthetic */ boolean isStarted() {
        return super.isStarted();
    }

    public void setLastStreamToken(AbstractC1320n abstractC1320n) {
        this.lastStreamToken = (AbstractC1320n) Preconditions.checkNotNull(abstractC1320n);
    }

    @Override // com.google.firebase.firestore.remote.AbstractStream, com.google.firebase.firestore.remote.Stream
    public void start() {
        this.handshakeComplete = false;
        super.start();
    }

    @Override // com.google.firebase.firestore.remote.AbstractStream, com.google.firebase.firestore.remote.Stream
    public /* bridge */ /* synthetic */ void stop() {
        super.stop();
    }

    @Override // com.google.firebase.firestore.remote.AbstractStream
    public void tearDown() {
        if (this.handshakeComplete) {
            writeMutations(Collections.EMPTY_LIST);
        }
    }

    public void writeHandshake() {
        Assert.hardAssert(isOpen(), "Writing handshake requires an opened stream", new Object[0]);
        Assert.hardAssert(!this.handshakeComplete, "Handshake already completed", new Object[0]);
        M0 m0J = O0.j();
        m0J.d(this.serializer.databaseName());
        writeRequest((O0) m0J.m359build());
    }

    public void writeMutations(List<Mutation> list) {
        Assert.hardAssert(isOpen(), "Writing mutations requires an opened stream", new Object[0]);
        Assert.hardAssert(this.handshakeComplete, "Handshake must be complete before writing mutations", new Object[0]);
        M0 m0J = O0.j();
        Iterator<Mutation> it = list.iterator();
        while (it.hasNext()) {
            m0J.c(this.serializer.encodeMutation(it.next()));
        }
        m0J.e(this.lastStreamToken);
        writeRequest((O0) m0J.m359build());
    }

    @Override // com.google.firebase.firestore.remote.AbstractStream
    public void onFirst(P0 p02) {
        this.lastStreamToken = p02.h();
        this.handshakeComplete = true;
        ((Callback) this.listener).onHandshakeComplete();
    }

    @Override // com.google.firebase.firestore.remote.AbstractStream
    public void onNext(P0 p02) {
        this.lastStreamToken = p02.h();
        this.backoff.reset();
        SnapshotVersion snapshotVersionDecodeVersion = this.serializer.decodeVersion(p02.f());
        int iJ = p02.j();
        ArrayList arrayList = new ArrayList(iJ);
        for (int i6 = 0; i6 < iJ; i6++) {
            arrayList.add(this.serializer.decodeMutationResult(p02.i(i6), snapshotVersionDecodeVersion));
        }
        ((Callback) this.listener).onWriteResponse(snapshotVersionDecodeVersion, arrayList);
    }
}
