From 3ad206f1822cf74dbe906418eee2793bcb4a3cfc Mon Sep 17 00:00:00 2001 From: Juby210 Date: Fri, 9 Jul 2021 23:04:33 +0200 Subject: [PATCH] 82.18 - Beta (82118) --- app/build.gradle | 4 +-- app/src/main/AndroidManifest.xml | 2 +- app/src/main/java/com/discord/app/App.java | 2 +- .../discord/stores/StoreClientVersion.java | 2 +- ...stantInvites$fetchInviteIfNotLoaded$1.java | 8 ++--- .../com/discord/stores/StoreMessageAck.java | 3 +- .../analytics/AnalyticSuperProperties.java | 2 +- .../utilities/analytics/AnalyticsTracker.java | 32 ++++++++++++------- .../discord/utilities/email/EmailUtils.java | 17 ++++++++++ .../com/discord/utilities/rest/RestAPI.java | 2 +- .../widgets/debugging/WidgetFatalCrash.java | 2 +- .../widgets/friends/WidgetFriendsAddById.java | 6 ++-- .../guilds/invite/WidgetGuildInvite.java | 4 ++- .../widgets/settings/WidgetSettings.java | 2 +- app/src/main/res/values/strings.xml | 2 +- 15 files changed, 60 insertions(+), 30 deletions(-) create mode 100644 app/src/main/java/com/discord/utilities/email/EmailUtils.java diff --git a/app/build.gradle b/app/build.gradle index f25c958a66..63b63bfefb 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ android { applicationId 'com.discord' minSdkVersion 21 targetSdkVersion 29 - versionCode 82116 - versionName "82.16 - Beta" + versionCode 82118 + versionName "82.18 - Beta" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 56fea1ecce..d40951430d 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,5 +1,5 @@ - + diff --git a/app/src/main/java/com/discord/app/App.java b/app/src/main/java/com/discord/app/App.java index eb28f8b96d..91c197106d 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.16 - Beta")) { + if (BuildUtils.INSTANCE.isValidBuildVersionName("82.18 - Beta")) { FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(true); } else { FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(false); diff --git a/app/src/main/java/com/discord/stores/StoreClientVersion.java b/app/src/main/java/com/discord/stores/StoreClientVersion.java index f2dd5af0d6..3d95ee860b 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 = 82116; + private final int clientVersion = 82118; public static final /* synthetic */ void access$setClientMinVersion(StoreClientVersion storeClientVersion, int i) { storeClientVersion.setClientMinVersion(i); diff --git a/app/src/main/java/com/discord/stores/StoreInstantInvites$fetchInviteIfNotLoaded$1.java b/app/src/main/java/com/discord/stores/StoreInstantInvites$fetchInviteIfNotLoaded$1.java index c153922a90..30329fdb0b 100644 --- a/app/src/main/java/com/discord/stores/StoreInstantInvites$fetchInviteIfNotLoaded$1.java +++ b/app/src/main/java/com/discord/stores/StoreInstantInvites$fetchInviteIfNotLoaded$1.java @@ -14,7 +14,7 @@ import kotlin.jvm.functions.Function1; /* compiled from: StoreInstantInvites.kt */ public final class StoreInstantInvites$fetchInviteIfNotLoaded$1 extends o implements Function0 { public final /* synthetic */ String $inviteCode; - public final /* synthetic */ String $source; + public final /* synthetic */ String $location; public final /* synthetic */ StoreInstantInvites this$0; /* compiled from: StoreInstantInvites.kt */ @@ -60,7 +60,7 @@ public final class StoreInstantInvites$fetchInviteIfNotLoaded$1 extends o implem public final void invoke(ModelInvite modelInvite) { m.checkNotNullParameter(modelInvite, "it"); StoreInstantInvites.access$getDispatcher$p(this.this$0.this$0).schedule(new AnonymousClass1(this, modelInvite)); - String str = this.this$0.$source; + String str = this.this$0.$location; if (str != null) { AnalyticsTracker.INSTANCE.inviteResolved(modelInvite, str); } @@ -131,7 +131,7 @@ public final class StoreInstantInvites$fetchInviteIfNotLoaded$1 extends o implem error.setShowErrorToasts(false); StoreInstantInvites.access$getDispatcher$p(this.this$0.this$0).schedule(new AnonymousClass1(this)); StoreInstantInvites$fetchInviteIfNotLoaded$1 storeInstantInvites$fetchInviteIfNotLoaded$1 = this.this$0; - String str = storeInstantInvites$fetchInviteIfNotLoaded$1.$source; + String str = storeInstantInvites$fetchInviteIfNotLoaded$1.$location; if (str != null) { String str2 = storeInstantInvites$fetchInviteIfNotLoaded$1.$inviteCode; Error.Response response = error.getResponse(); @@ -152,7 +152,7 @@ public final class StoreInstantInvites$fetchInviteIfNotLoaded$1 extends o implem super(0); this.this$0 = storeInstantInvites; this.$inviteCode = str; - this.$source = str2; + this.$location = str2; } @Override // kotlin.jvm.functions.Function0 diff --git a/app/src/main/java/com/discord/stores/StoreMessageAck.java b/app/src/main/java/com/discord/stores/StoreMessageAck.java index b41df0fb43..19497078f3 100644 --- a/app/src/main/java/com/discord/stores/StoreMessageAck.java +++ b/app/src/main/java/com/discord/stores/StoreMessageAck.java @@ -19,6 +19,7 @@ import com.discord.utilities.persister.Persister; import com.discord.utilities.rest.RestAPI; import com.discord.utilities.rx.ObservableExtensionsKt; import com.discord.utilities.threads.ThreadUtils; +import d0.d0.f; import d0.o; import d0.t.n0; import d0.t.o0; @@ -659,7 +660,7 @@ public final class StoreMessageAck extends StoreV2 { @Override // com.discord.stores.StoreV2 public void snapshotData() { super.snapshotData(); - HashMap hashMap = new HashMap(this.acks.size(), 0.75f); + HashMap hashMap = new HashMap(f.coerceAtLeast(this.acks.size(), 1), 0.75f); hashMap.putAll(this.acks); this.acksSnapshot = hashMap; Persister.set$default(this.acksPersister, hashMap, false, 2, null); 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 da0a77eb0d..79826633a5 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/82116"), o.to("client_build_number", 82116), o.to("client_version", "82.16 - 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/82118"), o.to("client_build_number", 82118), o.to("client_version", "82.18 - 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/analytics/AnalyticsTracker.java b/app/src/main/java/com/discord/utilities/analytics/AnalyticsTracker.java index 7a1224524d..9a7c8b5f0c 100644 --- a/app/src/main/java/com/discord/utilities/analytics/AnalyticsTracker.java +++ b/app/src/main/java/com/discord/utilities/analytics/AnalyticsTracker.java @@ -46,11 +46,13 @@ import com.discord.stores.StoreStream; import com.discord.utilities.analytics.AnalyticsUtils; import com.discord.utilities.analytics.Traits; import com.discord.utilities.collections.CollectionExtensionsKt; +import com.discord.utilities.email.EmailUtils; import com.discord.utilities.fcm.NotificationClient; import com.discord.utilities.intent.RouteHandlers; import com.discord.utilities.logging.Logger; import com.discord.utilities.permissions.PermissionUtils; import com.discord.utilities.persister.Persister; +import com.discord.utilities.phone.PhoneUtils; import com.discord.utilities.platform.Platform; import com.discord.utilities.rest.FileUploadAlertType; import com.discord.utilities.rx.ObservableExtensionsKt; @@ -319,11 +321,11 @@ public final class AnalyticsTracker { tracker.track("external_fingerprint_dropped", linkedHashMap); } - public static /* synthetic */ void friendRequestFailed$default(AnalyticsTracker analyticsTracker, String str, int i, Object obj) { - if ((i & 1) != 0) { - str = null; + public static /* synthetic */ void friendRequestFailed$default(AnalyticsTracker analyticsTracker, CharSequence charSequence, String str, Integer num, String str2, int i, Object obj) { + if ((i & 8) != 0) { + str2 = null; } - analyticsTracker.friendRequestFailed(str); + analyticsTracker.friendRequestFailed(charSequence, str, num, str2); } private final String getAnalyticsValueForNotificationFrequency(Integer num) { @@ -1213,10 +1215,16 @@ public final class AnalyticsTracker { tracker.track("friend_add_viewed", g0.mapOf(o.to("friend_add_type", str))); } - public final void friendRequestFailed(String str) { + public final void friendRequestFailed(CharSequence charSequence, String str, Integer num, String str2) { + m.checkNotNullParameter(charSequence, "query"); + m.checkNotNullParameter(str, "username"); HashMap hashMap = new HashMap(); - if (str != null) { - hashMap.put("reason", str); + if (str2 != null) { + hashMap.put("reason", str2); + hashMap.put("discrim_len", Integer.valueOf(String.valueOf(num).length())); + hashMap.put("username_len", Integer.valueOf(str.length())); + hashMap.put("is_email_like", Boolean.valueOf(EmailUtils.INSTANCE.isEmailLike(charSequence.toString()))); + hashMap.put("is_num_only", Boolean.valueOf(PhoneUtils.INSTANCE.isValidPhoneFragment(charSequence.toString()))); } tracker.track("friend_request_failed", hashMap); } @@ -1281,6 +1289,12 @@ public final class AnalyticsTracker { tracker.track("android_hardware_survey", h0.mapOf(o.to("device_board", buildInfo.a), o.to("device_brand", buildInfo.b), o.to("device_manufacturer", buildInfo.f2013c), o.to("device_model", buildInfo.d), o.to("device_product", buildInfo.e), o.to("device_supported_abis", buildInfo.f), o.to("device_is_64_bit", Boolean.valueOf(buildInfo.g)), o.to("is_low_ram_device", Boolean.valueOf(memoryInfo.b)), o.to("memory_class", Integer.valueOf(memoryInfo.f2015c)), o.to("large_memory_class", Integer.valueOf(memoryInfo.d)), o.to("hardware_decoders_1080", Integer.valueOf(decoderCountInfo.a)), o.to("hardware_decoders_720", Integer.valueOf(decoderCountInfo.b)), o.to("hardware_decoders_480", Integer.valueOf(decoderCountInfo.f2014c)), o.to("decoders_1080", Integer.valueOf(decoderCountInfo.d)), o.to("decoders_720", Integer.valueOf(decoderCountInfo.e)), o.to("decoders_480", Integer.valueOf(decoderCountInfo.f)), o.to("test_duration_ms", Integer.valueOf(decoderCountInfo.g)))); } + public final void impressionInviteAccept(String str) { + if (str != null) { + tracker.track("impression_invite_accept", g0.mapOf(o.to("invite_code", str))); + } + } + public final void inviteCopied(GuildInvite guildInvite, Channel channel, String str) { m.checkNotNullParameter(guildInvite, "guildInvite"); m.checkNotNullParameter(str, "source"); @@ -1382,10 +1396,6 @@ public final class AnalyticsTracker { ObservableExtensionsKt.appSubscribe$default(ObservableExtensionsKt.computationLatest(ObservableExtensionsKt.takeSingleUntilTimeout$default(F, 0, false, 3, null)), AnalyticsTracker.class, (Context) null, (Function1) null, (Function1) null, (Function0) null, (Function0) null, new AnalyticsTracker$inviteSuggestionOpened$2(list, list2, j), 62, (Object) null); } - public final void inviteViewed() { - AnalyticsUtils.Tracker.track$default(tracker, "invite_viewed", null, 2, null); - } - public final void joinGuildViewed() { AnalyticsUtils.Tracker.track$default(tracker, "join_guild_viewed", null, 2, null); } diff --git a/app/src/main/java/com/discord/utilities/email/EmailUtils.java b/app/src/main/java/com/discord/utilities/email/EmailUtils.java new file mode 100644 index 0000000000..5ca6e75ec6 --- /dev/null +++ b/app/src/main/java/com/discord/utilities/email/EmailUtils.java @@ -0,0 +1,17 @@ +package com.discord.utilities.email; + +import d0.z.d.m; +import kotlin.text.Regex; +/* compiled from: EmailUtils.kt */ +public final class EmailUtils { + private static final Regex EMAIL_REGEX = new Regex("/^([\\w-+]+(?:\\.[\\w-+]+)*)@((?:[\\w-]+\\.)*\\w[\\w-]{0,66})\\.([a-z]{2,63}(?:\\.[a-z]{2})?)$/i"); + public static final EmailUtils INSTANCE = new EmailUtils(); + + private EmailUtils() { + } + + public final boolean isEmailLike(String str) { + m.checkNotNullParameter(str, "input"); + return EMAIL_REGEX.matches(str); + } +} 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 3d2ddf53ee..e200800341 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/82116"; + return "Discord-Android/82118"; } } 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 f72f1c9444..f2e05ed32e 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.16 - Beta"}, null, 4)); + textView3.setText(b.j(this, 2131887885, new Object[]{"82.18 - 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/friends/WidgetFriendsAddById.java b/app/src/main/java/com/discord/widgets/friends/WidgetFriendsAddById.java index 89103d7070..d668b9b220 100644 --- a/app/src/main/java/com/discord/widgets/friends/WidgetFriendsAddById.java +++ b/app/src/main/java/com/discord/widgets/friends/WidgetFriendsAddById.java @@ -154,10 +154,10 @@ public final class WidgetFriendsAddById extends AppFragment { } private final void extractTargetAndSendFriendRequest() { - Companion companion = Companion; TextInputLayout textInputLayout = getBinding().e; m.checkNotNullExpressionValue(textInputLayout, "binding.friendsAddTextEditWrap"); - Companion.UserNameDiscriminator access$extractUsernameAndDiscriminator = Companion.access$extractUsernameAndDiscriminator(companion, ViewExtensions.getTextOrEmpty(textInputLayout)); + String textOrEmpty = ViewExtensions.getTextOrEmpty(textInputLayout); + Companion.UserNameDiscriminator access$extractUsernameAndDiscriminator = Companion.access$extractUsernameAndDiscriminator(Companion, textOrEmpty); if (access$extractUsernameAndDiscriminator.getDiscriminator() != null) { sendFriendRequest(access$extractUsernameAndDiscriminator.getUsername(), access$extractUsernameAndDiscriminator.getDiscriminator().intValue()); return; @@ -168,7 +168,7 @@ public final class WidgetFriendsAddById extends AppFragment { charSequence = b.g(context, 2131886262, new Object[]{access$extractUsernameAndDiscriminator.getUsername()}, null, 4); } setInputEditError(charSequence); - AnalyticsTracker.INSTANCE.friendRequestFailed("Invalid Username"); + AnalyticsTracker.INSTANCE.friendRequestFailed(textOrEmpty, access$extractUsernameAndDiscriminator.getUsername(), access$extractUsernameAndDiscriminator.getDiscriminator(), "Invalid Username"); } private final WidgetFriendsAddByIdBinding getBinding() { diff --git a/app/src/main/java/com/discord/widgets/guilds/invite/WidgetGuildInvite.java b/app/src/main/java/com/discord/widgets/guilds/invite/WidgetGuildInvite.java index 9656fdbf15..fcf695e465 100644 --- a/app/src/main/java/com/discord/widgets/guilds/invite/WidgetGuildInvite.java +++ b/app/src/main/java/com/discord/widgets/guilds/invite/WidgetGuildInvite.java @@ -218,7 +218,9 @@ public final class WidgetGuildInvite extends AppFragment { super.onViewBound(view); setRetainInstance(true); AppFragment.setActionBarDisplayHomeAsUpEnabled$default(this, false, 1, null); - AnalyticsTracker.INSTANCE.inviteViewed(); + String stringExtra = getMostRecentIntent().getStringExtra("EXTRA_CODE"); + this.inviteCode = stringExtra; + AnalyticsTracker.INSTANCE.impressionInviteAccept(stringExtra); getBinding().f1797c.setOnClickListener(new WidgetGuildInvite$onViewBound$1(this)); } 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 3fc03c5ff0..943097defd 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.16 - Beta (82116)"); + textView.setText(string + " - 82.18 - Beta (82118)"); 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/res/values/strings.xml b/app/src/main/res/values/strings.xml index 22f2156662..650ba2357a 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 - 26f7c0da6ddc4256af0f4fc97b3bdbc6 + 0146ece4315f4f91be4f78115e7e8d48 Coming Soon Slash command application {applicationName} {applicationName} application