diff --git a/app/build.gradle b/app/build.gradle index 3beb291041..a727d4630c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ android { applicationId 'com.discord' minSdkVersion 21 targetSdkVersion 29 - versionCode 82109 - versionName "82.9 - Beta" + versionCode 82111 + versionName "82.11 - Beta" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 2c17b6a46d..6772d0c16a 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,5 +1,5 @@ - + diff --git a/app/src/main/java/c/a/r/d0.java b/app/src/main/java/c/a/r/d0.java index efe2596f57..38bc941225 100644 --- a/app/src/main/java/c/a/r/d0.java +++ b/app/src/main/java/c/a/r/d0.java @@ -286,9 +286,9 @@ public final class d0 implements a.d { m.checkNotNullParameter(str, "serverId"); m.checkNotNullParameter(str2, "sessionId"); aVar.b(); - aVar.r = str; - aVar.f213s = str2; - aVar.f216z = a.c.IDENTIFYING; + aVar.f213s = str; + aVar.t = str2; + aVar.A = a.c.IDENTIFYING; aVar.o(0, new Payloads.Identify(str, j, str2, aVar.D, z2)); rtcConnection.u(RtcConnection.State.a.a); } diff --git a/app/src/main/java/c/a/r/l0/a.java b/app/src/main/java/c/a/r/l0/a.java index 32845cf9d9..d7f872ee52 100644 --- a/app/src/main/java/c/a/r/l0/a.java +++ b/app/src/main/java/c/a/r/l0/a.java @@ -42,8 +42,8 @@ public final class a extends WebSocketListener implements DebugPrintable { public static int i; public static final Type j = new C0038a().getType(); public static final b k = new b(null); - public boolean A; - public final String B; + public c A; + public boolean B; public final String C; public final String D; 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 Clock H; public final String I; - public final Gson l = new c.i.d.e().a(); - public final Timer m = new Timer(); - public final Backoff n = new Backoff(1000, 5000, 3, false, null, 24, null); - public final CopyOnWriteArraySet o = new CopyOnWriteArraySet<>(); - public int p = 3; - public WebSocket q; - public String r; + public final String l; + public final Gson m = new c.i.d.e().a(); + public final Timer n = new Timer(); + public final Backoff o; + public final CopyOnWriteArraySet p; + public int q; + public WebSocket r; /* renamed from: s reason: collision with root package name */ public String f213s; - public Long t; - public boolean u; - public b v = new b(this); - public Long w; + public String t; + public Long u; + public boolean v; + public b w; /* renamed from: x reason: collision with root package name */ - public TimerTask f214x; + public Long f214x; /* renamed from: y reason: collision with root package name */ - public Long f215y; + public TimerTask f215y; /* renamed from: z reason: collision with root package name */ - public c f216z = c.DISCONNECTED; + public Long f216z; /* compiled from: RtcControlSocket.kt */ /* 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 /* renamed from: invoke */ 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); } return Unit.a; @@ -242,12 +242,12 @@ public final class a extends WebSocketListener implements DebugPrintable { @Override // kotlin.jvm.functions.Function0 /* renamed from: invoke */ 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) { a.d(this.this$0, null, 1); a aVar = this.this$0; aVar.b(); - for (d dVar : aVar.o) { + for (d dVar : aVar.p) { m.checkNotNullExpressionValue(dVar, "it"); dVar.b(false, 1001, null); } @@ -281,20 +281,20 @@ public final class a extends WebSocketListener implements DebugPrintable { /* renamed from: invoke */ public Unit mo1invoke() { 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()) { case 2: 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)"); Payloads.Ready ready = (Payloads.Ready) c2; - aVar.n.succeed(); + aVar.o.succeed(); long currentTimeMillis = aVar.H.currentTimeMillis(); - Long l = aVar.f215y; + Long l = aVar.f216z; long longValue = currentTimeMillis - (l != null ? l.longValue() : 0); aVar.j("[READY] took " + longValue + " ms"); aVar.b(); - for (d dVar : aVar.o) { + for (d dVar : aVar.p) { m.checkNotNullExpressionValue(dVar, "it"); dVar.l(ready.getPort(), ready.getSsrc(), ready.getIp()); } @@ -305,11 +305,11 @@ public final class a extends WebSocketListener implements DebugPrintable { break; case 4: 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)"); Payloads.Description description = (Payloads.Description) c3; aVar3.b(); - for (d dVar2 : aVar3.o) { + for (d dVar2 : aVar3.p) { m.checkNotNullExpressionValue(dVar2, "it"); dVar2.c(description.getMode(), description.getSecretKey()); dVar2.a(description.getAudioCodec(), description.getVideoCodec()); @@ -318,11 +318,11 @@ public final class a extends WebSocketListener implements DebugPrintable { dVar2.d(mediaSessionId); } } - aVar3.A = true; + aVar3.B = true; break; case 5: 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)"); Payloads.Speaking speaking = (Payloads.Speaking) c4; if (!(speaking.getUserId() == null || speaking.getSpeaking() == null)) { @@ -331,7 +331,7 @@ public final class a extends WebSocketListener implements DebugPrintable { z2 = false; } aVar4.b(); - for (d dVar3 : aVar4.o) { + for (d dVar3 : aVar4.p) { m.checkNotNullExpressionValue(dVar3, "it"); dVar3.onSpeaking(speaking.getUserId().longValue(), speaking.getSsrc(), z2); } @@ -339,16 +339,16 @@ public final class a extends WebSocketListener implements DebugPrintable { } case 6: 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)"); long longValue2 = ((Number) c5).longValue(); long currentTimeMillis2 = aVar5.H.currentTimeMillis(); 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); - aVar5.w = Long.valueOf(currentTimeMillis2); - aVar5.u = true; + Logger.d$default(aVar5.F, aVar5.l, c.d.b.a.a.r("got heartbeat ack after ", j, " ms"), null, 4, null); + aVar5.f214x = Long.valueOf(currentTimeMillis2); + aVar5.v = true; aVar5.b(); - for (d dVar4 : aVar5.o) { + for (d dVar4 : aVar5.p) { m.checkNotNullExpressionValue(dVar4, "it"); dVar4.g(j); } @@ -364,31 +364,31 @@ public final class a extends WebSocketListener implements DebugPrintable { break; case 8: 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)"); Payloads.Hello hello = (Payloads.Hello) c6; - TimerTask timerTask = aVar7.f214x; + TimerTask timerTask = aVar7.f215y; if (timerTask != null) { timerTask.cancel(); } aVar7.j("[HELLO] raw: " + hello); - aVar7.t = Long.valueOf(hello.getHeartbeatIntervalMs()); - aVar7.p = hello.getServerVersion(); - aVar7.v.cancel(); - aVar7.u = true; + aVar7.u = Long.valueOf(hello.getHeartbeatIntervalMs()); + aVar7.q = hello.getServerVersion(); + aVar7.w.cancel(); + aVar7.v = true; aVar7.l(); break; case 9: - this.this$0.n.succeed(); + this.this$0.o.succeed(); break; case 12: 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)"); Payloads.Video video = (Payloads.Video) c7; if (video.getUserId() != null) { aVar8.b(); - for (d dVar5 : aVar8.o) { + for (d dVar5 : aVar8.p) { m.checkNotNullExpressionValue(dVar5, "it"); dVar5.e(video.getUserId().longValue(), video.getAudioSsrc(), video.getVideoSsrc(), video.getStreams()); } @@ -397,22 +397,22 @@ public final class a extends WebSocketListener implements DebugPrintable { break; case 13: 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)"); Payloads.ClientDisconnect clientDisconnect = (Payloads.ClientDisconnect) c8; aVar9.b(); - for (d dVar6 : aVar9.o) { + for (d dVar6 : aVar9.p) { m.checkNotNullExpressionValue(dVar6, "it"); dVar6.k(clientDisconnect.getUserId()); } break; case 14: 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)"); Payloads.SessionUpdate sessionUpdate = (Payloads.SessionUpdate) c9; aVar10.b(); - for (d dVar7 : aVar10.o) { + for (d dVar7 : aVar10.p) { m.checkNotNullExpressionValue(dVar7, "it"); String mediaSessionId2 = sessionUpdate.getMediaSessionId(); if (mediaSessionId2 != null) { @@ -422,7 +422,7 @@ public final class a extends WebSocketListener implements DebugPrintable { break; case 15: a aVar11 = this.this$0; - Gson gson = aVar11.l; + Gson gson = aVar11.m; JsonElement data = this.$message.getData(); Type type = a.j; 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)"); Map map = (Map) d; aVar11.b(); - for (d dVar8 : aVar11.o) { + for (d dVar8 : aVar11.p) { m.checkNotNullExpressionValue(dVar8, "it"); dVar8.f(map); } @@ -458,54 +458,54 @@ public final class a extends WebSocketListener implements DebugPrintable { /* renamed from: invoke */ public Unit mo1invoke() { 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; - c cVar = aVar.f216z; + c cVar = aVar.A; if (cVar == c.CONNECTING) { aVar.b(); - for (d dVar : aVar.o) { + for (d dVar : aVar.p) { m.checkNotNullExpressionValue(dVar, "it"); dVar.j(); } } else if (cVar == c.RECONNECTING) { - String str = aVar.f213s; - String str2 = aVar.r; + String str = aVar.t; + String str2 = aVar.f213s; String str3 = aVar.D; - Long l = aVar.w; + Long l = aVar.f214x; if (l != null && aVar.H.currentTimeMillis() - l.longValue() > 60000) { 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: "); - L.append(aVar.A); + L.append(aVar.B); L.append(" -- isHeartbeatRecentEnough: "); L.append(z2); aVar.h(false, 4801, L.toString()); } else { aVar.j("[RESUME] resuming session. serverId=" + str2 + " sessionId=" + str); aVar.b(); - for (d dVar2 : aVar.o) { + for (d dVar2 : aVar.p) { m.checkNotNullExpressionValue(dVar2, "it"); dVar2.h(); } - aVar.f216z = c.RESUMING; + aVar.A = c.RESUMING; aVar.o(7, new Payloads.Resume(str3, str, str2)); } } a aVar2 = this.this$0; - aVar2.f216z = c.CONNECTED; + aVar2.A = c.CONNECTED; 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); a aVar3 = this.this$0; Logger logger = aVar3.F; - String str4 = aVar3.B; + String str4 = aVar3.l; StringBuilder L2 = c.d.b.a.a.L("[CONNECTED] to "); L2.append(this.this$0.C); Logger.i$default(logger, str4, L2.toString(), null, 4, null); a aVar4 = this.this$0; aVar4.b(); - for (d dVar3 : aVar4.o) { + for (d dVar3 : aVar4.p) { m.checkNotNullExpressionValue(dVar3, "it"); dVar3.g(longValue / ((long) 2)); } @@ -551,19 +551,25 @@ public final class a extends WebSocketListener implements DebugPrintable { int i2 = i + 1; i = 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) { - 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)))) { aVar.h(true, num, str); - } else if (aVar.n.hasReachedFailureThreshold()) { + } else if (aVar.o.hasReachedFailureThreshold()) { aVar.k("[WS CLOSED] Backoff exceeded. Resetting."); aVar.h(z2, num, str); } else { 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."); } } @@ -586,41 +592,41 @@ public final class a extends WebSocketListener implements DebugPrintable { } public final void c(Function1 function1) { - this.n.cancel(); - this.v.cancel(); - TimerTask timerTask = this.f214x; + this.o.cancel(); + this.w.cancel(); + TimerTask timerTask = this.f215y; if (timerTask != null) { timerTask.cancel(); } - WebSocket webSocket = this.q; + WebSocket webSocket = this.r; if (!(webSocket == null || function1 == null)) { function1.invoke(webSocket); } - this.q = null; + this.r = null; } @Override // com.discord.utilities.debug.DebugPrintable public void debugPrint(DebugPrintBuilder debugPrintBuilder) { m.checkNotNullParameter(debugPrintBuilder, "dp"); - debugPrintBuilder.appendKeyValue("serverId", this.r); - debugPrintBuilder.appendKeyValue("sessionId", this.f213s); - debugPrintBuilder.appendKeyValue("heartbeatInterval", this.t); - debugPrintBuilder.appendKeyValue("lastHeartbeatAckTime", this.w); - debugPrintBuilder.appendKeyValue("connectionStartTime", this.f215y); - debugPrintBuilder.appendKeyValue("connectionState", this.f216z); - debugPrintBuilder.appendKeyValue("resumable", Boolean.valueOf(this.A)); + debugPrintBuilder.appendKeyValue("serverId", this.f213s); + debugPrintBuilder.appendKeyValue("sessionId", this.t); + debugPrintBuilder.appendKeyValue("heartbeatInterval", this.u); + debugPrintBuilder.appendKeyValue("lastHeartbeatAckTime", this.f214x); + debugPrintBuilder.appendKeyValue("connectionStartTime", this.f216z); + debugPrintBuilder.appendKeyValue("connectionState", this.A); + debugPrintBuilder.appendKeyValue("resumable", Boolean.valueOf(this.B)); } public final void e() { b(); j("[CLOSE]"); c(e.i); - this.r = null; this.f213s = null; - this.A = false; - this.f216z = c.DISCONNECTED; + this.t = null; + this.B = false; + this.A = c.DISCONNECTED; b(); - for (d dVar : this.o) { + for (d dVar : this.p) { m.checkNotNullExpressionValue(dVar, "it"); dVar.b(false, 1000, "Force Close"); } @@ -628,14 +634,14 @@ public final class a extends WebSocketListener implements DebugPrintable { public final boolean f() { b(); - if (this.f216z != c.DISCONNECTED) { + if (this.A != c.DISCONNECTED) { k("Cannot start a new connection, connection state is not disconnected"); return false; } - this.f216z = c.CONNECTING; + this.A = c.CONNECTING; g(); b(); - for (d dVar : this.o) { + for (d dVar : this.p) { m.checkNotNullExpressionValue(dVar, "it"); dVar.i(); } @@ -646,19 +652,19 @@ public final class a extends WebSocketListener implements DebugPrintable { StringBuilder L = c.d.b.a.a.L("[CONNECT] "); L.append(this.C); j(L.toString()); - if (this.q != null) { - this.F.e(this.B, "Connect called with already existing websocket", null, null); + if (this.r != null) { + this.F.e(this.l, "Connect called with already existing websocket", null, null); c(f.i); return; } - this.f215y = Long.valueOf(this.H.currentTimeMillis()); - TimerTask timerTask = this.f214x; + this.f216z = Long.valueOf(this.H.currentTimeMillis()); + TimerTask timerTask = this.f215y; if (timerTask != null) { timerTask.cancel(); } g gVar = new g(this); - this.f214x = gVar; - this.m.schedule(gVar, 20000); + this.f215y = gVar; + this.n.schedule(gVar, 20000); x.a aVar = new x.a(); aVar.a(1, TimeUnit.MINUTES); SSLSocketFactory sSLSocketFactory = this.E; @@ -671,18 +677,18 @@ public final class a extends WebSocketListener implements DebugPrintable { x xVar = new x(aVar); z.a aVar3 = new z.a(); 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) { k("[DISCONNECT] (" + z2 + ", " + num + ", " + str + ')'); c(null); - this.r = null; this.f213s = null; - this.A = false; - this.f216z = c.DISCONNECTED; + this.t = null; + this.B = false; + this.A = c.DISCONNECTED; b(); - for (d dVar : this.o) { + for (d dVar : this.p) { m.checkNotNullExpressionValue(dVar, "it"); 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) { m.checkNotNullParameter(str, "reason"); b(); - if (this.q != null) { + if (this.r != null) { j("Performing an immediate heartbeat on existing socket: " + str); - this.v.cancel(); + this.w.cancel(); b bVar = new b(this); - this.v = bVar; - this.m.schedule(bVar, j2); + this.w = bVar; + this.n.schedule(bVar, j2); } else if (!z2) { 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."); - this.n.succeed(); + this.o.succeed(); m(false, 4802, "Reset backoff."); } } 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) { - 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() { - if (this.u) { - this.u = false; + if (this.v) { + this.v = false; o(3, String.valueOf(this.H.currentTimeMillis())); - Long l2 = this.t; + Long l2 = this.u; if (l2 != null) { b bVar = new b(this); - this.v = bVar; - this.m.schedule(bVar, l2.longValue()); + this.w = bVar; + this.n.schedule(bVar, l2.longValue()); return; } k("onHeartbeatInterval called when heartbeatInterval was null"); return; } 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."); } public final void m(boolean z2, Integer num, String str) { j("[RECONNECT] wasFatal=" + z2 + " code=" + num + " reason=" + str); c(l.i); - this.f216z = c.RECONNECTING; + this.A = c.RECONNECTING; g(); } @@ -751,23 +757,23 @@ public final class a extends WebSocketListener implements DebugPrintable { } public final void o(int i2, Object obj) { - WebSocket webSocket = this.q; + WebSocket webSocket = this.r; if (webSocket == null) { StringBuilder L = c.d.b.a.a.L("opcode() websocket null. opcode: "); 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; } 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; - String str = this.B; + String str = this.l; Logger.d$default(logger, str, "sending (" + Opcodes.INSTANCE.getNameOf(i2) + "): " + m, null, 4, null); m.checkNotNullExpressionValue(m, "json"); webSocket.a(m); } catch (Exception unused) { 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); } } @@ -799,7 +805,7 @@ public final class a extends WebSocketListener implements DebugPrintable { public void onMessage(WebSocket webSocket, String str) { m.checkNotNullParameter(webSocket, "webSocket"); 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); n(new j(this, webSocket, (Payloads.Incoming) c.i.a.f.e.o.c.q0(Payloads.Incoming.class).cast(g2))); } diff --git a/app/src/main/java/c/a/r/s.java b/app/src/main/java/c/a/r/s.java index 7dcb398714..7d1df5a67c 100644 --- a/app/src/main/java/c/a/r/s.java +++ b/app/src/main/java/c/a/r/s.java @@ -61,7 +61,7 @@ public final class s extends o implements Function0 { a aVar3 = new a(replace$default2, str2, sSLSocketFactory, rtcConnection.S, rtcConnection.R.c(), rtcConnection.T, rtcConnection.k); d0 d0Var = rtcConnection.J; m.checkNotNullParameter(d0Var, "listener"); - aVar3.o.add(d0Var); + aVar3.p.add(d0Var); aVar3.f(); rtcConnection.v = aVar3; } diff --git a/app/src/main/java/c/a/r/z.java b/app/src/main/java/c/a/r/z.java index 64bcfcae78..58ac83f940 100644 --- a/app/src/main/java/c/a/r/z.java +++ b/app/src/main/java/c/a/r/z.java @@ -38,7 +38,7 @@ public final /* synthetic */ class z extends k implements Function1= 5) { + if (aVar.q >= 5) { aVar.o(15, linkedHashMap); } } diff --git a/app/src/main/java/com/discord/api/thread/AugmentedThreadMember.java b/app/src/main/java/com/discord/api/thread/AugmentedThreadMember.java index 56e4fb078f..f746b63ac3 100644 --- a/app/src/main/java/com/discord/api/thread/AugmentedThreadMember.java +++ b/app/src/main/java/com/discord/api/thread/AugmentedThreadMember.java @@ -4,7 +4,7 @@ import com.discord.api.guildmember.GuildMember; import com.discord.api.presence.Presence; import com.discord.api.utcdatetime.UtcDateTime; /* compiled from: AugmentedThreadMember.kt */ -public final class AugmentedThreadMember extends ThreadMember { +public final class AugmentedThreadMember { private final int flags; /* 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 long userId; - @Override // com.discord.api.thread.ThreadMember - public int a() { + public final int a() { return this.flags; } - @Override // com.discord.api.thread.ThreadMember - public long b() { - return this.f1578id; - } - - @Override // com.discord.api.thread.ThreadMember - public UtcDateTime c() { + public final UtcDateTime b() { return this.joinTimestamp; } - @Override // com.discord.api.thread.ThreadMember - public long d() { - return this.userId; - } - - public final GuildMember e() { + public final GuildMember c() { return this.member; } - public final Presence f() { + public final Presence d() { return this.presence; } + + public final long e() { + return this.userId; + } } diff --git a/app/src/main/java/com/discord/app/App.java b/app/src/main/java/com/discord/app/App.java index 1884888bd9..78dacc31e3 100644 --- a/app/src/main/java/com/discord/app/App.java +++ b/app/src/main/java/com/discord/app/App.java @@ -172,7 +172,7 @@ public class App extends Application { loggingProvider.init(appLog); c.i.c.c.e(this); String str = null; - if (BuildUtils.INSTANCE.isValidBuildVersionName("82.9 - Beta")) { + if (BuildUtils.INSTANCE.isValidBuildVersionName("82.11 - Beta")) { FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(true); } else { FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(false); diff --git a/app/src/main/java/com/discord/models/domain/HasSubscriptionItems.java b/app/src/main/java/com/discord/models/domain/HasSubscriptionItems.java index b4c32cacf1..a9e89d2aca 100644 --- a/app/src/main/java/com/discord/models/domain/HasSubscriptionItems.java +++ b/app/src/main/java/com/discord/models/domain/HasSubscriptionItems.java @@ -1,5 +1,6 @@ package com.discord.models.domain; +import com.discord.api.premium.SubscriptionInterval; import com.discord.models.domain.ModelSubscription; import com.discord.models.domain.premium.SubscriptionPlanType; import d0.t.o; @@ -26,8 +27,9 @@ public abstract class HasSubscriptionItems { } public final long getPremiumBasePlanId() { - SubscriptionPlanType.Companion companion = SubscriptionPlanType.Companion; - return companion.getBasePlanFromSubscriptionItems(getItems(), companion.from(getItems().get(0).getPlanId()).getInterval()).getPlanId(); + ModelSubscription.SubscriptionItem subscriptionItem = (ModelSubscription.SubscriptionItem) u.firstOrNull((List) getItems()); + 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() { diff --git a/app/src/main/java/com/discord/rtcconnection/RtcConnection.java b/app/src/main/java/com/discord/rtcconnection/RtcConnection.java index ae67dca742..51ccec9df8 100644 --- a/app/src/main/java/com/discord/rtcconnection/RtcConnection.java +++ b/app/src/main/java/com/discord/rtcconnection/RtcConnection.java @@ -648,7 +648,7 @@ public final class RtcConnection implements DebugPrintable, MediaSinkWantsManage this.p.cancel(); c.a.r.l0.a aVar = this.v; if (aVar != null) { - aVar.o.clear(); + aVar.p.clear(); aVar.e(); } this.v = null; diff --git a/app/src/main/java/com/discord/stores/StoreClientVersion.java b/app/src/main/java/com/discord/stores/StoreClientVersion.java index 9673209f08..d820c14aaf 100644 --- a/app/src/main/java/com/discord/stores/StoreClientVersion.java +++ b/app/src/main/java/com/discord/stores/StoreClientVersion.java @@ -15,7 +15,7 @@ public final class StoreClientVersion extends Store { private int clientMinVersion; private final String clientMinVersionKey = "CLIENT_OUTDATED_KEY"; private final SerializedSubject 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) { storeClientVersion.setClientMinVersion(i); diff --git a/app/src/main/java/com/discord/stores/StoreGameParty.java b/app/src/main/java/com/discord/stores/StoreGameParty.java index e6d40c25e4..9f8db3f9fc 100644 --- a/app/src/main/java/com/discord/stores/StoreGameParty.java +++ b/app/src/main/java/com/discord/stores/StoreGameParty.java @@ -238,9 +238,9 @@ public final class StoreGameParty extends StoreV2 { if (a != null) { ArrayList arrayList = new ArrayList(); for (AugmentedThreadMember augmentedThreadMember : a) { - Presence f = augmentedThreadMember.f(); - if (f != null) { - arrayList.add(f); + Presence d = augmentedThreadMember.d(); + if (d != null) { + arrayList.add(d); } } for (Presence presence : arrayList) { diff --git a/app/src/main/java/com/discord/stores/StoreGuilds.java b/app/src/main/java/com/discord/stores/StoreGuilds.java index 5b87ed5c7b..2899a7e68d 100644 --- a/app/src/main/java/com/discord/stores/StoreGuilds.java +++ b/app/src/main/java/com/discord/stores/StoreGuilds.java @@ -440,9 +440,9 @@ public final class StoreGuilds extends StoreV2 { if (a != null) { ArrayList arrayList2 = new ArrayList(); for (AugmentedThreadMember augmentedThreadMember : a) { - com.discord.api.guildmember.GuildMember e = augmentedThreadMember.e(); - if (e != null) { - arrayList2.add(e); + com.discord.api.guildmember.GuildMember c2 = augmentedThreadMember.c(); + if (c2 != null) { + arrayList2.add(c2); } } arrayList = arrayList2; diff --git a/app/src/main/java/com/discord/stores/StorePermissions.java b/app/src/main/java/com/discord/stores/StorePermissions.java index 11e8fb4a61..7f9dcd4a09 100644 --- a/app/src/main/java/com/discord/stores/StorePermissions.java +++ b/app/src/main/java/com/discord/stores/StorePermissions.java @@ -333,7 +333,7 @@ public final class StorePermissions extends StoreV2 { if (!it.hasNext()) { break; } - if (((AugmentedThreadMember) it.next()).d() == getMeId()) { + if (((AugmentedThreadMember) it.next()).e() == getMeId()) { z2 = true; continue; } else { diff --git a/app/src/main/java/com/discord/stores/StoreThreadMembers.java b/app/src/main/java/com/discord/stores/StoreThreadMembers.java index bc310a6b96..2a37c465c0 100644 --- a/app/src/main/java/com/discord/stores/StoreThreadMembers.java +++ b/app/src/main/java/com/discord/stores/StoreThreadMembers.java @@ -102,8 +102,8 @@ public final class StoreThreadMembers extends StoreV2 { List a = threadMembersUpdate.a(); if (a != null) { for (AugmentedThreadMember augmentedThreadMember : a) { - GuildMember e = augmentedThreadMember.e(); - Long valueOf = (e == null || (j = e.j()) == null) ? null : Long.valueOf(j.i()); + GuildMember c2 = augmentedThreadMember.c(); + Long valueOf = (c2 == null || (j = c2.j()) == null) ? null : Long.valueOf(j.i()); if (valueOf != null) { Set set = this.memberLists.get(Long.valueOf(threadMembersUpdate.c())); if (set != null) { diff --git a/app/src/main/java/com/discord/stores/StoreThreadsJoined.java b/app/src/main/java/com/discord/stores/StoreThreadsJoined.java index bef7a49868..852d2404f2 100644 --- a/app/src/main/java/com/discord/stores/StoreThreadsJoined.java +++ b/app/src/main/java/com/discord/stores/StoreThreadsJoined.java @@ -276,7 +276,7 @@ public final class StoreThreadsJoined extends StoreV2 { break; } Object next = it.next(); - if (((AugmentedThreadMember) next).d() == id2) { + if (((AugmentedThreadMember) next).e() == id2) { z2 = true; continue; } else { @@ -291,7 +291,7 @@ public final class StoreThreadsJoined extends StoreV2 { augmentedThreadMember = augmentedThreadMember; } 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(); } } diff --git a/app/src/main/java/com/discord/stores/StoreUser.java b/app/src/main/java/com/discord/stores/StoreUser.java index c070fedb72..779cb0bcb3 100644 --- a/app/src/main/java/com/discord/stores/StoreUser.java +++ b/app/src/main/java/com/discord/stores/StoreUser.java @@ -363,14 +363,14 @@ public final class StoreUser extends StoreV2 { List a = threadMembersUpdate.a(); if (a != null) { for (AugmentedThreadMember augmentedThreadMember : a) { - GuildMember e = augmentedThreadMember.e(); - if (e != null) { - updateUser(e.j()); + GuildMember c2 = augmentedThreadMember.c(); + if (c2 != null) { + updateUser(c2.j()); } - Presence f = augmentedThreadMember.f(); - User f2 = f != null ? f.f() : null; - if (f2 != null) { - updateUser(f2); + Presence d = augmentedThreadMember.d(); + User f = d != null ? d.f() : null; + if (f != null) { + updateUser(f); } } } diff --git a/app/src/main/java/com/discord/stores/StoreUserPresence.java b/app/src/main/java/com/discord/stores/StoreUserPresence.java index c03acda858..bf5232c7a5 100644 --- a/app/src/main/java/com/discord/stores/StoreUserPresence.java +++ b/app/src/main/java/com/discord/stores/StoreUserPresence.java @@ -565,9 +565,9 @@ public final class StoreUserPresence extends StoreV2 { List a = threadMembersUpdate.a(); if (a != null) { for (AugmentedThreadMember augmentedThreadMember : a) { - com.discord.api.presence.Presence f = augmentedThreadMember.f(); - if (f != null) { - handlePresenceUpdate(threadMembersUpdate.b(), augmentedThreadMember.d(), f.e(), f.c(), f.b()); + com.discord.api.presence.Presence d = augmentedThreadMember.d(); + if (d != null) { + handlePresenceUpdate(threadMembersUpdate.b(), augmentedThreadMember.e(), d.e(), d.c(), d.b()); } } } diff --git a/app/src/main/java/com/discord/utilities/analytics/AnalyticSuperProperties.java b/app/src/main/java/com/discord/utilities/analytics/AnalyticSuperProperties.java index a54bfd2de4..296c3df732 100644 --- a/app/src/main/java/com/discord/utilities/analytics/AnalyticSuperProperties.java +++ b/app/src/main/java/com/discord/utilities/analytics/AnalyticSuperProperties.java @@ -77,7 +77,7 @@ public final class AnalyticSuperProperties { private final void setBaselineProperties() { String 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 map) { diff --git a/app/src/main/java/com/discord/utilities/networking/Backoff$TimerScheduler$schedule$1.java b/app/src/main/java/com/discord/utilities/networking/Backoff$TimerScheduler$schedule$1.java index 7dc7025b64..f5c8f99c6f 100644 --- a/app/src/main/java/com/discord/utilities/networking/Backoff$TimerScheduler$schedule$1.java +++ b/app/src/main/java/com/discord/utilities/networking/Backoff$TimerScheduler$schedule$1.java @@ -1,17 +1,40 @@ 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.concurrent.ExecutorService; import kotlin.jvm.functions.Function0; /* compiled from: Backoff.kt */ public final class Backoff$TimerScheduler$schedule$1 extends TimerTask { 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; } + /* JADX WARN: Multi-variable type inference failed */ + /* JADX WARNING: Unknown variable types count: 1 */ @Override // java.util.TimerTask, java.lang.Runnable 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); } } diff --git a/app/src/main/java/com/discord/utilities/networking/Backoff$sam$java_lang_Runnable$0.java b/app/src/main/java/com/discord/utilities/networking/Backoff$sam$java_lang_Runnable$0.java new file mode 100644 index 0000000000..8c2e13db54 --- /dev/null +++ b/app/src/main/java/com/discord/utilities/networking/Backoff$sam$java_lang_Runnable$0.java @@ -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(...)"); + } +} diff --git a/app/src/main/java/com/discord/utilities/networking/Backoff.java b/app/src/main/java/com/discord/utilities/networking/Backoff.java index 109541fbfe..d25294e133 100644 --- a/app/src/main/java/com/discord/utilities/networking/Backoff.java +++ b/app/src/main/java/com/discord/utilities/networking/Backoff.java @@ -3,6 +3,7 @@ package com.discord.utilities.networking; import d0.z.d.m; import java.util.Timer; import java.util.TimerTask; +import java.util.concurrent.ExecutorService; import kotlin.Unit; import kotlin.jvm.functions.Function0; import kotlin.jvm.internal.DefaultConstructorMarker; @@ -26,8 +27,33 @@ public final class Backoff { /* compiled from: Backoff.kt */ public static final class TimerScheduler extends Timer implements Scheduler { + private final ExecutorService delegateExecutor; + private final String tag; 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 public synchronized void cancel() { TimerTask timerTask = this.timeoutTimerTask; @@ -43,7 +69,7 @@ public final class Backoff { if (timerTask != null) { 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; schedule(backoff$TimerScheduler$schedule$1, j); } @@ -65,7 +91,7 @@ public final class Backoff { /* JADX WARNING: Illegal instructions before constructor call */ 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; } diff --git a/app/src/main/java/com/discord/utilities/rest/RestAPI.java b/app/src/main/java/com/discord/utilities/rest/RestAPI.java index 2a4da2cf4c..f413a5701c 100644 --- a/app/src/main/java/com/discord/utilities/rest/RestAPI.java +++ b/app/src/main/java/com/discord/utilities/rest/RestAPI.java @@ -177,7 +177,7 @@ public final class RestAPI implements RestAPIInterface { @Override // com.discord.restapi.RequiredHeadersInterceptor.HeadersProvider public String getUserAgent() { - return "Discord-Android/82109"; + return "Discord-Android/82111"; } } diff --git a/app/src/main/java/com/discord/widgets/debugging/WidgetFatalCrash.java b/app/src/main/java/com/discord/widgets/debugging/WidgetFatalCrash.java index 51380f771d..f7a63b5098 100644 --- a/app/src/main/java/com/discord/widgets/debugging/WidgetFatalCrash.java +++ b/app/src/main/java/com/discord/widgets/debugging/WidgetFatalCrash.java @@ -100,7 +100,7 @@ public final class WidgetFatalCrash extends AppFragment { textView2.setText(b.j(this, 2131887892, objArr2, null, 4)); TextView textView3 = getBinding().b; 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; m.checkNotNullExpressionValue(textView4, "binding.fatalCrashOsVersion"); textView4.setText(b.j(this, 2131887888, new Object[]{String.valueOf(Build.VERSION.SDK_INT)}, null, 4)); diff --git a/app/src/main/java/com/discord/widgets/settings/WidgetSettings.java b/app/src/main/java/com/discord/widgets/settings/WidgetSettings.java index 9290d139d1..1bff53f4f3 100644 --- a/app/src/main/java/com/discord/widgets/settings/WidgetSettings.java +++ b/app/src/main/java/com/discord/widgets/settings/WidgetSettings.java @@ -332,7 +332,7 @@ public final class WidgetSettings extends AppFragment implements OnTabSelectedLi TextView textView = binding.f; m.checkNotNullExpressionValue(textView, "appInfoHeader"); 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.u.setOnClickListener(WidgetSettings$onViewBound$1$4.INSTANCE); binding.q.setOnClickListener(WidgetSettings$onViewBound$1$5.INSTANCE); diff --git a/app/src/main/java/com/discord/widgets/settings/premium/WidgetSettingsPremium.java b/app/src/main/java/com/discord/widgets/settings/premium/WidgetSettingsPremium.java index 249ab3e19a..588bc68d29 100644 --- a/app/src/main/java/com/discord/widgets/settings/premium/WidgetSettingsPremium.java +++ b/app/src/main/java/com/discord/widgets/settings/premium/WidgetSettingsPremium.java @@ -742,10 +742,13 @@ public final class WidgetSettingsPremium extends AppFragment { getBinding().f1938c.e.setOnClickListener(new WidgetSettingsPremium$configurePaymentInfo$2(isGoogleSubscription, premiumSubscription)); } - /* JADX WARNING: Code restructure failed: missing block: B:57:0x00df, code lost: - if (r2 != null) goto L_0x0106; + /* JADX WARNING: Code restructure failed: missing block: B:62:0x00ea, code lost: + 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 map) { + boolean z2; CharSequence charSequence; CharSequence charSequence2; SubscriptionPlanType subscriptionPlanType; @@ -753,82 +756,95 @@ public final class WidgetSettingsPremium extends AppFragment { CharSequence charSequence3; String paymentGatewayPlanId; 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 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; m.checkNotNullExpressionValue(cardView, "binding.premiumSettingsStatusNoticeContainer"); int i = 8; - cardView.setVisibility(z3 ? 0 : 8); - if (z3 && modelSubscription != null) { - 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)); - } + cardView.setVisibility(!z2 ? 0 : 8); + if (z2) { } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8d89c77ad9..0e82721560 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1341,7 +1341,7 @@ Presets Select a color Transparency - b98318c12ac84e23aff9ec103d261bc0 + f31707f8e813423498473e05c7641788 Coming Soon Slash command application {applicationName} {applicationName} application