82.11 - Beta (82111)

This commit is contained in:
Juby210 2021-07-04 17:43:58 +02:00
parent 3befb67634
commit 6ffa09f7cd
Signed by untrusted user: Juby210
GPG key ID: F459CEC5C92E1482
27 changed files with 334 additions and 252 deletions

View file

@ -10,8 +10,8 @@ android {
applicationId 'com.discord' applicationId 'com.discord'
minSdkVersion 21 minSdkVersion 21
targetSdkVersion 29 targetSdkVersion 29
versionCode 82109 versionCode 82111
versionName "82.9 - Beta" versionName "82.11 - Beta"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
} }

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="82109" android:versionName="82.9 - Beta" android:installLocation="auto" android:compileSdkVersion="30" android:compileSdkVersionCodename="11" package="com.discord" platformBuildVersionCode="30" platformBuildVersionName="11"> <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="82111" android:versionName="82.11 - Beta" android:installLocation="auto" android:compileSdkVersion="30" android:compileSdkVersionCodename="11" package="com.discord" platformBuildVersionCode="30" platformBuildVersionName="11">
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="29"/> <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="29"/>
<uses-feature android:name="android.hardware.camera" android:required="false"/> <uses-feature android:name="android.hardware.camera" android:required="false"/>
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/> <uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/>

View file

@ -286,9 +286,9 @@ public final class d0 implements a.d {
m.checkNotNullParameter(str, "serverId"); m.checkNotNullParameter(str, "serverId");
m.checkNotNullParameter(str2, "sessionId"); m.checkNotNullParameter(str2, "sessionId");
aVar.b(); aVar.b();
aVar.r = str; aVar.f213s = str;
aVar.f213s = str2; aVar.t = str2;
aVar.f216z = a.c.IDENTIFYING; aVar.A = a.c.IDENTIFYING;
aVar.o(0, new Payloads.Identify(str, j, str2, aVar.D, z2)); aVar.o(0, new Payloads.Identify(str, j, str2, aVar.D, z2));
rtcConnection.u(RtcConnection.State.a.a); rtcConnection.u(RtcConnection.State.a.a);
} }

View file

@ -42,8 +42,8 @@ public final class a extends WebSocketListener implements DebugPrintable {
public static int i; public static int i;
public static final Type j = new C0038a().getType(); public static final Type j = new C0038a().getType();
public static final b k = new b(null); public static final b k = new b(null);
public boolean A; public c A;
public final String B; public boolean B;
public final String C; public final String C;
public final String D; public final String D;
public final SSLSocketFactory E; public final SSLSocketFactory E;
@ -51,29 +51,29 @@ public final class a extends WebSocketListener implements DebugPrintable {
public final c.a.r.c G; public final c.a.r.c G;
public final Clock H; public final Clock H;
public final String I; public final String I;
public final Gson l = new c.i.d.e().a(); public final String l;
public final Timer m = new Timer(); public final Gson m = new c.i.d.e().a();
public final Backoff n = new Backoff(1000, 5000, 3, false, null, 24, null); public final Timer n = new Timer();
public final CopyOnWriteArraySet<d> o = new CopyOnWriteArraySet<>(); public final Backoff o;
public int p = 3; public final CopyOnWriteArraySet<d> p;
public WebSocket q; public int q;
public String r; public WebSocket r;
/* renamed from: s reason: collision with root package name */ /* renamed from: s reason: collision with root package name */
public String f213s; public String f213s;
public Long t; public String t;
public boolean u; public Long u;
public b v = new b(this); public boolean v;
public Long w; public b w;
/* renamed from: x reason: collision with root package name */ /* renamed from: x reason: collision with root package name */
public TimerTask f214x; public Long f214x;
/* renamed from: y reason: collision with root package name */ /* renamed from: y reason: collision with root package name */
public Long f215y; public TimerTask f215y;
/* renamed from: z reason: collision with root package name */ /* renamed from: z reason: collision with root package name */
public c f216z = c.DISCONNECTED; public Long f216z;
/* compiled from: RtcControlSocket.kt */ /* compiled from: RtcControlSocket.kt */
/* renamed from: c.a.r.l0.a$a reason: collision with other inner class name */ /* renamed from: c.a.r.l0.a$a reason: collision with other inner class name */
@ -217,7 +217,7 @@ public final class a extends WebSocketListener implements DebugPrintable {
@Override // kotlin.jvm.functions.Function0 @Override // kotlin.jvm.functions.Function0
/* renamed from: invoke */ /* renamed from: invoke */
public Unit mo1invoke() { public Unit mo1invoke() {
if (!(!m.areEqual(this.$webSocket, this.this$0.q))) { if (!(!m.areEqual(this.$webSocket, this.this$0.r))) {
a.a(this.this$0, true, Integer.valueOf(this.$code), this.$reason); a.a(this.this$0, true, Integer.valueOf(this.$code), this.$reason);
} }
return Unit.a; return Unit.a;
@ -242,12 +242,12 @@ public final class a extends WebSocketListener implements DebugPrintable {
@Override // kotlin.jvm.functions.Function0 @Override // kotlin.jvm.functions.Function0
/* renamed from: invoke */ /* renamed from: invoke */
public Unit mo1invoke() { public Unit mo1invoke() {
if (!(!m.areEqual(this.$webSocket, this.this$0.q))) { if (!(!m.areEqual(this.$webSocket, this.this$0.r))) {
if (this.$t instanceof SSLException) { if (this.$t instanceof SSLException) {
a.d(this.this$0, null, 1); a.d(this.this$0, null, 1);
a aVar = this.this$0; a aVar = this.this$0;
aVar.b(); aVar.b();
for (d dVar : aVar.o) { for (d dVar : aVar.p) {
m.checkNotNullExpressionValue(dVar, "it"); m.checkNotNullExpressionValue(dVar, "it");
dVar.b(false, 1001, null); dVar.b(false, 1001, null);
} }
@ -281,20 +281,20 @@ public final class a extends WebSocketListener implements DebugPrintable {
/* renamed from: invoke */ /* renamed from: invoke */
public Unit mo1invoke() { public Unit mo1invoke() {
boolean z2 = true; boolean z2 = true;
if (!(!m.areEqual(this.$webSocket, this.this$0.q))) { if (!(!m.areEqual(this.$webSocket, this.this$0.r))) {
switch (this.$message.getOpcode()) { switch (this.$message.getOpcode()) {
case 2: case 2:
a aVar = this.this$0; a aVar = this.this$0;
Object c2 = aVar.l.c(this.$message.getData(), Payloads.Ready.class); Object c2 = aVar.m.c(this.$message.getData(), Payloads.Ready.class);
m.checkNotNullExpressionValue(c2, "gson.fromJson(message.da…yloads.Ready::class.java)"); m.checkNotNullExpressionValue(c2, "gson.fromJson(message.da…yloads.Ready::class.java)");
Payloads.Ready ready = (Payloads.Ready) c2; Payloads.Ready ready = (Payloads.Ready) c2;
aVar.n.succeed(); aVar.o.succeed();
long currentTimeMillis = aVar.H.currentTimeMillis(); long currentTimeMillis = aVar.H.currentTimeMillis();
Long l = aVar.f215y; Long l = aVar.f216z;
long longValue = currentTimeMillis - (l != null ? l.longValue() : 0); long longValue = currentTimeMillis - (l != null ? l.longValue() : 0);
aVar.j("[READY] took " + longValue + " ms"); aVar.j("[READY] took " + longValue + " ms");
aVar.b(); aVar.b();
for (d dVar : aVar.o) { for (d dVar : aVar.p) {
m.checkNotNullExpressionValue(dVar, "it"); m.checkNotNullExpressionValue(dVar, "it");
dVar.l(ready.getPort(), ready.getSsrc(), ready.getIp()); dVar.l(ready.getPort(), ready.getSsrc(), ready.getIp());
} }
@ -305,11 +305,11 @@ public final class a extends WebSocketListener implements DebugPrintable {
break; break;
case 4: case 4:
a aVar3 = this.this$0; a aVar3 = this.this$0;
Object c3 = aVar3.l.c(this.$message.getData(), Payloads.Description.class); Object c3 = aVar3.m.c(this.$message.getData(), Payloads.Description.class);
m.checkNotNullExpressionValue(c3, "gson.fromJson(message.da….Description::class.java)"); m.checkNotNullExpressionValue(c3, "gson.fromJson(message.da….Description::class.java)");
Payloads.Description description = (Payloads.Description) c3; Payloads.Description description = (Payloads.Description) c3;
aVar3.b(); aVar3.b();
for (d dVar2 : aVar3.o) { for (d dVar2 : aVar3.p) {
m.checkNotNullExpressionValue(dVar2, "it"); m.checkNotNullExpressionValue(dVar2, "it");
dVar2.c(description.getMode(), description.getSecretKey()); dVar2.c(description.getMode(), description.getSecretKey());
dVar2.a(description.getAudioCodec(), description.getVideoCodec()); dVar2.a(description.getAudioCodec(), description.getVideoCodec());
@ -318,11 +318,11 @@ public final class a extends WebSocketListener implements DebugPrintable {
dVar2.d(mediaSessionId); dVar2.d(mediaSessionId);
} }
} }
aVar3.A = true; aVar3.B = true;
break; break;
case 5: case 5:
a aVar4 = this.this$0; a aVar4 = this.this$0;
Object c4 = aVar4.l.c(this.$message.getData(), Payloads.Speaking.class); Object c4 = aVar4.m.c(this.$message.getData(), Payloads.Speaking.class);
m.checkNotNullExpressionValue(c4, "gson.fromJson(message.da…ads.Speaking::class.java)"); m.checkNotNullExpressionValue(c4, "gson.fromJson(message.da…ads.Speaking::class.java)");
Payloads.Speaking speaking = (Payloads.Speaking) c4; Payloads.Speaking speaking = (Payloads.Speaking) c4;
if (!(speaking.getUserId() == null || speaking.getSpeaking() == null)) { if (!(speaking.getUserId() == null || speaking.getSpeaking() == null)) {
@ -331,7 +331,7 @@ public final class a extends WebSocketListener implements DebugPrintable {
z2 = false; z2 = false;
} }
aVar4.b(); aVar4.b();
for (d dVar3 : aVar4.o) { for (d dVar3 : aVar4.p) {
m.checkNotNullExpressionValue(dVar3, "it"); m.checkNotNullExpressionValue(dVar3, "it");
dVar3.onSpeaking(speaking.getUserId().longValue(), speaking.getSsrc(), z2); dVar3.onSpeaking(speaking.getUserId().longValue(), speaking.getSsrc(), z2);
} }
@ -339,16 +339,16 @@ public final class a extends WebSocketListener implements DebugPrintable {
} }
case 6: case 6:
a aVar5 = this.this$0; a aVar5 = this.this$0;
Object c5 = aVar5.l.c(this.$message.getData(), Long.TYPE); Object c5 = aVar5.m.c(this.$message.getData(), Long.TYPE);
m.checkNotNullExpressionValue(c5, "gson.fromJson(message.data, Long::class.java)"); m.checkNotNullExpressionValue(c5, "gson.fromJson(message.data, Long::class.java)");
long longValue2 = ((Number) c5).longValue(); long longValue2 = ((Number) c5).longValue();
long currentTimeMillis2 = aVar5.H.currentTimeMillis(); long currentTimeMillis2 = aVar5.H.currentTimeMillis();
long j = currentTimeMillis2 - longValue2; long j = currentTimeMillis2 - longValue2;
Logger.d$default(aVar5.F, aVar5.B, c.d.b.a.a.r("got heartbeat ack after ", j, " ms"), null, 4, null); Logger.d$default(aVar5.F, aVar5.l, c.d.b.a.a.r("got heartbeat ack after ", j, " ms"), null, 4, null);
aVar5.w = Long.valueOf(currentTimeMillis2); aVar5.f214x = Long.valueOf(currentTimeMillis2);
aVar5.u = true; aVar5.v = true;
aVar5.b(); aVar5.b();
for (d dVar4 : aVar5.o) { for (d dVar4 : aVar5.p) {
m.checkNotNullExpressionValue(dVar4, "it"); m.checkNotNullExpressionValue(dVar4, "it");
dVar4.g(j); dVar4.g(j);
} }
@ -364,31 +364,31 @@ public final class a extends WebSocketListener implements DebugPrintable {
break; break;
case 8: case 8:
a aVar7 = this.this$0; a aVar7 = this.this$0;
Object c6 = aVar7.l.c(this.$message.getData(), Payloads.Hello.class); Object c6 = aVar7.m.c(this.$message.getData(), Payloads.Hello.class);
m.checkNotNullExpressionValue(c6, "gson.fromJson(message.da…yloads.Hello::class.java)"); m.checkNotNullExpressionValue(c6, "gson.fromJson(message.da…yloads.Hello::class.java)");
Payloads.Hello hello = (Payloads.Hello) c6; Payloads.Hello hello = (Payloads.Hello) c6;
TimerTask timerTask = aVar7.f214x; TimerTask timerTask = aVar7.f215y;
if (timerTask != null) { if (timerTask != null) {
timerTask.cancel(); timerTask.cancel();
} }
aVar7.j("[HELLO] raw: " + hello); aVar7.j("[HELLO] raw: " + hello);
aVar7.t = Long.valueOf(hello.getHeartbeatIntervalMs()); aVar7.u = Long.valueOf(hello.getHeartbeatIntervalMs());
aVar7.p = hello.getServerVersion(); aVar7.q = hello.getServerVersion();
aVar7.v.cancel(); aVar7.w.cancel();
aVar7.u = true; aVar7.v = true;
aVar7.l(); aVar7.l();
break; break;
case 9: case 9:
this.this$0.n.succeed(); this.this$0.o.succeed();
break; break;
case 12: case 12:
a aVar8 = this.this$0; a aVar8 = this.this$0;
Object c7 = aVar8.l.c(this.$message.getData(), Payloads.Video.class); Object c7 = aVar8.m.c(this.$message.getData(), Payloads.Video.class);
m.checkNotNullExpressionValue(c7, "gson.fromJson(message.da…yloads.Video::class.java)"); m.checkNotNullExpressionValue(c7, "gson.fromJson(message.da…yloads.Video::class.java)");
Payloads.Video video = (Payloads.Video) c7; Payloads.Video video = (Payloads.Video) c7;
if (video.getUserId() != null) { if (video.getUserId() != null) {
aVar8.b(); aVar8.b();
for (d dVar5 : aVar8.o) { for (d dVar5 : aVar8.p) {
m.checkNotNullExpressionValue(dVar5, "it"); m.checkNotNullExpressionValue(dVar5, "it");
dVar5.e(video.getUserId().longValue(), video.getAudioSsrc(), video.getVideoSsrc(), video.getStreams()); dVar5.e(video.getUserId().longValue(), video.getAudioSsrc(), video.getVideoSsrc(), video.getStreams());
} }
@ -397,22 +397,22 @@ public final class a extends WebSocketListener implements DebugPrintable {
break; break;
case 13: case 13:
a aVar9 = this.this$0; a aVar9 = this.this$0;
Object c8 = aVar9.l.c(this.$message.getData(), Payloads.ClientDisconnect.class); Object c8 = aVar9.m.c(this.$message.getData(), Payloads.ClientDisconnect.class);
m.checkNotNullExpressionValue(c8, "gson.fromJson(message.da…ntDisconnect::class.java)"); m.checkNotNullExpressionValue(c8, "gson.fromJson(message.da…ntDisconnect::class.java)");
Payloads.ClientDisconnect clientDisconnect = (Payloads.ClientDisconnect) c8; Payloads.ClientDisconnect clientDisconnect = (Payloads.ClientDisconnect) c8;
aVar9.b(); aVar9.b();
for (d dVar6 : aVar9.o) { for (d dVar6 : aVar9.p) {
m.checkNotNullExpressionValue(dVar6, "it"); m.checkNotNullExpressionValue(dVar6, "it");
dVar6.k(clientDisconnect.getUserId()); dVar6.k(clientDisconnect.getUserId());
} }
break; break;
case 14: case 14:
a aVar10 = this.this$0; a aVar10 = this.this$0;
Object c9 = aVar10.l.c(this.$message.getData(), Payloads.SessionUpdate.class); Object c9 = aVar10.m.c(this.$message.getData(), Payloads.SessionUpdate.class);
m.checkNotNullExpressionValue(c9, "gson.fromJson(message.da…essionUpdate::class.java)"); m.checkNotNullExpressionValue(c9, "gson.fromJson(message.da…essionUpdate::class.java)");
Payloads.SessionUpdate sessionUpdate = (Payloads.SessionUpdate) c9; Payloads.SessionUpdate sessionUpdate = (Payloads.SessionUpdate) c9;
aVar10.b(); aVar10.b();
for (d dVar7 : aVar10.o) { for (d dVar7 : aVar10.p) {
m.checkNotNullExpressionValue(dVar7, "it"); m.checkNotNullExpressionValue(dVar7, "it");
String mediaSessionId2 = sessionUpdate.getMediaSessionId(); String mediaSessionId2 = sessionUpdate.getMediaSessionId();
if (mediaSessionId2 != null) { if (mediaSessionId2 != null) {
@ -422,7 +422,7 @@ public final class a extends WebSocketListener implements DebugPrintable {
break; break;
case 15: case 15:
a aVar11 = this.this$0; a aVar11 = this.this$0;
Gson gson = aVar11.l; Gson gson = aVar11.m;
JsonElement data = this.$message.getData(); JsonElement data = this.$message.getData();
Type type = a.j; Type type = a.j;
Objects.requireNonNull(gson); Objects.requireNonNull(gson);
@ -430,7 +430,7 @@ public final class a extends WebSocketListener implements DebugPrintable {
m.checkNotNullExpressionValue(d, "gson.fromJson(message.data, MEDIA_SINK_WANTS_TYPE)"); m.checkNotNullExpressionValue(d, "gson.fromJson(message.data, MEDIA_SINK_WANTS_TYPE)");
Map<String, Integer> map = (Map) d; Map<String, Integer> map = (Map) d;
aVar11.b(); aVar11.b();
for (d dVar8 : aVar11.o) { for (d dVar8 : aVar11.p) {
m.checkNotNullExpressionValue(dVar8, "it"); m.checkNotNullExpressionValue(dVar8, "it");
dVar8.f(map); dVar8.f(map);
} }
@ -458,54 +458,54 @@ public final class a extends WebSocketListener implements DebugPrintable {
/* renamed from: invoke */ /* renamed from: invoke */
public Unit mo1invoke() { public Unit mo1invoke() {
boolean z2 = true; boolean z2 = true;
if (!(!m.areEqual(this.$webSocket, this.this$0.q))) { if (!(!m.areEqual(this.$webSocket, this.this$0.r))) {
a aVar = this.this$0; a aVar = this.this$0;
c cVar = aVar.f216z; c cVar = aVar.A;
if (cVar == c.CONNECTING) { if (cVar == c.CONNECTING) {
aVar.b(); aVar.b();
for (d dVar : aVar.o) { for (d dVar : aVar.p) {
m.checkNotNullExpressionValue(dVar, "it"); m.checkNotNullExpressionValue(dVar, "it");
dVar.j(); dVar.j();
} }
} else if (cVar == c.RECONNECTING) { } else if (cVar == c.RECONNECTING) {
String str = aVar.f213s; String str = aVar.t;
String str2 = aVar.r; String str2 = aVar.f213s;
String str3 = aVar.D; String str3 = aVar.D;
Long l = aVar.w; Long l = aVar.f214x;
if (l != null && aVar.H.currentTimeMillis() - l.longValue() > 60000) { if (l != null && aVar.H.currentTimeMillis() - l.longValue() > 60000) {
z2 = false; z2 = false;
} }
if (str == null || str2 == null || !aVar.A || !z2) { if (str == null || str2 == null || !aVar.B || !z2) {
StringBuilder L = c.d.b.a.a.L("Cannot resume connection. resumable: "); StringBuilder L = c.d.b.a.a.L("Cannot resume connection. resumable: ");
L.append(aVar.A); L.append(aVar.B);
L.append(" -- isHeartbeatRecentEnough: "); L.append(" -- isHeartbeatRecentEnough: ");
L.append(z2); L.append(z2);
aVar.h(false, 4801, L.toString()); aVar.h(false, 4801, L.toString());
} else { } else {
aVar.j("[RESUME] resuming session. serverId=" + str2 + " sessionId=" + str); aVar.j("[RESUME] resuming session. serverId=" + str2 + " sessionId=" + str);
aVar.b(); aVar.b();
for (d dVar2 : aVar.o) { for (d dVar2 : aVar.p) {
m.checkNotNullExpressionValue(dVar2, "it"); m.checkNotNullExpressionValue(dVar2, "it");
dVar2.h(); dVar2.h();
} }
aVar.f216z = c.RESUMING; aVar.A = c.RESUMING;
aVar.o(7, new Payloads.Resume(str3, str, str2)); aVar.o(7, new Payloads.Resume(str3, str, str2));
} }
} }
a aVar2 = this.this$0; a aVar2 = this.this$0;
aVar2.f216z = c.CONNECTED; aVar2.A = c.CONNECTED;
long currentTimeMillis = aVar2.H.currentTimeMillis(); long currentTimeMillis = aVar2.H.currentTimeMillis();
Long l2 = this.this$0.f215y; Long l2 = this.this$0.f216z;
long longValue = currentTimeMillis - (l2 != null ? l2.longValue() : 0); long longValue = currentTimeMillis - (l2 != null ? l2.longValue() : 0);
a aVar3 = this.this$0; a aVar3 = this.this$0;
Logger logger = aVar3.F; Logger logger = aVar3.F;
String str4 = aVar3.B; String str4 = aVar3.l;
StringBuilder L2 = c.d.b.a.a.L("[CONNECTED] to "); StringBuilder L2 = c.d.b.a.a.L("[CONNECTED] to ");
L2.append(this.this$0.C); L2.append(this.this$0.C);
Logger.i$default(logger, str4, L2.toString(), null, 4, null); Logger.i$default(logger, str4, L2.toString(), null, 4, null);
a aVar4 = this.this$0; a aVar4 = this.this$0;
aVar4.b(); aVar4.b();
for (d dVar3 : aVar4.o) { for (d dVar3 : aVar4.p) {
m.checkNotNullExpressionValue(dVar3, "it"); m.checkNotNullExpressionValue(dVar3, "it");
dVar3.g(longValue / ((long) 2)); dVar3.g(longValue / ((long) 2));
} }
@ -551,19 +551,25 @@ public final class a extends WebSocketListener implements DebugPrintable {
int i2 = i + 1; int i2 = i + 1;
i = i2; i = i2;
P.append(i2); P.append(i2);
this.B = P.toString(); String sb = P.toString();
this.l = sb;
this.o = new Backoff(1000, 5000, 3, false, new Backoff.TimerScheduler(sb, cVar), 8, null);
this.p = new CopyOnWriteArraySet<>();
this.q = 3;
this.w = new b(this);
this.A = c.DISCONNECTED;
} }
public static final void a(a aVar, boolean z2, Integer num, String str) { public static final void a(a aVar, boolean z2, Integer num, String str) {
aVar.f216z = c.DISCONNECTED; aVar.A = c.DISCONNECTED;
if ((num != null && num.intValue() == 4004) || ((num != null && num.intValue() == 4015) || ((num != null && num.intValue() == 4011) || (num != null && num.intValue() == 4006)))) { if ((num != null && num.intValue() == 4004) || ((num != null && num.intValue() == 4015) || ((num != null && num.intValue() == 4011) || (num != null && num.intValue() == 4006)))) {
aVar.h(true, num, str); aVar.h(true, num, str);
} else if (aVar.n.hasReachedFailureThreshold()) { } else if (aVar.o.hasReachedFailureThreshold()) {
aVar.k("[WS CLOSED] Backoff exceeded. Resetting."); aVar.k("[WS CLOSED] Backoff exceeded. Resetting.");
aVar.h(z2, num, str); aVar.h(z2, num, str);
} else { } else {
aVar.c(null); aVar.c(null);
String H = c.d.b.a.a.H(new Object[]{Double.valueOf(((double) aVar.n.fail(new c(aVar, z2, num, str))) / 1000.0d)}, 1, "%.2f", "java.lang.String.format(this, *args)"); String H = c.d.b.a.a.H(new Object[]{Double.valueOf(((double) aVar.o.fail(new c(aVar, z2, num, str))) / 1000.0d)}, 1, "%.2f", "java.lang.String.format(this, *args)");
aVar.k("`[WS CLOSED] (" + z2 + ", " + num + ", " + str + ") retrying in " + H + " seconds."); aVar.k("`[WS CLOSED] (" + z2 + ", " + num + ", " + str + ") retrying in " + H + " seconds.");
} }
} }
@ -586,41 +592,41 @@ public final class a extends WebSocketListener implements DebugPrintable {
} }
public final void c(Function1<? super WebSocket, Unit> function1) { public final void c(Function1<? super WebSocket, Unit> function1) {
this.n.cancel(); this.o.cancel();
this.v.cancel(); this.w.cancel();
TimerTask timerTask = this.f214x; TimerTask timerTask = this.f215y;
if (timerTask != null) { if (timerTask != null) {
timerTask.cancel(); timerTask.cancel();
} }
WebSocket webSocket = this.q; WebSocket webSocket = this.r;
if (!(webSocket == null || function1 == null)) { if (!(webSocket == null || function1 == null)) {
function1.invoke(webSocket); function1.invoke(webSocket);
} }
this.q = null; this.r = null;
} }
@Override // com.discord.utilities.debug.DebugPrintable @Override // com.discord.utilities.debug.DebugPrintable
public void debugPrint(DebugPrintBuilder debugPrintBuilder) { public void debugPrint(DebugPrintBuilder debugPrintBuilder) {
m.checkNotNullParameter(debugPrintBuilder, "dp"); m.checkNotNullParameter(debugPrintBuilder, "dp");
debugPrintBuilder.appendKeyValue("serverId", this.r); debugPrintBuilder.appendKeyValue("serverId", this.f213s);
debugPrintBuilder.appendKeyValue("sessionId", this.f213s); debugPrintBuilder.appendKeyValue("sessionId", this.t);
debugPrintBuilder.appendKeyValue("heartbeatInterval", this.t); debugPrintBuilder.appendKeyValue("heartbeatInterval", this.u);
debugPrintBuilder.appendKeyValue("lastHeartbeatAckTime", this.w); debugPrintBuilder.appendKeyValue("lastHeartbeatAckTime", this.f214x);
debugPrintBuilder.appendKeyValue("connectionStartTime", this.f215y); debugPrintBuilder.appendKeyValue("connectionStartTime", this.f216z);
debugPrintBuilder.appendKeyValue("connectionState", this.f216z); debugPrintBuilder.appendKeyValue("connectionState", this.A);
debugPrintBuilder.appendKeyValue("resumable", Boolean.valueOf(this.A)); debugPrintBuilder.appendKeyValue("resumable", Boolean.valueOf(this.B));
} }
public final void e() { public final void e() {
b(); b();
j("[CLOSE]"); j("[CLOSE]");
c(e.i); c(e.i);
this.r = null;
this.f213s = null; this.f213s = null;
this.A = false; this.t = null;
this.f216z = c.DISCONNECTED; this.B = false;
this.A = c.DISCONNECTED;
b(); b();
for (d dVar : this.o) { for (d dVar : this.p) {
m.checkNotNullExpressionValue(dVar, "it"); m.checkNotNullExpressionValue(dVar, "it");
dVar.b(false, 1000, "Force Close"); dVar.b(false, 1000, "Force Close");
} }
@ -628,14 +634,14 @@ public final class a extends WebSocketListener implements DebugPrintable {
public final boolean f() { public final boolean f() {
b(); b();
if (this.f216z != c.DISCONNECTED) { if (this.A != c.DISCONNECTED) {
k("Cannot start a new connection, connection state is not disconnected"); k("Cannot start a new connection, connection state is not disconnected");
return false; return false;
} }
this.f216z = c.CONNECTING; this.A = c.CONNECTING;
g(); g();
b(); b();
for (d dVar : this.o) { for (d dVar : this.p) {
m.checkNotNullExpressionValue(dVar, "it"); m.checkNotNullExpressionValue(dVar, "it");
dVar.i(); dVar.i();
} }
@ -646,19 +652,19 @@ public final class a extends WebSocketListener implements DebugPrintable {
StringBuilder L = c.d.b.a.a.L("[CONNECT] "); StringBuilder L = c.d.b.a.a.L("[CONNECT] ");
L.append(this.C); L.append(this.C);
j(L.toString()); j(L.toString());
if (this.q != null) { if (this.r != null) {
this.F.e(this.B, "Connect called with already existing websocket", null, null); this.F.e(this.l, "Connect called with already existing websocket", null, null);
c(f.i); c(f.i);
return; return;
} }
this.f215y = Long.valueOf(this.H.currentTimeMillis()); this.f216z = Long.valueOf(this.H.currentTimeMillis());
TimerTask timerTask = this.f214x; TimerTask timerTask = this.f215y;
if (timerTask != null) { if (timerTask != null) {
timerTask.cancel(); timerTask.cancel();
} }
g gVar = new g(this); g gVar = new g(this);
this.f214x = gVar; this.f215y = gVar;
this.m.schedule(gVar, 20000); this.n.schedule(gVar, 20000);
x.a aVar = new x.a(); x.a aVar = new x.a();
aVar.a(1, TimeUnit.MINUTES); aVar.a(1, TimeUnit.MINUTES);
SSLSocketFactory sSLSocketFactory = this.E; SSLSocketFactory sSLSocketFactory = this.E;
@ -671,18 +677,18 @@ public final class a extends WebSocketListener implements DebugPrintable {
x xVar = new x(aVar); x xVar = new x(aVar);
z.a aVar3 = new z.a(); z.a aVar3 = new z.a();
aVar3.f(D); aVar3.f(D);
this.q = xVar.g(aVar3.a(), this); this.r = xVar.g(aVar3.a(), this);
} }
public final void h(boolean z2, Integer num, String str) { public final void h(boolean z2, Integer num, String str) {
k("[DISCONNECT] (" + z2 + ", " + num + ", " + str + ')'); k("[DISCONNECT] (" + z2 + ", " + num + ", " + str + ')');
c(null); c(null);
this.r = null;
this.f213s = null; this.f213s = null;
this.A = false; this.t = null;
this.f216z = c.DISCONNECTED; this.B = false;
this.A = c.DISCONNECTED;
b(); b();
for (d dVar : this.o) { for (d dVar : this.p) {
m.checkNotNullExpressionValue(dVar, "it"); m.checkNotNullExpressionValue(dVar, "it");
dVar.b(z2, num, str); dVar.b(z2, num, str);
} }
@ -691,52 +697,52 @@ public final class a extends WebSocketListener implements DebugPrintable {
public final void i(long j2, String str, boolean z2) { public final void i(long j2, String str, boolean z2) {
m.checkNotNullParameter(str, "reason"); m.checkNotNullParameter(str, "reason");
b(); b();
if (this.q != null) { if (this.r != null) {
j("Performing an immediate heartbeat on existing socket: " + str); j("Performing an immediate heartbeat on existing socket: " + str);
this.v.cancel(); this.w.cancel();
b bVar = new b(this); b bVar = new b(this);
this.v = bVar; this.w = bVar;
this.m.schedule(bVar, j2); this.n.schedule(bVar, j2);
} else if (!z2) { } else if (!z2) {
j("Immediate heartbeat requested, but is disconnected and a reset was not requested: " + str); j("Immediate heartbeat requested, but is disconnected and a reset was not requested: " + str);
} else if (this.n.isPending() && this.q == null) { } else if (this.o.isPending() && this.r == null) {
j("Connection backoff reset Immediate heartbeat when socket was disconnected."); j("Connection backoff reset Immediate heartbeat when socket was disconnected.");
this.n.succeed(); this.o.succeed();
m(false, 4802, "Reset backoff."); m(false, 4802, "Reset backoff.");
} }
} }
public final void j(String str) { public final void j(String str) {
Logger.i$default(this.F, this.B, str, null, 4, null); Logger.i$default(this.F, this.l, str, null, 4, null);
} }
public final void k(String str) { public final void k(String str) {
Logger.w$default(this.F, this.B, str, null, 4, null); Logger.w$default(this.F, this.l, str, null, 4, null);
} }
public final void l() { public final void l() {
if (this.u) { if (this.v) {
this.u = false; this.v = false;
o(3, String.valueOf(this.H.currentTimeMillis())); o(3, String.valueOf(this.H.currentTimeMillis()));
Long l2 = this.t; Long l2 = this.u;
if (l2 != null) { if (l2 != null) {
b bVar = new b(this); b bVar = new b(this);
this.v = bVar; this.w = bVar;
this.m.schedule(bVar, l2.longValue()); this.n.schedule(bVar, l2.longValue());
return; return;
} }
k("onHeartbeatInterval called when heartbeatInterval was null"); k("onHeartbeatInterval called when heartbeatInterval was null");
return; return;
} }
c(d.i); c(d.i);
String H = c.d.b.a.a.H(new Object[]{Double.valueOf(((double) this.n.fail(new e(this))) / 1000.0d)}, 1, "%.2f", "java.lang.String.format(this, *args)"); String H = c.d.b.a.a.H(new Object[]{Double.valueOf(((double) this.o.fail(new e(this))) / 1000.0d)}, 1, "%.2f", "java.lang.String.format(this, *args)");
k("[ACK TIMEOUT] reconnecting in " + H + " seconds."); k("[ACK TIMEOUT] reconnecting in " + H + " seconds.");
} }
public final void m(boolean z2, Integer num, String str) { public final void m(boolean z2, Integer num, String str) {
j("[RECONNECT] wasFatal=" + z2 + " code=" + num + " reason=" + str); j("[RECONNECT] wasFatal=" + z2 + " code=" + num + " reason=" + str);
c(l.i); c(l.i);
this.f216z = c.RECONNECTING; this.A = c.RECONNECTING;
g(); g();
} }
@ -751,23 +757,23 @@ public final class a extends WebSocketListener implements DebugPrintable {
} }
public final void o(int i2, Object obj) { public final void o(int i2, Object obj) {
WebSocket webSocket = this.q; WebSocket webSocket = this.r;
if (webSocket == null) { if (webSocket == null) {
StringBuilder L = c.d.b.a.a.L("opcode() websocket null. opcode: "); StringBuilder L = c.d.b.a.a.L("opcode() websocket null. opcode: ");
L.append(Opcodes.INSTANCE.getNameOf(i2)); L.append(Opcodes.INSTANCE.getNameOf(i2));
this.F.e(this.B, L.toString(), null, null); this.F.e(this.l, L.toString(), null, null);
return; return;
} }
try { try {
String m = this.l.m(new Payloads.Outgoing(i2, obj)); String m = this.m.m(new Payloads.Outgoing(i2, obj));
Logger logger = this.F; Logger logger = this.F;
String str = this.B; String str = this.l;
Logger.d$default(logger, str, "sending (" + Opcodes.INSTANCE.getNameOf(i2) + "): " + m, null, 4, null); Logger.d$default(logger, str, "sending (" + Opcodes.INSTANCE.getNameOf(i2) + "): " + m, null, 4, null);
m.checkNotNullExpressionValue(m, "json"); m.checkNotNullExpressionValue(m, "json");
webSocket.a(m); webSocket.a(m);
} catch (Exception unused) { } catch (Exception unused) {
Logger logger2 = this.F; Logger logger2 = this.F;
String str2 = this.B; String str2 = this.l;
Logger.w$default(logger2, str2, "exception sending opcode: " + i2 + " and payload: " + obj, null, 4, null); Logger.w$default(logger2, str2, "exception sending opcode: " + i2 + " and payload: " + obj, null, 4, null);
} }
} }
@ -799,7 +805,7 @@ public final class a extends WebSocketListener implements DebugPrintable {
public void onMessage(WebSocket webSocket, String str) { public void onMessage(WebSocket webSocket, String str) {
m.checkNotNullParameter(webSocket, "webSocket"); m.checkNotNullParameter(webSocket, "webSocket");
m.checkNotNullParameter(str, "text"); m.checkNotNullParameter(str, "text");
Object g2 = this.l.g(str, Payloads.Incoming.class); Object g2 = this.m.g(str, Payloads.Incoming.class);
super.onMessage(webSocket, str); super.onMessage(webSocket, str);
n(new j(this, webSocket, (Payloads.Incoming) c.i.a.f.e.o.c.q0(Payloads.Incoming.class).cast(g2))); n(new j(this, webSocket, (Payloads.Incoming) c.i.a.f.e.o.c.q0(Payloads.Incoming.class).cast(g2)));
} }

View file

@ -61,7 +61,7 @@ public final class s extends o implements Function0<Unit> {
a aVar3 = new a(replace$default2, str2, sSLSocketFactory, rtcConnection.S, rtcConnection.R.c(), rtcConnection.T, rtcConnection.k); a aVar3 = new a(replace$default2, str2, sSLSocketFactory, rtcConnection.S, rtcConnection.R.c(), rtcConnection.T, rtcConnection.k);
d0 d0Var = rtcConnection.J; d0 d0Var = rtcConnection.J;
m.checkNotNullParameter(d0Var, "listener"); m.checkNotNullParameter(d0Var, "listener");
aVar3.o.add(d0Var); aVar3.p.add(d0Var);
aVar3.f(); aVar3.f();
rtcConnection.v = aVar3; rtcConnection.v = aVar3;
} }

View file

@ -38,7 +38,7 @@ public final /* synthetic */ class z extends k implements Function1<Pair<? exten
} }
m.checkNotNullParameter(linkedHashMap, "wants"); m.checkNotNullParameter(linkedHashMap, "wants");
aVar.b(); aVar.b();
if (aVar.p >= 5) { if (aVar.q >= 5) {
aVar.o(15, linkedHashMap); aVar.o(15, linkedHashMap);
} }
} }

View file

@ -4,7 +4,7 @@ import com.discord.api.guildmember.GuildMember;
import com.discord.api.presence.Presence; import com.discord.api.presence.Presence;
import com.discord.api.utcdatetime.UtcDateTime; import com.discord.api.utcdatetime.UtcDateTime;
/* compiled from: AugmentedThreadMember.kt */ /* compiled from: AugmentedThreadMember.kt */
public final class AugmentedThreadMember extends ThreadMember { public final class AugmentedThreadMember {
private final int flags; private final int flags;
/* renamed from: id reason: collision with root package name */ /* renamed from: id reason: collision with root package name */
@ -14,31 +14,23 @@ public final class AugmentedThreadMember extends ThreadMember {
private final Presence presence; private final Presence presence;
private final long userId; private final long userId;
@Override // com.discord.api.thread.ThreadMember public final int a() {
public int a() {
return this.flags; return this.flags;
} }
@Override // com.discord.api.thread.ThreadMember public final UtcDateTime b() {
public long b() {
return this.f1578id;
}
@Override // com.discord.api.thread.ThreadMember
public UtcDateTime c() {
return this.joinTimestamp; return this.joinTimestamp;
} }
@Override // com.discord.api.thread.ThreadMember public final GuildMember c() {
public long d() {
return this.userId;
}
public final GuildMember e() {
return this.member; return this.member;
} }
public final Presence f() { public final Presence d() {
return this.presence; return this.presence;
} }
public final long e() {
return this.userId;
}
} }

View file

@ -172,7 +172,7 @@ public class App extends Application {
loggingProvider.init(appLog); loggingProvider.init(appLog);
c.i.c.c.e(this); c.i.c.c.e(this);
String str = null; String str = null;
if (BuildUtils.INSTANCE.isValidBuildVersionName("82.9 - Beta")) { if (BuildUtils.INSTANCE.isValidBuildVersionName("82.11 - Beta")) {
FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(true); FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(true);
} else { } else {
FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(false); FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(false);

View file

@ -1,5 +1,6 @@
package com.discord.models.domain; package com.discord.models.domain;
import com.discord.api.premium.SubscriptionInterval;
import com.discord.models.domain.ModelSubscription; import com.discord.models.domain.ModelSubscription;
import com.discord.models.domain.premium.SubscriptionPlanType; import com.discord.models.domain.premium.SubscriptionPlanType;
import d0.t.o; import d0.t.o;
@ -26,8 +27,9 @@ public abstract class HasSubscriptionItems {
} }
public final long getPremiumBasePlanId() { public final long getPremiumBasePlanId() {
SubscriptionPlanType.Companion companion = SubscriptionPlanType.Companion; ModelSubscription.SubscriptionItem subscriptionItem = (ModelSubscription.SubscriptionItem) u.firstOrNull((List<? extends Object>) getItems());
return companion.getBasePlanFromSubscriptionItems(getItems(), companion.from(getItems().get(0).getPlanId()).getInterval()).getPlanId(); Long valueOf = subscriptionItem != null ? Long.valueOf(subscriptionItem.getPlanId()) : null;
return SubscriptionPlanType.Companion.getBasePlanFromSubscriptionItems(getItems(), valueOf != null ? SubscriptionPlanType.Companion.from(valueOf.longValue()).getInterval() : SubscriptionInterval.MONTHLY).getPlanId();
} }
public final Long getPremiumGuildPlanId() { public final Long getPremiumGuildPlanId() {

View file

@ -648,7 +648,7 @@ public final class RtcConnection implements DebugPrintable, MediaSinkWantsManage
this.p.cancel(); this.p.cancel();
c.a.r.l0.a aVar = this.v; c.a.r.l0.a aVar = this.v;
if (aVar != null) { if (aVar != null) {
aVar.o.clear(); aVar.p.clear();
aVar.e(); aVar.e();
} }
this.v = null; this.v = null;

View file

@ -15,7 +15,7 @@ public final class StoreClientVersion extends Store {
private int clientMinVersion; private int clientMinVersion;
private final String clientMinVersionKey = "CLIENT_OUTDATED_KEY"; private final String clientMinVersionKey = "CLIENT_OUTDATED_KEY";
private final SerializedSubject<Boolean, Boolean> clientOutdatedSubject = new SerializedSubject<>(BehaviorSubject.l0(Boolean.FALSE)); private final SerializedSubject<Boolean, Boolean> clientOutdatedSubject = new SerializedSubject<>(BehaviorSubject.l0(Boolean.FALSE));
private final int clientVersion = 82109; private final int clientVersion = 82111;
public static final /* synthetic */ void access$setClientMinVersion(StoreClientVersion storeClientVersion, int i) { public static final /* synthetic */ void access$setClientMinVersion(StoreClientVersion storeClientVersion, int i) {
storeClientVersion.setClientMinVersion(i); storeClientVersion.setClientMinVersion(i);

View file

@ -238,9 +238,9 @@ public final class StoreGameParty extends StoreV2 {
if (a != null) { if (a != null) {
ArrayList<Presence> arrayList = new ArrayList(); ArrayList<Presence> arrayList = new ArrayList();
for (AugmentedThreadMember augmentedThreadMember : a) { for (AugmentedThreadMember augmentedThreadMember : a) {
Presence f = augmentedThreadMember.f(); Presence d = augmentedThreadMember.d();
if (f != null) { if (d != null) {
arrayList.add(f); arrayList.add(d);
} }
} }
for (Presence presence : arrayList) { for (Presence presence : arrayList) {

View file

@ -440,9 +440,9 @@ public final class StoreGuilds extends StoreV2 {
if (a != null) { if (a != null) {
ArrayList arrayList2 = new ArrayList(); ArrayList arrayList2 = new ArrayList();
for (AugmentedThreadMember augmentedThreadMember : a) { for (AugmentedThreadMember augmentedThreadMember : a) {
com.discord.api.guildmember.GuildMember e = augmentedThreadMember.e(); com.discord.api.guildmember.GuildMember c2 = augmentedThreadMember.c();
if (e != null) { if (c2 != null) {
arrayList2.add(e); arrayList2.add(c2);
} }
} }
arrayList = arrayList2; arrayList = arrayList2;

View file

@ -333,7 +333,7 @@ public final class StorePermissions extends StoreV2 {
if (!it.hasNext()) { if (!it.hasNext()) {
break; break;
} }
if (((AugmentedThreadMember) it.next()).d() == getMeId()) { if (((AugmentedThreadMember) it.next()).e() == getMeId()) {
z2 = true; z2 = true;
continue; continue;
} else { } else {

View file

@ -102,8 +102,8 @@ public final class StoreThreadMembers extends StoreV2 {
List<AugmentedThreadMember> a = threadMembersUpdate.a(); List<AugmentedThreadMember> a = threadMembersUpdate.a();
if (a != null) { if (a != null) {
for (AugmentedThreadMember augmentedThreadMember : a) { for (AugmentedThreadMember augmentedThreadMember : a) {
GuildMember e = augmentedThreadMember.e(); GuildMember c2 = augmentedThreadMember.c();
Long valueOf = (e == null || (j = e.j()) == null) ? null : Long.valueOf(j.i()); Long valueOf = (c2 == null || (j = c2.j()) == null) ? null : Long.valueOf(j.i());
if (valueOf != null) { if (valueOf != null) {
Set<Long> set = this.memberLists.get(Long.valueOf(threadMembersUpdate.c())); Set<Long> set = this.memberLists.get(Long.valueOf(threadMembersUpdate.c()));
if (set != null) { if (set != null) {

View file

@ -276,7 +276,7 @@ public final class StoreThreadsJoined extends StoreV2 {
break; break;
} }
Object next = it.next(); Object next = it.next();
if (((AugmentedThreadMember) next).d() == id2) { if (((AugmentedThreadMember) next).e() == id2) {
z2 = true; z2 = true;
continue; continue;
} else { } else {
@ -291,7 +291,7 @@ public final class StoreThreadsJoined extends StoreV2 {
augmentedThreadMember = augmentedThreadMember; augmentedThreadMember = augmentedThreadMember;
} }
if (augmentedThreadMember != null) { if (augmentedThreadMember != null) {
this.joinedThreads.put(Long.valueOf(threadMembersUpdate.c()), new JoinedThread(threadMembersUpdate.c(), threadMembersUpdate.b(), augmentedThreadMember.a(), augmentedThreadMember.c())); this.joinedThreads.put(Long.valueOf(threadMembersUpdate.c()), new JoinedThread(threadMembersUpdate.c(), threadMembersUpdate.b(), augmentedThreadMember.a(), augmentedThreadMember.b()));
markChanged(); markChanged();
} }
} }

View file

@ -363,14 +363,14 @@ public final class StoreUser extends StoreV2 {
List<AugmentedThreadMember> a = threadMembersUpdate.a(); List<AugmentedThreadMember> a = threadMembersUpdate.a();
if (a != null) { if (a != null) {
for (AugmentedThreadMember augmentedThreadMember : a) { for (AugmentedThreadMember augmentedThreadMember : a) {
GuildMember e = augmentedThreadMember.e(); GuildMember c2 = augmentedThreadMember.c();
if (e != null) { if (c2 != null) {
updateUser(e.j()); updateUser(c2.j());
} }
Presence f = augmentedThreadMember.f(); Presence d = augmentedThreadMember.d();
User f2 = f != null ? f.f() : null; User f = d != null ? d.f() : null;
if (f2 != null) { if (f != null) {
updateUser(f2); updateUser(f);
} }
} }
} }

View file

@ -565,9 +565,9 @@ public final class StoreUserPresence extends StoreV2 {
List<AugmentedThreadMember> a = threadMembersUpdate.a(); List<AugmentedThreadMember> a = threadMembersUpdate.a();
if (a != null) { if (a != null) {
for (AugmentedThreadMember augmentedThreadMember : a) { for (AugmentedThreadMember augmentedThreadMember : a) {
com.discord.api.presence.Presence f = augmentedThreadMember.f(); com.discord.api.presence.Presence d = augmentedThreadMember.d();
if (f != null) { if (d != null) {
handlePresenceUpdate(threadMembersUpdate.b(), augmentedThreadMember.d(), f.e(), f.c(), f.b()); handlePresenceUpdate(threadMembersUpdate.b(), augmentedThreadMember.e(), d.e(), d.c(), d.b());
} }
} }
} }

View file

@ -77,7 +77,7 @@ public final class AnalyticSuperProperties {
private final void setBaselineProperties() { private final void setBaselineProperties() {
String locale = Locale.getDefault().toString(); String locale = Locale.getDefault().toString();
m.checkNotNullExpressionValue(locale, "Locale.getDefault().toString()"); m.checkNotNullExpressionValue(locale, "Locale.getDefault().toString()");
updateSuperProperties(h0.mapOf(o.to("browser", "Discord Android"), o.to("browser_user_agent", "Discord-Android/82109"), o.to("client_build_number", 82109), o.to("client_version", "82.9 - Beta"), o.to("device", Build.MODEL + ", " + Build.PRODUCT), o.to("os", "Android"), o.to("os_sdk_version", String.valueOf(Build.VERSION.SDK_INT)), o.to("os_version", Build.VERSION.RELEASE), o.to("system_locale", t.replace$default(locale, "_", "-", false, 4, (Object) null)))); updateSuperProperties(h0.mapOf(o.to("browser", "Discord Android"), o.to("browser_user_agent", "Discord-Android/82111"), o.to("client_build_number", 82111), o.to("client_version", "82.11 - Beta"), o.to("device", Build.MODEL + ", " + Build.PRODUCT), o.to("os", "Android"), o.to("os_sdk_version", String.valueOf(Build.VERSION.SDK_INT)), o.to("os_version", Build.VERSION.RELEASE), o.to("system_locale", t.replace$default(locale, "_", "-", false, 4, (Object) null))));
} }
private final void setSuperProperties(Map<String, ? extends Object> map) { private final void setSuperProperties(Map<String, ? extends Object> map) {

View file

@ -1,17 +1,40 @@
package com.discord.utilities.networking; package com.discord.utilities.networking;
import com.discord.utilities.logging.Logger;
import com.discord.utilities.logging.LoggingProvider;
import com.discord.utilities.networking.Backoff;
import java.util.TimerTask; import java.util.TimerTask;
import java.util.concurrent.ExecutorService;
import kotlin.jvm.functions.Function0; import kotlin.jvm.functions.Function0;
/* compiled from: Backoff.kt */ /* compiled from: Backoff.kt */
public final class Backoff$TimerScheduler$schedule$1 extends TimerTask { public final class Backoff$TimerScheduler$schedule$1 extends TimerTask {
public final /* synthetic */ Function0 $action; public final /* synthetic */ Function0 $action;
public final /* synthetic */ Backoff.TimerScheduler this$0;
public Backoff$TimerScheduler$schedule$1(Function0 function0) { public Backoff$TimerScheduler$schedule$1(Backoff.TimerScheduler timerScheduler, Function0 function0) {
this.this$0 = timerScheduler;
this.$action = function0; this.$action = function0;
} }
/* JADX WARN: Multi-variable type inference failed */
/* JADX WARNING: Unknown variable types count: 1 */
@Override // java.util.TimerTask, java.lang.Runnable @Override // java.util.TimerTask, java.lang.Runnable
public void run() { public void run() {
this.$action.mo1invoke(); if (Backoff.TimerScheduler.access$getDelegateExecutor$p(this.this$0) == null) {
this.$action.mo1invoke();
return;
}
Logger logger = LoggingProvider.INSTANCE.get();
if (Backoff.TimerScheduler.access$getDelegateExecutor$p(this.this$0).isShutdown()) {
Logger.i$default(logger, Backoff.TimerScheduler.access$getTag$p(this.this$0), "skipping delayed task. executor is not running", null, 4, null);
return;
}
Logger.v$default(logger, Backoff.TimerScheduler.access$getTag$p(this.this$0), "TimerScheduler posting to delegate scheduler", null, 4, null);
ExecutorService access$getDelegateExecutor$p = Backoff.TimerScheduler.access$getDelegateExecutor$p(this.this$0);
Function0 function0 = this.$action;
if (function0 != null) {
function0 = new Backoff$sam$java_lang_Runnable$0(function0);
}
access$getDelegateExecutor$p.execute((Runnable) function0);
} }
} }

View file

@ -0,0 +1,17 @@
package com.discord.utilities.networking;
import d0.z.d.m;
import kotlin.jvm.functions.Function0;
/* compiled from: Backoff.kt */
public final class Backoff$sam$java_lang_Runnable$0 implements Runnable {
private final /* synthetic */ Function0 function;
public Backoff$sam$java_lang_Runnable$0(Function0 function0) {
this.function = function0;
}
@Override // java.lang.Runnable
public final /* synthetic */ void run() {
m.checkNotNullExpressionValue(this.function.mo1invoke(), "invoke(...)");
}
}

View file

@ -3,6 +3,7 @@ package com.discord.utilities.networking;
import d0.z.d.m; import d0.z.d.m;
import java.util.Timer; import java.util.Timer;
import java.util.TimerTask; import java.util.TimerTask;
import java.util.concurrent.ExecutorService;
import kotlin.Unit; import kotlin.Unit;
import kotlin.jvm.functions.Function0; import kotlin.jvm.functions.Function0;
import kotlin.jvm.internal.DefaultConstructorMarker; import kotlin.jvm.internal.DefaultConstructorMarker;
@ -26,8 +27,33 @@ public final class Backoff {
/* compiled from: Backoff.kt */ /* compiled from: Backoff.kt */
public static final class TimerScheduler extends Timer implements Scheduler { public static final class TimerScheduler extends Timer implements Scheduler {
private final ExecutorService delegateExecutor;
private final String tag;
private TimerTask timeoutTimerTask; private TimerTask timeoutTimerTask;
public TimerScheduler() {
this(null, null, 3, null);
}
public TimerScheduler(String str, ExecutorService executorService) {
m.checkNotNullParameter(str, "tag");
this.tag = str;
this.delegateExecutor = executorService;
}
/* JADX INFO: this call moved to the top of the method (can break code semantics) */
public /* synthetic */ TimerScheduler(String str, ExecutorService executorService, int i, DefaultConstructorMarker defaultConstructorMarker) {
this((i & 1) != 0 ? "TimerScheduler" : str, (i & 2) != 0 ? null : executorService);
}
public static final /* synthetic */ ExecutorService access$getDelegateExecutor$p(TimerScheduler timerScheduler) {
return timerScheduler.delegateExecutor;
}
public static final /* synthetic */ String access$getTag$p(TimerScheduler timerScheduler) {
return timerScheduler.tag;
}
@Override // java.util.Timer, com.discord.utilities.networking.Backoff.Scheduler @Override // java.util.Timer, com.discord.utilities.networking.Backoff.Scheduler
public synchronized void cancel() { public synchronized void cancel() {
TimerTask timerTask = this.timeoutTimerTask; TimerTask timerTask = this.timeoutTimerTask;
@ -43,7 +69,7 @@ public final class Backoff {
if (timerTask != null) { if (timerTask != null) {
timerTask.cancel(); timerTask.cancel();
} }
Backoff$TimerScheduler$schedule$1 backoff$TimerScheduler$schedule$1 = new Backoff$TimerScheduler$schedule$1(function0); Backoff$TimerScheduler$schedule$1 backoff$TimerScheduler$schedule$1 = new Backoff$TimerScheduler$schedule$1(this, function0);
this.timeoutTimerTask = backoff$TimerScheduler$schedule$1; this.timeoutTimerTask = backoff$TimerScheduler$schedule$1;
schedule(backoff$TimerScheduler$schedule$1, j); schedule(backoff$TimerScheduler$schedule$1, j);
} }
@ -65,7 +91,7 @@ public final class Backoff {
/* JADX WARNING: Illegal instructions before constructor call */ /* JADX WARNING: Illegal instructions before constructor call */
public /* synthetic */ Backoff(long j, long j2, int i, boolean z2, Scheduler scheduler, int i2, DefaultConstructorMarker defaultConstructorMarker) { public /* synthetic */ Backoff(long j, long j2, int i, boolean z2, Scheduler scheduler, int i2, DefaultConstructorMarker defaultConstructorMarker) {
this(r0, (i2 & 2) != 0 ? ((long) 10) * r0 : j2, (i2 & 4) != 0 ? Integer.MAX_VALUE : i, (i2 & 8) != 0 ? true : z2, (i2 & 16) != 0 ? new TimerScheduler() : scheduler); this(r0, (i2 & 2) != 0 ? ((long) 10) * r0 : j2, (i2 & 4) != 0 ? Integer.MAX_VALUE : i, (i2 & 8) != 0 ? true : z2, (i2 & 16) != 0 ? new TimerScheduler(null, null, 3, null) : scheduler);
long j3 = (i2 & 1) != 0 ? 500 : j; long j3 = (i2 & 1) != 0 ? 500 : j;
} }

View file

@ -177,7 +177,7 @@ public final class RestAPI implements RestAPIInterface {
@Override // com.discord.restapi.RequiredHeadersInterceptor.HeadersProvider @Override // com.discord.restapi.RequiredHeadersInterceptor.HeadersProvider
public String getUserAgent() { public String getUserAgent() {
return "Discord-Android/82109"; return "Discord-Android/82111";
} }
} }

View file

@ -100,7 +100,7 @@ public final class WidgetFatalCrash extends AppFragment {
textView2.setText(b.j(this, 2131887892, objArr2, null, 4)); textView2.setText(b.j(this, 2131887892, objArr2, null, 4));
TextView textView3 = getBinding().b; TextView textView3 = getBinding().b;
m.checkNotNullExpressionValue(textView3, "binding.fatalCrashAppVersion"); m.checkNotNullExpressionValue(textView3, "binding.fatalCrashAppVersion");
textView3.setText(b.j(this, 2131887885, new Object[]{"82.9 - Beta"}, null, 4)); textView3.setText(b.j(this, 2131887885, new Object[]{"82.11 - Beta"}, null, 4));
TextView textView4 = getBinding().d; TextView textView4 = getBinding().d;
m.checkNotNullExpressionValue(textView4, "binding.fatalCrashOsVersion"); m.checkNotNullExpressionValue(textView4, "binding.fatalCrashOsVersion");
textView4.setText(b.j(this, 2131887888, new Object[]{String.valueOf(Build.VERSION.SDK_INT)}, null, 4)); textView4.setText(b.j(this, 2131887888, new Object[]{String.valueOf(Build.VERSION.SDK_INT)}, null, 4));

View file

@ -332,7 +332,7 @@ public final class WidgetSettings extends AppFragment implements OnTabSelectedLi
TextView textView = binding.f; TextView textView = binding.f;
m.checkNotNullExpressionValue(textView, "appInfoHeader"); m.checkNotNullExpressionValue(textView, "appInfoHeader");
String string = getString(2131886360); String string = getString(2131886360);
textView.setText(string + " - 82.9 - Beta (82109)"); textView.setText(string + " - 82.11 - Beta (82111)");
binding.f1921y.setOnClickListener(new WidgetSettings$onViewBound$$inlined$with$lambda$2(this)); binding.f1921y.setOnClickListener(new WidgetSettings$onViewBound$$inlined$with$lambda$2(this));
binding.u.setOnClickListener(WidgetSettings$onViewBound$1$4.INSTANCE); binding.u.setOnClickListener(WidgetSettings$onViewBound$1$4.INSTANCE);
binding.q.setOnClickListener(WidgetSettings$onViewBound$1$5.INSTANCE); binding.q.setOnClickListener(WidgetSettings$onViewBound$1$5.INSTANCE);

View file

@ -742,10 +742,13 @@ public final class WidgetSettingsPremium extends AppFragment {
getBinding().f1938c.e.setOnClickListener(new WidgetSettingsPremium$configurePaymentInfo$2(isGoogleSubscription, premiumSubscription)); getBinding().f1938c.e.setOnClickListener(new WidgetSettingsPremium$configurePaymentInfo$2(isGoogleSubscription, premiumSubscription));
} }
/* JADX WARNING: Code restructure failed: missing block: B:57:0x00df, code lost: /* JADX WARNING: Code restructure failed: missing block: B:62:0x00ea, code lost:
if (r2 != null) goto L_0x0106; if (r2 != null) goto L_0x0111;
*/ */
/* JADX WARNING: Removed duplicated region for block: B:24:0x0046 */
/* JADX WARNING: Removed duplicated region for block: B:25:0x0048 */
private final void configureStatusNotice(ModelSubscription modelSubscription, Map<String, ? extends SkuDetails> map) { private final void configureStatusNotice(ModelSubscription modelSubscription, Map<String, ? extends SkuDetails> map) {
boolean z2;
CharSequence charSequence; CharSequence charSequence;
CharSequence charSequence2; CharSequence charSequence2;
SubscriptionPlanType subscriptionPlanType; SubscriptionPlanType subscriptionPlanType;
@ -753,82 +756,95 @@ public final class WidgetSettingsPremium extends AppFragment {
CharSequence charSequence3; CharSequence charSequence3;
String paymentGatewayPlanId; String paymentGatewayPlanId;
ModelSubscription.Status status; ModelSubscription.Status status;
boolean z2 = (modelSubscription != null ? modelSubscription.getRenewalMutations() : null) != null; boolean z3 = (modelSubscription != null ? modelSubscription.getRenewalMutations() : null) != null;
boolean isAccountHold = (modelSubscription == null || (status = modelSubscription.getStatus()) == null) ? false : status.isAccountHold(); boolean isAccountHold = (modelSubscription == null || (status = modelSubscription.getStatus()) == null) ? false : status.isAccountHold();
boolean z3 = z2 || isAccountHold; if (z3 || isAccountHold) {
if ((modelSubscription != null ? modelSubscription.getStatus() : null) != ModelSubscription.Status.CANCELED) {
z2 = true;
CardView cardView = getBinding().n;
m.checkNotNullExpressionValue(cardView, "binding.premiumSettingsStatusNoticeContainer");
int i = 8;
cardView.setVisibility(!z2 ? 0 : 8);
if (z2 && modelSubscription != null) {
boolean isGoogleSubscription = modelSubscription.isGoogleSubscription();
if (z3) {
String renderUtcDate$default = TimeUtils.renderUtcDate$default(TimeUtils.INSTANCE, modelSubscription.getCurrentPeriodEnd(), requireContext(), (String) null, (java.text.DateFormat) null, 0, 28, (Object) null);
ModelSubscription.SubscriptionRenewalMutations renewalMutations = modelSubscription.getRenewalMutations();
SkuDetails skuDetails = (renewalMutations == null || (paymentGatewayPlanId = renewalMutations.getPaymentGatewayPlanId()) == null || map == null) ? null : (SkuDetails) map.get(paymentGatewayPlanId);
SubscriptionPlanType[] values = SubscriptionPlanType.values();
int i2 = 0;
while (true) {
if (i2 >= 10) {
subscriptionPlanType2 = null;
break;
}
subscriptionPlanType2 = values[i2];
long planId = subscriptionPlanType2.getPlanId();
ModelSubscription.SubscriptionRenewalMutations renewalMutations2 = modelSubscription.getRenewalMutations();
if (renewalMutations2 != null && planId == renewalMutations2.getPremiumBasePlanId()) {
break;
}
i2++;
}
if (!isGoogleSubscription || skuDetails == null) {
charSequence3 = getPlanString(subscriptionPlanType2);
} else {
charSequence3 = skuDetails.a();
m.checkNotNullExpressionValue(charSequence3, "skuDetails.description");
}
charSequence = b.j(this, 2131892286, new Object[]{charSequence3, renderUtcDate$default}, null, 4);
} else if (isAccountHold) {
String paymentGatewayPlanId2 = modelSubscription.getPaymentGatewayPlanId();
if (paymentGatewayPlanId2 != null) {
SkuDetails skuDetails2 = map != null ? (SkuDetails) map.get(paymentGatewayPlanId2) : null;
if (skuDetails2 != null) {
charSequence2 = skuDetails2.a();
}
}
SubscriptionPlanType[] values2 = SubscriptionPlanType.values();
int i3 = 0;
while (true) {
if (i3 >= 10) {
subscriptionPlanType = null;
break;
}
subscriptionPlanType = values2[i3];
if (modelSubscription.hasAnyOfPlans(m0.setOf(Long.valueOf(subscriptionPlanType.getPlanId())))) {
break;
}
i3++;
}
charSequence2 = getPlanString(subscriptionPlanType);
charSequence = b.j(this, 2131892315, new Object[]{TimeUtils.renderUtcDate$default(TimeUtils.INSTANCE, modelSubscription.getAccountHoldEstimatedExpirationTimestamp(), requireContext(), 0, 4, null), charSequence2}, null, 4);
} else {
charSequence = "";
}
TextView textView = getBinding().o;
m.checkNotNullExpressionValue(textView, "binding.premiumSettingsStatusNoticeTv");
textView.setText(charSequence);
Button button = getBinding().m;
m.checkNotNullExpressionValue(button, "binding.premiumSettingsStatusNoticeButton");
if (isAccountHold) {
i = 0;
}
button.setVisibility(i);
if (isAccountHold) {
Button button2 = getBinding().m;
m.checkNotNullExpressionValue(button2, "binding.premiumSettingsStatusNoticeButton");
b.m(button2, 2131892314, new Object[0], null, 4);
getBinding().m.setOnClickListener(new WidgetSettingsPremium$configureStatusNotice$1(this, modelSubscription));
return;
}
return;
}
}
}
z2 = false;
CardView cardView = getBinding().n; CardView cardView = getBinding().n;
m.checkNotNullExpressionValue(cardView, "binding.premiumSettingsStatusNoticeContainer"); m.checkNotNullExpressionValue(cardView, "binding.premiumSettingsStatusNoticeContainer");
int i = 8; int i = 8;
cardView.setVisibility(z3 ? 0 : 8); cardView.setVisibility(!z2 ? 0 : 8);
if (z3 && modelSubscription != null) { if (z2) {
boolean isGoogleSubscription = modelSubscription.isGoogleSubscription();
if (z2) {
String renderUtcDate$default = TimeUtils.renderUtcDate$default(TimeUtils.INSTANCE, modelSubscription.getCurrentPeriodEnd(), requireContext(), (String) null, (java.text.DateFormat) null, 0, 28, (Object) null);
ModelSubscription.SubscriptionRenewalMutations renewalMutations = modelSubscription.getRenewalMutations();
SkuDetails skuDetails = (renewalMutations == null || (paymentGatewayPlanId = renewalMutations.getPaymentGatewayPlanId()) == null || map == null) ? null : (SkuDetails) map.get(paymentGatewayPlanId);
SubscriptionPlanType[] values = SubscriptionPlanType.values();
int i2 = 0;
while (true) {
if (i2 >= 10) {
subscriptionPlanType2 = null;
break;
}
subscriptionPlanType2 = values[i2];
long planId = subscriptionPlanType2.getPlanId();
ModelSubscription.SubscriptionRenewalMutations renewalMutations2 = modelSubscription.getRenewalMutations();
if (renewalMutations2 != null && planId == renewalMutations2.getPremiumBasePlanId()) {
break;
}
i2++;
}
if (!isGoogleSubscription || skuDetails == null) {
charSequence3 = getPlanString(subscriptionPlanType2);
} else {
charSequence3 = skuDetails.a();
m.checkNotNullExpressionValue(charSequence3, "skuDetails.description");
}
charSequence = b.j(this, 2131892286, new Object[]{charSequence3, renderUtcDate$default}, null, 4);
} else if (isAccountHold) {
String paymentGatewayPlanId2 = modelSubscription.getPaymentGatewayPlanId();
if (paymentGatewayPlanId2 != null) {
SkuDetails skuDetails2 = map != null ? (SkuDetails) map.get(paymentGatewayPlanId2) : null;
if (skuDetails2 != null) {
charSequence2 = skuDetails2.a();
}
}
SubscriptionPlanType[] values2 = SubscriptionPlanType.values();
int i3 = 0;
while (true) {
if (i3 >= 10) {
subscriptionPlanType = null;
break;
}
subscriptionPlanType = values2[i3];
if (modelSubscription.hasAnyOfPlans(m0.setOf(Long.valueOf(subscriptionPlanType.getPlanId())))) {
break;
}
i3++;
}
charSequence2 = getPlanString(subscriptionPlanType);
charSequence = b.j(this, 2131892315, new Object[]{TimeUtils.renderUtcDate$default(TimeUtils.INSTANCE, modelSubscription.getAccountHoldEstimatedExpirationTimestamp(), requireContext(), 0, 4, null), charSequence2}, null, 4);
} else {
charSequence = "";
}
TextView textView = getBinding().o;
m.checkNotNullExpressionValue(textView, "binding.premiumSettingsStatusNoticeTv");
textView.setText(charSequence);
Button button = getBinding().m;
m.checkNotNullExpressionValue(button, "binding.premiumSettingsStatusNoticeButton");
if (isAccountHold) {
i = 0;
}
button.setVisibility(i);
if (isAccountHold) {
Button button2 = getBinding().m;
m.checkNotNullExpressionValue(button2, "binding.premiumSettingsStatusNoticeButton");
b.m(button2, 2131892314, new Object[0], null, 4);
getBinding().m.setOnClickListener(new WidgetSettingsPremium$configureStatusNotice$1(this, modelSubscription));
}
} }
} }

View file

@ -1341,7 +1341,7 @@
<string name="color_picker_presets">Presets</string> <string name="color_picker_presets">Presets</string>
<string name="color_picker_title">Select a color</string> <string name="color_picker_title">Select a color</string>
<string name="color_picker_transparency">Transparency</string> <string name="color_picker_transparency">Transparency</string>
<string name="res_2131887421_com_crashlytics_android_build_id">b98318c12ac84e23aff9ec103d261bc0</string> <string name="res_2131887421_com_crashlytics_android_build_id">f31707f8e813423498473e05c7641788</string>
<string name="coming_soon">Coming Soon</string> <string name="coming_soon">Coming Soon</string>
<string name="command_accessibility_desc_app_header_item">Slash command application {applicationName}</string> <string name="command_accessibility_desc_app_header_item">Slash command application {applicationName}</string>
<string name="command_accessibility_desc_app_item">{applicationName} application</string> <string name="command_accessibility_desc_app_item">{applicationName} application</string>