discord-jadx/app/src/main/java/c/a/r/a0.java

210 lines
9.4 KiB
Java

package c.a.r;
import c.a.r.k0.a;
import c.a.r.m0.b;
import c.a.r.m0.c;
import c.a.r.m0.d;
import c.a.r.m0.e;
import co.discord.media_engine.VoiceQuality;
import com.discord.rtcconnection.KrispOveruseDetector;
import com.discord.rtcconnection.MediaSinkWantsManager;
import com.discord.rtcconnection.RtcConnection;
import com.discord.rtcconnection.mediaengine.MediaEngineConnection;
import com.discord.rtcconnection.socket.io.Payloads;
import d0.t.h0;
import d0.t.n;
import d0.t.o;
import d0.z.d.m;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.concurrent.TimeUnit;
import kotlin.NoWhenBranchMatchedException;
import rx.Observable;
import rx.Subscription;
/* compiled from: RtcConnection.kt */
public final class a0 implements MediaEngineConnection.c {
public final /* synthetic */ RtcConnection a;
public a0(RtcConnection rtcConnection) {
this.a = rtcConnection;
}
@Override // com.discord.rtcconnection.mediaengine.MediaEngineConnection.c
public void onConnected(MediaEngineConnection mediaEngineConnection, MediaEngineConnection.TransportInfo transportInfo, List<a> list) {
m.checkNotNullParameter(mediaEngineConnection, "connection");
m.checkNotNullParameter(transportInfo, "transportInfo");
m.checkNotNullParameter(list, "supportedVideoCodecs");
RtcConnection rtcConnection = this.a;
rtcConnection.p.succeed();
rtcConnection.q = transportInfo;
MediaEngineConnection mediaEngineConnection2 = rtcConnection.w;
if (mediaEngineConnection2 != null) {
d dVar = new d(1000, rtcConnection.S, mediaEngineConnection2, new VoiceQuality(), new e(null, 1), new KrispOveruseDetector(mediaEngineConnection2), 0, 64);
rtcConnection.n = dVar;
dVar.a.clear();
Subscription subscription = dVar.b;
if (subscription != null && !subscription.isUnsubscribed()) {
dVar.a();
}
dVar.b = Observable.D(0, dVar.f217c, TimeUnit.MILLISECONDS).W(new b(dVar), new c(dVar));
rtcConnection.o = false;
}
if (transportInfo.f2096c.ordinal() != 0) {
StringBuilder L = c.d.b.a.a.L("Unsupported protocol: ");
L.append(transportInfo.f2096c);
L.append('.');
RtcConnection.j(rtcConnection, true, L.toString(), null, false, 12);
} else {
rtcConnection.S.recordBreadcrumb("Sending UDP info to RTC server.", rtcConnection.k);
c.a.r.l0.a aVar = rtcConnection.v;
if (aVar == null) {
RtcConnection.o(rtcConnection, "onEngineConnectionConnected() socket was null.", null, null, 6);
return;
}
String str = transportInfo.a;
int i = transportInfo.b;
m.checkNotNullParameter("udp", "protocol");
m.checkNotNullParameter(str, "address");
m.checkNotNullParameter("xsalsa20_poly1305", "mode");
m.checkNotNullParameter(list, "codecs");
aVar.b();
Payloads.Protocol.ProtocolInfo protocolInfo = new Payloads.Protocol.ProtocolInfo(str, i, "xsalsa20_poly1305");
ArrayList arrayList = new ArrayList(o.collectionSizeOrDefault(list, 10));
for (a aVar2 : list) {
arrayList.add(new Payloads.Protocol.CodecInfo(aVar2.a, aVar2.b, aVar2.f208c, aVar2.d, aVar2.e));
}
aVar.o(1, new Payloads.Protocol("udp", protocolInfo, arrayList));
}
for (RtcConnection.c cVar : rtcConnection.m) {
cVar.onMediaEngineConnectionConnected(rtcConnection);
}
}
@Override // com.discord.rtcconnection.mediaengine.MediaEngineConnection.c
public void onConnectionStateChange(MediaEngineConnection mediaEngineConnection, MediaEngineConnection.ConnectionState connectionState) {
RtcConnection.State state;
m.checkNotNullParameter(mediaEngineConnection, "connection");
m.checkNotNullParameter(connectionState, "connectionState");
RtcConnection rtcConnection = this.a;
RtcConnection.StateChange stateChange = rtcConnection.r;
rtcConnection.r("Connection state change: " + connectionState);
int ordinal = connectionState.ordinal();
if (ordinal == 0) {
state = RtcConnection.State.h.a;
} else if (ordinal == 1) {
state = RtcConnection.State.g.a;
} else if (ordinal == 2) {
state = RtcConnection.State.f.a;
} else if (ordinal == 3) {
state = RtcConnection.State.e.a;
} else {
throw new NoWhenBranchMatchedException();
}
rtcConnection.u(state);
if (stateChange.a == RtcConnection.State.g.a && rtcConnection.r.a == RtcConnection.State.h.a) {
rtcConnection.q();
}
if (rtcConnection.r.a == RtcConnection.State.f.a) {
rtcConnection.B = Long.valueOf(rtcConnection.T.currentTimeMillis());
rtcConnection.G = true;
Map<String, Object> mutableMapOf = h0.mutableMapOf(d0.o.to("connect_count", Integer.valueOf(rtcConnection.C)));
Long l = rtcConnection.A;
Long l2 = rtcConnection.B;
Long valueOf = (l2 == null || l == null) ? null : Long.valueOf(l2.longValue() - l.longValue());
if (valueOf != null) {
mutableMapOf.put("connect_time", Long.valueOf(valueOf.longValue()));
}
rtcConnection.b(mutableMapOf);
rtcConnection.p(RtcConnection.AnalyticsEvent.VOICE_CONNECTION_SUCCESS, mutableMapOf);
MediaSinkWantsManager mediaSinkWantsManager = rtcConnection.E;
if (mediaSinkWantsManager != null) {
mediaSinkWantsManager.b(new i(mediaSinkWantsManager, rtcConnection.w));
}
}
}
@Override // com.discord.rtcconnection.mediaengine.MediaEngineConnection.c
public void onDestroy(MediaEngineConnection mediaEngineConnection) {
m.checkNotNullParameter(mediaEngineConnection, "connection");
}
@Override // com.discord.rtcconnection.mediaengine.MediaEngineConnection.c
public void onError(MediaEngineConnection mediaEngineConnection, MediaEngineConnection.FailedConnectionException failedConnectionException) {
m.checkNotNullParameter(mediaEngineConnection, "connection");
m.checkNotNullParameter(failedConnectionException, "exception");
RtcConnection rtcConnection = this.a;
Objects.requireNonNull(rtcConnection);
String str = "connection error: " + failedConnectionException.a();
int ordinal = failedConnectionException.a().ordinal();
if (ordinal == 0 || ordinal == 1 || ordinal == 2) {
StringBuilder P = c.d.b.a.a.P(str, " -- ");
P.append(failedConnectionException.getMessage());
rtcConnection.r(P.toString());
} else {
RtcConnection.AnalyticsEvent analyticsEvent = RtcConnection.AnalyticsEvent.VOICE_CONNECTION_FAILURE;
Map<String, Object> mutableMapOf = h0.mutableMapOf(d0.o.to("connect_count", Integer.valueOf(rtcConnection.C)));
rtcConnection.b(mutableMapOf);
rtcConnection.p(analyticsEvent, mutableMapOf);
}
RtcConnection.j(rtcConnection, true, str, failedConnectionException, false, 8);
}
@Override // com.discord.rtcconnection.mediaengine.MediaEngineConnection.c
public void onKrispStatus(MediaEngineConnection mediaEngineConnection, KrispOveruseDetector.Status status) {
m.checkNotNullParameter(mediaEngineConnection, "connection");
m.checkNotNullParameter(status, "status");
}
@Override // com.discord.rtcconnection.mediaengine.MediaEngineConnection.c
public void onLocalMute(long j, boolean z2) {
}
@Override // com.discord.rtcconnection.mediaengine.MediaEngineConnection.c
public void onLocalVideoOffScreen(long j, boolean z2) {
}
@Override // com.discord.rtcconnection.mediaengine.MediaEngineConnection.c
public void onSpeaking(long j, int i, boolean z2) {
c.a.r.l0.a aVar;
RtcConnection rtcConnection = this.a;
if (j == rtcConnection.Q && (aVar = rtcConnection.v) != null) {
aVar.b();
aVar.o(5, new Payloads.Speaking(i, Integer.valueOf(z2 ? 1 : 0), 0, null, 8, null));
}
for (RtcConnection.c cVar : rtcConnection.m) {
cVar.onSpeaking(j, z2);
}
}
@Override // com.discord.rtcconnection.mediaengine.MediaEngineConnection.c
public void onVideo(long j, Integer num, int i, int i2, int i3) {
RtcConnection rtcConnection = this.a;
if (j == rtcConnection.Q) {
c.a.r.l0.a aVar = rtcConnection.v;
boolean z2 = true;
if (aVar == null) {
RtcConnection.o(rtcConnection, "sendVideo() socket was null.", null, null, 6);
} else {
rtcConnection.I = i2;
if (i2 != 0) {
rtcConnection.o = true;
}
aVar.b();
aVar.o(12, new Payloads.Video(i, i2, i3, null, n.emptyList(), 8, null));
}
MediaSinkWantsManager mediaSinkWantsManager = rtcConnection.E;
if (mediaSinkWantsManager != null) {
if (i2 == 0) {
z2 = false;
}
mediaSinkWantsManager.b(new k(mediaSinkWantsManager, z2));
}
}
for (RtcConnection.c cVar : rtcConnection.m) {
cVar.onVideoStream(j, num);
}
}
}