From ea13ed45c8b88c2338fe48d1e62b625ef79484b8 Mon Sep 17 00:00:00 2001 From: Juby210 Date: Thu, 21 Oct 2021 08:39:56 +0200 Subject: [PATCH] 99.2 - Alpha (99202) --- app/build.gradle | 4 +- app/src/main/AndroidManifest.xml | 2 +- app/src/main/java/c/a/i/h3.java | 9 +- .../TrackGuildScheduledEventLinkCopied.java | 40 + ...GuildScheduledEventLinkCopiedReceiver.java | 6 + .../events/TrackGuildSettingsUpdated.java | 15 +- .../com/discord/restapi/RestAPIInterface.java | 9 +- .../java/com/discord/stores/StoreLurking.java | 10 +- .../utilities/directories/DirectoryUtils.java | 1 + .../experiments/ExperimentRegistry.java | 2 +- .../utilities/fcm/NotificationData.java | 241 +- .../features/GrowthTeamFeatures.java | 4 - ...dCaptchaUtilsKt$handleHttpException$1.java | 7 +- ...dCaptchaUtilsKt$handleHttpException$2.java | 7 +- .../utilities/guilds/GuildCaptchaUtilsKt.java | 19 +- .../utilities/guilds/GuildConstantsKt.java | 1 + .../com/discord/utilities/rest/RestAPI.java | 46 +- .../chat/input/ChatInputViewModel.java | 6 +- .../model/WidgetChatListModelMessages.java | 30 +- .../WidgetDirectoriesSearch$adapter$1.java | 8 +- .../WidgetDirectoriesSearchViewModel.java | 9 +- .../WidgetDirectoriesViewModel.java | 8 +- .../WidgetDirectoryCategory$adapter$1.java | 8 +- .../widgets/emoji/EmojiSheetViewModel.java | 4 +- .../InviteJoinHelper$joinViaInvite$4.java | 64 +- .../join/GuildJoinHelperKt$joinGuild$1.java | 11 +- .../guilds/join/GuildJoinHelperKt.java | 11 +- .../widgets/guilds/join/InviteArgs.java | 60 +- .../discord/widgets/guilds/join/JoinArgs.java | 55 +- .../WidgetGuildProfileSheetViewModel.java | 7 +- ...idgetServerSettingsOverview$binding$2.java | 112 +- ...tServerSettingsOverview$configureUI$6.java | 124 +- ...tServerSettingsOverview$configureUI$7.java | 138 + .../servers/WidgetServerSettingsOverview.java | 30 +- .../TierViewHolder.java | 2 +- .../widgets/settings/WidgetSettings.java | 2 +- .../premium/WidgetSettingsPremium.java | 17 +- .../stickers/GuildStickerSheetViewModel.java | 4 +- ...ings_guild_role_subscription_tier_list.xml | 2 +- ...ew_server_settings_system_channel_wrap.xml | 1 + ...ings_guild_role_subscription_tier_list.xml | 2 +- app/src/main/res/values-ar-rXB/plurals.xml | 8 + app/src/main/res/values-ar-rXB/strings.xml | 34 +- app/src/main/res/values-bg/strings.xml | 4 - app/src/main/res/values-cs/strings.xml | 4 - app/src/main/res/values-da/strings.xml | 4 - app/src/main/res/values-de/strings.xml | 4 - app/src/main/res/values-el/strings.xml | 4 - app/src/main/res/values-en-rXA/plurals.xml | 8 + app/src/main/res/values-en-rXA/strings.xml | 34 +- app/src/main/res/values-es-rES/strings.xml | 4 - app/src/main/res/values-fi/strings.xml | 4 - app/src/main/res/values-fr/strings.xml | 4 - app/src/main/res/values-hi/strings.xml | 4 - app/src/main/res/values-hr/strings.xml | 4 - app/src/main/res/values-hu/strings.xml | 4 - app/src/main/res/values-it/strings.xml | 4 - app/src/main/res/values-ja/strings.xml | 4 - app/src/main/res/values-ko/strings.xml | 4 - app/src/main/res/values-lt/strings.xml | 4 - app/src/main/res/values-nl/strings.xml | 4 - app/src/main/res/values-no/strings.xml | 4 - app/src/main/res/values-pl/strings.xml | 4 - app/src/main/res/values-pt-rBR/strings.xml | 4 - app/src/main/res/values-ro/strings.xml | 4 - app/src/main/res/values-ru/strings.xml | 4 - app/src/main/res/values-sv-rSE/strings.xml | 4 - app/src/main/res/values-th/strings.xml | 4 - app/src/main/res/values-tr/strings.xml | 4 - app/src/main/res/values-uk/strings.xml | 4 - app/src/main/res/values-vi/strings.xml | 4 - app/src/main/res/values-zh-rCN/strings.xml | 4 - app/src/main/res/values-zh-rTW/strings.xml | 4 - app/src/main/res/values/plurals.xml | 8 + app/src/main/res/values/public.xml | 19855 ++++++++-------- app/src/main/res/values/strings.xml | 36 +- 76 files changed, 10702 insertions(+), 10531 deletions(-) create mode 100644 app/src/main/java/com/discord/analytics/generated/events/TrackGuildScheduledEventLinkCopied.java create mode 100644 app/src/main/java/com/discord/analytics/generated/events/TrackGuildScheduledEventLinkCopiedReceiver.java create mode 100644 app/src/main/java/com/discord/widgets/servers/WidgetServerSettingsOverview$configureUI$7.java diff --git a/app/build.gradle b/app/build.gradle index a08b19dd14..bbc89fed6a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ android { applicationId 'com.discord' minSdkVersion 21 targetSdkVersion 29 - versionCode 99201 - versionName "99.1 - Alpha" + versionCode 99202 + versionName "99.2 - Alpha" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a0ea867e62..0daa33f2ee 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/i/h3.java b/app/src/main/java/c/a/i/h3.java index 37d9ac0b4d..ebda12038a 100644 --- a/app/src/main/java/c/a/i/h3.java +++ b/app/src/main/java/c/a/i/h3.java @@ -19,14 +19,17 @@ public final class h3 implements ViewBinding { @NonNull public final CheckedSetting d; @NonNull - public final LinearLayout e; + public final CheckedSetting e; + @NonNull + public final LinearLayout f; - public h3(@NonNull LinearLayout linearLayout, @NonNull TextView textView, @NonNull CheckedSetting checkedSetting, @NonNull CheckedSetting checkedSetting2, @NonNull LinearLayout linearLayout2) { + public h3(@NonNull LinearLayout linearLayout, @NonNull TextView textView, @NonNull CheckedSetting checkedSetting, @NonNull CheckedSetting checkedSetting2, @NonNull CheckedSetting checkedSetting3, @NonNull LinearLayout linearLayout2) { this.a = linearLayout; this.b = textView; this.f106c = checkedSetting; this.d = checkedSetting2; - this.e = linearLayout2; + this.e = checkedSetting3; + this.f = linearLayout2; } @Override // androidx.viewbinding.ViewBinding diff --git a/app/src/main/java/com/discord/analytics/generated/events/TrackGuildScheduledEventLinkCopied.java b/app/src/main/java/com/discord/analytics/generated/events/TrackGuildScheduledEventLinkCopied.java new file mode 100644 index 0000000000..2d43eb74fb --- /dev/null +++ b/app/src/main/java/com/discord/analytics/generated/events/TrackGuildScheduledEventLinkCopied.java @@ -0,0 +1,40 @@ +package com.discord.analytics.generated.events; + +import c.d.b.a.a; +import c0.z.d.m; +import com.discord.analytics.generated.traits.TrackBase; +import com.discord.analytics.generated.traits.TrackBaseReceiver; +import com.discord.analytics.generated.traits.TrackGuild; +import com.discord.analytics.generated.traits.TrackGuildReceiver; +import com.discord.api.science.AnalyticsSchema; +/* compiled from: TrackGuildScheduledEventLinkCopied.kt */ +public final class TrackGuildScheduledEventLinkCopied implements AnalyticsSchema, TrackBaseReceiver, TrackGuildReceiver { + private final transient String analyticsSchemaTypeName = "guild_scheduled_event_link_copied"; + private final Long guildScheduledEventId = null; + private TrackBase trackBase; + private TrackGuild trackGuild; + + @Override // com.discord.api.science.AnalyticsSchema + public String b() { + return this.analyticsSchemaTypeName; + } + + public boolean equals(Object obj) { + if (this != obj) { + return (obj instanceof TrackGuildScheduledEventLinkCopied) && m.areEqual(this.guildScheduledEventId, ((TrackGuildScheduledEventLinkCopied) obj).guildScheduledEventId); + } + return true; + } + + public int hashCode() { + Long l = this.guildScheduledEventId; + if (l != null) { + return l.hashCode(); + } + return 0; + } + + public String toString() { + return a.E(a.O("TrackGuildScheduledEventLinkCopied(guildScheduledEventId="), this.guildScheduledEventId, ")"); + } +} diff --git a/app/src/main/java/com/discord/analytics/generated/events/TrackGuildScheduledEventLinkCopiedReceiver.java b/app/src/main/java/com/discord/analytics/generated/events/TrackGuildScheduledEventLinkCopiedReceiver.java new file mode 100644 index 0000000000..933fa15e8b --- /dev/null +++ b/app/src/main/java/com/discord/analytics/generated/events/TrackGuildScheduledEventLinkCopiedReceiver.java @@ -0,0 +1,6 @@ +package com.discord.analytics.generated.events; + +import com.discord.api.science.AnalyticsSchema; +/* compiled from: TrackGuildScheduledEventLinkCopied.kt */ +public interface TrackGuildScheduledEventLinkCopiedReceiver extends AnalyticsSchema { +} diff --git a/app/src/main/java/com/discord/analytics/generated/events/TrackGuildSettingsUpdated.java b/app/src/main/java/com/discord/analytics/generated/events/TrackGuildSettingsUpdated.java index ecb6066d33..83b2d6fc0a 100644 --- a/app/src/main/java/com/discord/analytics/generated/events/TrackGuildSettingsUpdated.java +++ b/app/src/main/java/com/discord/analytics/generated/events/TrackGuildSettingsUpdated.java @@ -8,6 +8,7 @@ import com.discord.api.science.AnalyticsSchema; /* compiled from: TrackGuildSettingsUpdated.kt */ public final class TrackGuildSettingsUpdated implements AnalyticsSchema, TrackBaseReceiver { private final transient String analyticsSchemaTypeName = "guild_settings_updated"; + private final Boolean animatedBanner = null; private final Boolean animatedIcon = null; private final CharSequence bannerEditType = null; private final CharSequence description = null; @@ -42,7 +43,7 @@ public final class TrackGuildSettingsUpdated implements AnalyticsSchema, TrackBa return false; } TrackGuildSettingsUpdated trackGuildSettingsUpdated = (TrackGuildSettingsUpdated) obj; - return m.areEqual(this.guildId, trackGuildSettingsUpdated.guildId) && m.areEqual(this.iconEditType, trackGuildSettingsUpdated.iconEditType) && m.areEqual(this.guildName, trackGuildSettingsUpdated.guildName) && m.areEqual(this.oldGuildName, trackGuildSettingsUpdated.oldGuildName) && m.areEqual(this.animatedIcon, trackGuildSettingsUpdated.animatedIcon) && m.areEqual(this.bannerEditType, trackGuildSettingsUpdated.bannerEditType) && m.areEqual(this.splashEditType, trackGuildSettingsUpdated.splashEditType) && m.areEqual(this.vanityUrlCodeEditType, trackGuildSettingsUpdated.vanityUrlCodeEditType) && m.areEqual(this.vanityUrlCode, trackGuildSettingsUpdated.vanityUrlCode) && m.areEqual(this.oldVanityUrlCode, trackGuildSettingsUpdated.oldVanityUrlCode) && m.areEqual(this.discoverySplashEditType, trackGuildSettingsUpdated.discoverySplashEditType) && m.areEqual(this.description, trackGuildSettingsUpdated.description) && m.areEqual(this.preferredLocale, trackGuildSettingsUpdated.preferredLocale) && m.areEqual(this.isPublic, trackGuildSettingsUpdated.isPublic) && m.areEqual(this.isDiscoverable, trackGuildSettingsUpdated.isDiscoverable) && m.areEqual(this.isFeaturable, trackGuildSettingsUpdated.isFeaturable) && m.areEqual(this.rulesChannelId, trackGuildSettingsUpdated.rulesChannelId) && m.areEqual(this.publicUpdatesChannelId, trackGuildSettingsUpdated.publicUpdatesChannelId) && m.areEqual(this.premiumProgressBarEnabled, trackGuildSettingsUpdated.premiumProgressBarEnabled); + return m.areEqual(this.guildId, trackGuildSettingsUpdated.guildId) && m.areEqual(this.iconEditType, trackGuildSettingsUpdated.iconEditType) && m.areEqual(this.guildName, trackGuildSettingsUpdated.guildName) && m.areEqual(this.oldGuildName, trackGuildSettingsUpdated.oldGuildName) && m.areEqual(this.animatedIcon, trackGuildSettingsUpdated.animatedIcon) && m.areEqual(this.bannerEditType, trackGuildSettingsUpdated.bannerEditType) && m.areEqual(this.splashEditType, trackGuildSettingsUpdated.splashEditType) && m.areEqual(this.vanityUrlCodeEditType, trackGuildSettingsUpdated.vanityUrlCodeEditType) && m.areEqual(this.vanityUrlCode, trackGuildSettingsUpdated.vanityUrlCode) && m.areEqual(this.oldVanityUrlCode, trackGuildSettingsUpdated.oldVanityUrlCode) && m.areEqual(this.discoverySplashEditType, trackGuildSettingsUpdated.discoverySplashEditType) && m.areEqual(this.description, trackGuildSettingsUpdated.description) && m.areEqual(this.preferredLocale, trackGuildSettingsUpdated.preferredLocale) && m.areEqual(this.isPublic, trackGuildSettingsUpdated.isPublic) && m.areEqual(this.isDiscoverable, trackGuildSettingsUpdated.isDiscoverable) && m.areEqual(this.isFeaturable, trackGuildSettingsUpdated.isFeaturable) && m.areEqual(this.rulesChannelId, trackGuildSettingsUpdated.rulesChannelId) && m.areEqual(this.publicUpdatesChannelId, trackGuildSettingsUpdated.publicUpdatesChannelId) && m.areEqual(this.premiumProgressBarEnabled, trackGuildSettingsUpdated.premiumProgressBarEnabled) && m.areEqual(this.animatedBanner, trackGuildSettingsUpdated.animatedBanner); } public int hashCode() { @@ -84,10 +85,12 @@ public final class TrackGuildSettingsUpdated implements AnalyticsSchema, TrackBa Long l3 = this.publicUpdatesChannelId; int hashCode18 = (hashCode17 + (l3 != null ? l3.hashCode() : 0)) * 31; Boolean bool5 = this.premiumProgressBarEnabled; - if (bool5 != null) { - i = bool5.hashCode(); + int hashCode19 = (hashCode18 + (bool5 != null ? bool5.hashCode() : 0)) * 31; + Boolean bool6 = this.animatedBanner; + if (bool6 != null) { + i = bool6.hashCode(); } - return hashCode18 + i; + return hashCode19 + i; } public String toString() { @@ -128,6 +131,8 @@ public final class TrackGuildSettingsUpdated implements AnalyticsSchema, TrackBa O.append(", publicUpdatesChannelId="); O.append(this.publicUpdatesChannelId); O.append(", premiumProgressBarEnabled="); - return a.B(O, this.premiumProgressBarEnabled, ")"); + O.append(this.premiumProgressBarEnabled); + O.append(", animatedBanner="); + return a.B(O, this.animatedBanner, ")"); } } diff --git a/app/src/main/java/com/discord/restapi/RestAPIInterface.java b/app/src/main/java/com/discord/restapi/RestAPIInterface.java index 6da0d87e6b..354152565a 100644 --- a/app/src/main/java/com/discord/restapi/RestAPIInterface.java +++ b/app/src/main/java/com/discord/restapi/RestAPIInterface.java @@ -174,12 +174,9 @@ public interface RestAPIInterface { throw new UnsupportedOperationException("Super calls with default arguments not supported in this target, function: getOauth2SamsungAuthorize"); } - public static /* synthetic */ Observable joinGuild$default(RestAPIInterface restAPIInterface, long j, boolean z2, String str, Long l, RestAPIParams.InviteCode inviteCode, int i, Object obj) { + public static /* synthetic */ Observable joinGuild$default(RestAPIInterface restAPIInterface, long j, boolean z2, String str, Long l, RestAPIParams.InviteCode inviteCode, String str2, int i, Object obj) { if (obj == null) { - if ((i & 8) != 0) { - l = null; - } - return restAPIInterface.joinGuild(j, z2, str, l, inviteCode); + return restAPIInterface.joinGuild(j, z2, str, (i & 8) != 0 ? null : l, (i & 16) != 0 ? null : inviteCode, (i & 32) != 0 ? null : str2); } throw new UnsupportedOperationException("Super calls with default arguments not supported in this target, function: joinGuild"); } @@ -668,7 +665,7 @@ public interface RestAPIInterface { Observable ignoreFriendSuggestion(@s("userId") long j); @p("guilds/{guildId}/members/@me") - Observable joinGuild(@s("guildId") long j, @t("lurker") boolean z2, @t("session_id") String str, @t("directory_channel_id") Long l, @a RestAPIParams.InviteCode inviteCode); + Observable joinGuild(@s("guildId") long j, @t("lurker") boolean z2, @t("session_id") String str, @t("directory_channel_id") Long l, @a RestAPIParams.InviteCode inviteCode, @i("X-Context-Properties") String str2); @h0.f0.o("integrations/{integrationId}/join") Observable joinGuildFromIntegration(@s("integrationId") String str); diff --git a/app/src/main/java/com/discord/stores/StoreLurking.java b/app/src/main/java/com/discord/stores/StoreLurking.java index b215422c11..8bc91a7dab 100644 --- a/app/src/main/java/com/discord/stores/StoreLurking.java +++ b/app/src/main/java/com/discord/stores/StoreLurking.java @@ -1,13 +1,13 @@ package com.discord.stores; import android.content.Context; -import androidx.fragment.app.Fragment; import c.d.b.a.a; import c0.z.d.m; import com.discord.api.channel.Channel; import com.discord.app.AppLog; import com.discord.models.domain.ModelPayload; import com.discord.models.guild.Guild; +import com.discord.restapi.RestAPIInterface; import com.discord.restapi.RestAPIParams; import com.discord.utilities.logging.Logger; import com.discord.utilities.rest.RestAPI; @@ -284,7 +284,7 @@ public final class StoreLurking { if (guild == null || isLurking$app_productionCanaryRelease(guild)) { this.lurkedGuilds.put(Long.valueOf(j), new LurkContext(j, z2)); this.lurkedGuildsSubject.onNext(this.lurkedGuilds); - ObservableExtensionsKt.appSubscribe$default(ObservableExtensionsKt.ui(ObservableExtensionsKt.restSubscribeOn$default(RestAPI.Companion.getApi().joinGuild(j, true, this.sessionId, null, new RestAPIParams.InviteCode(null)), false, 1, null)), StoreLurking.class, context, (Function1) null, new StoreLurking$startLurkingInternal$3(this, j), (Function0) null, (Function0) null, new StoreLurking$startLurkingInternal$4(this, j, function3, l), 52, (Object) null); + ObservableExtensionsKt.appSubscribe$default(ObservableExtensionsKt.ui(ObservableExtensionsKt.restSubscribeOn$default(RestAPIInterface.DefaultImpls.joinGuild$default(RestAPI.Companion.getApi(), j, true, this.sessionId, null, new RestAPIParams.InviteCode(null), null, 32, null), false, 1, null)), StoreLurking.class, context, (Function1) null, new StoreLurking$startLurkingInternal$3(this, j), (Function0) null, (Function0) null, new StoreLurking$startLurkingInternal$4(this, j, function3, l), 52, (Object) null); return; } function3.invoke(guild, l, Boolean.TRUE); @@ -398,9 +398,9 @@ public final class StoreLurking { return q; } - public final void postJoinGuildAsMember(long j, Fragment fragment) { - m.checkNotNullParameter(fragment, "fragment"); - GuildJoinHelperKt.joinGuild$default(j, false, this.sessionId, null, fragment, StoreLurking.class, null, null, StoreLurking$postJoinGuildAsMember$1.INSTANCE, null, 512, null); + public final void postJoinGuildAsMember(long j, Context context) { + m.checkNotNullParameter(context, "context"); + GuildJoinHelperKt.joinGuild$default(context, j, false, this.sessionId, null, null, StoreLurking.class, null, null, null, StoreLurking$postJoinGuildAsMember$1.INSTANCE, 944, null); } public final void removeOldLurkingGuilds(long j) { diff --git a/app/src/main/java/com/discord/utilities/directories/DirectoryUtils.java b/app/src/main/java/com/discord/utilities/directories/DirectoryUtils.java index 2551ea1a1d..8eae1047e8 100644 --- a/app/src/main/java/com/discord/utilities/directories/DirectoryUtils.java +++ b/app/src/main/java/com/discord/utilities/directories/DirectoryUtils.java @@ -19,6 +19,7 @@ import kotlin.jvm.functions.Function0; /* compiled from: DirectoryUtils.kt */ public final class DirectoryUtils { public static final DirectoryUtils INSTANCE = new DirectoryUtils(); + public static final String JOIN_GUILD_SOURCE = "Directory Channel Entry"; private static final List NON_SERVER_OWNER_MENU_OPTIONS = m.listOf(DirectoryServerMenuOptions.Report); private static final List SERVER_OWNER_MENU_OPTIONS = n.listOf((Object[]) new DirectoryServerMenuOptions[]{DirectoryServerMenuOptions.Edit, DirectoryServerMenuOptions.Remove}); diff --git a/app/src/main/java/com/discord/utilities/experiments/ExperimentRegistry.java b/app/src/main/java/com/discord/utilities/experiments/ExperimentRegistry.java index a47ba4f888..42510972ba 100644 --- a/app/src/main/java/com/discord/utilities/experiments/ExperimentRegistry.java +++ b/app/src/main/java/com/discord/utilities/experiments/ExperimentRegistry.java @@ -15,7 +15,7 @@ public final class ExperimentRegistry { registeredExperiments = linkedHashMap; RegisteredExperiment.Type type = RegisteredExperiment.Type.USER; RegisteredExperiment.Type type2 = RegisteredExperiment.Type.GUILD; - for (Object obj : n.listOf((Object[]) new RegisteredExperiment[]{new RegisteredExperiment("Compact Invite Widget", "2020-01_mobile_invite_suggestion_compact", type, n.listOf((Object[]) new String[]{"Control", "Treatment 1: Use compact view"}), true), new RegisteredExperiment("Guild Invite Sheet", "2020-12_android_guild_channel_invite_sheet", type, n.listOf((Object[]) new String[]{"Control: Use the full-screen guild invite UI", "Treatment 1: Use the bottom sheet guild invite UI"}), true), new RegisteredExperiment("Disable mentions in landscape", "2020-12_android_disable_landscape_mentions", type, n.listOf((Object[]) new String[]{"Control", "Treatment 1: Hide mentions in landscape"}), true), new RegisteredExperiment("Invite to GDM Sheet", "2020-12_invite_to_gdm", type, n.listOf((Object[]) new String[]{"Control: Use the full-screen GDM invite UI", "Treatment 1: Use the bottom sheet GDM invite UI"}), true), new RegisteredExperiment("Guild Delete Feedback", "2020-12_guild_delete_feedback", type, n.listOf((Object[]) new String[]{"Control: Do not show the feedback modal", "Treatment 1: Show the feedback modal"}), true), new RegisteredExperiment("View Threads", "2021-02_view_threads", type, n.listOf((Object[]) new String[]{"Control: Do not display anything threads-related, except if receiving a notification", "Treatment 1: Show view-only threads features in channel list, in chat view, etc."}), true), new RegisteredExperiment("Create Threads", "2020-09_threads", type2, n.listOf((Object[]) new String[]{"Control: Do not show thread creation entrypoints, or Thread Browser", "Treatment 1: Show thread creation buttons, and show button to open Thread Browser"}), true), new RegisteredExperiment("Disable Camera 2", "2021-02_android_webrtc_camera2", type, n.listOf((Object[]) new String[]{"Control: Use Camera 2 API if supported", "Treatment 1: Force Camera 1 API"}), true), new RegisteredExperiment("MediaSinkWants", "2021-03_android_media_sink_wants", type, n.listOf((Object[]) new String[]{"Control: disabled", "Treatment 1: use MediaSinkWants"}), true), new RegisteredExperiment("Default Invite Expiration", "2021-03_android_extend_invite_expiration", type2, n.listOf((Object[]) new String[]{"Control: Default Invite Expiration is 1 day", "Treatment 1: Default Invite Expiration is 7 days"}), true), new RegisteredExperiment("Emoji Autocomplete Upsell", "2021-03_nitro_emoji_autocomplete_upsell_android", type, n.listOf((Object[]) new String[]{"Control", "Treatment 1: Show Emoji Autocomplete Upsell"}), true), new RegisteredExperiment("Application Command Frecency", "2021-09_android_app_commands_frecency", type, n.listOf((Object[]) new String[]{"Control", "Treatment 1: Show frecent application commands"}), true), new RegisteredExperiment("Bot UI Kit Components", "2021-03_bot_ui_kit_components_android", type, n.listOf((Object[]) new String[]{"Control", "Treatment 1: Show Bot UI Kit Components"}), true), new RegisteredExperiment("Select Bot UI Component", "2021-05_bot_ui_kit_select", type, n.listOf((Object[]) new String[]{"Control", "Treatment 1: Show Select Bot Ui Component"}), true), new RegisteredExperiment("Stage Events Guilds", "2021-06_stage_events", type2, n.listOf((Object[]) new String[]{"Control", "Treatment 1: Enables users to see events in guilds"}), true), new RegisteredExperiment("Contact Sync: Base Experiment", "2021-04_contact_sync_android_main", type, n.listOf((Object[]) new String[]{"Control", "Treatment 1: Enable core Contact Sync features"}), true), new RegisteredExperiment("Contact Sync: Existing Users w/ Phone Upsell Experiment", "2021-04_contact_sync_android_existing_user_phone_prompt", type, n.listOf((Object[]) new String[]{"Control", "Treatment 1: Show Contact Sync for existing users with a phone number"}), true), new RegisteredExperiment("Contact Sync: Existing Users without Phone Upsell Experiment", "2021-04_contact_sync_android_existing_user_without_phone_prompt", type, n.listOf((Object[]) new String[]{"Control", "Treatment 1: Show Contact Sync for existing users without a phone number"}), true), new RegisteredExperiment("Contact Sync: Empty states", "2021-05_contact_sync_android_empty_states", type, n.listOf((Object[]) new String[]{"Control", "Treatment 1: Show Contact Sync in empty friend lists"}), true), new RegisteredExperiment("Stop Offscreen Video Streams", "2021-03_stop_offscreen_video_streams", type, n.listOf((Object[]) new String[]{"Control", "Treatment 1: Stop offscreen video streams"}), true), new RegisteredExperiment("Hub Multiple Domains", "2021-08_hub_multi_domain_mobile", type, n.listOf((Object[]) new String[]{"Control", "Treatment 1: Enable multiple domains for hubs"}), true), new RegisteredExperiment("Enabled Discord Hub Directories", "2021-06_desktop_school_hubs", type, n.listOf((Object[]) new String[]{"Control", "Treatment 1: See Discord Hub Directories"}), true), new RegisteredExperiment("Enabled Discord Hub Emails", "2021-06_hub_email_connection", type, n.listOf((Object[]) new String[]{"Control", "Treatment 1: See Discord Hub Emails"}), true), new RegisteredExperiment("Enabled Discord Hub Reporting", "2021-08_hub_reporting", type, n.listOf((Object[]) new String[]{"Control", "Treatment 1: Hub Reporting Enabled"}), true), new RegisteredExperiment("Enable Impression Logging", "2021-08_impression_logging_enabled_android", type, n.listOf((Object[]) new String[]{"Control", "Treatment 1: Enable Impression Logging"}), true), new RegisteredExperiment("AudioManager V2 and OpenSL ES", "2021-05_opensl_default_enable_android", type, n.listOf((Object[]) new String[]{"Control", "Treatment 1: Default enable OpenSL", "Treatment 2: Use StoreAudioManagerV2 for output routing"}), true), new RegisteredExperiment("Phone Registration - Bailout to Email", "2021-06_reg_bailout_to_email_android", type, n.listOf((Object[]) new String[]{"Control: Just the back button", "Treatment 1: Static button to bailout to the email tab"}), true), new RegisteredExperiment("Enable Network Action Logging", "2021-07_network_action_logging_android", type, n.listOf((Object[]) new String[]{"Off: No Action logging", "On: Enable Action Logging"}), true), new RegisteredExperiment("Preview Promotions", "2021-06_preview_promotions", type, n.listOf((Object[]) new String[]{"Off: Hit normal endpoint", "On: Hit preview endpoint"}), true), new RegisteredExperiment("Live Stage Notifications", "2021-07_live_stage_notifications", type2, n.listOf((Object[]) new String[]{"Control: No notification surfaces", "Treatment 1: Show notification surfaces"}), true), new RegisteredExperiment("Show welcome CTA button", "2021-06_welcome_cta", type2, n.listOf((Object[]) new String[]{"Control: No CTA", "Treatment 1: Show welcome CTA button"}), true), new RegisteredExperiment("Guild Events Sharing", "2021-08_guild_scheduled_events_sharing", type, n.listOf((Object[]) new String[]{"Control: No sharing", "Treatment 1: Can share"}), true), new RegisteredExperiment("Route audio to speakerphone by default", "2021-08_android_speakerphone_default", type, n.listOf((Object[]) new String[]{"Control", "Treatment 1: Always default to speakerphone"}), true), new RegisteredExperiment("New Thread Perms", "2021-08_threads_permissions", type2, n.listOf((Object[]) new String[]{"Control: Use old threads permissions.", "Treatment 1: Use new threads permissions."}), true), new RegisteredExperiment("Longer billing grace periods", "2021-09_longer_billing_grace_periods", type, n.listOf((Object[]) new String[]{"Control: 3-day grace period", "Treatment 1: 7-day grace period"}), true), new RegisteredExperiment("SMS Autofill", "2021-09_android_sms_autofill", type, n.listOf((Object[]) new String[]{"Control: No SMS Autofill", "Treatment 1: SMS Code autofills"}), true)})) { + for (Object obj : n.listOf((Object[]) new RegisteredExperiment[]{new RegisteredExperiment("Compact Invite Widget", "2020-01_mobile_invite_suggestion_compact", type, n.listOf((Object[]) new String[]{"Control", "Treatment 1: Use compact view"}), true), new RegisteredExperiment("Guild Invite Sheet", "2020-12_android_guild_channel_invite_sheet", type, n.listOf((Object[]) new String[]{"Control: Use the full-screen guild invite UI", "Treatment 1: Use the bottom sheet guild invite UI"}), true), new RegisteredExperiment("Disable mentions in landscape", "2020-12_android_disable_landscape_mentions", type, n.listOf((Object[]) new String[]{"Control", "Treatment 1: Hide mentions in landscape"}), true), new RegisteredExperiment("Invite to GDM Sheet", "2020-12_invite_to_gdm", type, n.listOf((Object[]) new String[]{"Control: Use the full-screen GDM invite UI", "Treatment 1: Use the bottom sheet GDM invite UI"}), true), new RegisteredExperiment("Guild Delete Feedback", "2020-12_guild_delete_feedback", type, n.listOf((Object[]) new String[]{"Control: Do not show the feedback modal", "Treatment 1: Show the feedback modal"}), true), new RegisteredExperiment("View Threads", "2021-02_view_threads", type, n.listOf((Object[]) new String[]{"Control: Do not display anything threads-related, except if receiving a notification", "Treatment 1: Show view-only threads features in channel list, in chat view, etc."}), true), new RegisteredExperiment("Create Threads", "2020-09_threads", type2, n.listOf((Object[]) new String[]{"Control: Do not show thread creation entrypoints, or Thread Browser", "Treatment 1: Show thread creation buttons, and show button to open Thread Browser"}), true), new RegisteredExperiment("Disable Camera 2", "2021-02_android_webrtc_camera2", type, n.listOf((Object[]) new String[]{"Control: Use Camera 2 API if supported", "Treatment 1: Force Camera 1 API"}), true), new RegisteredExperiment("MediaSinkWants", "2021-03_android_media_sink_wants", type, n.listOf((Object[]) new String[]{"Control: disabled", "Treatment 1: use MediaSinkWants"}), true), new RegisteredExperiment("Default Invite Expiration", "2021-03_android_extend_invite_expiration", type2, n.listOf((Object[]) new String[]{"Control: Default Invite Expiration is 1 day", "Treatment 1: Default Invite Expiration is 7 days"}), true), new RegisteredExperiment("Emoji Autocomplete Upsell", "2021-03_nitro_emoji_autocomplete_upsell_android", type, n.listOf((Object[]) new String[]{"Control", "Treatment 1: Show Emoji Autocomplete Upsell"}), true), new RegisteredExperiment("Application Command Frecency", "2021-09_android_app_commands_frecency", type, n.listOf((Object[]) new String[]{"Control", "Treatment 1: Show frecent application commands"}), true), new RegisteredExperiment("Bot UI Kit Components", "2021-03_bot_ui_kit_components_android", type, n.listOf((Object[]) new String[]{"Control", "Treatment 1: Show Bot UI Kit Components"}), true), new RegisteredExperiment("Select Bot UI Component", "2021-05_bot_ui_kit_select", type, n.listOf((Object[]) new String[]{"Control", "Treatment 1: Show Select Bot Ui Component"}), true), new RegisteredExperiment("Stage Events Guilds", "2021-06_stage_events", type2, n.listOf((Object[]) new String[]{"Control", "Treatment 1: Enables users to see events in guilds"}), true), new RegisteredExperiment("Contact Sync: Base Experiment", "2021-04_contact_sync_android_main", type, n.listOf((Object[]) new String[]{"Control", "Treatment 1: Enable core Contact Sync features"}), true), new RegisteredExperiment("Contact Sync: Existing Users w/ Phone Upsell Experiment", "2021-04_contact_sync_android_existing_user_phone_prompt", type, n.listOf((Object[]) new String[]{"Control", "Treatment 1: Show Contact Sync for existing users with a phone number"}), true), new RegisteredExperiment("Contact Sync: Existing Users without Phone Upsell Experiment", "2021-04_contact_sync_android_existing_user_without_phone_prompt", type, n.listOf((Object[]) new String[]{"Control", "Treatment 1: Show Contact Sync for existing users without a phone number"}), true), new RegisteredExperiment("Contact Sync: Empty states", "2021-05_contact_sync_android_empty_states", type, n.listOf((Object[]) new String[]{"Control", "Treatment 1: Show Contact Sync in empty friend lists"}), true), new RegisteredExperiment("Stop Offscreen Video Streams", "2021-03_stop_offscreen_video_streams", type, n.listOf((Object[]) new String[]{"Control", "Treatment 1: Stop offscreen video streams"}), true), new RegisteredExperiment("Hub Multiple Domains", "2021-08_hub_multi_domain_mobile", type, n.listOf((Object[]) new String[]{"Control", "Treatment 1: Enable multiple domains for hubs"}), true), new RegisteredExperiment("Enabled Discord Hub Directories", "2021-06_desktop_school_hubs", type, n.listOf((Object[]) new String[]{"Control", "Treatment 1: See Discord Hub Directories"}), true), new RegisteredExperiment("Enabled Discord Hub Emails", "2021-06_hub_email_connection", type, n.listOf((Object[]) new String[]{"Control", "Treatment 1: See Discord Hub Emails"}), true), new RegisteredExperiment("Enabled Discord Hub Reporting", "2021-08_hub_reporting", type, n.listOf((Object[]) new String[]{"Control", "Treatment 1: Hub Reporting Enabled"}), true), new RegisteredExperiment("Enable Impression Logging", "2021-08_impression_logging_enabled_android", type, n.listOf((Object[]) new String[]{"Control", "Treatment 1: Enable Impression Logging"}), true), new RegisteredExperiment("AudioManager V2 and OpenSL ES", "2021-05_opensl_default_enable_android", type, n.listOf((Object[]) new String[]{"Control", "Treatment 1: Default enable OpenSL", "Treatment 2: Use StoreAudioManagerV2 for output routing"}), true), new RegisteredExperiment("Phone Registration - Bailout to Email", "2021-06_reg_bailout_to_email_android", type, n.listOf((Object[]) new String[]{"Control: Just the back button", "Treatment 1: Static button to bailout to the email tab"}), true), new RegisteredExperiment("Enable Network Action Logging", "2021-07_network_action_logging_android", type, n.listOf((Object[]) new String[]{"Off: No Action logging", "On: Enable Action Logging"}), true), new RegisteredExperiment("Preview Promotions", "2021-06_preview_promotions", type, n.listOf((Object[]) new String[]{"Off: Hit normal endpoint", "On: Hit preview endpoint"}), true), new RegisteredExperiment("Live Stage Notifications", "2021-07_live_stage_notifications", type2, n.listOf((Object[]) new String[]{"Control: No notification surfaces", "Treatment 1: Show notification surfaces"}), true), new RegisteredExperiment("Guild Events Sharing", "2021-08_guild_scheduled_events_sharing", type, n.listOf((Object[]) new String[]{"Control: No sharing", "Treatment 1: Can share"}), true), new RegisteredExperiment("Route audio to speakerphone by default", "2021-08_android_speakerphone_default", type, n.listOf((Object[]) new String[]{"Control", "Treatment 1: Always default to speakerphone"}), true), new RegisteredExperiment("New Thread Perms", "2021-08_threads_permissions", type2, n.listOf((Object[]) new String[]{"Control: Use old threads permissions.", "Treatment 1: Use new threads permissions."}), true), new RegisteredExperiment("Longer billing grace periods", "2021-09_longer_billing_grace_periods", type, n.listOf((Object[]) new String[]{"Control: 3-day grace period", "Treatment 1: 7-day grace period"}), true), new RegisteredExperiment("SMS Autofill", "2021-09_android_sms_autofill", type, n.listOf((Object[]) new String[]{"Control: No SMS Autofill", "Treatment 1: SMS Code autofills"}), true)})) { linkedHashMap.put(((RegisteredExperiment) obj).getName(), obj); } } diff --git a/app/src/main/java/com/discord/utilities/fcm/NotificationData.java b/app/src/main/java/com/discord/utilities/fcm/NotificationData.java index 07080d6d17..138442eea5 100644 --- a/app/src/main/java/com/discord/utilities/fcm/NotificationData.java +++ b/app/src/main/java/com/discord/utilities/fcm/NotificationData.java @@ -4,6 +4,7 @@ import android.annotation.SuppressLint; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; +import android.content.res.Resources; import android.net.Uri; import android.text.Html; import androidx.annotation.RequiresApi; @@ -22,6 +23,7 @@ import c0.t.n; import c0.t.o; import c0.t.u; import c0.z.d.m; +import com.adjust.sdk.Constants; import com.discord.R; import com.discord.api.application.Application; import com.discord.api.channel.Channel; @@ -79,6 +81,7 @@ public final class NotificationData { public static final String TYPE_ACTIVITY_START = "ACTIVITY_START"; public static final String TYPE_APPLICATION_LIBRARY_INSTALL_COMPLETE = "APPLICATION_LIBRARY_INSTALL_COMPLETE"; public static final String TYPE_CALL_RING = "CALL_RING"; + public static final String TYPE_GENERIC_PUSH_NOTIFICATION_SENT = "GENERIC_PUSH_NOTIFICATION_SENT"; public static final String TYPE_GUILD_SCHEDULED_EVENT_UPDATE = "GUILD_SCHEDULED_EVENT_UPDATE"; public static final String TYPE_MESSAGE_CREATE = "MESSAGE_CREATE"; public static final String TYPE_RELATIONSHIP_ADD = "RELATIONSHIP_ADD"; @@ -92,6 +95,7 @@ public final class NotificationData { private final long applicationId; private final String applicationName; private final Channel channel; + private final String deeplink; private final String guildIcon; private final long guildId; private final String guildMemberAvatar; @@ -108,7 +112,9 @@ public final class NotificationData { private final String stageInstanceTopic; private final Sticker sticker; private final String subtitle; + private final String subtitleResName; private final String title; + private final String titleResName; private final String type; private final String userAvatar; private final Integer userDiscriminator; @@ -346,7 +352,7 @@ public final class NotificationData { this(new HashMap()); } - public NotificationData(String str, long j, MessageActivityType messageActivityType, String str2, int i, String str3, Channel channel, List list, long j2, String str4, Integer num, String str5, String str6, int i2, long j3, String str7, String str8, int i3, String str9, long j4, String str10, String str11, Sticker sticker, String str12, String str13, String str14, GuildScheduledEventEntityType guildScheduledEventEntityType, NotificationType notificationType) { + public NotificationData(String str, long j, MessageActivityType messageActivityType, String str2, int i, String str3, Channel channel, List list, long j2, String str4, Integer num, String str5, String str6, int i2, String str7, long j3, String str8, String str9, int i3, String str10, long j4, String str11, String str12, Sticker sticker, String str13, String str14, String str15, String str16, String str17, GuildScheduledEventEntityType guildScheduledEventEntityType, NotificationType notificationType) { m.checkNotNullParameter(str, "type"); m.checkNotNullParameter(channel, "channel"); m.checkNotNullParameter(list, "ackChannelIds"); @@ -364,17 +370,20 @@ public final class NotificationData { this.userAvatar = str5; this.guildMemberAvatar = str6; this.relationshipType = i2; - this.guildName = str7; - this.guildIcon = str8; + this.deeplink = str7; + this.guildName = str8; + this.guildIcon = str9; this.activityType = i3; - this.activityName = str9; + this.activityName = str10; this.applicationId = j4; - this.applicationName = str10; - this.applicationIcon = str11; + this.applicationName = str11; + this.applicationIcon = str12; this.sticker = sticker; - this.title = str12; - this.subtitle = str13; - this.stageInstanceTopic = str14; + this.title = str13; + this.subtitle = str14; + this.titleResName = str15; + this.subtitleResName = str16; + this.stageInstanceTopic = str17; this.guildScheduledEventEntityType = guildScheduledEventEntityType; this.notificationType = notificationType; Long valueOf = Long.valueOf(j3); @@ -398,7 +407,7 @@ public final class NotificationData { /* JADX WARNING: Illegal instructions before constructor call */ public NotificationData(Map map) { - this(r1, r1, r6, r7, r8, r9, r49, r11, r12, r14, r15, r16, r17, r18, r19, r21, r22, r23, r24, r25, r27, r28, r29, r30, r31, r32, r33, r0 != null ? NotificationType.Companion.parse(r0) : null); + this(r1, r1, r6, r7, r8, r9, r49, r11, r12, r14, r15, r16, r17, r18, r19, r20, r22, r23, r24, r25, r26, r28, r29, r30, r31, r32, r33, r34, r35, r36, r0 != null ? NotificationType.Companion.parse(r0) : null); Integer intOrNull; Long longOrNull; Integer intOrNull2; @@ -440,24 +449,27 @@ public final class NotificationData { String str15 = map.get("user_guild_avatar"); String str16 = map.get(ANALYTICS_REL_TYPE); int intValue3 = (str16 == null || (intOrNull3 = s.toIntOrNull(str16)) == null) ? -1 : intOrNull3.intValue(); - String str17 = map.get("guild_id"); - long longValue4 = (str17 == null || (longOrNull2 = s.toLongOrNull(str17)) == null) ? -1 : longOrNull2.longValue(); - String str18 = map.get("guild_name"); - String str19 = map.get("guild_icon"); - String str20 = map.get(ANALYTICS_ACTIVITY_TYPE); - int intValue4 = (str20 == null || (intOrNull2 = s.toIntOrNull(str20)) == null) ? -1 : intOrNull2.intValue(); - String str21 = map.get(ANALYTICS_ACTIVITY_NAME); - String str22 = map.get(ModelAuditLogEntry.CHANGE_KEY_APPLICATION_ID); - long longValue5 = (str22 == null || (longOrNull = s.toLongOrNull(str22)) == null) ? -1 : longOrNull.longValue(); - String str23 = map.get("application_name"); - String str24 = map.get("application_icon"); + String str17 = map.get(Constants.DEEPLINK); + String str18 = map.get("guild_id"); + long longValue4 = (str18 == null || (longOrNull2 = s.toLongOrNull(str18)) == null) ? -1 : longOrNull2.longValue(); + String str19 = map.get("guild_name"); + String str20 = map.get("guild_icon"); + String str21 = map.get(ANALYTICS_ACTIVITY_TYPE); + int intValue4 = (str21 == null || (intOrNull2 = s.toIntOrNull(str21)) == null) ? -1 : intOrNull2.intValue(); + String str22 = map.get(ANALYTICS_ACTIVITY_NAME); + String str23 = map.get(ModelAuditLogEntry.CHANGE_KEY_APPLICATION_ID); + long longValue5 = (str23 == null || (longOrNull = s.toLongOrNull(str23)) == null) ? -1 : longOrNull.longValue(); + String str24 = map.get("application_name"); + String str25 = map.get("application_icon"); Sticker parseFromMessageNotificationJson = StickerUtils.INSTANCE.parseFromMessageNotificationJson(map.get("message")); - String str25 = map.get("title"); - String str26 = map.get("subtitle"); - String str27 = map.get("stage_instance_topic"); - String str28 = map.get("guild_scheduled_event_entity_type"); - GuildScheduledEventEntityType a2 = (str28 == null || (intOrNull = s.toIntOrNull(str28)) == null) ? null : GuildScheduledEventEntityType.Companion.a(intOrNull.intValue()); - String str29 = map.get("notification_type"); + String str26 = map.get("title"); + String str27 = map.get("subtitle"); + String str28 = map.get("title_resource_name"); + String str29 = map.get("subtitle_resource_name"); + String str30 = map.get("stage_instance_topic"); + String str31 = map.get("guild_scheduled_event_entity_type"); + GuildScheduledEventEntityType a2 = (str31 == null || (intOrNull = s.toIntOrNull(str31)) == null) ? null : GuildScheduledEventEntityType.Companion.a(intOrNull.intValue()); + String str32 = map.get("notification_type"); } private final Intent addTrackingData(Intent intent) { @@ -466,24 +478,33 @@ public final class NotificationData { return putExtra; } - /* JADX WARNING: Code restructure failed: missing block: B:11:0x0043, code lost: - if (r0.equals(com.discord.utilities.fcm.NotificationData.TYPE_RELATIONSHIP_ADD) != false) goto L_0x0045; + /* JADX WARNING: Code restructure failed: missing block: B:11:0x0045, code lost: + if (r0.equals(com.discord.utilities.fcm.NotificationData.TYPE_RELATIONSHIP_ADD) != false) goto L_0x0047; */ - /* JADX WARNING: Code restructure failed: missing block: B:13:0x004b, code lost: - if (r8.channel.A() == 1) goto L_0x005d; + /* JADX WARNING: Code restructure failed: missing block: B:13:0x004d, code lost: + if (r8.channel.A() == 1) goto L_0x0060; */ - /* JADX WARNING: Code restructure failed: missing block: B:33:?, code lost: + /* JADX WARNING: Code restructure failed: missing block: B:39:?, code lost: return com.discord.utilities.intent.IntentUtils.RouteBuilders.selectChannel$default(r8.channel.h(), r8.guildId, null, 4, null); */ - /* JADX WARNING: Code restructure failed: missing block: B:34:?, code lost: - return com.discord.utilities.intent.IntentUtils.RouteBuilders.selectChannel$default(r8.channel.h(), 0, null, 4, null); + /* JADX WARNING: Code restructure failed: missing block: B:3:0x0014, code lost: + if (r0.equals(com.discord.utilities.fcm.NotificationData.TYPE_MESSAGE_CREATE) != false) goto L_0x0047; */ - /* JADX WARNING: Code restructure failed: missing block: B:3:0x0012, code lost: - if (r0.equals(com.discord.utilities.fcm.NotificationData.TYPE_MESSAGE_CREATE) != false) goto L_0x0045; + /* JADX WARNING: Code restructure failed: missing block: B:40:?, code lost: + return com.discord.utilities.intent.IntentUtils.RouteBuilders.selectChannel$default(r8.channel.h(), 0, null, 4, null); */ private final Intent getContentIntentInternal() { String str = this.type; switch (str.hashCode()) { + case -1502317553: + if (str.equals(TYPE_GENERIC_PUSH_NOTIFICATION_SENT)) { + String str2 = this.deeplink; + if (str2 == null) { + str2 = ""; + } + return new Intent("android.intent.action.VIEW", Uri.parse(str2)); + } + return IntentUtils.RouteBuilders.selectChannel$default(this.channel.h(), this.guildId, null, 4, null); case -1489275252: if (str.equals(TYPE_GUILD_SCHEDULED_EVENT_UPDATE)) { GuildScheduledEventEntityType guildScheduledEventEntityType = this.guildScheduledEventEntityType; @@ -542,6 +563,19 @@ public final class NotificationData { return IconUtils.getForGuildMember$default(IconUtils.INSTANCE, this.guildMemberAvatar, this.guildId, this.userId, null, false, 24, null); } + private final CharSequence resNameToString(Context context, String str, String str2) { + Resources resources = context.getResources(); + int identifier = resources != null ? resources.getIdentifier(str, "string", context.getPackageName()) : 0; + return identifier == 0 ? str2 : b.h(context, identifier, new Object[0], null, 4); + } + + public static /* synthetic */ CharSequence resNameToString$default(NotificationData notificationData, Context context, String str, String str2, int i, Object obj) { + if ((i & 4) != 0) { + str2 = ""; + } + return notificationData.resNameToString(context, str, str2); + } + public final boolean canDisplayInApp() { int ordinal; if (m.areEqual(this.type, TYPE_STAGE_INSTANCE_CREATE)) { @@ -585,7 +619,7 @@ public final class NotificationData { String str3 = this.guildName; String str4 = this.guildIcon; List A = message.A(); - return new NotificationData(TYPE_MESSAGE_CREATE, o, b, g, intValue, i, a4, emptyList, i2, str, intOrNull, str2, b3, -1, j, str3, str4, -1, null, -1, null, null, A != null ? (Sticker) u.firstOrNull((List) A) : null, null, null, null, null, null); + return new NotificationData(TYPE_MESSAGE_CREATE, o, b, g, intValue, i, a4, emptyList, i2, str, intOrNull, str2, b3, -1, null, j, str3, str4, -1, null, -1, null, null, A != null ? (Sticker) u.firstOrNull((List) A) : null, null, null, null, null, null, null, null); } public final List getAckChannelIds() { @@ -614,32 +648,50 @@ public final class NotificationData { } public final CharSequence getContent(Context context) { - GuildScheduledEventEntityType guildScheduledEventEntityType; CharSequence charSequence; + GuildScheduledEventEntityType guildScheduledEventEntityType; m.checkNotNullParameter(context, "context"); String str = this.type; + String str2 = ""; switch (str.hashCode()) { + case -1502317553: + if (!str.equals(TYPE_GENERIC_PUSH_NOTIFICATION_SENT)) { + return str2; + } + String str3 = this.subtitleResName; + if (str3 != null) { + String str4 = this.subtitle; + if (str4 != null) { + str2 = str4; + } + return resNameToString(context, str3, str2); + } + charSequence = this.subtitle; + if (charSequence == null) { + return str2; + } + break; case -1489275252: if (!str.equals(TYPE_GUILD_SCHEDULED_EVENT_UPDATE) || (guildScheduledEventEntityType = this.guildScheduledEventEntityType) == null) { - return ""; + return str2; } int ordinal = guildScheduledEventEntityType.ordinal(); - return (ordinal == 1 || ordinal == 2) ? b.h(context, R.string.guild_scheduled_event_stage_start_body, new Object[]{this.stageInstanceTopic, this.userUsername}, null, 4) : ordinal != 3 ? "" : b.h(context, R.string.guild_scheduled_event_external_start_body, new Object[]{this.stageInstanceTopic}, null, 4); + return (ordinal == 1 || ordinal == 2) ? b.h(context, R.string.guild_scheduled_event_stage_start_body, new Object[]{this.stageInstanceTopic, this.userUsername}, null, 4) : ordinal != 3 ? str2 : b.h(context, R.string.guild_scheduled_event_external_start_body, new Object[]{this.stageInstanceTopic}, null, 4); case -1327124998: if (!str.equals(TYPE_RELATIONSHIP_ADD)) { - return ""; + return str2; } int i = this.relationshipType; - return i != 1 ? i != 3 ? "" : b.h(context, R.string.notification_pending_friend_request, new Object[0], null, 4) : b.h(context, R.string.notification_accepted_friend_request, new Object[0], null, 4); + return i != 1 ? i != 3 ? str2 : b.h(context, R.string.notification_pending_friend_request, new Object[0], null, 4) : b.h(context, R.string.notification_accepted_friend_request, new Object[0], null, 4); case -1263316859: - return str.equals(TYPE_STAGE_INSTANCE_CREATE) ? b.h(context, R.string.stage_start_push_notification_body, new Object[]{this.userUsername, this.stageInstanceTopic}, null, 4) : ""; + return str.equals(TYPE_STAGE_INSTANCE_CREATE) ? b.h(context, R.string.stage_start_push_notification_body, new Object[]{this.userUsername, this.stageInstanceTopic}, null, 4) : str2; case -1237752112: - return str.equals(TYPE_APPLICATION_LIBRARY_INSTALL_COMPLETE) ? b.h(context, R.string.game_library_notification_game_installed_body, new Object[]{this.applicationName}, null, 4) : ""; + return str.equals(TYPE_APPLICATION_LIBRARY_INSTALL_COMPLETE) ? b.h(context, R.string.game_library_notification_game_installed_body, new Object[]{this.applicationName}, null, 4) : str2; case 974015250: - return (!str.equals(TYPE_ACTIVITY_START) || this.activityType != 0) ? "" : b.h(context, R.string.notification_body_start_game, new Object[]{this.userUsername, this.activityName}, null, 4); + return (!str.equals(TYPE_ACTIVITY_START) || this.activityType != 0) ? str2 : b.h(context, R.string.notification_body_start_game, new Object[]{this.userUsername, this.activityName}, null, 4); case 998188116: if (!str.equals(TYPE_MESSAGE_CREATE)) { - return ""; + return str2; } int A = this.channel.A(); if (A != 0) { @@ -651,10 +703,10 @@ public final class NotificationData { if (sticker != null) { return b.h(context, R.string.sticker_notification_body, new Object[]{sticker.h()}, null, 4); } - String str2 = this.messageContent; - if (str2 != null) { - charSequence = b.l(str2, new Object[0], null, 2); - return charSequence; + String str5 = this.messageContent; + if (str5 != null) { + charSequence = b.l(str5, new Object[0], null, 2); + break; } return null; } else if (A != 5) { @@ -664,7 +716,7 @@ public final class NotificationData { case 12: break; default: - return ""; + return str2; } } } @@ -678,17 +730,18 @@ public final class NotificationData { if (sticker2 != null) { return b.h(context, R.string.sticker_notification_body, new Object[]{sticker2.h()}, null, 4); } - String str3 = this.messageContent; - if (str3 != null) { - charSequence = b.l(str3, new Object[0], null, 2); - return charSequence; + String str6 = this.messageContent; + if (str6 != null) { + charSequence = b.l(str6, new Object[0], null, 2); + break; } return null; case 1770025841: - return str.equals(TYPE_CALL_RING) ? b.l(b.h(context, R.string.overlay_friend_calling, new Object[]{a.G(a.O("**"), this.userUsername, "**")}, null, 4), new Object[0], null, 2) : ""; + return str.equals(TYPE_CALL_RING) ? b.l(b.h(context, R.string.overlay_friend_calling, new Object[]{a.G(a.O("**"), this.userUsername, "**")}, null, 4), new Object[0], null, 2) : str2; default: - return ""; + return str2; } + return charSequence; } @SuppressLint({"UnspecifiedImmutableFlag"}) @@ -862,6 +915,11 @@ public final class NotificationData { GuildScheduledEventEntityType guildScheduledEventEntityType; String str = this.type; switch (str.hashCode()) { + case -1502317553: + if (!str.equals(TYPE_GENERIC_PUSH_NOTIFICATION_SENT)) { + return ""; + } + return this.type + this.deeplink; case -1489275252: if (!str.equals(TYPE_GUILD_SCHEDULED_EVENT_UPDATE) || (guildScheduledEventEntityType = this.guildScheduledEventEntityType) == null) { return ""; @@ -932,13 +990,17 @@ public final class NotificationData { return (this.messageId >>> 22) + SnowflakeUtils.DISCORD_EPOCH; } - /* JADX WARNING: Removed duplicated region for block: B:16:0x0044 A[RETURN, SYNTHETIC] */ - /* JADX WARNING: Removed duplicated region for block: B:17:0x0048 A[ORIG_RETURN, RETURN, SYNTHETIC] */ + /* JADX WARNING: Removed duplicated region for block: B:18:0x004d A[RETURN, SYNTHETIC] */ + /* JADX WARNING: Removed duplicated region for block: B:19:0x0051 A[ORIG_RETURN, RETURN, SYNTHETIC] */ public final String getNotificationCategory() { String str = this.type; switch (str.hashCode()) { + case -1502317553: + return str.equals(TYPE_GENERIC_PUSH_NOTIFICATION_SENT) ? NotificationCompat.CATEGORY_SOCIAL : NotificationCompat.CATEGORY_MESSAGE; case -1489275252: - return str.equals(TYPE_GUILD_SCHEDULED_EVENT_UPDATE) ? NotificationCompat.CATEGORY_SOCIAL : NotificationCompat.CATEGORY_MESSAGE; + if (str.equals(TYPE_GUILD_SCHEDULED_EVENT_UPDATE)) { + } + break; case -1327124998: if (str.equals(TYPE_RELATIONSHIP_ADD)) { } @@ -992,8 +1054,8 @@ public final class NotificationData { return NotificationClient.NOTIF_CHANNEL_SOCIAL; } - /* JADX WARNING: Removed duplicated region for block: B:12:0x003b A[RETURN, SYNTHETIC] */ - /* JADX WARNING: Removed duplicated region for block: B:17:0x004e A[ORIG_RETURN, RETURN, SYNTHETIC] */ + /* JADX WARNING: Removed duplicated region for block: B:14:0x0044 A[RETURN, SYNTHETIC] */ + /* JADX WARNING: Removed duplicated region for block: B:19:0x0057 A[ORIG_RETURN, RETURN, SYNTHETIC] */ public final int getNotificationPriority() { String notificationChannelId = getNotificationChannelId(); switch (notificationChannelId.hashCode()) { @@ -1001,9 +1063,13 @@ public final class NotificationData { return notificationChannelId.equals(NotificationClient.NOTIF_CHANNEL_MESSAGES_DIRECT) ? 1 : -1; case -1813183603: notificationChannelId.equals(NotificationClient.NOTIF_CHANNEL_SOCIAL); + case -1502317553: + if (notificationChannelId.equals(TYPE_GENERIC_PUSH_NOTIFICATION_SENT)) { + return 0; + } + break; case -1241096946: if (notificationChannelId.equals(NotificationClient.NOTIF_CHANNEL_STAGE_START)) { - return 0; } break; case -397449876: @@ -1144,40 +1210,58 @@ public final class NotificationData { } public final CharSequence getTitle(Context context) { - GuildScheduledEventEntityType guildScheduledEventEntityType; String str; + GuildScheduledEventEntityType guildScheduledEventEntityType; m.checkNotNullParameter(context, "context"); String str2 = this.type; + String str3 = ""; switch (str2.hashCode()) { + case -1502317553: + if (!str2.equals(TYPE_GENERIC_PUSH_NOTIFICATION_SENT)) { + return str3; + } + String str4 = this.titleResName; + if (str4 != null) { + String str5 = this.title; + if (str5 != null) { + str3 = str5; + } + return resNameToString(context, str4, str3); + } + str = this.title; + if (str == null) { + return str3; + } + break; case -1489275252: if (!str2.equals(TYPE_GUILD_SCHEDULED_EVENT_UPDATE) || (guildScheduledEventEntityType = this.guildScheduledEventEntityType) == null) { - return ""; + return str3; } int ordinal = guildScheduledEventEntityType.ordinal(); - return (ordinal == 1 || ordinal == 2 || ordinal == 3) ? b.h(context, R.string.guild_scheduled_event_stage_start_title, new Object[]{this.guildName}, null, 4) : ""; + return (ordinal == 1 || ordinal == 2 || ordinal == 3) ? b.h(context, R.string.guild_scheduled_event_stage_start_title, new Object[]{this.guildName}, null, 4) : str3; case -1327124998: if (!str2.equals(TYPE_RELATIONSHIP_ADD)) { - return ""; + return str3; } if ((this.notificationType != NotificationType.Reminder || (str = this.title) == null) && (str = this.userUsername) == null) { - return ""; + return str3; } case -1263316859: - return str2.equals(TYPE_STAGE_INSTANCE_CREATE) ? b.h(context, R.string.stage_start_push_notification_title, new Object[]{this.guildName}, null, 4) : ""; + return str2.equals(TYPE_STAGE_INSTANCE_CREATE) ? b.h(context, R.string.stage_start_push_notification_title, new Object[]{this.guildName}, null, 4) : str3; case -1237752112: - return str2.equals(TYPE_APPLICATION_LIBRARY_INSTALL_COMPLETE) ? b.h(context, R.string.game_library_notification_game_installed_title, new Object[0], null, 4) : ""; + return str2.equals(TYPE_APPLICATION_LIBRARY_INSTALL_COMPLETE) ? b.h(context, R.string.game_library_notification_game_installed_title, new Object[0], null, 4) : str3; case 974015250: - return (!str2.equals(TYPE_ACTIVITY_START) || this.activityType != 0) ? "" : b.h(context, R.string.notification_title_start_game, new Object[0], null, 4); + return (!str2.equals(TYPE_ACTIVITY_START) || this.activityType != 0) ? str3 : b.h(context, R.string.notification_title_start_game, new Object[0], null, 4); case 998188116: if (!str2.equals(TYPE_MESSAGE_CREATE)) { - return ""; + return str3; } int A = this.channel.A(); if (A != 0) { if (A == 1) { str = this.userUsername; if (str == null) { - return ""; + return str3; } } else if (A == 3) { return ChannelUtils.e(this.channel, context, false, 2); @@ -1189,16 +1273,16 @@ public final class NotificationData { case 12: break; default: - return ""; + return str3; } } } } return b.l(this.guildName + " _" + ChannelUtils.e(this.channel, context, false, 2) + '_', new Object[0], null, 2); case 1770025841: - return str2.equals(TYPE_CALL_RING) ? this.channel.A() != 1 ? ChannelUtils.c(this.channel) : b.h(context, R.string.incoming_call, new Object[0], null, 4) : ""; + return str2.equals(TYPE_CALL_RING) ? this.channel.A() != 1 ? ChannelUtils.c(this.channel) : b.h(context, R.string.incoming_call, new Object[0], null, 4) : str3; default: - return ""; + return str3; } return str; } @@ -1215,6 +1299,11 @@ public final class NotificationData { GuildScheduledEventEntityType guildScheduledEventEntityType; String str = this.type; switch (str.hashCode()) { + case -1502317553: + if (!str.equals(TYPE_GENERIC_PUSH_NOTIFICATION_SENT)) { + return false; + } + break; case -1489275252: if (!str.equals(TYPE_GUILD_SCHEDULED_EVENT_UPDATE) || (guildScheduledEventEntityType = this.guildScheduledEventEntityType) == null) { return false; diff --git a/app/src/main/java/com/discord/utilities/features/GrowthTeamFeatures.java b/app/src/main/java/com/discord/utilities/features/GrowthTeamFeatures.java index 9f218ae654..819a57fc90 100644 --- a/app/src/main/java/com/discord/utilities/features/GrowthTeamFeatures.java +++ b/app/src/main/java/com/discord/utilities/features/GrowthTeamFeatures.java @@ -21,10 +21,6 @@ public final class GrowthTeamFeatures { return growthTeamFeatures.isExperimentEnabled(str, i); } - public final Experiment getAndTrackWelcomeCTAExperiment(long j, boolean z2) { - return StoreStream.Companion.getExperiments().getGuildExperiment("2021-06_welcome_cta", j, z2); - } - public final boolean imbalancedAndroidSplashNoop() { return isExperimentEnabled$default(this, "2021-09_imbalanced_android_splash_noop", 0, 1, null); } diff --git a/app/src/main/java/com/discord/utilities/guilds/GuildCaptchaUtilsKt$handleHttpException$1.java b/app/src/main/java/com/discord/utilities/guilds/GuildCaptchaUtilsKt$handleHttpException$1.java index a79366c75c..8658453020 100644 --- a/app/src/main/java/com/discord/utilities/guilds/GuildCaptchaUtilsKt$handleHttpException$1.java +++ b/app/src/main/java/com/discord/utilities/guilds/GuildCaptchaUtilsKt$handleHttpException$1.java @@ -2,6 +2,7 @@ package com.discord.utilities.guilds; import c0.z.d.m; import c0.z.d.o; +import com.discord.app.AppFragment; import com.discord.widgets.guilds.invite.InviteJoinHelper; import com.discord.widgets.guilds.join.InviteArgs; import kotlin.Unit; @@ -9,11 +10,13 @@ import kotlin.jvm.functions.Function1; /* compiled from: GuildCaptchaUtils.kt */ public final class GuildCaptchaUtilsKt$handleHttpException$1 extends o implements Function1 { public final /* synthetic */ InviteArgs $args; + public final /* synthetic */ AppFragment $fragment; /* JADX INFO: super call moved to the top of the method (can break code semantics) */ - public GuildCaptchaUtilsKt$handleHttpException$1(InviteArgs inviteArgs) { + public GuildCaptchaUtilsKt$handleHttpException$1(InviteArgs inviteArgs, AppFragment appFragment) { super(1); this.$args = inviteArgs; + this.$fragment = appFragment; } /* Return type fixed from 'java.lang.Object' to match base method */ @@ -26,6 +29,6 @@ public final class GuildCaptchaUtilsKt$handleHttpException$1 extends o implement public final void invoke(String str) { m.checkNotNullParameter(str, "captchaToken"); - InviteJoinHelper.INSTANCE.joinViaInvite(this.$args.getInvite(), this.$args.getJavaClass(), this.$args.getFragment(), this.$args.getLocation(), this.$args.getOnInvitePostError(), this.$args.getOnInvitePostSuccess(), this.$args.getOnInviteFlowFinished(), str); + InviteJoinHelper.INSTANCE.joinViaInvite(this.$args.getInvite(), this.$args.getJavaClass(), this.$fragment, this.$args.getLocation(), this.$args.getOnInvitePostError(), this.$args.getOnInvitePostSuccess(), this.$args.getOnInviteFlowFinished(), str); } } diff --git a/app/src/main/java/com/discord/utilities/guilds/GuildCaptchaUtilsKt$handleHttpException$2.java b/app/src/main/java/com/discord/utilities/guilds/GuildCaptchaUtilsKt$handleHttpException$2.java index e27d494e73..228a37175b 100644 --- a/app/src/main/java/com/discord/utilities/guilds/GuildCaptchaUtilsKt$handleHttpException$2.java +++ b/app/src/main/java/com/discord/utilities/guilds/GuildCaptchaUtilsKt$handleHttpException$2.java @@ -1,5 +1,6 @@ package com.discord.utilities.guilds; +import android.content.Context; import c0.z.d.m; import c0.z.d.o; import com.discord.widgets.guilds.join.GuildJoinHelperKt; @@ -9,10 +10,12 @@ import kotlin.jvm.functions.Function1; /* compiled from: GuildCaptchaUtils.kt */ public final class GuildCaptchaUtilsKt$handleHttpException$2 extends o implements Function1 { public final /* synthetic */ JoinArgs $args; + public final /* synthetic */ Context $context; /* JADX INFO: super call moved to the top of the method (can break code semantics) */ - public GuildCaptchaUtilsKt$handleHttpException$2(JoinArgs joinArgs) { + public GuildCaptchaUtilsKt$handleHttpException$2(Context context, JoinArgs joinArgs) { super(1); + this.$context = context; this.$args = joinArgs; } @@ -26,6 +29,6 @@ public final class GuildCaptchaUtilsKt$handleHttpException$2 extends o implement public final void invoke(String str) { m.checkNotNullParameter(str, "captchaToken"); - GuildJoinHelperKt.joinGuild(this.$args.getGuildId(), this.$args.isLurker(), this.$args.getSessionId(), this.$args.getDirectoryChannelId(), this.$args.getFragment(), this.$args.getErrorClass(), this.$args.getSubscriptionHandler(), this.$args.getErrorHandler(), this.$args.getOnNext(), str); + GuildJoinHelperKt.joinGuild$default(this.$context, this.$args.getGuildId(), this.$args.isLurker(), this.$args.getSessionId(), this.$args.getDirectoryChannelId(), null, this.$args.getErrorClass(), this.$args.getSubscriptionHandler(), this.$args.getErrorHandler(), str, this.$args.getOnNext(), 32, null); } } diff --git a/app/src/main/java/com/discord/utilities/guilds/GuildCaptchaUtilsKt.java b/app/src/main/java/com/discord/utilities/guilds/GuildCaptchaUtilsKt.java index cacff441b6..641adea9a2 100644 --- a/app/src/main/java/com/discord/utilities/guilds/GuildCaptchaUtilsKt.java +++ b/app/src/main/java/com/discord/utilities/guilds/GuildCaptchaUtilsKt.java @@ -1,6 +1,6 @@ package com.discord.utilities.guilds; -import androidx.fragment.app.Fragment; +import android.content.Context; import c0.g0.w; import c0.t.u; import c0.z.d.m; @@ -17,25 +17,22 @@ import retrofit2.HttpException; public final class GuildCaptchaUtilsKt { private static final String REQUEST_KEY_GUILD_CAPTCHA = "REQUEST_KEY_GUILD_CAPTCHA"; - public static final void handleHttpException(Error error, Fragment fragment, JoinArgs joinArgs) { + public static final void handleHttpException(Error error, Context context, JoinArgs joinArgs) { + String str; m.checkNotNullParameter(error, "error"); - m.checkNotNullParameter(fragment, "fragment"); + m.checkNotNullParameter(context, "context"); m.checkNotNullParameter(joinArgs, "args"); if (error.getThrowable() instanceof HttpException) { String bodyText = error.getBodyText(); - String str = null; if (m.areEqual(bodyText != null ? Boolean.valueOf(w.contains$default((CharSequence) bodyText, (CharSequence) CaptchaHelper.CAPTCHA_KEY, false, 2, (Object) null)) : null, Boolean.TRUE)) { - WidgetGuildJoinCaptchaBottomSheet.Companion.enqueue(REQUEST_KEY_GUILD_CAPTCHA, new GuildCaptchaUtilsKt$handleHttpException$2(joinArgs), CaptchaErrorBody.Companion.createFromError(error)); + WidgetGuildJoinCaptchaBottomSheet.Companion.enqueue(REQUEST_KEY_GUILD_CAPTCHA, new GuildCaptchaUtilsKt$handleHttpException$2(context, joinArgs), CaptchaErrorBody.Companion.createFromError(error)); return; } Error.Response response = error.getResponse(); m.checkNotNullExpressionValue(response, "error.response"); List list = (List) u.firstOrNull(response.getMessages().values()); - if (list != null) { - str = (String) u.firstOrNull((List) list); - } - if (str != null) { - c.a.d.m.j(fragment, str, 0, 4); + if (list != null && (str = (String) u.firstOrNull((List) list)) != null) { + c.a.d.m.h(context, str, 0, null, 12); } } } @@ -48,7 +45,7 @@ public final class GuildCaptchaUtilsKt { String bodyText = error.getBodyText(); String str = null; if (m.areEqual(bodyText != null ? Boolean.valueOf(w.contains$default((CharSequence) bodyText, (CharSequence) CaptchaHelper.CAPTCHA_KEY, false, 2, (Object) null)) : null, Boolean.TRUE)) { - WidgetGuildJoinCaptchaBottomSheet.Companion.enqueue(REQUEST_KEY_GUILD_CAPTCHA, new GuildCaptchaUtilsKt$handleHttpException$1(inviteArgs), CaptchaErrorBody.Companion.createFromError(error)); + WidgetGuildJoinCaptchaBottomSheet.Companion.enqueue(REQUEST_KEY_GUILD_CAPTCHA, new GuildCaptchaUtilsKt$handleHttpException$1(inviteArgs, appFragment), CaptchaErrorBody.Companion.createFromError(error)); return; } Error.Response response = error.getResponse(); diff --git a/app/src/main/java/com/discord/utilities/guilds/GuildConstantsKt.java b/app/src/main/java/com/discord/utilities/guilds/GuildConstantsKt.java index 4ccba7aa35..440ed13df0 100644 --- a/app/src/main/java/com/discord/utilities/guilds/GuildConstantsKt.java +++ b/app/src/main/java/com/discord/utilities/guilds/GuildConstantsKt.java @@ -13,4 +13,5 @@ public final class GuildConstantsKt { public static final int PREMIUM_TIER_2_FILE_SIZE_100MB = 100; public static final int SYSTEM_CHANNEL_FLAG_SUPPRESS_BOOST = 2; public static final int SYSTEM_CHANNEL_FLAG_SUPPRESS_JOIN = 1; + public static final int SYSTEM_CHANNEL_FLAG_SUPPRESS_JOIN_REPLIES = 8; } 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 6bd93ae2a7..a53dab8e58 100644 --- a/app/src/main/java/com/discord/utilities/rest/RestAPI.java +++ b/app/src/main/java/com/discord/utilities/rest/RestAPI.java @@ -475,26 +475,6 @@ public final class RestAPI implements RestAPIInterface { return restAPI.inviteUserToSpeak(channel, j, clock); } - private final String jsonObjectOf(Pair... pairArr) { - JSONObject jSONObject = new JSONObject(); - for (Pair pair : pairArr) { - try { - jSONObject.put(pair.component1(), pair.component2()); - } catch (JSONException e) { - Logger.e$default(AppLog.g, "RestAPI", "Unable to serialize context property.", e, null, 8, null); - } - } - String jSONObject2 = jSONObject.toString(); - m.checkNotNullExpressionValue(jSONObject2, "it.toString()"); - Charset charset = c.a; - Objects.requireNonNull(jSONObject2, "null cannot be cast to non-null type java.lang.String"); - byte[] bytes = jSONObject2.getBytes(charset); - m.checkNotNullExpressionValue(bytes, "(this as java.lang.String).getBytes(charset)"); - String encodeToString = Base64.encodeToString(bytes, 2); - m.checkNotNullExpressionValue(encodeToString, "JSONObject().apply {\n …toByteArray(), NO_WRAP) }"); - return encodeToString; - } - public static /* synthetic */ Observable postInviteCode$default(RestAPI restAPI, ModelInvite modelInvite, String str, RestAPIParams.InviteCode inviteCode, int i, Object obj) { if ((i & 2) != 0) { str = "mobile"; @@ -1577,9 +1557,8 @@ public final class RestAPI implements RestAPIInterface { @Override // com.discord.restapi.RestAPIInterface @p("guilds/{guildId}/members/@me") - public Observable joinGuild(@s("guildId") long j, @t("lurker") boolean z2, @t("session_id") String str, @t("directory_channel_id") Long l, @h0.f0.a RestAPIParams.InviteCode inviteCode) { - m.checkNotNullParameter(inviteCode, "body"); - return this._api.joinGuild(j, z2, str, l, inviteCode); + public Observable joinGuild(@s("guildId") long j, @t("lurker") boolean z2, @t("session_id") String str, @t("directory_channel_id") Long l, @h0.f0.a RestAPIParams.InviteCode inviteCode, @i("X-Context-Properties") String str2) { + return this._api.joinGuild(j, z2, str, l, inviteCode, str2); } @Override // com.discord.restapi.RestAPIInterface @@ -1603,6 +1582,27 @@ public final class RestAPI implements RestAPIInterface { return this._api.joinThread(j, str, emptyBody); } + public final String jsonObjectOf(Pair... pairArr) { + m.checkNotNullParameter(pairArr, "map"); + JSONObject jSONObject = new JSONObject(); + for (Pair pair : pairArr) { + try { + jSONObject.put(pair.component1(), pair.component2()); + } catch (JSONException e) { + Logger.e$default(AppLog.g, "RestAPI", "Unable to serialize context property.", e, null, 8, null); + } + } + String jSONObject2 = jSONObject.toString(); + m.checkNotNullExpressionValue(jSONObject2, "it.toString()"); + Charset charset = c.a; + Objects.requireNonNull(jSONObject2, "null cannot be cast to non-null type java.lang.String"); + byte[] bytes = jSONObject2.getBytes(charset); + m.checkNotNullExpressionValue(bytes, "(this as java.lang.String).getBytes(charset)"); + String encodeToString = Base64.encodeToString(bytes, 2); + m.checkNotNullExpressionValue(encodeToString, "JSONObject().apply {\n …toByteArray(), NO_WRAP) }"); + return encodeToString; + } + @Override // com.discord.restapi.RestAPIInterface @b("guilds/{guildId}/members/{userId}") public Observable kickGuildMember(@s("guildId") long j, @s("userId") long j2, @i("X-Audit-Log-Reason") String str) { diff --git a/app/src/main/java/com/discord/widgets/chat/input/ChatInputViewModel.java b/app/src/main/java/com/discord/widgets/chat/input/ChatInputViewModel.java index e9bf554bb5..f754679738 100644 --- a/app/src/main/java/com/discord/widgets/chat/input/ChatInputViewModel.java +++ b/app/src/main/java/com/discord/widgets/chat/input/ChatInputViewModel.java @@ -1933,7 +1933,11 @@ public final class ChatInputViewModel extends AppViewModel { } ViewState.Loaded loaded = (ViewState.Loaded) viewState; if (loaded != null) { - this.storeLurking.postJoinGuildAsMember(loaded.getChannel().f(), fragment); + StoreLurking storeLurking = this.storeLurking; + long f = loaded.getChannel().f(); + Context requireContext = fragment.requireContext(); + m.checkNotNullExpressionValue(requireContext, "fragment.requireContext()"); + storeLurking.postJoinGuildAsMember(f, requireContext); } } diff --git a/app/src/main/java/com/discord/widgets/chat/list/model/WidgetChatListModelMessages.java b/app/src/main/java/com/discord/widgets/chat/list/model/WidgetChatListModelMessages.java index 44b80483b8..ac3d5df9b4 100644 --- a/app/src/main/java/com/discord/widgets/chat/list/model/WidgetChatListModelMessages.java +++ b/app/src/main/java/com/discord/widgets/chat/list/model/WidgetChatListModelMessages.java @@ -13,7 +13,7 @@ import com.discord.api.role.GuildRole; import com.discord.api.thread.ThreadMetadata; import com.discord.api.user.User; import com.discord.api.utcdatetime.UtcDateTime; -import com.discord.models.experiments.domain.Experiment; +import com.discord.models.guild.Guild; import com.discord.models.member.GuildMember; import com.discord.models.message.Message; import com.discord.stores.StoreMessageReplies; @@ -24,7 +24,6 @@ import com.discord.stores.StoreStream; import com.discord.stores.StoreThreadMessages; import com.discord.stores.StoreUserSettings; import com.discord.utilities.embed.InviteEmbedModel; -import com.discord.utilities.features.GrowthTeamFeatures; import com.discord.utilities.guilds.RoleUtils; import com.discord.utilities.message.LocalMessageCreatorsKt; import com.discord.utilities.message.MessageUtils; @@ -160,22 +159,29 @@ public final class WidgetChatListModelMessages { } private final MessageEntry.WelcomeCtaData parseWelcomeData(Message message, long j, Map map, Channel channel, Long l) { - Experiment andTrackWelcomeCTAExperiment; + Guild guild; Boolean e; Integer type = message.getType(); - if (type == null || type.intValue() != 7) { + if (type == null || type.intValue() != 7 || (guild = StoreStream.Companion.getGuilds().getGuild(channel.f())) == null) { + return null; + } + boolean z2 = true; + boolean z3 = false; + if (!((guild.getSystemChannelFlags() & 8) == 0)) { return null; } GuildMember guildMember = map.get(Long.valueOf(j)); - boolean pending = guildMember != null ? guildMember.getPending() : true; - boolean can = PermissionUtils.can(Permission.SEND_MESSAGES, l); - User author = message.getAuthor(); - boolean z2 = false; - boolean booleanValue = (author == null || (e = author.e()) == null) ? false : e.booleanValue(); - if (StoreStream.Companion.getGuildMemberCounts().getApproximateMemberCount(channel.f()) <= 10000) { - z2 = true; + if (guildMember != null) { + z2 = guildMember.getPending(); } - if (!can || pending || booleanValue || !z2 || (andTrackWelcomeCTAExperiment = GrowthTeamFeatures.INSTANCE.getAndTrackWelcomeCTAExperiment(channel.f(), true)) == null || andTrackWelcomeCTAExperiment.getBucket() != 1) { + if (z2 || !PermissionUtils.can(Permission.SEND_MESSAGES, l)) { + return null; + } + User author = message.getAuthor(); + if (!(author == null || (e = author.e()) == null)) { + z3 = e.booleanValue(); + } + if (z3) { return null; } return new MessageEntry.WelcomeCtaData(MessageUtils.INSTANCE.getWelcomeSticker(j, message.getId()), channel); diff --git a/app/src/main/java/com/discord/widgets/directories/WidgetDirectoriesSearch$adapter$1.java b/app/src/main/java/com/discord/widgets/directories/WidgetDirectoriesSearch$adapter$1.java index db42234510..b28361b788 100644 --- a/app/src/main/java/com/discord/widgets/directories/WidgetDirectoriesSearch$adapter$1.java +++ b/app/src/main/java/com/discord/widgets/directories/WidgetDirectoriesSearch$adapter$1.java @@ -1,5 +1,6 @@ package com.discord.widgets.directories; +import android.content.Context; import c0.z.d.m; import com.discord.api.directory.DirectoryEntry; import com.discord.stores.StoreStream; @@ -20,7 +21,12 @@ public final class WidgetDirectoriesSearch$adapter$1 implements DirectoryChannel @Override // com.discord.widgets.directories.DirectoryChannelItemClickInterface public void onEntryClicked(long j, long j2) { - this.this$0.getViewModel().joinGuild(j, j2, this.this$0); + Context context = this.this$0.getContext(); + if (context != null) { + WidgetDirectoriesSearchViewModel viewModel = this.this$0.getViewModel(); + m.checkNotNullExpressionValue(context, "it"); + viewModel.joinGuild(context, j, j2); + } } @Override // com.discord.widgets.directories.DirectoryChannelItemClickInterface diff --git a/app/src/main/java/com/discord/widgets/directories/WidgetDirectoriesSearchViewModel.java b/app/src/main/java/com/discord/widgets/directories/WidgetDirectoriesSearchViewModel.java index 1bfa32f2b1..72d0221f37 100644 --- a/app/src/main/java/com/discord/widgets/directories/WidgetDirectoriesSearchViewModel.java +++ b/app/src/main/java/com/discord/widgets/directories/WidgetDirectoriesSearchViewModel.java @@ -1,10 +1,10 @@ package com.discord.widgets.directories; import android.content.Context; -import androidx.fragment.app.Fragment; import c.d.b.a.a; import c0.g; import c0.g0.t; +import c0.o; import c0.t.n; import c0.t.n0; import c0.z.d.k; @@ -23,6 +23,7 @@ import com.discord.stores.updates.ObservationDeckProvider; import com.discord.stores.utilities.Default; import com.discord.stores.utilities.RestCallState; import com.discord.stores.utilities.RestCallStateKt; +import com.discord.utilities.directories.DirectoryUtils; import com.discord.utilities.rest.RestAPI; import com.discord.utilities.rx.ObservableExtensionsKt; import com.discord.widgets.guilds.join.GuildJoinHelperKt; @@ -334,9 +335,9 @@ public final class WidgetDirectoriesSearchViewModel extends AppViewModel { return this.restAPI; } - public final void joinGuild(long j, long j2, Fragment fragment) { - m.checkNotNullParameter(fragment, "fragment"); - GuildJoinHelperKt.joinGuild$default(j, false, null, Long.valueOf(j2), fragment, WidgetDirectoriesViewModel.class, null, null, WidgetDirectoriesViewModel$joinGuild$1.INSTANCE, null, 512, null); + public final void joinGuild(Context context, long j, long j2) { + m.checkNotNullParameter(context, "context"); + GuildJoinHelperKt.joinGuild$default(context, j, false, null, Long.valueOf(j2), this.restAPI.jsonObjectOf(c0.o.to("source", DirectoryUtils.JOIN_GUILD_SOURCE)), WidgetDirectoriesViewModel.class, null, null, null, WidgetDirectoriesViewModel$joinGuild$1.INSTANCE, 896, null); } public final void removeGuild(long j, long j2) { diff --git a/app/src/main/java/com/discord/widgets/directories/WidgetDirectoryCategory$adapter$1.java b/app/src/main/java/com/discord/widgets/directories/WidgetDirectoryCategory$adapter$1.java index abc49872ae..87d9e53365 100644 --- a/app/src/main/java/com/discord/widgets/directories/WidgetDirectoryCategory$adapter$1.java +++ b/app/src/main/java/com/discord/widgets/directories/WidgetDirectoryCategory$adapter$1.java @@ -1,5 +1,6 @@ package com.discord.widgets.directories; +import android.content.Context; import c.a.d.j; import c0.z.d.m; import com.discord.api.directory.DirectoryEntry; @@ -23,7 +24,12 @@ public final class WidgetDirectoryCategory$adapter$1 implements DirectoryChannel @Override // com.discord.widgets.directories.DirectoryChannelItemClickInterface public void onEntryClicked(long j, long j2) { - this.this$0.getViewModel().joinGuild(j, j2, this.this$0); + Context context = this.this$0.getContext(); + if (context != null) { + WidgetDirectoriesViewModel viewModel = this.this$0.getViewModel(); + m.checkNotNullExpressionValue(context, "it"); + viewModel.joinGuild(context, j, j2); + } } @Override // com.discord.widgets.directories.DirectoryChannelItemClickInterface diff --git a/app/src/main/java/com/discord/widgets/emoji/EmojiSheetViewModel.java b/app/src/main/java/com/discord/widgets/emoji/EmojiSheetViewModel.java index cfed4de3d4..0583fc3ff1 100644 --- a/app/src/main/java/com/discord/widgets/emoji/EmojiSheetViewModel.java +++ b/app/src/main/java/com/discord/widgets/emoji/EmojiSheetViewModel.java @@ -842,7 +842,9 @@ public final class EmojiSheetViewModel extends AppViewModel { public final void joinGuild(Guild guild, Fragment fragment) { m.checkNotNullParameter(guild, "guild"); m.checkNotNullParameter(fragment, "fragment"); - GuildJoinHelperKt.joinGuild$default(guild.getId(), false, null, null, fragment, EmojiSheetViewModel.class, null, null, new EmojiSheetViewModel$joinGuild$1(this), null, 512, null); + Context requireContext = fragment.requireContext(); + m.checkNotNullExpressionValue(requireContext, "fragment.requireContext()"); + GuildJoinHelperKt.joinGuild$default(requireContext, guild.getId(), false, null, null, null, EmojiSheetViewModel.class, null, null, null, new EmojiSheetViewModel$joinGuild$1(this), 952, null); } public final void setFavorite(boolean z2) { diff --git a/app/src/main/java/com/discord/widgets/guilds/invite/InviteJoinHelper$joinViaInvite$4.java b/app/src/main/java/com/discord/widgets/guilds/invite/InviteJoinHelper$joinViaInvite$4.java index 9086f9dbb5..5da1625e04 100644 --- a/app/src/main/java/com/discord/widgets/guilds/invite/InviteJoinHelper$joinViaInvite$4.java +++ b/app/src/main/java/com/discord/widgets/guilds/invite/InviteJoinHelper$joinViaInvite$4.java @@ -43,7 +43,7 @@ import kotlin.jvm.internal.Ref$ObjectRef; import kotlinx.coroutines.CoroutineScope; import retrofit2.HttpException; /* compiled from: InviteJoinHelper.kt */ -@e(c = "com.discord.widgets.guilds.invite.InviteJoinHelper$joinViaInvite$4", f = "InviteJoinHelper.kt", l = {74, 99, 108, 109, 124, 163, 194}, m = "invokeSuspend") +@e(c = "com.discord.widgets.guilds.invite.InviteJoinHelper$joinViaInvite$4", f = "InviteJoinHelper.kt", l = {74, 99, 108, 109, 123, 162, 193}, m = "invokeSuspend") public final class InviteJoinHelper$joinViaInvite$4 extends k implements Function2, Object> { public final /* synthetic */ String $captchaKey; public final /* synthetic */ AppFragment $fragment; @@ -84,13 +84,13 @@ public final class InviteJoinHelper$joinViaInvite$4 extends k implements Functio return ((InviteJoinHelper$joinViaInvite$4) create(coroutineScope, continuation)).invokeSuspend(Unit.a); } - /* JADX WARNING: Removed duplicated region for block: B:104:0x027c */ - /* JADX WARNING: Removed duplicated region for block: B:117:0x02c7 */ - /* JADX WARNING: Removed duplicated region for block: B:121:0x02d8 */ - /* JADX WARNING: Removed duplicated region for block: B:151:0x0370 */ - /* JADX WARNING: Removed duplicated region for block: B:152:0x037e */ - /* JADX WARNING: Removed duplicated region for block: B:164:0x03d2 */ - /* JADX WARNING: Removed duplicated region for block: B:167:0x03e6 A[RETURN] */ + /* JADX WARNING: Removed duplicated region for block: B:104:0x0276 */ + /* JADX WARNING: Removed duplicated region for block: B:117:0x02c1 */ + /* JADX WARNING: Removed duplicated region for block: B:121:0x02d2 */ + /* JADX WARNING: Removed duplicated region for block: B:151:0x0369 */ + /* JADX WARNING: Removed duplicated region for block: B:152:0x0377 */ + /* JADX WARNING: Removed duplicated region for block: B:164:0x03cb */ + /* JADX WARNING: Removed duplicated region for block: B:167:0x03de A[RETURN] */ /* JADX WARNING: Removed duplicated region for block: B:69:0x01a2 */ /* JADX WARNING: Removed duplicated region for block: B:74:0x01af */ /* JADX WARNING: Removed duplicated region for block: B:79:0x01d5 */ @@ -115,16 +115,14 @@ public final class InviteJoinHelper$joinViaInvite$4 extends k implements Functio Ref$ObjectRef ref$ObjectRef2; ModelInvite modelInvite2; AppCancellationException e; - Error error; Object obj3; - Object obj4; ModelInvite modelInvite3; Function2 function22; Ref$ObjectRef ref$ObjectRef3; ModelInvite modelInvite4; Guild guild; Long boxLong2; - Object obj5; + Object obj4; Long boxLong3; List l; List l2; @@ -328,11 +326,11 @@ public final class InviteJoinHelper$joinViaInvite$4 extends k implements Functio this.L$2 = null; this.L$3 = null; this.label = 3; - obj4 = RxCoroutineExtensionsKt.appAwaitSingle(ObservableExtensionsKt.ui(ObservableExtensionsKt.restSubscribeOn$default(RestAPI.Companion.getApi().postInviteCode(this.$invite, this.$location, new RestAPIParams.InviteCode(this.$captchaKey)), false, 1, null)), ref$ObjectRef2.element, boxBoolean3, this); - if (obj4 == coroutine_suspended) { + obj3 = RxCoroutineExtensionsKt.appAwaitSingle(ObservableExtensionsKt.ui(ObservableExtensionsKt.restSubscribeOn$default(RestAPI.Companion.getApi().postInviteCode(this.$invite, this.$location, new RestAPIParams.InviteCode(this.$captchaKey)), false, 1, null)), ref$ObjectRef2.element, boxBoolean3, this); + if (obj3 == coroutine_suspended) { return coroutine_suspended; } - modelInvite3 = (ModelInvite) obj4; + modelInvite3 = (ModelInvite) obj3; try { function22 = this.$onInvitePostSuccess; this.L$0 = ref$ObjectRef2; @@ -367,9 +365,7 @@ public final class InviteJoinHelper$joinViaInvite$4 extends k implements Functio modelInvite2 = modelInvite3; Throwable cause = e.getCause(); if (cause instanceof HttpException) { - Error error2 = e.getError(); - AppFragment appFragment = this.$fragment; - GuildCaptchaUtilsKt.handleHttpException(error2, appFragment, new InviteArgs(this.$invite, this.$javaClass, appFragment, this.$location, this.$onInvitePostError, this.$onInvitePostSuccess, this.$onInviteFlowFinished)); + GuildCaptchaUtilsKt.handleHttpException(e.getError(), this.$fragment, new InviteArgs(this.$invite, this.$javaClass, this.$location, this.$onInvitePostError, this.$onInvitePostSuccess, this.$onInviteFlowFinished)); modelInvite = modelInvite2; ref$ObjectRef = ref$ObjectRef2; channel = this.$invite.getChannel(); @@ -392,19 +388,13 @@ public final class InviteJoinHelper$joinViaInvite$4 extends k implements Functio return Unit.a; } Function2 function24 = this.$onInvitePostError; - if (cause != null) { - error = Error.create(cause); - obj3 = null; - } else { - obj3 = null; - error = null; - } - this.L$0 = obj3; - this.L$1 = obj3; - this.L$2 = obj3; - this.L$3 = obj3; + Error create = cause != null ? Error.create(cause) : null; + this.L$0 = null; + this.L$1 = null; + this.L$2 = null; + this.L$3 = null; this.label = 5; - if (function24.invoke(error, this) == coroutine_suspended) { + if (function24.invoke(create, this) == coroutine_suspended) { return coroutine_suspended; } return Unit.a; @@ -420,16 +410,16 @@ public final class InviteJoinHelper$joinViaInvite$4 extends k implements Functio Context context2 = ref$ObjectRef4.element; Guild guild7 = this.$invite.getGuild(); memberVerificationUtils.maybeShowVerificationGate(context2, ref$ObjectRef5.element, (guild7 == null || (boxLong3 = b.boxLong(guild7.p())) == null) ? -1 : boxLong3.longValue(), this.$location, this.$invite, new InviteJoinHelper$joinViaInvite$4$hasCompletedMembershipGate$1$1(gVar2), new InviteJoinHelper$joinViaInvite$4$hasCompletedMembershipGate$1$2(gVar2)); - obj5 = gVar2.getOrThrow(); - if (obj5 == c.getCOROUTINE_SUSPENDED()) { + obj4 = gVar2.getOrThrow(); + if (obj4 == c.getCOROUTINE_SUSPENDED()) { c0.w.i.a.g.probeCoroutineSuspended(this); } - if (obj5 == coroutine_suspended) { + if (obj4 == coroutine_suspended) { return coroutine_suspended; } ref$ObjectRef2 = ref$ObjectRef4; modelInvite4 = null; - if (!((Boolean) obj5).booleanValue()) { + if (!((Boolean) obj4).booleanValue()) { return Unit.a; } guild = this.$invite.getGuild(); @@ -454,8 +444,8 @@ public final class InviteJoinHelper$joinViaInvite$4 extends k implements Functio l.throwOnFailure(obj); ref$ObjectRef2 = (Ref$ObjectRef) this.L$0; modelInvite4 = (ModelInvite) this.L$2; - obj5 = obj; - if (!((Boolean) obj5).booleanValue()) { + obj4 = obj; + if (!((Boolean) obj4).booleanValue()) { } guild = this.$invite.getGuild(); if (((guild != null || (boxLong2 = b.boxLong(guild.p())) == null) ? null : StoreStream.Companion.getGuilds().getGuilds().get(b.boxLong(boxLong2.longValue()))) != null) { @@ -488,8 +478,8 @@ public final class InviteJoinHelper$joinViaInvite$4 extends k implements Functio ModelInvite modelInvite6 = (ModelInvite) this.L$1; ref$ObjectRef2 = (Ref$ObjectRef) this.L$0; l.throwOnFailure(obj); - obj4 = obj; - modelInvite3 = (ModelInvite) obj4; + obj3 = obj; + modelInvite3 = (ModelInvite) obj3; function22 = this.$onInvitePostSuccess; this.L$0 = ref$ObjectRef2; this.L$1 = modelInvite3; diff --git a/app/src/main/java/com/discord/widgets/guilds/join/GuildJoinHelperKt$joinGuild$1.java b/app/src/main/java/com/discord/widgets/guilds/join/GuildJoinHelperKt$joinGuild$1.java index 7bfc9e00d6..2cfe74add3 100644 --- a/app/src/main/java/com/discord/widgets/guilds/join/GuildJoinHelperKt$joinGuild$1.java +++ b/app/src/main/java/com/discord/widgets/guilds/join/GuildJoinHelperKt$joinGuild$1.java @@ -1,6 +1,6 @@ package com.discord.widgets.guilds.join; -import androidx.fragment.app.Fragment; +import android.content.Context; import c0.z.d.m; import c0.z.d.o; import com.discord.utilities.error.Error; @@ -9,10 +9,10 @@ import kotlin.Unit; import kotlin.jvm.functions.Function1; /* compiled from: GuildJoinHelper.kt */ public final class GuildJoinHelperKt$joinGuild$1 extends o implements Function1 { + public final /* synthetic */ Context $context; public final /* synthetic */ Long $directoryChannelId; public final /* synthetic */ Class $errorClass; public final /* synthetic */ Function1 $errorHandler; - public final /* synthetic */ Fragment $fragment; public final /* synthetic */ long $guildId; public final /* synthetic */ boolean $isLurker; public final /* synthetic */ Function1 $onNext; @@ -20,9 +20,9 @@ public final class GuildJoinHelperKt$joinGuild$1 extends o implements Function1< public final /* synthetic */ Function1 $subscriptionHandler; /* JADX INFO: super call moved to the top of the method (can break code semantics) */ - public GuildJoinHelperKt$joinGuild$1(Fragment fragment, long j, boolean z2, String str, Long l, Class cls, Function1 function1, Function1 function12, Function1 function13) { + public GuildJoinHelperKt$joinGuild$1(Context context, long j, boolean z2, String str, Long l, Class cls, Function1 function1, Function1 function12, Function1 function13) { super(1); - this.$fragment = fragment; + this.$context = context; this.$guildId = j; this.$isLurker = z2; this.$sessionId = str; @@ -43,7 +43,6 @@ public final class GuildJoinHelperKt$joinGuild$1 extends o implements Function1< public final void invoke(Error error) { m.checkNotNullParameter(error, "it"); - Fragment fragment = this.$fragment; - GuildCaptchaUtilsKt.handleHttpException(error, fragment, new JoinArgs(this.$guildId, this.$isLurker, this.$sessionId, this.$directoryChannelId, fragment, this.$errorClass, this.$subscriptionHandler, this.$errorHandler, this.$onNext)); + GuildCaptchaUtilsKt.handleHttpException(error, this.$context, new JoinArgs(this.$guildId, this.$isLurker, this.$sessionId, this.$directoryChannelId, this.$errorClass, this.$subscriptionHandler, this.$errorHandler, this.$onNext)); } } diff --git a/app/src/main/java/com/discord/widgets/guilds/join/GuildJoinHelperKt.java b/app/src/main/java/com/discord/widgets/guilds/join/GuildJoinHelperKt.java index 55255efa8f..bbf45d2d56 100644 --- a/app/src/main/java/com/discord/widgets/guilds/join/GuildJoinHelperKt.java +++ b/app/src/main/java/com/discord/widgets/guilds/join/GuildJoinHelperKt.java @@ -1,7 +1,6 @@ package com.discord.widgets.guilds.join; import android.content.Context; -import androidx.fragment.app.Fragment; import c0.z.d.m; import com.discord.api.guild.Guild; import com.discord.restapi.RestAPIParams; @@ -14,14 +13,14 @@ import kotlin.jvm.functions.Function1; import rx.Subscription; /* compiled from: GuildJoinHelper.kt */ public final class GuildJoinHelperKt { - public static final void joinGuild(long j, boolean z2, String str, Long l, Fragment fragment, Class cls, Function1 function1, Function1 function12, Function1 function13, String str2) { - m.checkNotNullParameter(fragment, "fragment"); + public static final void joinGuild(Context context, long j, boolean z2, String str, Long l, String str2, Class cls, Function1 function1, Function1 function12, String str3, Function1 function13) { + m.checkNotNullParameter(context, "context"); m.checkNotNullParameter(cls, "errorClass"); m.checkNotNullParameter(function13, "onNext"); - ObservableExtensionsKt.appSubscribe$default(ObservableExtensionsKt.ui(ObservableExtensionsKt.restSubscribeOn$default(RestAPI.Companion.getApi().joinGuild(j, z2, str, l, new RestAPIParams.InviteCode(str2)), false, 1, null)), cls, (Context) null, function1, new GuildJoinHelperKt$joinGuild$1(fragment, j, z2, str, l, cls, function1, function12, function13), (Function0) null, (Function0) null, function13, 50, (Object) null); + ObservableExtensionsKt.appSubscribe$default(ObservableExtensionsKt.ui(ObservableExtensionsKt.restSubscribeOn$default(RestAPI.Companion.getApi().joinGuild(j, z2, str, l, new RestAPIParams.InviteCode(str3), str2), false, 1, null)), cls, (Context) null, function1, new GuildJoinHelperKt$joinGuild$1(context, j, z2, str, l, cls, function1, function12, function13), (Function0) null, (Function0) null, function13, 50, (Object) null); } - public static /* synthetic */ void joinGuild$default(long j, boolean z2, String str, Long l, Fragment fragment, Class cls, Function1 function1, Function1 function12, Function1 function13, String str2, int i, Object obj) { - joinGuild(j, z2, str, l, fragment, cls, (i & 64) != 0 ? null : function1, (i & 128) != 0 ? null : function12, function13, (i & 512) != 0 ? null : str2); + public static /* synthetic */ void joinGuild$default(Context context, long j, boolean z2, String str, Long l, String str2, Class cls, Function1 function1, Function1 function12, String str3, Function1 function13, int i, Object obj) { + joinGuild(context, j, z2, (i & 8) != 0 ? null : str, (i & 16) != 0 ? null : l, (i & 32) != 0 ? null : str2, cls, (i & 128) != 0 ? null : function1, (i & 256) != 0 ? null : function12, (i & 512) != 0 ? null : str3, function13); } } diff --git a/app/src/main/java/com/discord/widgets/guilds/join/InviteArgs.java b/app/src/main/java/com/discord/widgets/guilds/join/InviteArgs.java index 1e128bf8c0..423cf17ae7 100644 --- a/app/src/main/java/com/discord/widgets/guilds/join/InviteArgs.java +++ b/app/src/main/java/com/discord/widgets/guilds/join/InviteArgs.java @@ -2,7 +2,6 @@ package com.discord.widgets.guilds.join; import c.d.b.a.a; import c0.z.d.m; -import com.discord.app.AppFragment; import com.discord.models.domain.ModelAuditLogEntry; import com.discord.models.domain.ModelInvite; import com.discord.utilities.error.Error; @@ -11,7 +10,6 @@ import kotlin.coroutines.Continuation; import kotlin.jvm.functions.Function2; /* compiled from: WidgetGuildJoinCaptchaBottomSheet.kt */ public final class InviteArgs extends CaptchaArgs { - private final AppFragment fragment; private final ModelInvite invite; private final Class javaClass; private final String location; @@ -19,32 +17,30 @@ public final class InviteArgs extends CaptchaArgs { private final Function2, Object> onInvitePostError; private final Function2, Object> onInvitePostSuccess; - /* JADX DEBUG: Multi-variable search result rejected for r6v0, resolved type: kotlin.jvm.functions.Function2, ? extends java.lang.Object> */ + /* JADX DEBUG: Multi-variable search result rejected for r5v0, resolved type: kotlin.jvm.functions.Function2, ? extends java.lang.Object> */ + /* JADX DEBUG: Multi-variable search result rejected for r6v0, resolved type: kotlin.jvm.functions.Function2, ? extends java.lang.Object> */ /* JADX DEBUG: Multi-variable search result rejected for r7v0, resolved type: kotlin.jvm.functions.Function2, ? extends java.lang.Object> */ - /* JADX DEBUG: Multi-variable search result rejected for r8v0, resolved type: kotlin.jvm.functions.Function2, ? extends java.lang.Object> */ /* JADX WARN: Multi-variable type inference failed */ /* JADX INFO: super call moved to the top of the method (can break code semantics) */ - public InviteArgs(ModelInvite modelInvite, Class cls, AppFragment appFragment, String str, Function2, ? extends Object> function2, Function2, ? extends Object> function22, Function2, ? extends Object> function23) { + public InviteArgs(ModelInvite modelInvite, Class cls, String str, Function2, ? extends Object> function2, Function2, ? extends Object> function22, Function2, ? extends Object> function23) { super(null); m.checkNotNullParameter(modelInvite, "invite"); m.checkNotNullParameter(cls, "javaClass"); - m.checkNotNullParameter(appFragment, "fragment"); m.checkNotNullParameter(str, ModelAuditLogEntry.CHANGE_KEY_LOCATION); m.checkNotNullParameter(function2, "onInvitePostError"); m.checkNotNullParameter(function22, "onInvitePostSuccess"); m.checkNotNullParameter(function23, "onInviteFlowFinished"); this.invite = modelInvite; this.javaClass = cls; - this.fragment = appFragment; this.location = str; this.onInvitePostError = function2; this.onInvitePostSuccess = function22; this.onInviteFlowFinished = function23; } - /* JADX DEBUG: Multi-variable search result rejected for r5v0, resolved type: com.discord.widgets.guilds.join.InviteArgs */ + /* JADX DEBUG: Multi-variable search result rejected for r4v0, resolved type: com.discord.widgets.guilds.join.InviteArgs */ /* JADX WARN: Multi-variable type inference failed */ - public static /* synthetic */ InviteArgs copy$default(InviteArgs inviteArgs, ModelInvite modelInvite, Class cls, AppFragment appFragment, String str, Function2 function2, Function2 function22, Function2 function23, int i, Object obj) { + public static /* synthetic */ InviteArgs copy$default(InviteArgs inviteArgs, ModelInvite modelInvite, Class cls, String str, Function2 function2, Function2 function22, Function2 function23, int i, Object obj) { if ((i & 1) != 0) { modelInvite = inviteArgs.invite; } @@ -52,21 +48,18 @@ public final class InviteArgs extends CaptchaArgs { cls = inviteArgs.javaClass; } if ((i & 4) != 0) { - appFragment = inviteArgs.fragment; - } - if ((i & 8) != 0) { str = inviteArgs.location; } - if ((i & 16) != 0) { + if ((i & 8) != 0) { function2 = inviteArgs.onInvitePostError; } - if ((i & 32) != 0) { + if ((i & 16) != 0) { function22 = inviteArgs.onInvitePostSuccess; } - if ((i & 64) != 0) { + if ((i & 32) != 0) { function23 = inviteArgs.onInviteFlowFinished; } - return inviteArgs.copy(modelInvite, cls, appFragment, str, function2, function22, function23); + return inviteArgs.copy(modelInvite, cls, str, function2, function22, function23); } public final ModelInvite component1() { @@ -77,35 +70,30 @@ public final class InviteArgs extends CaptchaArgs { return this.javaClass; } - public final AppFragment component3() { - return this.fragment; - } - - public final String component4() { + public final String component3() { return this.location; } - public final Function2, Object> component5() { + public final Function2, Object> component4() { return this.onInvitePostError; } - public final Function2, Object> component6() { + public final Function2, Object> component5() { return this.onInvitePostSuccess; } - public final Function2, Object> component7() { + public final Function2, Object> component6() { return this.onInviteFlowFinished; } - public final InviteArgs copy(ModelInvite modelInvite, Class cls, AppFragment appFragment, String str, Function2, ? extends Object> function2, Function2, ? extends Object> function22, Function2, ? extends Object> function23) { + public final InviteArgs copy(ModelInvite modelInvite, Class cls, String str, Function2, ? extends Object> function2, Function2, ? extends Object> function22, Function2, ? extends Object> function23) { m.checkNotNullParameter(modelInvite, "invite"); m.checkNotNullParameter(cls, "javaClass"); - m.checkNotNullParameter(appFragment, "fragment"); m.checkNotNullParameter(str, ModelAuditLogEntry.CHANGE_KEY_LOCATION); m.checkNotNullParameter(function2, "onInvitePostError"); m.checkNotNullParameter(function22, "onInvitePostSuccess"); m.checkNotNullParameter(function23, "onInviteFlowFinished"); - return new InviteArgs(modelInvite, cls, appFragment, str, function2, function22, function23); + return new InviteArgs(modelInvite, cls, str, function2, function22, function23); } @Override // java.lang.Object @@ -117,11 +105,7 @@ public final class InviteArgs extends CaptchaArgs { return false; } InviteArgs inviteArgs = (InviteArgs) obj; - return m.areEqual(this.invite, inviteArgs.invite) && m.areEqual(this.javaClass, inviteArgs.javaClass) && m.areEqual(this.fragment, inviteArgs.fragment) && m.areEqual(this.location, inviteArgs.location) && m.areEqual(this.onInvitePostError, inviteArgs.onInvitePostError) && m.areEqual(this.onInvitePostSuccess, inviteArgs.onInvitePostSuccess) && m.areEqual(this.onInviteFlowFinished, inviteArgs.onInviteFlowFinished); - } - - public final AppFragment getFragment() { - return this.fragment; + return m.areEqual(this.invite, inviteArgs.invite) && m.areEqual(this.javaClass, inviteArgs.javaClass) && m.areEqual(this.location, inviteArgs.location) && m.areEqual(this.onInvitePostError, inviteArgs.onInvitePostError) && m.areEqual(this.onInvitePostSuccess, inviteArgs.onInvitePostSuccess) && m.areEqual(this.onInviteFlowFinished, inviteArgs.onInviteFlowFinished); } public final ModelInvite getInvite() { @@ -155,19 +139,17 @@ public final class InviteArgs extends CaptchaArgs { int hashCode = (modelInvite != null ? modelInvite.hashCode() : 0) * 31; Class cls = this.javaClass; int hashCode2 = (hashCode + (cls != null ? cls.hashCode() : 0)) * 31; - AppFragment appFragment = this.fragment; - int hashCode3 = (hashCode2 + (appFragment != null ? appFragment.hashCode() : 0)) * 31; String str = this.location; - int hashCode4 = (hashCode3 + (str != null ? str.hashCode() : 0)) * 31; + int hashCode3 = (hashCode2 + (str != null ? str.hashCode() : 0)) * 31; Function2, Object> function2 = this.onInvitePostError; - int hashCode5 = (hashCode4 + (function2 != null ? function2.hashCode() : 0)) * 31; + int hashCode4 = (hashCode3 + (function2 != null ? function2.hashCode() : 0)) * 31; Function2, Object> function22 = this.onInvitePostSuccess; - int hashCode6 = (hashCode5 + (function22 != null ? function22.hashCode() : 0)) * 31; + int hashCode5 = (hashCode4 + (function22 != null ? function22.hashCode() : 0)) * 31; Function2, Object> function23 = this.onInviteFlowFinished; if (function23 != null) { i = function23.hashCode(); } - return hashCode6 + i; + return hashCode5 + i; } @Override // java.lang.Object @@ -176,8 +158,6 @@ public final class InviteArgs extends CaptchaArgs { O.append(this.invite); O.append(", javaClass="); O.append(this.javaClass); - O.append(", fragment="); - O.append(this.fragment); O.append(", location="); O.append(this.location); O.append(", onInvitePostError="); diff --git a/app/src/main/java/com/discord/widgets/guilds/join/JoinArgs.java b/app/src/main/java/com/discord/widgets/guilds/join/JoinArgs.java index 130a5a88c3..475d895100 100644 --- a/app/src/main/java/com/discord/widgets/guilds/join/JoinArgs.java +++ b/app/src/main/java/com/discord/widgets/guilds/join/JoinArgs.java @@ -1,6 +1,5 @@ package com.discord.widgets.guilds.join; -import androidx.fragment.app.Fragment; import c.d.b.a.a; import c0.z.d.m; import com.discord.api.guild.Guild; @@ -15,28 +14,25 @@ public final class JoinArgs extends CaptchaArgs { private final Long directoryChannelId; private final Class errorClass; private final Function1 errorHandler; - private final Fragment fragment; private final long guildId; private final boolean isLurker; private final Function1 onNext; private final String sessionId; private final Function1 subscriptionHandler; - /* JADX DEBUG: Multi-variable search result rejected for r9v0, resolved type: kotlin.jvm.functions.Function1 */ - /* JADX DEBUG: Multi-variable search result rejected for r10v0, resolved type: kotlin.jvm.functions.Function1 */ - /* JADX DEBUG: Multi-variable search result rejected for r11v0, resolved type: kotlin.jvm.functions.Function1 */ + /* JADX DEBUG: Multi-variable search result rejected for r8v0, resolved type: kotlin.jvm.functions.Function1 */ + /* JADX DEBUG: Multi-variable search result rejected for r9v0, resolved type: kotlin.jvm.functions.Function1 */ + /* JADX DEBUG: Multi-variable search result rejected for r10v0, resolved type: kotlin.jvm.functions.Function1 */ /* JADX WARN: Multi-variable type inference failed */ /* JADX INFO: super call moved to the top of the method (can break code semantics) */ - public JoinArgs(long j, boolean z2, String str, Long l, Fragment fragment, Class cls, Function1 function1, Function1 function12, Function1 function13) { + public JoinArgs(long j, boolean z2, String str, Long l, Class cls, Function1 function1, Function1 function12, Function1 function13) { super(null); - m.checkNotNullParameter(fragment, "fragment"); m.checkNotNullParameter(cls, "errorClass"); m.checkNotNullParameter(function13, "onNext"); this.guildId = j; this.isLurker = z2; this.sessionId = str; this.directoryChannelId = l; - this.fragment = fragment; this.errorClass = cls; this.subscriptionHandler = function1; this.errorHandler = function12; @@ -44,12 +40,12 @@ public final class JoinArgs extends CaptchaArgs { } /* JADX INFO: this call moved to the top of the method (can break code semantics) */ - public /* synthetic */ JoinArgs(long j, boolean z2, String str, Long l, Fragment fragment, Class cls, Function1 function1, Function1 function12, Function1 function13, int i, DefaultConstructorMarker defaultConstructorMarker) { - this(j, z2, str, l, fragment, cls, (i & 64) != 0 ? null : function1, (i & 128) != 0 ? null : function12, function13); + public /* synthetic */ JoinArgs(long j, boolean z2, String str, Long l, Class cls, Function1 function1, Function1 function12, Function1 function13, int i, DefaultConstructorMarker defaultConstructorMarker) { + this(j, z2, str, l, cls, (i & 32) != 0 ? null : function1, (i & 64) != 0 ? null : function12, function13); } - public static /* synthetic */ JoinArgs copy$default(JoinArgs joinArgs, long j, boolean z2, String str, Long l, Fragment fragment, Class cls, Function1 function1, Function1 function12, Function1 function13, int i, Object obj) { - return joinArgs.copy((i & 1) != 0 ? joinArgs.guildId : j, (i & 2) != 0 ? joinArgs.isLurker : z2, (i & 4) != 0 ? joinArgs.sessionId : str, (i & 8) != 0 ? joinArgs.directoryChannelId : l, (i & 16) != 0 ? joinArgs.fragment : fragment, (i & 32) != 0 ? joinArgs.errorClass : cls, (i & 64) != 0 ? joinArgs.subscriptionHandler : function1, (i & 128) != 0 ? joinArgs.errorHandler : function12, (i & 256) != 0 ? joinArgs.onNext : function13); + public static /* synthetic */ JoinArgs copy$default(JoinArgs joinArgs, long j, boolean z2, String str, Long l, Class cls, Function1 function1, Function1 function12, Function1 function13, int i, Object obj) { + return joinArgs.copy((i & 1) != 0 ? joinArgs.guildId : j, (i & 2) != 0 ? joinArgs.isLurker : z2, (i & 4) != 0 ? joinArgs.sessionId : str, (i & 8) != 0 ? joinArgs.directoryChannelId : l, (i & 16) != 0 ? joinArgs.errorClass : cls, (i & 32) != 0 ? joinArgs.subscriptionHandler : function1, (i & 64) != 0 ? joinArgs.errorHandler : function12, (i & 128) != 0 ? joinArgs.onNext : function13); } public final long component1() { @@ -68,31 +64,26 @@ public final class JoinArgs extends CaptchaArgs { return this.directoryChannelId; } - public final Fragment component5() { - return this.fragment; - } - - public final Class component6() { + public final Class component5() { return this.errorClass; } - public final Function1 component7() { + public final Function1 component6() { return this.subscriptionHandler; } - public final Function1 component8() { + public final Function1 component7() { return this.errorHandler; } - public final Function1 component9() { + public final Function1 component8() { return this.onNext; } - public final JoinArgs copy(long j, boolean z2, String str, Long l, Fragment fragment, Class cls, Function1 function1, Function1 function12, Function1 function13) { - m.checkNotNullParameter(fragment, "fragment"); + public final JoinArgs copy(long j, boolean z2, String str, Long l, Class cls, Function1 function1, Function1 function12, Function1 function13) { m.checkNotNullParameter(cls, "errorClass"); m.checkNotNullParameter(function13, "onNext"); - return new JoinArgs(j, z2, str, l, fragment, cls, function1, function12, function13); + return new JoinArgs(j, z2, str, l, cls, function1, function12, function13); } @Override // java.lang.Object @@ -104,7 +95,7 @@ public final class JoinArgs extends CaptchaArgs { return false; } JoinArgs joinArgs = (JoinArgs) obj; - return this.guildId == joinArgs.guildId && this.isLurker == joinArgs.isLurker && m.areEqual(this.sessionId, joinArgs.sessionId) && m.areEqual(this.directoryChannelId, joinArgs.directoryChannelId) && m.areEqual(this.fragment, joinArgs.fragment) && m.areEqual(this.errorClass, joinArgs.errorClass) && m.areEqual(this.subscriptionHandler, joinArgs.subscriptionHandler) && m.areEqual(this.errorHandler, joinArgs.errorHandler) && m.areEqual(this.onNext, joinArgs.onNext); + return this.guildId == joinArgs.guildId && this.isLurker == joinArgs.isLurker && m.areEqual(this.sessionId, joinArgs.sessionId) && m.areEqual(this.directoryChannelId, joinArgs.directoryChannelId) && m.areEqual(this.errorClass, joinArgs.errorClass) && m.areEqual(this.subscriptionHandler, joinArgs.subscriptionHandler) && m.areEqual(this.errorHandler, joinArgs.errorHandler) && m.areEqual(this.onNext, joinArgs.onNext); } public final Long getDirectoryChannelId() { @@ -119,10 +110,6 @@ public final class JoinArgs extends CaptchaArgs { return this.errorHandler; } - public final Fragment getFragment() { - return this.fragment; - } - public final long getGuildId() { return this.guildId; } @@ -155,19 +142,17 @@ public final class JoinArgs extends CaptchaArgs { int hashCode = (i4 + (str != null ? str.hashCode() : 0)) * 31; Long l = this.directoryChannelId; int hashCode2 = (hashCode + (l != null ? l.hashCode() : 0)) * 31; - Fragment fragment = this.fragment; - int hashCode3 = (hashCode2 + (fragment != null ? fragment.hashCode() : 0)) * 31; Class cls = this.errorClass; - int hashCode4 = (hashCode3 + (cls != null ? cls.hashCode() : 0)) * 31; + int hashCode3 = (hashCode2 + (cls != null ? cls.hashCode() : 0)) * 31; Function1 function1 = this.subscriptionHandler; - int hashCode5 = (hashCode4 + (function1 != null ? function1.hashCode() : 0)) * 31; + int hashCode4 = (hashCode3 + (function1 != null ? function1.hashCode() : 0)) * 31; Function1 function12 = this.errorHandler; - int hashCode6 = (hashCode5 + (function12 != null ? function12.hashCode() : 0)) * 31; + int hashCode5 = (hashCode4 + (function12 != null ? function12.hashCode() : 0)) * 31; Function1 function13 = this.onNext; if (function13 != null) { i5 = function13.hashCode(); } - return hashCode6 + i5; + return hashCode5 + i5; } public final boolean isLurker() { @@ -184,8 +169,6 @@ public final class JoinArgs extends CaptchaArgs { O.append(this.sessionId); O.append(", directoryChannelId="); O.append(this.directoryChannelId); - O.append(", fragment="); - O.append(this.fragment); O.append(", errorClass="); O.append(this.errorClass); O.append(", subscriptionHandler="); diff --git a/app/src/main/java/com/discord/widgets/guilds/profile/WidgetGuildProfileSheetViewModel.java b/app/src/main/java/com/discord/widgets/guilds/profile/WidgetGuildProfileSheetViewModel.java index 0e4e7fe65a..6a3bcfed0a 100644 --- a/app/src/main/java/com/discord/widgets/guilds/profile/WidgetGuildProfileSheetViewModel.java +++ b/app/src/main/java/com/discord/widgets/guilds/profile/WidgetGuildProfileSheetViewModel.java @@ -1488,7 +1488,12 @@ public final class WidgetGuildProfileSheetViewModel extends AppViewModel function0) { diff --git a/app/src/main/java/com/discord/widgets/servers/WidgetServerSettingsOverview$binding$2.java b/app/src/main/java/com/discord/widgets/servers/WidgetServerSettingsOverview$binding$2.java index 8f01dee9b7..1c429c59f2 100644 --- a/app/src/main/java/com/discord/widgets/servers/WidgetServerSettingsOverview$binding$2.java +++ b/app/src/main/java/com/discord/widgets/servers/WidgetServerSettingsOverview$binding$2.java @@ -101,76 +101,80 @@ public final /* synthetic */ class WidgetServerSettingsOverview$binding$2 extend i5 = R.id.system_channel_join; CheckedSetting checkedSetting4 = (CheckedSetting) findViewById5.findViewById(R.id.system_channel_join); if (checkedSetting4 != null) { - LinearLayout linearLayout4 = (LinearLayout) findViewById5; - h3 h3Var = new h3(linearLayout4, textView6, checkedSetting3, checkedSetting4, linearLayout4); - View findViewById6 = view.findViewById(R.id.uploadBanner); - if (findViewById6 != null) { - int i6 = R.id.server_settings_overview_upload_banner_container; - FrameLayout frameLayout = (FrameLayout) findViewById6.findViewById(R.id.server_settings_overview_upload_banner_container); - if (frameLayout != null) { - i6 = R.id.server_settings_overview_upload_banner_remove; - TextView textView7 = (TextView) findViewById6.findViewById(R.id.server_settings_overview_upload_banner_remove); - if (textView7 != null) { - i6 = R.id.upload_banner; - SimpleDraweeView simpleDraweeView2 = (SimpleDraweeView) findViewById6.findViewById(R.id.upload_banner); - if (simpleDraweeView2 != null) { - i6 = R.id.upload_banner_fab; - FloatingActionButton floatingActionButton2 = (FloatingActionButton) findViewById6.findViewById(R.id.upload_banner_fab); - if (floatingActionButton2 != null) { - i6 = R.id.upload_banner_learn_more; - LinkifiedTextView linkifiedTextView2 = (LinkifiedTextView) findViewById6.findViewById(R.id.upload_banner_learn_more); - if (linkifiedTextView2 != null) { - i6 = R.id.upload_banner_nitro_tier; - TextView textView8 = (TextView) findViewById6.findViewById(R.id.upload_banner_nitro_tier); - if (textView8 != null) { - i6 = R.id.upload_banner_unlock; - TextView textView9 = (TextView) findViewById6.findViewById(R.id.upload_banner_unlock); - if (textView9 != null) { - i3 i3Var = new i3((LinearLayout) findViewById6, frameLayout, textView7, simpleDraweeView2, floatingActionButton2, linkifiedTextView2, textView8, textView9); - View findViewById7 = view.findViewById(R.id.uploadSplash); - if (findViewById7 != null) { - int i7 = R.id.server_settings_overview_upload_splash_container; - FrameLayout frameLayout2 = (FrameLayout) findViewById7.findViewById(R.id.server_settings_overview_upload_splash_container); - if (frameLayout2 != null) { - i7 = R.id.server_settings_overview_upload_splash_fab; - FloatingActionButton floatingActionButton3 = (FloatingActionButton) findViewById7.findViewById(R.id.server_settings_overview_upload_splash_fab); - if (floatingActionButton3 != null) { - i7 = R.id.server_settings_overview_upload_splash_remove; - TextView textView10 = (TextView) findViewById7.findViewById(R.id.server_settings_overview_upload_splash_remove); - if (textView10 != null) { - i7 = R.id.upload_splash; - SimpleDraweeView simpleDraweeView3 = (SimpleDraweeView) findViewById7.findViewById(R.id.upload_splash); - if (simpleDraweeView3 != null) { - i7 = R.id.upload_splash_learn_more; - LinkifiedTextView linkifiedTextView3 = (LinkifiedTextView) findViewById7.findViewById(R.id.upload_splash_learn_more); - if (linkifiedTextView3 != null) { - i7 = R.id.upload_splash_nitro_tier; - TextView textView11 = (TextView) findViewById7.findViewById(R.id.upload_splash_nitro_tier); - if (textView11 != null) { - i7 = R.id.upload_splash_unlock; - TextView textView12 = (TextView) findViewById7.findViewById(R.id.upload_splash_unlock); - if (textView12 != null) { - return new WidgetServerSettingsOverviewBinding((CoordinatorLayout) view, s5Var, e3Var, f3Var, g3Var, floatingActionButton, scrollView, h3Var, i3Var, new j3((LinearLayout) findViewById7, frameLayout2, floatingActionButton3, textView10, simpleDraweeView3, linkifiedTextView3, textView11, textView12)); + i5 = R.id.system_channel_join_replies; + CheckedSetting checkedSetting5 = (CheckedSetting) findViewById5.findViewById(R.id.system_channel_join_replies); + if (checkedSetting5 != null) { + LinearLayout linearLayout4 = (LinearLayout) findViewById5; + h3 h3Var = new h3(linearLayout4, textView6, checkedSetting3, checkedSetting4, checkedSetting5, linearLayout4); + View findViewById6 = view.findViewById(R.id.uploadBanner); + if (findViewById6 != null) { + int i6 = R.id.server_settings_overview_upload_banner_container; + FrameLayout frameLayout = (FrameLayout) findViewById6.findViewById(R.id.server_settings_overview_upload_banner_container); + if (frameLayout != null) { + i6 = R.id.server_settings_overview_upload_banner_remove; + TextView textView7 = (TextView) findViewById6.findViewById(R.id.server_settings_overview_upload_banner_remove); + if (textView7 != null) { + i6 = R.id.upload_banner; + SimpleDraweeView simpleDraweeView2 = (SimpleDraweeView) findViewById6.findViewById(R.id.upload_banner); + if (simpleDraweeView2 != null) { + i6 = R.id.upload_banner_fab; + FloatingActionButton floatingActionButton2 = (FloatingActionButton) findViewById6.findViewById(R.id.upload_banner_fab); + if (floatingActionButton2 != null) { + i6 = R.id.upload_banner_learn_more; + LinkifiedTextView linkifiedTextView2 = (LinkifiedTextView) findViewById6.findViewById(R.id.upload_banner_learn_more); + if (linkifiedTextView2 != null) { + i6 = R.id.upload_banner_nitro_tier; + TextView textView8 = (TextView) findViewById6.findViewById(R.id.upload_banner_nitro_tier); + if (textView8 != null) { + i6 = R.id.upload_banner_unlock; + TextView textView9 = (TextView) findViewById6.findViewById(R.id.upload_banner_unlock); + if (textView9 != null) { + i3 i3Var = new i3((LinearLayout) findViewById6, frameLayout, textView7, simpleDraweeView2, floatingActionButton2, linkifiedTextView2, textView8, textView9); + View findViewById7 = view.findViewById(R.id.uploadSplash); + if (findViewById7 != null) { + int i7 = R.id.server_settings_overview_upload_splash_container; + FrameLayout frameLayout2 = (FrameLayout) findViewById7.findViewById(R.id.server_settings_overview_upload_splash_container); + if (frameLayout2 != null) { + i7 = R.id.server_settings_overview_upload_splash_fab; + FloatingActionButton floatingActionButton3 = (FloatingActionButton) findViewById7.findViewById(R.id.server_settings_overview_upload_splash_fab); + if (floatingActionButton3 != null) { + i7 = R.id.server_settings_overview_upload_splash_remove; + TextView textView10 = (TextView) findViewById7.findViewById(R.id.server_settings_overview_upload_splash_remove); + if (textView10 != null) { + i7 = R.id.upload_splash; + SimpleDraweeView simpleDraweeView3 = (SimpleDraweeView) findViewById7.findViewById(R.id.upload_splash); + if (simpleDraweeView3 != null) { + i7 = R.id.upload_splash_learn_more; + LinkifiedTextView linkifiedTextView3 = (LinkifiedTextView) findViewById7.findViewById(R.id.upload_splash_learn_more); + if (linkifiedTextView3 != null) { + i7 = R.id.upload_splash_nitro_tier; + TextView textView11 = (TextView) findViewById7.findViewById(R.id.upload_splash_nitro_tier); + if (textView11 != null) { + i7 = R.id.upload_splash_unlock; + TextView textView12 = (TextView) findViewById7.findViewById(R.id.upload_splash_unlock); + if (textView12 != null) { + return new WidgetServerSettingsOverviewBinding((CoordinatorLayout) view, s5Var, e3Var, f3Var, g3Var, floatingActionButton, scrollView, h3Var, i3Var, new j3((LinearLayout) findViewById7, frameLayout2, floatingActionButton3, textView10, simpleDraweeView3, linkifiedTextView3, textView11, textView12)); + } } } } } } } + throw new NullPointerException("Missing required view with ID: ".concat(findViewById7.getResources().getResourceName(i7))); } - throw new NullPointerException("Missing required view with ID: ".concat(findViewById7.getResources().getResourceName(i7))); + i = R.id.uploadSplash; } - i = R.id.uploadSplash; } } } } } } + throw new NullPointerException("Missing required view with ID: ".concat(findViewById6.getResources().getResourceName(i6))); } - throw new NullPointerException("Missing required view with ID: ".concat(findViewById6.getResources().getResourceName(i6))); + i = R.id.uploadBanner; } - i = R.id.uploadBanner; } } } diff --git a/app/src/main/java/com/discord/widgets/servers/WidgetServerSettingsOverview$configureUI$6.java b/app/src/main/java/com/discord/widgets/servers/WidgetServerSettingsOverview$configureUI$6.java index fba8076cf0..169ef86216 100644 --- a/app/src/main/java/com/discord/widgets/servers/WidgetServerSettingsOverview$configureUI$6.java +++ b/app/src/main/java/com/discord/widgets/servers/WidgetServerSettingsOverview$configureUI$6.java @@ -1,129 +1,31 @@ package com.discord.widgets.servers; import android.view.View; -import android.widget.LinearLayout; -import android.widget.TextView; -import c.a.d.o; -import c0.t.u; import c0.z.d.m; -import com.discord.api.channel.Channel; -import com.discord.api.guild.Guild; -import com.discord.api.guild.GuildExplicitContentFilter; -import com.discord.api.guild.GuildVerificationLevel; -import com.discord.restapi.RestAPIParams; -import com.discord.stores.StoreStream; -import com.discord.utilities.icon.IconUtils; -import com.discord.utilities.rest.RestAPI; -import com.discord.utilities.rx.ObservableExtensionsKt; -import com.discord.utilities.rx.ObservableExtensionsKt$filterNull$1; -import com.discord.utilities.rx.ObservableExtensionsKt$filterNull$2; import com.discord.utilities.stateful.StatefulViews; import com.discord.views.CheckedSetting; -import com.discord.widgets.servers.WidgetServerSettingsOverview; -import com.facebook.drawee.view.SimpleDraweeView; -import com.google.android.material.textfield.TextInputLayout; -import i0.k.b; -import rx.Observable; -import rx.functions.Action1; /* compiled from: WidgetServerSettingsOverview.kt */ public final class WidgetServerSettingsOverview$configureUI$6 implements View.OnClickListener { - public final /* synthetic */ WidgetServerSettingsOverview.Model $this_configureUI; public final /* synthetic */ WidgetServerSettingsOverview this$0; - /* compiled from: WidgetServerSettingsOverview.kt */ - /* renamed from: com.discord.widgets.servers.WidgetServerSettingsOverview$configureUI$6$1 reason: invalid class name */ - public static final class AnonymousClass1 implements b> { - public static final AnonymousClass1 INSTANCE = new AnonymousClass1(); - - public final Observable call(Guild guild) { - Observable E = StoreStream.Companion.getGuilds().observeGuild(guild.p()).w(ObservableExtensionsKt$filterNull$1.INSTANCE).E(ObservableExtensionsKt$filterNull$2.INSTANCE); - m.checkNotNullExpressionValue(E, "filter { it != null }.map { it!! }"); - return E; - } - } - - /* compiled from: WidgetServerSettingsOverview.kt */ - /* renamed from: com.discord.widgets.servers.WidgetServerSettingsOverview$configureUI$6$2 reason: invalid class name */ - public static final class AnonymousClass2 implements b> { - public static final AnonymousClass2 INSTANCE = new AnonymousClass2(); - - public final Observable call(com.discord.models.guild.Guild guild) { - return WidgetServerSettingsOverview.Model.Companion.get(guild.getId()); - } - } - - /* compiled from: WidgetServerSettingsOverview.kt */ - /* renamed from: com.discord.widgets.servers.WidgetServerSettingsOverview$configureUI$6$3 reason: invalid class name */ - public static final class AnonymousClass3 implements Action1 { - public final /* synthetic */ WidgetServerSettingsOverview$configureUI$6 this$0; - - public AnonymousClass3(WidgetServerSettingsOverview$configureUI$6 widgetServerSettingsOverview$configureUI$6) { - this.this$0 = widgetServerSettingsOverview$configureUI$6; - } - - public final void call(WidgetServerSettingsOverview.Model model) { - WidgetServerSettingsOverview.access$configureUpdatedGuild(this.this$0.this$0, model); - } - } - - public WidgetServerSettingsOverview$configureUI$6(WidgetServerSettingsOverview widgetServerSettingsOverview, WidgetServerSettingsOverview.Model model) { + public WidgetServerSettingsOverview$configureUI$6(WidgetServerSettingsOverview widgetServerSettingsOverview) { this.this$0 = widgetServerSettingsOverview; - this.$this_configureUI = model; } @Override // android.view.View.OnClickListener public final void onClick(View view) { + CheckedSetting checkedSetting = WidgetServerSettingsOverview.access$getBinding$p(this.this$0).h.e; + m.checkNotNullExpressionValue(checkedSetting, "binding.systemChannel.systemChannelJoinReplies"); + CheckedSetting checkedSetting2 = WidgetServerSettingsOverview.access$getBinding$p(this.this$0).h.e; + m.checkNotNullExpressionValue(checkedSetting2, "binding.systemChannel.systemChannelJoinReplies"); + checkedSetting.setChecked(!checkedSetting2.isChecked()); StatefulViews access$getState$p = WidgetServerSettingsOverview.access$getState$p(this.this$0); - CheckedSetting checkedSetting = WidgetServerSettingsOverview.access$getBinding$p(this.this$0).h.d; - m.checkNotNullExpressionValue(checkedSetting, "binding.systemChannel.systemChannelJoin"); - int id2 = checkedSetting.getId(); - CheckedSetting checkedSetting2 = WidgetServerSettingsOverview.access$getBinding$p(this.this$0).h.d; - m.checkNotNullExpressionValue(checkedSetting2, "binding.systemChannel.systemChannelJoin"); - int i = !((Boolean) access$getState$p.get(id2, Boolean.valueOf(checkedSetting2.isChecked()))).booleanValue() ? 1 : 0; - StatefulViews access$getState$p2 = WidgetServerSettingsOverview.access$getState$p(this.this$0); - CheckedSetting checkedSetting3 = WidgetServerSettingsOverview.access$getBinding$p(this.this$0).h.f106c; - m.checkNotNullExpressionValue(checkedSetting3, "binding.systemChannel.systemChannelBoost"); - int id3 = checkedSetting3.getId(); - CheckedSetting checkedSetting4 = WidgetServerSettingsOverview.access$getBinding$p(this.this$0).h.f106c; - m.checkNotNullExpressionValue(checkedSetting4, "binding.systemChannel.systemChannelBoost"); - if (!((Boolean) access$getState$p2.get(id3, Boolean.valueOf(checkedSetting4.isChecked()))).booleanValue()) { - i |= 2; - } - RestAPI apiSerializeNulls = RestAPI.Companion.getApiSerializeNulls(); - long id4 = this.$this_configureUI.getGuild().getId(); - StatefulViews access$getState$p3 = WidgetServerSettingsOverview.access$getState$p(this.this$0); - TextView textView = WidgetServerSettingsOverview.access$getBinding$p(this.this$0).b.b; - m.checkNotNullExpressionValue(textView, "binding.afk.afkChannel"); - Channel channel = (Channel) access$getState$p3.get(textView.getId(), this.$this_configureUI.getAfkChannelModel()); - Long valueOf = channel != null ? Long.valueOf(channel.h()) : null; - StatefulViews access$getState$p4 = WidgetServerSettingsOverview.access$getState$p(this.this$0); - LinearLayout linearLayout = WidgetServerSettingsOverview.access$getBinding$p(this.this$0).b.e; - m.checkNotNullExpressionValue(linearLayout, "binding.afk.afkTimeoutWrap"); - Integer num = (Integer) access$getState$p4.get(linearLayout.getId(), Integer.valueOf(this.$this_configureUI.getGuild().getAfkTimeout())); - StatefulViews access$getState$p5 = WidgetServerSettingsOverview.access$getState$p(this.this$0); - TextView textView2 = WidgetServerSettingsOverview.access$getBinding$p(this.this$0).h.b; - m.checkNotNullExpressionValue(textView2, "binding.systemChannel.systemChannel"); - Channel channel2 = (Channel) access$getState$p5.get(textView2.getId(), this.$this_configureUI.getSystemChannelModel()); - Long valueOf2 = channel2 != null ? Long.valueOf(channel2.h()) : null; - Integer num2 = (Integer) WidgetServerSettingsOverview.access$getState$p(this.this$0).get(90001, Integer.valueOf(this.$this_configureUI.getGuild().getDefaultMessageNotifications())); - StatefulViews access$getState$p6 = WidgetServerSettingsOverview.access$getState$p(this.this$0); - SimpleDraweeView simpleDraweeView = WidgetServerSettingsOverview.access$getBinding$p(this.this$0).f2388c.d; - m.checkNotNullExpressionValue(simpleDraweeView, "binding.header.serverSettingsOverviewIcon"); - String str = (String) access$getState$p6.get(simpleDraweeView.getId(), IconUtils.getForGuild$default(this.$this_configureUI.getGuild(), null, false, null, 14, null)); - StatefulViews access$getState$p7 = WidgetServerSettingsOverview.access$getState$p(this.this$0); - TextInputLayout textInputLayout = WidgetServerSettingsOverview.access$getBinding$p(this.this$0).f2388c.f89c; - m.checkNotNullExpressionValue(textInputLayout, "binding.header.overviewName"); - String str2 = (String) access$getState$p7.get(textInputLayout.getId(), this.$this_configureUI.getGuild().getName()); - GuildVerificationLevel verificationLevel = this.$this_configureUI.getGuild().getVerificationLevel(); - GuildExplicitContentFilter explicitContentFilter = this.$this_configureUI.getGuild().getExplicitContentFilter(); - StatefulViews access$getState$p8 = WidgetServerSettingsOverview.access$getState$p(this.this$0); - SimpleDraweeView simpleDraweeView2 = WidgetServerSettingsOverview.access$getBinding$p(this.this$0).j.e; - m.checkNotNullExpressionValue(simpleDraweeView2, "binding.uploadSplash.uploadSplash"); - StatefulViews access$getState$p9 = WidgetServerSettingsOverview.access$getState$p(this.this$0); - SimpleDraweeView simpleDraweeView3 = WidgetServerSettingsOverview.access$getBinding$p(this.this$0).i.d; - m.checkNotNullExpressionValue(simpleDraweeView3, "binding.uploadBanner.uploadBanner"); - Observable X = ObservableExtensionsKt.restSubscribeOn$default(apiSerializeNulls.updateGuild(id4, new RestAPIParams.UpdateGuild(valueOf, num, valueOf2, num2, str, str2, verificationLevel, explicitContentFilter, (String) access$getState$p8.get(simpleDraweeView2.getId(), this.$this_configureUI.getGuild().getSplash()), (String) access$getState$p9.get(simpleDraweeView3.getId(), this.$this_configureUI.getGuild().getBanner()), Integer.valueOf(i), u.toList(this.$this_configureUI.getGuild().getFeatures()), this.$this_configureUI.getGuild().getRulesChannelId(), this.$this_configureUI.getGuild().getPublicUpdatesChannelId(), this.$this_configureUI.getGuild().getPreferredLocale())), false, 1, null).X(AnonymousClass1.INSTANCE).X(AnonymousClass2.INSTANCE); - m.checkNotNullExpressionValue(X, "RestAPI\n .apiSe…atedGuild.id)\n }"); - ObservableExtensionsKt.ui$default(ObservableExtensionsKt.takeSingleUntilTimeout$default(X, 0, false, 3, null), this.this$0, null, 2, null).k(o.i(new AnonymousClass3(this), this.this$0)); + CheckedSetting checkedSetting3 = WidgetServerSettingsOverview.access$getBinding$p(this.this$0).h.e; + m.checkNotNullExpressionValue(checkedSetting3, "binding.systemChannel.systemChannelJoinReplies"); + int id2 = checkedSetting3.getId(); + CheckedSetting checkedSetting4 = WidgetServerSettingsOverview.access$getBinding$p(this.this$0).h.e; + m.checkNotNullExpressionValue(checkedSetting4, "binding.systemChannel.systemChannelJoinReplies"); + access$getState$p.put(id2, Boolean.valueOf(checkedSetting4.isChecked())); + WidgetServerSettingsOverview.access$getState$p(this.this$0).configureSaveActionView(WidgetServerSettingsOverview.access$getBinding$p(this.this$0).f); } } diff --git a/app/src/main/java/com/discord/widgets/servers/WidgetServerSettingsOverview$configureUI$7.java b/app/src/main/java/com/discord/widgets/servers/WidgetServerSettingsOverview$configureUI$7.java new file mode 100644 index 0000000000..334602e475 --- /dev/null +++ b/app/src/main/java/com/discord/widgets/servers/WidgetServerSettingsOverview$configureUI$7.java @@ -0,0 +1,138 @@ +package com.discord.widgets.servers; + +import android.view.View; +import android.widget.LinearLayout; +import android.widget.TextView; +import c.a.d.o; +import c0.t.u; +import c0.z.d.m; +import com.discord.api.channel.Channel; +import com.discord.api.guild.Guild; +import com.discord.api.guild.GuildExplicitContentFilter; +import com.discord.api.guild.GuildVerificationLevel; +import com.discord.restapi.RestAPIParams; +import com.discord.stores.StoreStream; +import com.discord.utilities.icon.IconUtils; +import com.discord.utilities.rest.RestAPI; +import com.discord.utilities.rx.ObservableExtensionsKt; +import com.discord.utilities.rx.ObservableExtensionsKt$filterNull$1; +import com.discord.utilities.rx.ObservableExtensionsKt$filterNull$2; +import com.discord.utilities.stateful.StatefulViews; +import com.discord.views.CheckedSetting; +import com.discord.widgets.servers.WidgetServerSettingsOverview; +import com.facebook.drawee.view.SimpleDraweeView; +import com.google.android.material.textfield.TextInputLayout; +import i0.k.b; +import rx.Observable; +import rx.functions.Action1; +/* compiled from: WidgetServerSettingsOverview.kt */ +public final class WidgetServerSettingsOverview$configureUI$7 implements View.OnClickListener { + public final /* synthetic */ WidgetServerSettingsOverview.Model $this_configureUI; + public final /* synthetic */ WidgetServerSettingsOverview this$0; + + /* compiled from: WidgetServerSettingsOverview.kt */ + /* renamed from: com.discord.widgets.servers.WidgetServerSettingsOverview$configureUI$7$1 reason: invalid class name */ + public static final class AnonymousClass1 implements b> { + public static final AnonymousClass1 INSTANCE = new AnonymousClass1(); + + public final Observable call(Guild guild) { + Observable E = StoreStream.Companion.getGuilds().observeGuild(guild.p()).w(ObservableExtensionsKt$filterNull$1.INSTANCE).E(ObservableExtensionsKt$filterNull$2.INSTANCE); + m.checkNotNullExpressionValue(E, "filter { it != null }.map { it!! }"); + return E; + } + } + + /* compiled from: WidgetServerSettingsOverview.kt */ + /* renamed from: com.discord.widgets.servers.WidgetServerSettingsOverview$configureUI$7$2 reason: invalid class name */ + public static final class AnonymousClass2 implements b> { + public static final AnonymousClass2 INSTANCE = new AnonymousClass2(); + + public final Observable call(com.discord.models.guild.Guild guild) { + return WidgetServerSettingsOverview.Model.Companion.get(guild.getId()); + } + } + + /* compiled from: WidgetServerSettingsOverview.kt */ + /* renamed from: com.discord.widgets.servers.WidgetServerSettingsOverview$configureUI$7$3 reason: invalid class name */ + public static final class AnonymousClass3 implements Action1 { + public final /* synthetic */ WidgetServerSettingsOverview$configureUI$7 this$0; + + public AnonymousClass3(WidgetServerSettingsOverview$configureUI$7 widgetServerSettingsOverview$configureUI$7) { + this.this$0 = widgetServerSettingsOverview$configureUI$7; + } + + public final void call(WidgetServerSettingsOverview.Model model) { + WidgetServerSettingsOverview.access$configureUpdatedGuild(this.this$0.this$0, model); + } + } + + public WidgetServerSettingsOverview$configureUI$7(WidgetServerSettingsOverview widgetServerSettingsOverview, WidgetServerSettingsOverview.Model model) { + this.this$0 = widgetServerSettingsOverview; + this.$this_configureUI = model; + } + + @Override // android.view.View.OnClickListener + public final void onClick(View view) { + StatefulViews access$getState$p = WidgetServerSettingsOverview.access$getState$p(this.this$0); + CheckedSetting checkedSetting = WidgetServerSettingsOverview.access$getBinding$p(this.this$0).h.d; + m.checkNotNullExpressionValue(checkedSetting, "binding.systemChannel.systemChannelJoin"); + int id2 = checkedSetting.getId(); + CheckedSetting checkedSetting2 = WidgetServerSettingsOverview.access$getBinding$p(this.this$0).h.d; + m.checkNotNullExpressionValue(checkedSetting2, "binding.systemChannel.systemChannelJoin"); + int i = !((Boolean) access$getState$p.get(id2, Boolean.valueOf(checkedSetting2.isChecked()))).booleanValue() ? 1 : 0; + StatefulViews access$getState$p2 = WidgetServerSettingsOverview.access$getState$p(this.this$0); + CheckedSetting checkedSetting3 = WidgetServerSettingsOverview.access$getBinding$p(this.this$0).h.e; + m.checkNotNullExpressionValue(checkedSetting3, "binding.systemChannel.systemChannelJoinReplies"); + int id3 = checkedSetting3.getId(); + CheckedSetting checkedSetting4 = WidgetServerSettingsOverview.access$getBinding$p(this.this$0).h.e; + m.checkNotNullExpressionValue(checkedSetting4, "binding.systemChannel.systemChannelJoinReplies"); + if (!((Boolean) access$getState$p2.get(id3, Boolean.valueOf(checkedSetting4.isChecked()))).booleanValue()) { + i |= 8; + } + StatefulViews access$getState$p3 = WidgetServerSettingsOverview.access$getState$p(this.this$0); + CheckedSetting checkedSetting5 = WidgetServerSettingsOverview.access$getBinding$p(this.this$0).h.f106c; + m.checkNotNullExpressionValue(checkedSetting5, "binding.systemChannel.systemChannelBoost"); + int id4 = checkedSetting5.getId(); + CheckedSetting checkedSetting6 = WidgetServerSettingsOverview.access$getBinding$p(this.this$0).h.f106c; + m.checkNotNullExpressionValue(checkedSetting6, "binding.systemChannel.systemChannelBoost"); + if (!((Boolean) access$getState$p3.get(id4, Boolean.valueOf(checkedSetting6.isChecked()))).booleanValue()) { + i |= 2; + } + RestAPI apiSerializeNulls = RestAPI.Companion.getApiSerializeNulls(); + long id5 = this.$this_configureUI.getGuild().getId(); + StatefulViews access$getState$p4 = WidgetServerSettingsOverview.access$getState$p(this.this$0); + TextView textView = WidgetServerSettingsOverview.access$getBinding$p(this.this$0).b.b; + m.checkNotNullExpressionValue(textView, "binding.afk.afkChannel"); + Channel channel = (Channel) access$getState$p4.get(textView.getId(), this.$this_configureUI.getAfkChannelModel()); + Long valueOf = channel != null ? Long.valueOf(channel.h()) : null; + StatefulViews access$getState$p5 = WidgetServerSettingsOverview.access$getState$p(this.this$0); + LinearLayout linearLayout = WidgetServerSettingsOverview.access$getBinding$p(this.this$0).b.e; + m.checkNotNullExpressionValue(linearLayout, "binding.afk.afkTimeoutWrap"); + Integer num = (Integer) access$getState$p5.get(linearLayout.getId(), Integer.valueOf(this.$this_configureUI.getGuild().getAfkTimeout())); + StatefulViews access$getState$p6 = WidgetServerSettingsOverview.access$getState$p(this.this$0); + TextView textView2 = WidgetServerSettingsOverview.access$getBinding$p(this.this$0).h.b; + m.checkNotNullExpressionValue(textView2, "binding.systemChannel.systemChannel"); + Channel channel2 = (Channel) access$getState$p6.get(textView2.getId(), this.$this_configureUI.getSystemChannelModel()); + Long valueOf2 = channel2 != null ? Long.valueOf(channel2.h()) : null; + Integer num2 = (Integer) WidgetServerSettingsOverview.access$getState$p(this.this$0).get(90001, Integer.valueOf(this.$this_configureUI.getGuild().getDefaultMessageNotifications())); + StatefulViews access$getState$p7 = WidgetServerSettingsOverview.access$getState$p(this.this$0); + SimpleDraweeView simpleDraweeView = WidgetServerSettingsOverview.access$getBinding$p(this.this$0).f2388c.d; + m.checkNotNullExpressionValue(simpleDraweeView, "binding.header.serverSettingsOverviewIcon"); + String str = (String) access$getState$p7.get(simpleDraweeView.getId(), IconUtils.getForGuild$default(this.$this_configureUI.getGuild(), null, false, null, 14, null)); + StatefulViews access$getState$p8 = WidgetServerSettingsOverview.access$getState$p(this.this$0); + TextInputLayout textInputLayout = WidgetServerSettingsOverview.access$getBinding$p(this.this$0).f2388c.f89c; + m.checkNotNullExpressionValue(textInputLayout, "binding.header.overviewName"); + String str2 = (String) access$getState$p8.get(textInputLayout.getId(), this.$this_configureUI.getGuild().getName()); + GuildVerificationLevel verificationLevel = this.$this_configureUI.getGuild().getVerificationLevel(); + GuildExplicitContentFilter explicitContentFilter = this.$this_configureUI.getGuild().getExplicitContentFilter(); + StatefulViews access$getState$p9 = WidgetServerSettingsOverview.access$getState$p(this.this$0); + SimpleDraweeView simpleDraweeView2 = WidgetServerSettingsOverview.access$getBinding$p(this.this$0).j.e; + m.checkNotNullExpressionValue(simpleDraweeView2, "binding.uploadSplash.uploadSplash"); + StatefulViews access$getState$p10 = WidgetServerSettingsOverview.access$getState$p(this.this$0); + SimpleDraweeView simpleDraweeView3 = WidgetServerSettingsOverview.access$getBinding$p(this.this$0).i.d; + m.checkNotNullExpressionValue(simpleDraweeView3, "binding.uploadBanner.uploadBanner"); + Observable X = ObservableExtensionsKt.restSubscribeOn$default(apiSerializeNulls.updateGuild(id5, new RestAPIParams.UpdateGuild(valueOf, num, valueOf2, num2, str, str2, verificationLevel, explicitContentFilter, (String) access$getState$p9.get(simpleDraweeView2.getId(), this.$this_configureUI.getGuild().getSplash()), (String) access$getState$p10.get(simpleDraweeView3.getId(), this.$this_configureUI.getGuild().getBanner()), Integer.valueOf(i), u.toList(this.$this_configureUI.getGuild().getFeatures()), this.$this_configureUI.getGuild().getRulesChannelId(), this.$this_configureUI.getGuild().getPublicUpdatesChannelId(), this.$this_configureUI.getGuild().getPreferredLocale())), false, 1, null).X(AnonymousClass1.INSTANCE).X(AnonymousClass2.INSTANCE); + m.checkNotNullExpressionValue(X, "RestAPI\n .apiSe…atedGuild.id)\n }"); + ObservableExtensionsKt.ui$default(ObservableExtensionsKt.takeSingleUntilTimeout$default(X, 0, false, 3, null), this.this$0, null, 2, null).k(o.i(new AnonymousClass3(this), this.this$0)); + } +} diff --git a/app/src/main/java/com/discord/widgets/servers/WidgetServerSettingsOverview.java b/app/src/main/java/com/discord/widgets/servers/WidgetServerSettingsOverview.java index 9aed966b58..a52700f149 100644 --- a/app/src/main/java/com/discord/widgets/servers/WidgetServerSettingsOverview.java +++ b/app/src/main/java/com/discord/widgets/servers/WidgetServerSettingsOverview.java @@ -75,7 +75,7 @@ public final class WidgetServerSettingsOverview extends AppFragment { private boolean hasOpenedAvatarPicker; private Action1 imageSelectedResult; private final LoggingConfig loggingConfig = new LoggingConfig(false, null, WidgetServerSettingsOverview$loggingConfig$1.INSTANCE, 3); - private final StatefulViews state = new StatefulViews(R.id.server_settings_overview_icon, R.id.overview_name, R.id.afk_channel, R.id.afk_timeout, R.id.afk_timeout_wrap, R.id.system_channel, R.id.upload_splash, R.id.upload_banner, R.id.system_channel_join, R.id.system_channel_boost, STATE_ID_NOTIFICATION_DEFAULT); + private final StatefulViews state = new StatefulViews(R.id.server_settings_overview_icon, R.id.overview_name, R.id.afk_channel, R.id.afk_timeout, R.id.afk_timeout_wrap, R.id.system_channel, R.id.upload_splash, R.id.upload_banner, R.id.system_channel_join, R.id.system_channel_join_replies, R.id.system_channel_boost, STATE_ID_NOTIFICATION_DEFAULT); /* compiled from: WidgetServerSettingsOverview.kt */ public static final class AfkBottomSheet extends AppBottomSheet { @@ -620,11 +620,11 @@ public final class WidgetServerSettingsOverview extends AppFragment { TextView textView5 = getBinding().h.b; m.checkNotNullExpressionValue(textView5, "binding.systemChannel.systemChannel"); configureSystemChannel((Channel) statefulViews4.get(textView5.getId(), model.getSystemChannelModel())); - getBinding().h.e.setOnClickListener(new WidgetServerSettingsOverview$configureUI$3(this, model)); - LinearLayout linearLayout2 = getBinding().h.e; + getBinding().h.f.setOnClickListener(new WidgetServerSettingsOverview$configureUI$3(this, model)); + LinearLayout linearLayout2 = getBinding().h.f; m.checkNotNullExpressionValue(linearLayout2, "binding.systemChannel.systemChannelWrap"); StatefulViews statefulViews5 = this.state; - LinearLayout linearLayout3 = getBinding().h.e; + LinearLayout linearLayout3 = getBinding().h.f; m.checkNotNullExpressionValue(linearLayout3, "binding.systemChannel.systemChannelWrap"); linearLayout2.setTag(statefulViews5.get(linearLayout3.getId(), model.getGuild().getSystemChannelId())); configureRadios(STATE_ID_NOTIFICATION_DEFAULT, ((Number) this.state.get(STATE_ID_NOTIFICATION_DEFAULT, Integer.valueOf(model.getGuild().getDefaultMessageNotifications()))).intValue(), model.isAboveNotifyAllSize(), false); @@ -642,22 +642,34 @@ public final class WidgetServerSettingsOverview extends AppFragment { } else { CheckedSetting.d(getBinding().h.d, null, 1); } - if ((model.getGuild().getSystemChannelFlags() & 2) == 0) { - z2 = true; - } + boolean z4 = (model.getGuild().getSystemChannelFlags() & 2) == 0; CheckedSetting checkedSetting3 = getBinding().h.f106c; m.checkNotNullExpressionValue(checkedSetting3, "binding.systemChannel.systemChannelBoost"); StatefulViews statefulViews7 = this.state; CheckedSetting checkedSetting4 = getBinding().h.f106c; m.checkNotNullExpressionValue(checkedSetting4, "binding.systemChannel.systemChannelBoost"); - checkedSetting3.setChecked(((Boolean) statefulViews7.get(checkedSetting4.getId(), Boolean.valueOf(z2))).booleanValue()); + checkedSetting3.setChecked(((Boolean) statefulViews7.get(checkedSetting4.getId(), Boolean.valueOf(z4))).booleanValue()); if (model.getSystemChannelModel() != null) { getBinding().h.f106c.e(new WidgetServerSettingsOverview$configureUI$5(this)); } else { CheckedSetting.d(getBinding().h.f106c, null, 1); } + if ((model.getGuild().getSystemChannelFlags() & 8) == 0) { + z2 = true; + } + CheckedSetting checkedSetting5 = getBinding().h.e; + m.checkNotNullExpressionValue(checkedSetting5, "binding.systemChannel.systemChannelJoinReplies"); + StatefulViews statefulViews8 = this.state; + CheckedSetting checkedSetting6 = getBinding().h.e; + m.checkNotNullExpressionValue(checkedSetting6, "binding.systemChannel.systemChannelJoinReplies"); + checkedSetting5.setChecked(((Boolean) statefulViews8.get(checkedSetting6.getId(), Boolean.valueOf(z2))).booleanValue()); + if (model.getSystemChannelModel() != null) { + getBinding().h.e.e(new WidgetServerSettingsOverview$configureUI$6(this)); + } else { + CheckedSetting.d(getBinding().h.e, null, 1); + } this.state.configureSaveActionView(getBinding().f); - getBinding().f.setOnClickListener(new WidgetServerSettingsOverview$configureUI$6(this, model)); + getBinding().f.setOnClickListener(new WidgetServerSettingsOverview$configureUI$7(this, model)); } private final void configureUpdatedGuild(Model model) { diff --git a/app/src/main/java/com/discord/widgets/servers/guild_role_subscription/TierViewHolder.java b/app/src/main/java/com/discord/widgets/servers/guild_role_subscription/TierViewHolder.java index 0a369afe3c..b72867494f 100644 --- a/app/src/main/java/com/discord/widgets/servers/guild_role_subscription/TierViewHolder.java +++ b/app/src/main/java/com/discord/widgets/servers/guild_role_subscription/TierViewHolder.java @@ -46,7 +46,7 @@ public abstract class TierViewHolder extends RecyclerView.ViewHolder { ConstraintLayout constraintLayout = viewServerSettingsGuildRoleSubscriptionAddTierItemBinding.a; m.checkNotNullExpressionValue(constraintLayout, "binding.root"); this.itemView.setOnClickListener(new AnonymousClass1(itemClickListener)); - viewServerSettingsGuildRoleSubscriptionAddTierItemBinding.b.setText(R.string.guild_role_susbcription_tier_management_create_new); + viewServerSettingsGuildRoleSubscriptionAddTierItemBinding.b.setText(R.string.guild_settings_role_subscription_tier_card_create); } } 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 1f05c31d02..5a36c576b8 100644 --- a/app/src/main/java/com/discord/widgets/settings/WidgetSettings.java +++ b/app/src/main/java/com/discord/widgets/settings/WidgetSettings.java @@ -313,7 +313,7 @@ public final class WidgetSettings extends AppFragment implements OnTabSelectedLi TextView textView = binding.f; m.checkNotNullExpressionValue(textView, "appInfoHeader"); String string = getString(R.string.app_information); - textView.setText(string + " - 99.1 - Alpha (99201)"); + textView.setText(string + " - 99.2 - Alpha (99202)"); binding.A.setOnClickListener(new WidgetSettings$onViewBound$$inlined$with$lambda$3(this)); binding.u.setOnClickListener(WidgetSettings$onViewBound$1$5.INSTANCE); binding.q.setOnClickListener(WidgetSettings$onViewBound$1$6.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 65711fb4f8..a3f1d5b3c1 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 @@ -921,19 +921,22 @@ public final class WidgetSettingsPremium extends AppFragment { return skuDetails != null ? b.k(this, R.string.premium_settings_starting_at_per_month, new Object[]{skuDetails.b()}, null, 4) : b.k(this, R.string.stream_premium_upsell_cta, new Object[0], null, 4); } - /* JADX DEBUG: Can't convert new array creation: APUT found in different block: 0x0056: APUT - (r6v2 java.lang.Object[]) + /* JADX DEBUG: Can't convert new array creation: APUT found in different block: 0x0067: APUT + (r7v2 java.lang.Object[]) (0 ??[int, short, byte, char]) - (wrap: java.lang.CharSequence : 0x0052: INVOKE (r8v2 java.lang.CharSequence) = - (r8v1 int) - (wrap: android.content.Context : 0x004e: INVOKE (r1v1 android.content.Context) = (r5v0 'this' com.discord.widgets.settings.premium.WidgetSettingsPremium A[IMMUTABLE_TYPE, THIS]) type: VIRTUAL call: androidx.fragment.app.Fragment.requireContext():android.content.Context) + (wrap: java.lang.CharSequence : 0x0063: INVOKE (r9v2 java.lang.CharSequence) = + (r9v1 int) + (wrap: android.content.Context : 0x005f: INVOKE (r1v1 android.content.Context) = (r6v0 'this' com.discord.widgets.settings.premium.WidgetSettingsPremium A[IMMUTABLE_TYPE, THIS]) type: VIRTUAL call: androidx.fragment.app.Fragment.requireContext():android.content.Context) type: STATIC call: com.discord.utilities.billing.PremiumUtilsKt.getFormattedPriceUsd(int, android.content.Context):java.lang.CharSequence) */ private final CharSequence getPriceText(ModelSubscription modelSubscription, Map map, ModelInvoiceItem modelInvoiceItem) { + SubscriptionPlanType subscriptionPlanType; SkuDetails skuDetails; - SubscriptionPlanType planType; boolean isGoogleSubscription = modelSubscription != null ? modelSubscription.isGoogleSubscription() : false; - int i = (modelSubscription == null || (planType = modelSubscription.getPlanType()) == null) ? false : planType.isMonthlyInterval() ? R.string.billing_price_per_month : R.string.billing_price_per_year; + if (modelInvoiceItem == null || (subscriptionPlanType = SubscriptionPlanType.Companion.from(modelInvoiceItem.getSubscriptionPlanId())) == null) { + subscriptionPlanType = modelSubscription != null ? modelSubscription.getPlanType() : null; + } + int i = subscriptionPlanType != null ? subscriptionPlanType.isMonthlyInterval() : false ? R.string.billing_price_per_month : R.string.billing_price_per_year; String b = (modelSubscription == null || (skuDetails = (SkuDetails) map.get(modelSubscription.getPaymentGatewayPlanId())) == null) ? null : skuDetails.b(); if (isGoogleSubscription && b != null) { return b.k(this, i, new Object[]{b}, null, 4); diff --git a/app/src/main/java/com/discord/widgets/stickers/GuildStickerSheetViewModel.java b/app/src/main/java/com/discord/widgets/stickers/GuildStickerSheetViewModel.java index 1ebb71bb20..c6c46ad0ff 100644 --- a/app/src/main/java/com/discord/widgets/stickers/GuildStickerSheetViewModel.java +++ b/app/src/main/java/com/discord/widgets/stickers/GuildStickerSheetViewModel.java @@ -546,6 +546,8 @@ public final class GuildStickerSheetViewModel extends AppViewModel { public final void joinGuild(Guild guild, Fragment fragment) { m.checkNotNullParameter(guild, "guild"); m.checkNotNullParameter(fragment, "fragment"); - GuildJoinHelperKt.joinGuild$default(guild.getId(), false, null, null, fragment, GuildStickerSheetViewModel.class, null, null, new GuildStickerSheetViewModel$joinGuild$1(this), null, 512, null); + Context requireContext = fragment.requireContext(); + m.checkNotNullExpressionValue(requireContext, "fragment.requireContext()"); + GuildJoinHelperKt.joinGuild$default(requireContext, guild.getId(), false, null, null, null, GuildStickerSheetViewModel.class, null, null, null, new GuildStickerSheetViewModel$joinGuild$1(this), 952, null); } } diff --git a/app/src/main/res/layout-v22/widget_server_settings_guild_role_subscription_tier_list.xml b/app/src/main/res/layout-v22/widget_server_settings_guild_role_subscription_tier_list.xml index de78ff1569..92f0d1386d 100644 --- a/app/src/main/res/layout-v22/widget_server_settings_guild_role_subscription_tier_list.xml +++ b/app/src/main/res/layout-v22/widget_server_settings_guild_role_subscription_tier_list.xml @@ -7,7 +7,7 @@ - + diff --git a/app/src/main/res/layout/view_server_settings_system_channel_wrap.xml b/app/src/main/res/layout/view_server_settings_system_channel_wrap.xml index a0027e7fb7..8e15456916 100644 --- a/app/src/main/res/layout/view_server_settings_system_channel_wrap.xml +++ b/app/src/main/res/layout/view_server_settings_system_channel_wrap.xml @@ -4,5 +4,6 @@ + diff --git a/app/src/main/res/layout/widget_server_settings_guild_role_subscription_tier_list.xml b/app/src/main/res/layout/widget_server_settings_guild_role_subscription_tier_list.xml index 512b46e3b3..340600faca 100644 --- a/app/src/main/res/layout/widget_server_settings_guild_role_subscription_tier_list.xml +++ b/app/src/main/res/layout/widget_server_settings_guild_role_subscription_tier_list.xml @@ -7,7 +7,7 @@ - + diff --git a/app/src/main/res/values-ar-rXB/plurals.xml b/app/src/main/res/values-ar-rXB/plurals.xml index 78c62d3f34..4bf947b71a 100644 --- a/app/src/main/res/values-ar-rXB/plurals.xml +++ b/app/src/main/res/values-ar-rXB/plurals.xml @@ -1344,6 +1344,14 @@ ‏‮{numSubscriptionsApplied}‬‏ ‏‮Boost‬‏ ‏‮{numSubscriptionsApplied}‬‏ ‏‮Boosts‬‏ + + ‏‮{numSubscriptionsApplied}‬‏ ‏‮Boost‬‏ + ‏‮{numSubscriptionsApplied}‬‏ ‏‮Boosts‬‏ + + + ‏‮{numSubscriptionsApplied}‬‏ ‏‮Boost‬‏ + ‏‮{numSubscriptionsApplied}‬‏ ‏‮Boosts‬‏ + ‏‮{numSubscriptionsApplied}‬‏ ‏‮Boost‬‏ ‏‮{numSubscriptionsApplied}‬‏ ‏‮Boosts‬‏ diff --git a/app/src/main/res/values-ar-rXB/strings.xml b/app/src/main/res/values-ar-rXB/strings.xml index 5340c2c312..45573c57f7 100644 --- a/app/src/main/res/values-ar-rXB/strings.xml +++ b/app/src/main/res/values-ar-rXB/strings.xml @@ -669,7 +669,15 @@ ‏‮unknown‬‏ ‏‮File‬‏ ‏‮Selector‬‏ ‏‮Media‬‏ ‏‮Selector‬‏ + ‏‮Description‬‏ ‏‮(ALT‬‏ ‏‮Text)‬‏ + ‏‮Add‬‏ ‏‮a‬‏ ‏‮description‬‏ + ‏‮Save‬‏ ‏‮Processing…‬‏ + ‏‮You‬‏ ‏‮can‬‏ ‏‮only‬‏ ‏‮upload‬‏ ‏‮!!‬‏‏‮{limit}‬‏‏‮!!‬‏ ‏‮files‬‏ ‏‮at‬‏ ‏‮a‬‏ ‏‮time!‬‏ + ‏‮Too‬‏ ‏‮many‬‏ ‏‮uploads!‬‏ + ‏‮Upload‬‏ ‏‮Attachment‬‏ ‏‮Utilities‬‏ + ‏‮Modify‬‏ ‏‮Attachment‬‏ + ‏‮Remove‬‏ ‏‮Attachment‬‏ ‏‮When‬‏ ‏‮others‬‏ ‏‮speak‬‏ ‏‮When‬‏ ‏‮I‬‏ ‏‮speak‬‏ ‏‮!!‬‏‏‮{name}‬‏‏‮!!‬‏ ‏‮-‬‏ ‏‮Audience‬‏ @@ -1964,14 +1972,11 @@ ‏‮Description‬‏ ‏‮Tell‬‏ ‏‮people‬‏ ‏‮a‬‏ ‏‮little‬‏ ‏‮more‬‏ ‏‮about‬‏ ‏‮your‬‏ ‏‮stage‬‏ ‏‮(optional)‬‏ ‏‮Go‬‏ ‏‮Live‬‏ - ‏‮Require‬‏ ‏‮Ticket‬‏ ‏‮Where\'s‬‏ ‏‮the‬‏ ‏‮party?‬‏ ‏‮Sed‬‏ ‏‮tincidunt‬‏ ‏‮aenean‬‏ ‏‮eu,‬‏ ‏‮ultrices‬‏ ‏‮ullamcorper‬‏ ‏‮tristique‬‏ ‏‮habitant.‬‏ ‏‮Ut‬‏ ‏‮integer‬‏ ‏‮pellentesque‬‏ ‏‮sit‬‏ ‏‮malesuada.‬‏ ‏‮Magna‬‏ ‏‮vivamus.‬‏ ‏‮Who’s‬‏ ‏‮invited?‬‏ ‏‮Sed‬‏ ‏‮tincidunt‬‏ ‏‮aenean‬‏ ‏‮eu,‬‏ ‏‮ultrices‬‏ ‏‮ullamcorper‬‏ ‏‮tristique‬‏ ‏‮habitant.‬‏ ‏‮Ut‬‏ ‏‮integer‬‏ ‏‮pellentesque‬‏ ‏‮sit‬‏ ‏‮malesuada.‬‏ ‏‮Magna‬‏ ‏‮vivamus.‬‏ ‏‮{speakerCount}‬‏ ‏‮Added‬‏ - ‏‮Ticket‬‏ ‏‮Required‬‏ - ‏‮Set‬‏ ‏‮a‬‏ ‏‮price‬‏ ‏‮for‬‏ ‏‮admission‬‏ ‏‮to‬‏ ‏‮your‬‏ ‏‮stage.‬‏ ‏‮Stage‬‏ ‏‮Title‬‏ ‏‮What‬‏ ‏‮are‬‏ ‏‮you‬‏ ‏‮gonna‬‏ ‏‮talk‬‏ ‏‮about?‬‏ ‏‮Create‬‏ ‏‮Store‬‏ ‏‮Channel‬‏ @@ -2132,7 +2137,10 @@ ‏‮Activate‬‏ ‏‮Not‬‏ ‏‮authorized‬‏ ‏‮to‬‏ ‏‮enable‬‏ ‏‮test-mode‬‏ ‏‮for‬‏ ‏‮this‬‏ ‏‮application.‬‏ ‏‮Clear‬‏ + ‏‮Failed‬‏ ‏‮to‬‏ ‏‮authorize‬‏ ‏‮app‬‏ + ‏‮Full‬‏ ‏‮URL‬‏ ‏‮Invalid‬‏ ‏‮application‬‏ ‏‮ID‬‏ + ‏‮Invalid‬‏ ‏‮URL‬‏ ‏‮Localhost‬‏ ‏‮Enter‬‏ ‏‮your‬‏ ‏‮Discord‬‏ ‏‮application‬‏ ‏‮ID‬‏ ‏‮to‬‏ ‏‮enable‬‏ ‏‮test‬‏ ‏‮mode‬‏ ‏‮for‬‏ ‏‮that‬‏ ‏‮application.‬‏ ‏‮An‬‏ ‏‮application‬‏ ‏‮in‬‏ ‏‮test‬‏ ‏‮mode‬‏ ‏‮will‬‏ ‏‮allow‬‏ ‏‮you‬‏ ‏‮to‬‏ ‏‮view‬‏ ‏‮related‬‏ ‏‮unpublished‬‏ ‏‮SKUs‬‏ ‏‮and‬‏ ‏‮bypass‬‏ ‏‮related‬‏ ‏‮purchases‬‏ ‏‮to‬‏ ‏‮make‬‏ ‏‮development‬‏ ‏‮easier.‬‏ ‏‮Application‬‏ ‏‮Test‬‏ ‏‮Mode‬‏ @@ -2564,7 +2572,6 @@ ‏‮Exit‬‏ ‏‮and‬‏ ‏‮end‬‏ ‏‮the‬‏ ‏‮Stage‬‏ ‏‮A‬‏ ‏‮Stage‬‏ ‏‮with‬‏ ‏‮no‬‏ ‏‮speakers‬‏ ‏‮will‬‏ ‏‮automatically‬‏ ‏‮end‬‏ ‏‮after‬‏ ‏‮a‬‏ ‏‮few‬‏ ‏‮minutes.‬‏ ‏‮Do‬‏ ‏‮you‬‏ ‏‮want‬‏ ‏‮to‬‏ ‏‮also‬‏ ‏‮end‬‏ ‏‮the‬‏ ‏‮Stage?‬‏ - ‏‮You’re‬‏ ‏‮the‬‏ ‏‮last‬‏ ‏‮event‬‏ ‏‮manager‬‏ ‏‮in‬‏ ‏‮this‬‏ ‏‮Stage.‬‏ ‏‮Show‬‏ ‏‮dropdown‬‏ ‏‮menu‬‏ ‏‮Expression‬‏ ‏‮Picker‬‏ ‏‮Actions‬‏ ‏‮Emoji‬‏ @@ -2684,6 +2691,7 @@ ‏‮Members‬‏ ‏‮will‬‏ ‏‮be‬‏ ‏‮restricted‬‏ ‏‮to‬‏ ‏‮sending‬‏ ‏‮one‬‏ ‏‮message‬‏ ‏‮per‬‏ ‏‮this‬‏ ‏‮interval,‬‏ ‏‮unless‬‏ ‏‮they‬‏ ‏‮have‬‏ ‏‮Manage‬‏ ‏‮Channel‬‏ ‏‮or‬‏ ‏‮Manage‬‏ ‏‮Messages‬‏ ‏‮permissions.‬‏ ‏‮This‬‏ ‏‮is‬‏ ‏‮the‬‏ ‏‮channel‬‏ ‏‮we‬‏ ‏‮send‬‏ ‏‮system‬‏ ‏‮event‬‏ ‏‮messages‬‏ ‏‮to.‬‏ ‏‮These‬‏ ‏‮can‬‏ ‏‮be‬‏ ‏‮turned‬‏ ‏‮off‬‏ ‏‮at‬‏ ‏‮any‬‏ ‏‮time.‬‏ ‏‮Send‬‏ ‏‮helpful‬‏ ‏‮tips‬‏ ‏‮for‬‏ ‏‮server‬‏ ‏‮setup.‬‏ + ‏‮Allow‬‏ ‏‮members‬‏ ‏‮to‬‏ ‏‮reply‬‏ ‏‮to‬‏ ‏‮welcome‬‏ ‏‮messages‬‏ ‏‮with‬‏ ‏‮a‬‏ ‏‮sticker.‬‏ ‏‮Send‬‏ ‏‮a‬‏ ‏‮random‬‏ ‏‮welcome‬‏ ‏‮message‬‏ ‏‮when‬‏ ‏‮someone‬‏ ‏‮joins‬‏ ‏‮this‬‏ ‏‮server.‬‏ ‏‮Send‬‏ ‏‮a‬‏ ‏‮message‬‏ ‏‮when‬‏ ‏‮someone‬‏ ‏‮boosts‬‏ ‏‮this‬‏ ‏‮server.‬‏ ‏‮Members‬‏ ‏‮are‬‏ ‏‮automatically‬‏ ‏‮kicked‬‏ ‏‮when‬‏ ‏‮they‬‏ ‏‮disconnect‬‏ ‏‮unless‬‏ ‏‮a‬‏ ‏‮role‬‏ ‏‮is‬‏ ‏‮assigned.‬‏ @@ -3352,6 +3360,7 @@ ‏‮Missing‬‏ ‏‮permission‬‏ ‏‮to‬‏ ‏‮connect.‬‏ ‏‮There‬‏ ‏‮{count}‬‏ ‏‮associated‬‏ ‏‮with‬‏ ‏‮this‬‏ ‏‮channel.‬‏ ‏‮Deleting‬‏ ‏‮this‬‏ ‏‮channel‬‏ ‏‮will‬‏ ‏‮also‬‏ ‏‮delete‬‏ ‏‮the‬‏ ‏‮{count}‬‏‏‮.‬‏ ‏‮Where‬‏ ‏‮is‬‏ ‏‮your‬‏ ‏‮event?‬‏ + ‏‮Click‬‏ ‏‮to‬‏ ‏‮copy‬‏ ‏‮event‬‏ ‏‮link‬‏ ‏‮We‬‏ ‏‮recommend‬‏ ‏‮an‬‏ ‏‮image‬‏ ‏‮that\'s‬‏ ‏‮at‬‏ ‏‮least‬‏ ‏‮800px‬‏ ‏‮wide‬‏ ‏‮and‬‏ ‏‮400px‬‏ ‏‮tall.‬‏ ‏‮Add‬‏ ‏‮a‬‏ ‏‮Cover‬‏ ‏‮Photo‬‏ ‏‮(Optional)‬‏ ‏‮Remove‬‏ ‏‮Photo‬‏ @@ -3392,6 +3401,7 @@ ‏‮Or,‬‏ ‏‮send‬‏ ‏‮an‬‏ ‏‮event‬‏ ‏‮invite‬‏ ‏‮link‬‏ ‏‮to‬‏ ‏‮a‬‏ ‏‮friend‬‏ ‏‮Invite‬‏ ‏‮friends‬‏ ‏‮to‬‏ ‏‮event‬‏ ‏‮Join‬‏ + ‏‮Event‬‏ ‏‮Link‬‏ ‏‮Copied!‬‏ ‏‮{count}‬‏ ‏‮Listening‬‏ ‏‮You‬‏ ‏‮cannot‬‏ ‏‮edit‬‏ ‏‮the‬‏ ‏‮location‬‏ ‏‮type‬‏ ‏‮of‬‏ ‏‮an‬‏ ‏‮event‬‏ ‏‮after‬‏ ‏‮it‬‏ ‏‮starts.‬‏ ‏‮You‬‏ ‏‮do‬‏ ‏‮not‬‏ ‏‮have‬‏ ‏‮permission.‬‏ @@ -3688,6 +3698,7 @@ ‏‮Do‬‏ ‏‮you‬‏ ‏‮want‬‏ ‏‮to‬‏ ‏‮make‬‏ ‏‮your‬‏ ‏‮entire‬‏ ‏‮server‬‏ ‏‮premium‬‏ ‏‮or‬‏ ‏‮just‬‏ ‏‮a‬‏ ‏‮portion‬‏ ‏‮of‬‏ ‏‮its‬‏ ‏‮channels?‬‏ ‏‮Important‬‏ ‏‮decision‬‏ ‏‮time.‬‏ ‏‮Monetization‬‏ ‏‮Format‬‏ + ‏‮{price}‬‏‏‮/‬‏‏‮{interval}‬‏ ‏‮Publish‬‏ ‏‮Tier‬‏ ‏‮Any‬‏ ‏‮changes‬‏ ‏‮will‬‏ ‏‮be‬‏ ‏‮saved‬‏ ‏‮and‬‏ ‏‮the‬‏ ‏‮tier‬‏ ‏‮will‬‏ ‏‮immediately‬‏ ‏‮become‬‏ ‏‮visible‬‏ ‏‮to‬‏ ‏‮members‬‏ ‏‮of‬‏ ‏‮your‬‏ ‏‮server.‬‏ ‏‮Are‬‏ ‏‮you‬‏ ‏‮ready‬‏ ‏‮to‬‏ ‏‮publish‬‏ ‏‮this‬‏ ‏‮tier?‬‏ @@ -3789,8 +3800,6 @@ ‏‮Joined‬‏ ‏‮{joinedDate}‬‏ ‏‮Premium‬‏ ‏‮Premium‬‏ - ‏‮Inside,‬‏ ‏‮we‬‏ ‏‮both‬‏ ‏‮know‬‏ ‏‮what\'s‬‏ ‏‮been‬‏ ‏‮going‬‏ ‏‮on‬‏ - ‏‮Your‬‏ ‏‮heart\'s‬‏ ‏‮been‬‏ ‏‮aching,‬‏ ‏‮but‬‏ ‏‮you\'re‬‏ ‏‮too‬‏ ‏‮shy‬‏ ‏‮to‬‏ ‏‮say‬‏ ‏‮it‬‏ ‏‮Manage‬‏ ‏‮Tiers‬‏ ‏‮Edit‬‏ ‏‮Server‬‏ ‏‮Rules‬‏ ‏‮Server‬‏ ‏‮Rules‬‏ @@ -4689,6 +4698,8 @@ ‏‮Turn‬‏ ‏‮on‬‏ ‏‮video‬‏ ‏‮to‬‏ ‏‮wave‬‏ ‏‮hello‬‏ ‏‮to‬‏ ‏‮each‬‏ ‏‮other,‬‏ ‏‮stream,‬‏ ‏‮or‬‏ ‏‮show‬‏ ‏‮off‬‏ ‏‮your‬‏ ‏‮pets.‬‏ ‏‮This‬‏ ‏‮server‬‏ ‏‮now‬‏ ‏‮has‬‏ ‏‮Video‬‏ ‏‮Chat!‬‏ ‏‮Ready‬‏ ‏‮to‬‏ ‏‮talk?‬‏ ‏‮Grab‬‏ ‏‮a‬‏ ‏‮seat‬‏ ‏‮in‬‏ ‏‮this‬‏ ‏‮voice‬‏ ‏‮channel‬‏ ‏‮so‬‏ ‏‮people‬‏ ‏‮know‬‏ ‏‮you\'re‬‏ ‏‮around‬‏ ‏‮to‬‏ ‏‮hang‬‏ ‏‮out.‬‏ + ‏‮Voice‬‏ ‏‮channels‬‏ ‏‮are‬‏ ‏‮for‬‏ ‏‮hanging‬‏ ‏‮out.‬‏ ‏‮When‬‏ ‏‮you’re‬‏ ‏‮ready‬‏ ‏‮to‬‏ ‏‮talk,‬‏ ‏‮just‬‏ ‏‮hop‬‏ ‏‮in.‬‏ ‏‮Friends‬‏ ‏‮will‬‏ ‏‮be‬‏ ‏‮able‬‏ ‏‮to‬‏ ‏‮see‬‏ ‏‮and‬‏ ‏‮join‬‏ ‏‮you.‬‏ ‏‮It’s‬‏ ‏‮like‬‏ ‏‮using‬‏ ‏‮telepathy‬‏ ‏‮to‬‏ ‏‮say‬‏ ‏‮hi.‬‏ + ‏‮No‬‏ ‏‮one\'s‬‏ ‏‮here‬‏ ‏‮yet‬‏ ‏‮Servers‬‏ ‏‮sidebar‬‏ ‏‮Happening‬‏ ‏‮Now‬‏ ‏‮Hardware‬‏ ‏‮Acceleration‬‏ @@ -4956,9 +4967,11 @@ ‏‮Dialog‬‏ ‏‮Icon‬‏ ‏‮Image‬‏ ‏‮Image‬‏ ‏‮Actions‬‏ + ‏‮Alt‬‏ ‏‮Image‬‏ ‏‮compression‬‏ ‏‮Auto-compress‬‏ ‏‮Images‬‏ ‏‮When‬‏ ‏‮this‬‏ ‏‮is‬‏ ‏‮on,‬‏ ‏‮images‬‏ ‏‮sent‬‏ ‏‮will‬‏ ‏‮be‬‏ ‏‮compressed.‬‏ ‏‮Get‬‏ ‏‮Nitro‬‏ ‏‮to‬‏ ‏‮send‬‏ ‏‮a‬‏ ‏‮crystal‬‏ ‏‮clear‬‏ ‏‮image!‬‏ ‏‮**[Get‬‏ ‏‮Nitro](‬‏‏‮{nitroLink}‬‏‏‮)**‬‏ + ‏‮Image‬‏ ‏‮descriptions‬‏ ‏‮are‬‏ ‏‮used‬‏ ‏‮to‬‏ ‏‮describe‬‏ ‏‮images‬‏ ‏‮for‬‏ ‏‮screenreaders.‬‏ ‏‮Images‬‏ ‏‮Attachment‬‏ ‏‮file‬‏ ‏‮type:‬‏ ‏‮!!‬‏‏‮{fileType}‬‏‏‮!!‬‏ ‏‮!!‬‏‏‮{name}‬‏‏‮!!‬‏ ‏‮Emoji‬‏ @@ -5315,6 +5328,7 @@ ‏‮[Connect‬‏ ‏‮Twitch‬‏ ‏‮or‬‏ ‏‮YouTube‬‏ ‏‮accounts](onClick)‬‏ ‏‮Looking‬‏ ‏‮for‬‏ ‏‮more‬‏ ‏‮servers‬‏ ‏‮to‬‏ ‏‮join?‬‏ ‏‮**Join**‬‏ ‏‮a‬‏ ‏‮server‬‏ ‏‮with‬‏ ‏‮an‬‏ ‏‮invite‬‏ ‏‮code‬‏ ‏‮or‬‏ ‏‮link.‬‏ + ‏‮Join‬‏ ‏‮Muted‬‏ ‏‮Enter‬‏ ‏‮an‬‏ ‏‮invite‬‏ ‏‮and‬‏ ‏‮join‬‏ ‏‮your‬‏ ‏‮friend\'s‬‏ ‏‮server.‬‏ ‏‮Join‬‏ ‏‮a‬‏ ‏‮server‬‏ ‏‮Join‬‏ ‏‮a‬‏ ‏‮Server‬‏ ‏‮with‬‏ ‏‮an‬‏ ‏‮Invite‬‏ ‏‮Link‬‏ @@ -5946,8 +5960,8 @@ ‏‮Members‬‏ ‏‮with‬‏ ‏‮this‬‏ ‏‮permission‬‏ ‏‮can‬‏ ‏‮drag‬‏ ‏‮other‬‏ ‏‮members‬‏ ‏‮out‬‏ ‏‮of‬‏ ‏‮this‬‏ ‏‮channel.‬‏ ‏‮They‬‏ ‏‮can‬‏ ‏‮only‬‏ ‏‮move‬‏ ‏‮members‬‏ ‏‮between‬‏ ‏‮channels‬‏ ‏‮both‬‏ ‏‮they‬‏ ‏‮and‬‏ ‏‮the‬‏ ‏‮member‬‏ ‏‮they‬‏ ‏‮are‬‏ ‏‮moving‬‏ ‏‮have‬‏ ‏‮access.‬‏ ‏‮Move‬‏ ‏‮To‬‏ ‏‮User‬‏ ‏‮has‬‏ ‏‮been‬‏ ‏‮moved‬‏ ‏‮to‬‏ ‏‮the‬‏ ‏‮selected‬‏ ‏‮channel.‬‏ - ‏‮Alert‬‏ ‏‮Cleared‬‏ - ‏‮No‬‏ ‏‮Alert‬‏ ‏‮Showing‬‏ + ‏‮Alert‬‏ ‏‮Cleared‬‏ + ‏‮No‬‏ ‏‮Alert‬‏ ‏‮Showing‬‏ ‏‮New‬‏ ‏‮notification‬‏ ‏‮Remove‬‏ ‏‮%1$s‬‏ ‏‮More‬‏ ‏‮than‬‏ %1$d ‏‮new‬‏ ‏‮notifications‬‏ @@ -7563,6 +7577,8 @@ ‏‮up‬‏ ‏‮to‬‏ ‏‮3‬‏ ‏‮days‬‏ ‏‮up‬‏ ‏‮to‬‏ ‏‮7‬‏ ‏‮days‬‏ ‏‮up‬‏ ‏‮to‬‏ ‏‮7‬‏ ‏‮days‬‏ + ‏‮This‬‏ ‏‮server‬‏ ‏‮currently‬‏ ‏‮has‬‏ ‏‮{numSubscriptionsApplied}‬‏ ‏‮applied.‬‏ + ‏‮This‬‏ ‏‮server‬‏ ‏‮currently‬‏ ‏‮has‬‏ ‏‮{numSubscriptionsApplied}‬‏ ‏‮applied.‬‏ ‏‮It‬‏ ‏‮has‬‏ ‏‮unlocked‬‏ ‏‮the‬‏ ‏‮!!‬‏‏‮{planName}‬‏‏‮!!‬‏ ‏‮plan.‬‏ ‏‮You‬‏ ‏‮did‬‏ ‏‮it!‬‏ ‏‮You‬‏ ‏‮are‬‏ ‏‮here!‬‏ ‏‮{numSubscriptionsApplied}‬‏ @@ -7908,6 +7924,7 @@ ‏‮Discord‬‏ ‏‮is‬‏ ‏‮connected‬‏ ‏‮to‬‏ ‏‮your‬‏ ‏‮real-time‬‏ ‏‮communication‬‏ ‏‮server‬‏ ‏‮on‬‏ ‏‮**‬‏‏‮{hostname}‬‏‏‮**‬‏ ‏‮with‬‏ ‏‮an‬‏ ‏‮average‬‏ ‏‮ping‬‏ ‏‮of‬‏ ‏‮**‬‏‏‮{averagePing}‬‏ ‏‮ms**.‬‏ ‏‮The‬‏ ‏‮last‬‏ ‏‮ping‬‏ ‏‮was‬‏ ‏‮**‬‏‏‮{lastPing}‬‏ ‏‮ms**.‬‏ ‏‮If‬‏ ‏‮the‬‏ ‏‮ping‬‏ ‏‮is‬‏ ‏‮not‬‏ ‏‮consistent‬‏ ‏‮or‬‏ ‏‮more‬‏ ‏‮than‬‏ ‏‮{badPing}‬‏ ‏‮ms,‬‏ ‏‮consider‬‏ ‏‮asking‬‏ ‏‮the‬‏ ‏‮server‬‏ ‏‮admins‬‏ ‏‮or‬‏ ‏‮owner‬‏ ‏‮to‬‏ ‏‮switch‬‏ ‏‮to‬‏ ‏‮a‬‏ ‏‮different‬‏ ‏‮region‬‏ ‏‮under‬‏ ‏‮the‬‏ ‏‮Voice‬‏ ‏‮Channel‬‏ ‏‮Settings.‬‏ ‏‮Discord‬‏ ‏‮is‬‏ ‏‮connected‬‏ ‏‮to‬‏ ‏‮your‬‏ ‏‮real-time‬‏ ‏‮communication‬‏ ‏‮server‬‏ ‏‮on‬‏ ‏‮**‬‏‏‮{hostname}‬‏‏‮**‬‏ ‏‮with‬‏ ‏‮an‬‏ ‏‮average‬‏ ‏‮ping‬‏ ‏‮of‬‏ ‏‮**‬‏‏‮{averagePing}‬‏ ‏‮ms**.‬‏ ‏‮The‬‏ ‏‮last‬‏ ‏‮ping‬‏ ‏‮was‬‏ ‏‮**‬‏‏‮{lastPing}‬‏ ‏‮ms**.‬‏ ‏‮Outbound‬‏ ‏‮packet‬‏ ‏‮loss‬‏ ‏‮rate‬‏ ‏‮is‬‏ ‏‮**‬‏‏‮{outboundLossRate}‬‏‏‮%%**.‬‏ ‏‮If‬‏ ‏‮the‬‏ ‏‮ping‬‏ ‏‮is‬‏ ‏‮not‬‏ ‏‮consistent‬‏ ‏‮or‬‏ ‏‮more‬‏ ‏‮than‬‏ ‏‮{badPing}‬‏ ‏‮ms,‬‏ ‏‮consider‬‏ ‏‮asking‬‏ ‏‮the‬‏ ‏‮server‬‏ ‏‮admins‬‏ ‏‮or‬‏ ‏‮owner‬‏ ‏‮to‬‏ ‏‮switch‬‏ ‏‮to‬‏ ‏‮a‬‏ ‏‮different‬‏ ‏‮region‬‏ ‏‮under‬‏ ‏‮the‬‏ ‏‮Voice‬‏ ‏‮Channel‬‏ ‏‮Settings.‬‏ ‏‮If‬‏ ‏‮outbound‬‏ ‏‮packet‬‏ ‏‮loss‬‏ ‏‮rate‬‏ ‏‮is‬‏ ‏‮more‬‏ ‏‮than‬‏ ‏‮{badLossRate}‬‏‏‮%%,‬‏ ‏‮you‬‏ ‏‮may‬‏ ‏‮sound‬‏ ‏‮robotic.‬‏ ‏‮Locked‬‏ ‏‮and‬‏ ‏‮loaded!‬‏ ‏‮Discord‬‏ ‏‮has‬‏ ‏‮established‬‏ ‏‮a‬‏ ‏‮secure‬‏ ‏‮connection‬‏ ‏‮to‬‏ ‏‮your‬‏ ‏‮real-time‬‏ ‏‮communication‬‏ ‏‮server‬‏ ‏‮and‬‏ ‏‮is‬‏ ‏‮attempting‬‏ ‏‮to‬‏ ‏‮send‬‏ ‏‮data.‬‏ + ‏‮Camera‬‏ ‏‮RTC‬‏ ‏‮Debug:‬‏ ‏‮{context}‬‏ ‏‮Open‬‏ ‏‮Debug‬‏ ‏‮Panel‬‏ ‏‮Inbound‬‏ @@ -9598,6 +9615,7 @@ ‏‮Create‬‏ ‏‮Start‬‏ ‏‮Menu‬‏ ‏‮Shortcut‬‏ ‏‮When‬‏ ‏‮installing‬‏ ‏‮games‬‏ ‏‮from‬‏ ‏‮the‬‏ ‏‮Discord‬‏ ‏‮Store.‬‏ ‏‮Also‬‏ ‏‮makes‬‏ ‏‮your‬‏ ‏‮games‬‏ ‏‮discoverable‬‏ ‏‮via‬‏ ‏‮windows‬‏ ‏‮search.‬‏ ‏‮HypeSquad‬‏ + ‏‮With‬‏ ‏‮image‬‏ ‏‮descriptions‬‏ ‏‮Unsupported‬‏ ‏‮image‬‏ ‏‮format.‬‏ ‏‮You‬‏ ‏‮can‬‏ ‏‮upload‬‏ ‏‮a‬‏ ‏‮PNG,‬‏ ‏‮JPG‬‏ ‏‮or‬‏ ‏‮an‬‏ ‏‮animated‬‏ ‏‮GIF.‬‏ ‏‮Action‬‏ ‏‮Chat‬‏ diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index cdf9d4fc3c..a8419529dc 100644 --- a/app/src/main/res/values-bg/strings.xml +++ b/app/src/main/res/values-bg/strings.xml @@ -1897,10 +1897,7 @@ Описание Кажи на хората малко повече за твоята сцена (по желание) Предавай на живо - Изискване на билет {speakerCount} - Изисква се билет - Задай цена за допускане до твоята сцена. Заглавие на сцената За какво ще си говорите? Създай канал на магазин @@ -2453,7 +2450,6 @@ Изход и край на сцената Сцена без говорители ще завърши автоматично след няколко минути. Искаш ли също така да завършиш тази сцена? - Ти си последният мениджър на събитие в тази сцена. Показване на падащото меню Емотикони GIF-ове diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index ba255e0216..9d2ec3fa61 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -1902,10 +1902,7 @@ Popis Pověz lidem o svém pódiu něco bližšího (nepovinné) Roztáhnout oponu - Vyžadovat vstupenku {speakerCount} - Vyžaduje vstupenku - Nastav cenu za přístup k tvému pódiu. Název pódia O čem budeš mluvit? Vytvořit kanál obchodu @@ -2458,7 +2455,6 @@ Odejít a ukončit pódium Pódium bez řečníků se po pár minutách automaticky ukončí. Chceš pódium také ukončit? - Jsi poslední pořadatel na tomto pódiu. Zobrazit rozbalovací nabídku Smajlíci GIFy diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index c86267dd36..c6d28c9bce 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -1902,10 +1902,7 @@ Beskrivelse Fortæl folk lidt mere om dit podie (valgfrit) Go Live - Kræv billet {speakerCount} tilføjet - Der kræves billet - Angiv en pris for adgang til dit podie. Podietitel Hvad vil du tale om? Opret Store-kanal @@ -2458,7 +2455,6 @@ Forlad og afslut podiet Et podie uden talere vil blive afsluttet automatisk efter få minutter. Ønsker du også at afslutte podiet? - Du er den sidste eventmanager på dette podie. Vis rullemenuen Emoji GIF’er diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 597d2f42ba..d48ca33e2e 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -1907,10 +1907,7 @@ Beschreibung Erzähl etwas über deine Stage (optional) Live gehen - Ticket erforderlich {speakerCount} hinzugefügt - Ticket ist erforderlich - Eintrittspreis für deine Stage angeben Stage-Titel Worüber möchtest du sprechen? Store-Kanal erstellen @@ -2462,7 +2459,6 @@ Verlassen und Podium beenden Ein Podium ohne Sprecher wird nach einigen Minuten automatisch beendet. Willst du auch das Podium beenden? - Du bist der einzige Eventmanager für diese Stage. Drop-down-Menü anzeigen Emojis GIFs diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 224ff4dfd8..09a3b63884 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -1897,10 +1897,7 @@ Περιγραφή Πες στον κόσμο δυο λόγια σχετικά με τη σκηνή σου (προαιρετικό) Πάμε Ζωντανά - Απαίτηση εισιτηρίου Έγινε προσθήκη {speakerCount} - Απαιτείται εισιτήριο - Όρισε μια τιμή για είσοδο στη σκηνή σου. Τίτλος Σκηνής Για ποιο θέμα θα μιλήσεις; Δημιουργία καναλιού καταστήματος @@ -2453,7 +2450,6 @@ Έξοδος και τερματισμός σκηνής Μια σκηνή χωρίς ομιλητές τερματίζει αυτόματα μετά από λίγα λεπτά. Θέλεις επίσης να τερματίσεις τη σκηνή; - Είσαι ο τελευταίος διαχειριστής εκδηλώσεων σε αυτήν τη Σκηνή. Εμφάνιση αναπτυσσόμενου μενού Emoji GIF diff --git a/app/src/main/res/values-en-rXA/plurals.xml b/app/src/main/res/values-en-rXA/plurals.xml index c8fdb9c293..3ecffcdd6b 100644 --- a/app/src/main/res/values-en-rXA/plurals.xml +++ b/app/src/main/res/values-en-rXA/plurals.xml @@ -1344,6 +1344,14 @@ [»{numSubscriptionsApplied}« βööšţ one two] [»{numSubscriptionsApplied}« βööšţš one two] + + [»{numSubscriptionsApplied}« βööšţ one two] + [»{numSubscriptionsApplied}« βööšţš one two] + + + [»{numSubscriptionsApplied}« βööšţ one two] + [»{numSubscriptionsApplied}« βööšţš one two] + [»{numSubscriptionsApplied}« βööšţ one two] [»{numSubscriptionsApplied}« βööšţš one two] diff --git a/app/src/main/res/values-en-rXA/strings.xml b/app/src/main/res/values-en-rXA/strings.xml index 11041b8499..18c3038cf5 100644 --- a/app/src/main/res/values-en-rXA/strings.xml +++ b/app/src/main/res/values-en-rXA/strings.xml @@ -669,7 +669,15 @@ [ûñķñöŵñ one two] [Fîļé Šéļéçţöŕ one two] [Ḿéðîå Šéļéçţöŕ one two three] + [Ðéšçŕîþţîöñ (ÅĻŢ Ţéхţ) one two three] + [Åðð å ðéšçŕîþţîöñ one two three] + [ŠåVé one] [Þŕöçéššîñĝ… one two] + [Ýöû çåñ öñļý ûþļöåð ¡¡»{limit}«¡¡ ƒîļéš åţ å ţîḿé¡ one two three four five] + [Ţöö ḿåñý ûþļöåðš¡ one two three] + [Ûþļöåð Åţţåçĥḿéñţ Ûţîļîţîéš one two three four] + [Ḿöðîƒý Åţţåçĥḿéñţ one two three] + [ŔéḿöVé Åţţåçĥḿéñţ one two three] [Ŵĥéñ öţĥéŕš šþéåķ one two three] [Ŵĥéñ Î šþéåķ one two] [¡¡»{name}«¡¡ - Åûðîéñçé one two three] @@ -1964,14 +1972,11 @@ [Ðéšçŕîþţîöñ one two] [Ţéļļ þéöþļé å ļîţţļé ḿöŕé åɓöûţ ýöûŕ šţåĝé (öþţîöñåļ) one two three four five six] [Ĝö ĻîVé one two] - [ŔéQûîŕé Ţîçķéţ one two three] [Ŵĥéŕé\'š ţĥé þåŕţý¿ one two three] [Šéð ţîñçîðûñţ åéñéåñ éû, ûļţŕîçéš ûļļåḿçöŕþéŕ ţŕîšţîQûé ĥåɓîţåñţ. Ûţ îñţéĝéŕ þéļļéñţéšQûé šîţ ḿåļéšûåðå. Ḿåĝñå VîVåḿûš. one two three four five six seven eight nine ten eleven twelve thirteen fourteen fiveteen sixteen seventeen nineteen twenty] [Ŵĥö’š îñVîţéð¿ one two three] [Šéð ţîñçîðûñţ åéñéåñ éû, ûļţŕîçéš ûļļåḿçöŕþéŕ ţŕîšţîQûé ĥåɓîţåñţ. Ûţ îñţéĝéŕ þéļļéñţéšQûé šîţ ḿåļéšûåðå. Ḿåĝñå VîVåḿûš. one two three four five six seven eight nine ten eleven twelve thirteen fourteen fiveteen sixteen seventeen nineteen twenty] [»{speakerCount}« Åððéð one two] - [Ţîçķéţ ŔéQûîŕéð one two three] - [Šéţ å þŕîçé ƒöŕ åðḿîššîöñ ţö ýöûŕ šţåĝé. one two three four five] [Šţåĝé Ţîţļé one two] [Ŵĥåţ åŕé ýöû ĝöññå ţåļķ åɓöûţ¿ one two three four] [Çŕéåţé Šţöŕé Çĥåññéļ one two three] @@ -2132,7 +2137,10 @@ [ÅçţîVåţé one two] [Ñöţ åûţĥöŕîžéð ţö éñåɓļé ţéšţ-ḿöðé ƒöŕ ţĥîš åþþļîçåţîöñ. one two three four five six seven] [Çļéåŕ one] + [Fåîļéð ţö åûţĥöŕîžé åþþ one two three] + [Fûļļ ÛŔĻ one two] [ÎñVåļîð åþþļîçåţîöñ ÎÐ one two three] + [ÎñVåļîð ÛŔĻ one two] [Ļöçåļĥöšţ one two] [Éñţéŕ ýöûŕ Ðîšçöŕð åþþļîçåţîöñ ÎÐ ţö éñåɓļé ţéšţ ḿöðé ƒöŕ ţĥåţ åþþļîçåţîöñ. Åñ åþþļîçåţîöñ îñ ţéšţ ḿöðé ŵîļļ åļļöŵ ýöû ţö Vîéŵ ŕéļåţéð ûñþûɓļîšĥéð ŠĶÛš åñð ɓýþåšš ŕéļåţéð þûŕçĥåšéš ţö ḿåķé ðéVéļöþḿéñţ éåšîéŕ. one two three four five six seven eight nine ten eleven twelve thirteen fourteen fiveteen sixteen seventeen] [Åþþļîçåţîöñ Ţéšţ Ḿöðé one two three] @@ -2564,7 +2572,6 @@ [Éхîţ åñð éñð ţĥé Šţåĝé one two three] [Å Šţåĝé ŵîţĥ ñö šþéåķéŕš ŵîļļ åûţöḿåţîçåļļý éñð åƒţéŕ å ƒéŵ ḿîñûţéš. one two three four five six seven eight] [Ðö ýöû ŵåñţ ţö åļšö éñð ţĥé Šţåĝé¿ one two three four] - [Ýöû’ŕé ţĥé ļåšţ éVéñţ ḿåñåĝéŕ îñ ţĥîš Šţåĝé. one two three four five] [Šĥöŵ ðŕöþðöŵñ ḿéñû one two three] [Éхþŕéššîöñ Þîçķéŕ Åçţîöñš one two three] [Éḿöĵî one] @@ -2684,6 +2691,7 @@ [Ḿéḿɓéŕš ŵîļļ ɓé ŕéšţŕîçţéð ţö šéñðîñĝ öñé ḿéššåĝé þéŕ ţĥîš îñţéŕVåļ, ûñļéšš ţĥéý ĥåVé Ḿåñåĝé Çĥåññéļ öŕ Ḿåñåĝé Ḿéššåĝéš þéŕḿîššîöñš. one two three four five six seven eight nine ten eleven twelve thirteen] [Ţĥîš îš ţĥé çĥåññéļ ŵé šéñð šýšţéḿ éVéñţ ḿéššåĝéš ţö. Ţĥéšé çåñ ɓé ţûŕñéð öƒƒ åţ åñý ţîḿé. one two three four five six seven eight nine ten] [Šéñð ĥéļþƒûļ ţîþš ƒöŕ šéŕVéŕ šéţûþ. one two three four] + [Åļļöŵ ḿéḿɓéŕš ţö ŕéþļý ţö ŵéļçöḿé ḿéššåĝéš ŵîţĥ å šţîçķéŕ. one two three four five six seven] [Šéñð å ŕåñðöḿ ŵéļçöḿé ḿéššåĝé ŵĥéñ šöḿéöñé ĵöîñš ţĥîš šéŕVéŕ. one two three four five six seven] [Šéñð å ḿéššåĝé ŵĥéñ šöḿéöñé ɓööšţš ţĥîš šéŕVéŕ. one two three four five six] [Ḿéḿɓéŕš åŕé åûţöḿåţîçåļļý ķîçķéð ŵĥéñ ţĥéý ðîšçöññéçţ ûñļéšš å ŕöļé îš åššîĝñéð. one two three four five six seven eight nine] @@ -3352,6 +3360,7 @@ [Ḿîššîñĝ þéŕḿîššîöñ ţö çöññéçţ. one two three four] [Ţĥéŕé »{count}« åššöçîåţéð ŵîţĥ ţĥîš çĥåññéļ. Ðéļéţîñĝ ţĥîš çĥåññéļ ŵîļļ åļšö ðéļéţé ţĥé »{count}«. one two three four five six seven eight nine] [Ŵĥéŕé îš ýöûŕ éVéñţ¿ one two three] + [Çļîçķ ţö çöþý éVéñţ ļîñķ one two three] [Ŵé ŕéçöḿḿéñð åñ îḿåĝé ţĥåţ\'š åţ ļéåšţ 800þх ŵîðé åñð 400þх ţåļļ. one two three four five six seven eight nine ten eleven twelve thirteen] [Åðð å ÇöVéŕ Þĥöţö (Öþţîöñåļ) one two three four] [ŔéḿöVé Þĥöţö one two] @@ -3392,6 +3401,7 @@ [Öŕ, šéñð åñ éVéñţ îñVîţé ļîñķ ţö å ƒŕîéñð one two three four five] [ÎñVîţé ƒŕîéñðš ţö éVéñţ one two three] [Ĵöîñ one] + [ÉVéñţ Ļîñķ Çöþîéð¡ one two three] [»{count}« Ļîšţéñîñĝ one two] [Ýöû çåññöţ éðîţ ţĥé ļöçåţîöñ ţýþé öƒ åñ éVéñţ åƒţéŕ îţ šţåŕţš. one two three four five six seven] [Ýöû ðö ñöţ ĥåVé þéŕḿîššîöñ. one two three four] @@ -3688,6 +3698,7 @@ [Ðö ýöû ŵåñţ ţö ḿåķé ýöûŕ éñţîŕé šéŕVéŕ þŕéḿîûḿ öŕ ĵûšţ å þöŕţîöñ öƒ îţš çĥåññéļš¿ one two three four five six seven eight nine] [Îḿþöŕţåñţ ðéçîšîöñ ţîḿé. one two three] [Ḿöñéţîžåţîöñ Föŕḿåţ one two three] + [»{price}«/»{interval}« one] [Þûɓļîšĥ Ţîéŕ one two] [Åñý çĥåñĝéš ŵîļļ ɓé šåVéð åñð ţĥé ţîéŕ ŵîļļ îḿḿéðîåţéļý ɓéçöḿé Vîšîɓļé ţö ḿéḿɓéŕš öƒ ýöûŕ šéŕVéŕ. one two three four five six seven eight nine ten eleven] [Åŕé ýöû ŕéåðý ţö þûɓļîšĥ ţĥîš ţîéŕ¿ one two three four] @@ -3789,8 +3800,6 @@ [Ĵöîñéð »{joinedDate}« one two] [Þŕéḿîûḿ one two] [Þŕéḿîûḿ one two] - [Îñšîðé, ŵé ɓöţĥ ķñöŵ ŵĥåţ\'š ɓééñ ĝöîñĝ öñ one two three four five] - [Ýöûŕ ĥéåŕţ\'š ɓééñ åçĥîñĝ, ɓûţ ýöû\'ŕé ţöö šĥý ţö šåý îţ one two three four five six seven] [Ḿåñåĝé Ţîéŕš one two] [Éðîţ ŠéŕVéŕ Ŕûļéš one two three] [ŠéŕVéŕ Ŕûļéš one two] @@ -4689,6 +4698,8 @@ [Ţûŕñ öñ Vîðéö ţö ŵåVé ĥéļļö ţö éåçĥ öţĥéŕ, šţŕéåḿ, öŕ šĥöŵ öƒƒ ýöûŕ þéţš. one two three four five six seven eight] [Ţĥîš šéŕVéŕ ñöŵ ĥåš νîðéö Çĥåţ¡ one two three four] [Ŕéåðý ţö ţåļķ¿ Ĝŕåɓ å šéåţ îñ ţĥîš Vöîçé çĥåññéļ šö þéöþļé ķñöŵ ýöû\'ŕé åŕöûñð ţö ĥåñĝ öûţ. one two three four five six seven eight nine ten] + [νöîçé çĥåññéļš åŕé ƒöŕ ĥåñĝîñĝ öûţ. Ŵĥéñ ýöû’ŕé ŕéåðý ţö ţåļķ, ĵûšţ ĥöþ îñ. Fŕîéñðš ŵîļļ ɓé åɓļé ţö šéé åñð ĵöîñ ýöû. Îţ’š ļîķé ûšîñĝ ţéļéþåţĥý ţö šåý ĥî. one two three four five six seven eight nine ten eleven twelve thirteen fourteen fiveteen sixteen seventeen nineteen twenty one two three four five six seven] + [Ñö öñé\'š ĥéŕé ýéţ one two three] [ŠéŕVéŕš šîðéɓåŕ one two three] [Ĥåþþéñîñĝ Ñöŵ one two] [Ĥåŕðŵåŕé Åççéļéŕåţîöñ one two three] @@ -4956,9 +4967,11 @@ [Ðîåļöĝ Îçöñ one two] [Îḿåĝé one] [Îḿåĝé Åçţîöñš one two] + [Åļţ one] [Îḿåĝé çöḿþŕéššîöñ one two three] [Åûţö-çöḿþŕéšš Îḿåĝéš one two three] [Ŵĥéñ ţĥîš îš öñ, îḿåĝéš šéñţ ŵîļļ ɓé çöḿþŕéššéð. Ĝéţ Ñîţŕö ţö šéñð å çŕýšţåļ çļéåŕ îḿåĝé¡ **[Ĝéţ Ñîţŕö](»{nitroLink}«)** one two three four five six seven eight nine ten eleven twelve thirteen fourteen fiveteen sixteen seventeen nineteen] + [Îḿåĝé ðéšçŕîþţîöñš åŕé ûšéð ţö ðéšçŕîɓé îḿåĝéš ƒöŕ šçŕééñŕéåðéŕš. one two three four five six seven] [Îḿåĝéš one two] [Åţţåçĥḿéñţ ƒîļé ţýþé: ¡¡»{fileType}«¡¡ one two three four] [¡¡»{name}«¡¡ Éḿöĵî one two] @@ -5315,6 +5328,7 @@ [[Çöññéçţ Ţŵîţçĥ öŕ ÝöûŢûɓé åççöûñţš](öñÇļîçķ) one two three four five] [Ļööķîñĝ ƒöŕ ḿöŕé šéŕVéŕš ţö ĵöîñ¿ one two three four] [**Ĵöîñ** å šéŕVéŕ ŵîţĥ åñ îñVîţé çöðé öŕ ļîñķ. one two three four five six] + [Ĵöîñ Ḿûţéð one two] [Éñţéŕ åñ îñVîţé åñð ĵöîñ ýöûŕ ƒŕîéñð\'š šéŕVéŕ. one two three four five six] [Ĵöîñ å šéŕVéŕ one two] [Ĵöîñ å ŠéŕVéŕ ŵîţĥ åñ ÎñVîţé Ļîñķ one two three four] @@ -5946,8 +5960,8 @@ [Ḿéḿɓéŕš ŵîţĥ ţĥîš þéŕḿîššîöñ çåñ ðŕåĝ öţĥéŕ ḿéḿɓéŕš öûţ öƒ ţĥîš çĥåññéļ. Ţĥéý çåñ öñļý ḿöVé ḿéḿɓéŕš ɓéţŵééñ çĥåññéļš ɓöţĥ ţĥéý åñð ţĥé ḿéḿɓéŕ ţĥéý åŕé ḿöVîñĝ ĥåVé åççéšš. one two three four five six seven eight nine ten eleven twelve thirteen fourteen fiveteen] [ḾöVé Ţö one two] [Ûšéŕ ĥåš ɓééñ ḿöVéð ţö ţĥé šéļéçţéð çĥåññéļ. one two three four five] - [Åļéŕţ Çļéåŕéð one two] - [Ñö Åļéŕţ Šĥöŵîñĝ one two three] + [Åļéŕţ Çļéåŕéð one two] + [Ñö Åļéŕţ Šĥöŵîñĝ one two three] [Ñéŵ ñöţîƒîçåţîöñ one two three] [ŔéḿöVé »%1$s« one two] [Ḿöŕé ţĥåñ %1$d ñéŵ ñöţîƒîçåţîöñš one two three four] @@ -7563,6 +7577,8 @@ [ûþ ţö 3 ðåýš one two] [ûþ ţö 7 ðåýš one two] [ûþ ţö 7 ðåýš one two] + [Ţĥîš šéŕVéŕ çûŕŕéñţļý ĥåš »{numSubscriptionsApplied}« åþþļîéð. one two three four] + [Ţĥîš šéŕVéŕ çûŕŕéñţļý ĥåš »{numSubscriptionsApplied}« åþþļîéð. Îţ ĥåš ûñļöçķéð ţĥé ¡¡»{planName}«¡¡ þļåñ. one two three four five six seven eight] [Ýöû ðîð îţ¡ one two] [Ýöû åŕé ĥéŕé¡ one two] [»{numSubscriptionsApplied}«] @@ -7908,6 +7924,7 @@ [Ðîšçöŕð îš çöññéçţéð ţö ýöûŕ ŕéåļ-ţîḿé çöḿḿûñîçåţîöñ šéŕVéŕ öñ **»{hostname}«** ŵîţĥ åñ åVéŕåĝé þîñĝ öƒ **»{averagePing}« ḿš**. Ţĥé ļåšţ þîñĝ ŵåš **»{lastPing}« ḿš**. ΃ ţĥé þîñĝ îš ñöţ çöñšîšţéñţ öŕ ḿöŕé ţĥåñ »{badPing}« ḿš, çöñšîðéŕ åšķîñĝ ţĥé šéŕVéŕ åðḿîñš öŕ öŵñéŕ ţö šŵîţçĥ ţö å ðéŕéñţ ŕéĝîöñ ûñðéŕ ţĥé νöîçé Çĥåññéļ Šéţţîñĝš. one two three four five six seven eight nine ten eleven twelve thirteen fourteen fiveteen sixteen seventeen nineteen twenty one two three four five six seven eight nine ten eleven twelve thirteen fourteen fiveteen sixteen seventeen nineteen twenty one two three four five six seven eight] [Ðîšçöŕð îš çöññéçţéð ţö ýöûŕ ŕéåļ-ţîḿé çöḿḿûñîçåţîöñ šéŕVéŕ öñ **»{hostname}«** ŵîţĥ åñ åVéŕåĝé þîñĝ öƒ **»{averagePing}« ḿš**. Ţĥé ļåšţ þîñĝ ŵåš **»{lastPing}« ḿš**. Öûţɓöûñð þåçķéţ ļöšš ŕåţé îš **»{outboundLossRate}«%%**. ΃ ţĥé þîñĝ îš ñöţ çöñšîšţéñţ öŕ ḿöŕé ţĥåñ »{badPing}« ḿš, çöñšîðéŕ åšķîñĝ ţĥé šéŕVéŕ åðḿîñš öŕ öŵñéŕ ţö šŵîţçĥ ţö å ðéŕéñţ ŕéĝîöñ ûñðéŕ ţĥé νöîçé Çĥåññéļ Šéţţîñĝš. ΃ öûţɓöûñð þåçķéţ ļöšš ŕåţé îš ḿöŕé ţĥåñ »{badLossRate}«%%, ýöû ḿåý šöûñð ŕöɓöţîç. one two three four five six seven eight nine ten eleven twelve thirteen fourteen fiveteen sixteen seventeen nineteen twenty one two three four five six seven eight nine ten eleven twelve thirteen fourteen fiveteen sixteen seventeen nineteen twenty one two three four five six seven eight nine ten eleven twelve thirteen fourteen fiveteen sixteen seventeen nineteen twenty one two three four] [Ļöçķéð åñð ļöåðéð¡ Ðîšçöŕð ĥåš éšţåɓļîšĥéð å šéçûŕé çöññéçţîöñ ţö ýöûŕ ŕéåļ-ţîḿé çöḿḿûñîçåţîöñ šéŕVéŕ åñð îš åţţéḿþţîñĝ ţö šéñð ðåţå. one two three four five six seven eight nine ten eleven twelve thirteen] + [Çåḿéŕå one two] [ŔŢÇ Ðéɓûĝ: »{context}« one two] [Öþéñ Ðéɓûĝ Þåñéļ one two three] [Îñɓöûñð one two] @@ -9598,6 +9615,7 @@ [Çŕéåţé Šţåŕţ Ḿéñû Šĥöŕţçûţ one two three four] [Ŵĥéñ îñšţåļļîñĝ ĝåḿéš ƒŕöḿ ţĥé Ðîšçöŕð Šţöŕé. Åļšö ḿåķéš ýöûŕ ĝåḿéš ðîšçöVéŕåɓļé Vîå ŵîñðöŵš šéåŕçĥ. one two three four five six seven eight nine ten eleven] [ĤýþéŠQûåð one two] + [Ŵîţĥ îḿåĝé ðéšçŕîþţîöñš one two three] [Ûñšûþþöŕţéð îḿåĝé ƒöŕḿåţ. Ýöû çåñ ûþļöåð å ÞÑĜ, ĴÞĜ öŕ åñ åñîḿåţéð ĜÎF. one two three four five six seven eight] [Åçţîöñ one two] [Çĥåţ one] diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml index 838abd3e90..0d429f6fc5 100644 --- a/app/src/main/res/values-es-rES/strings.xml +++ b/app/src/main/res/values-es-rES/strings.xml @@ -1852,10 +1852,7 @@ Descripción Cuéntales a los demás de qué va tu escenario (opcional) Emitir en directo - Pedir entrada {speakerCount} - Entrada obligatoria - Pon un precio de entrada a tu escenario. Título del escenario ¿De qué vas a hablar? Crear canal de tienda @@ -2357,7 +2354,6 @@ Salir y finalizar el escenario Los escenarios sin micrófono se finalizarán automáticamente al cabo de unos minutos. ¿Quieres finalizar el escenario también? - Eres el último administrador de evento en este escenario. Emojis GIF Entendido diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index 758f7cdce3..42af99e062 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -1897,10 +1897,7 @@ Kuvaus Kerro ihmisille hieman lisää esityksestäsi (valinnainen) Aloita livenä - Edellytä lippua {speakerCount} lisätty - Lippu vaaditaan - Aseta pääsymaksu esityksellesi. Esityksen nimi Mistä aiot puhua? Luo kauppakanava @@ -2453,7 +2450,6 @@ Lopeta ja päätä esitys Esitys, jossa ei ole puhujia, päättyy automaattisesti muutaman minuutin kuluttua. Haluatko myös päättää esityksen? - Olet tämän esityksen viimeinen tapahtuman ylläpitäjä. Näytä avattava valikko Emoji GIFit diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 77ad77f96b..b21c2f011e 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -1902,10 +1902,7 @@ Description Donne un peu plus de détails sur ta conférence (facultatif) Passer en direct - Requérir l\'achat d\'un billet d\'entrée {speakerCount} - Billet d\'entrée requis - Choisis le prix d\'accès à ta conférence. Titre de la conférence De quoi vas-tu parler ? Créer un salon de boutique @@ -2458,7 +2455,6 @@ Quitter et terminer la conférence Une conférence sans locuteurs se termine automatiquement après quelques minutes. Veux-tu aussi terminer la conférence ? - Tu es la dernière personne en charge de l\'événement dans cette conférence. Afficher le menu déroulant Émoji GIF diff --git a/app/src/main/res/values-hi/strings.xml b/app/src/main/res/values-hi/strings.xml index 83020b720c..fa9e0f29f3 100644 --- a/app/src/main/res/values-hi/strings.xml +++ b/app/src/main/res/values-hi/strings.xml @@ -1897,10 +1897,7 @@ डिस्क्रिप्शन लोगों को अपने स्टेज के बारे में थोड़ा और बताएं (ऑप्शन के तौर पर) Go Live - ज़रूरी टिकट {speakerCount} ऐड किए गए - टिकट की ज़रूरत है - अपने स्टेज पर एडमिशन के लिए प्राइस सेट करें. स्टेज टाइटल आप किस बारे में बात करने जा रहे हैं? स्टोर चैनल क्रिएट करें @@ -2453,7 +2450,6 @@ बाहर निकलें और स्टेज बंद करें बिना स्पीकर वाला स्टेज कुछ मिनटों के बाद अपने आप बंद हो जाएगा. क्या आप भी स्टेज को बंद करना चाहते हैं? - आप इस स्टेज में आखिरी इवेंट मैनेजर हैं. ड्रॉपडाउन मेन्यू दिखाएं इमोजी GIFs diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index 52afcf2d1d..2e2df3d1fc 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -1897,10 +1897,7 @@ Opis Reci ljudima nešto više o svojoj pozornici (nije obavezno) Pokreni pozornicu - Ulaznica obavezna {speakerCount} - Ulaznica obavezna - Odredi cijenu za posjetitelje. Naziv pozornice O čemu ćete razgovarati? Napravi prodajni kanal @@ -2453,7 +2450,6 @@ Izađi i ukini Pozornicu Ako na Pozornici nema nijednog govornika, ona će se automatski zatvoriti nakon nekoliko minuta. Želiš li također i zatvoriti Pozornicu? - Ti si zadnji voditelj događaja u ovoj pozornici. Prikaži padajući izbornik Emoji GIF-ovi diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index ce72f3378e..fa70f9a141 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -1897,10 +1897,7 @@ Leírás Mesélj többet a pódiumodról (opcionális) Go Live - Jegy szükséges {speakerCount} hozzáadva - Jegy szükséges - Határozd meg a pódiumodon való részvétel árát. Pódium neve Miről fogsz beszélni? Áruház csatorna létrehozása @@ -2453,7 +2450,6 @@ Kilépés és a pódium bezárása A beszélők nélküli pódium néhány perc múlva automatikusan bezáródik. Be is szeretnéd zárni ezt a pódiumot? - Te vagy a pódium utolsó eseményszervezője. Legördülő menü megjelenítése Emotikon GIF-ek diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index abfa53a9f6..0a2e7e8de2 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -1902,10 +1902,7 @@ Descrizione Dai qualche informazione in più sul tuo palco (facoltativo) In onda - Richiedi biglietto {speakerCount} - Biglietto necessario - Fissa un prezzo per partecipare al tuo palco. Titolo del palco Di cosa parlerai? Crea canale negozio @@ -2458,7 +2455,6 @@ Esci e termina il palco Un palco senza relatori verrà automaticamente terminato entro pochi minuti. Vuoi anche terminare il palco? - Sei l\'ultimo manager di eventi in questa conferenza. Mostra il menu a discesa Emoji GIF diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 6a36cf123d..63667fbe2a 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -1907,10 +1907,7 @@ 概要 あなたのステージについてもう少し詳しく説明してください(省略可) ライブにする - チケット必須にする {speakerCount}を追加しました - チケットが必要です - ステージに入場料を設定しましょう。 ステージのタイトル 何の話をしますか? ストアチャンネルを作成 @@ -2463,7 +2460,6 @@ 退出してステージを終了します スピーカーのいないステージは数分後に自動で終了します。 ステージを終了しますか? - このステージに残っているイベントマネージャーはあなたが最後です。 プルダウン メニューを表示 絵文字 GIF diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 1f03f9f1be..ecb72f5be4 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -1902,10 +1902,7 @@ 설명 스테이지에 관해 좀 더 자세히 설명해주세요 (선택) 스테이지 열기 - 티켓 필요함 연설자 {speakerCount} 추가됨 - 티켓 필요 - 스테이지 입장료를 설정해주세요. 스테이지 제목 어떤 주제로 이야기를 나눌 건가요? 스토어 채널 만들기 @@ -2458,7 +2455,6 @@ 나간 후 스테이지 종료하기 연설자가 없는 스테이지는 몇 분 후 자동으로 종료돼요. 스테이지를 종료할까요? - 이 무대의 마지막 이벤트 매니저세요. 드롭다운 메뉴 표시 이모티콘 GIF diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index 17095e0792..58932b1684 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -1897,10 +1897,7 @@ Aprašas Papasakok žmonėms daugiau apie savo scenos kanalą (neprivaloma) Pradėk tiesioginę transliaciją - Reikalauti bilieto Pridėta kalbėtojų: {speakerCount} - Reikia bilieto - Nustatyk scenos kanalo bilieto kainą. Scenos kanalo pavadinimas Apie ką kalbėsi? Kurti parduotuvės kanalą @@ -2453,7 +2450,6 @@ Išeiti ir užbaigti sceną Scena be kalbėtojų automatiškai baigsis po kelių minučių. Ar norite taip pat baigti sceną? - Esi paskutinis (-ė) renginių vadovas (-ė) šiame scenos kanale. Rodyti išskleidžiamąjį meniu Jaustukas GIF diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index cf4c883535..0b801354e9 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -1902,10 +1902,7 @@ Beschrijving Vertel wat meer over je podium (optioneel) Live gaan - Verplicht ticket {speakerCount} toegevoegd - Ticket verplicht - Stel een toegangsprijs in voor je podium. Podiumtitel Waar ga je het over hebben? Maak Store-kanaal @@ -2458,7 +2455,6 @@ Vertrekken en podium opheffen Een podium zonder sprekers wordt na een paar minuten vanzelf opgeheven. Wil je ook het podium opheffen? - Je bent de laatste eventmanager op dit podium. Dropdownmenu weergeven Emoji Gifs diff --git a/app/src/main/res/values-no/strings.xml b/app/src/main/res/values-no/strings.xml index 8c247a5fa6..6ed37c10d2 100644 --- a/app/src/main/res/values-no/strings.xml +++ b/app/src/main/res/values-no/strings.xml @@ -1847,10 +1847,7 @@ Beskrivelse Fortell folk litt mer om scenen din (valgfritt) Go Live - Krev billett {speakerCount} lagt til - Billett kreves - Angi en pris for adgang til scenen din. Scenetittel Hva skal du snakke om? Opprett butikk-kanal @@ -2352,7 +2349,6 @@ Gå ut og avslutt scenen En scene uten talere avsluttes automatisk etter noen minutter. Vil du også avslutte scenen? - Du er den siste eventadministratoren på denne scenen. Emoji GIF-er Forstått diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 8b53e527ed..6844403c99 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -1907,10 +1907,7 @@ Opis Opowiedz trochę o swoim podium (opcjonalnie) Nadawaj na żywo - Wymaga biletu Dodano {speakerCount} - Wymagany bilet - Ustaw cenę wstępu na podium. Tytuł podium O czym będziesz mówić? Stwórz kanał sklepu @@ -2463,7 +2460,6 @@ Wyjdź i zakończ podium Podium bez mówców automatycznie zakończy się po paru minutach. Czy chcesz też zakończyć to podium? - Jesteś ostatnią osobą zarządzającą wydarzeniem na tym podium. Pokaż menu Emoji GIF-y diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 8c590e7881..89acf94f40 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -1902,10 +1902,7 @@ Descrição Conte às pessoas um pouco mais sobre o seu palco (opcional) Go Live - Pedir ingresso {speakerCount} - Ingresso necessário - Estabeleça um preço para entrar no seu palco. Nome do palco Do que você quer falar? Criar canal de loja @@ -2409,7 +2406,6 @@ Sair e encerrar o palco Um palco sem oradores será encerrado automaticamente em alguns minutos. Deseja também encerrar o palco? - Você é o último gerente de evento neste palco. Mostrar menu suspenso Emoji GIFs diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml index 9dde3bb311..fd65723f56 100644 --- a/app/src/main/res/values-ro/strings.xml +++ b/app/src/main/res/values-ro/strings.xml @@ -1897,10 +1897,7 @@ Descriere Spune ceva mai multe despre podiumul tău (opțional) Transmite în direct - Solicită bilet {speakerCount} - Trebuie să ai bilet - Stabilește prețul de acces la podiumul tău. Titlul podiumului Despre ce vei vorbi? Creează un canal Magazin @@ -2453,7 +2450,6 @@ Ieși și închide podiumul Podiumurile care nu au vorbitori se închid automat după câteva minute. Vrei să și închizi podiumul? - Ești ultimul manager de eveniment din acest podium. Afișați meniul drop-down Emoji GIF-uri diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 36a1d28155..0381b42152 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -1907,10 +1907,7 @@ Описание Расскажите о вашей трибуне подробнее (необязательно) Начните эфир - Требовать билет {speakerCount} - Требуется билет - Задайте стоимость посещения вашей трибуны. Название трибуны О чём вы собираетесь говорить? Создать канал магазина @@ -2463,7 +2460,6 @@ Выйти и закрыть трибуну Трибуна без ораторов закроется автоматически через несколько минут. Хотите заодно закрыть трибуну? - Вы последний организатор мероприятия в этой трибуне. Показать раскрывающееся меню Эмодзи Гифки diff --git a/app/src/main/res/values-sv-rSE/strings.xml b/app/src/main/res/values-sv-rSE/strings.xml index e451a69045..0c9188f309 100644 --- a/app/src/main/res/values-sv-rSE/strings.xml +++ b/app/src/main/res/values-sv-rSE/strings.xml @@ -1852,10 +1852,7 @@ Beskrivning Berätta lite mer om ditt podium (valfritt) Kör live - Kräv biljett {speakerCount} tillagd(a) - Biljett krävs - Bestäm pris för inträdet till ditt podium. Podietitel Vad ska du prata om? Skapa butikskanal @@ -2357,7 +2354,6 @@ Lämna och avsluta podiet Ett podium utan talare avslutas automatiskt efter ett par minuter. Vill du också avsluta podiet? - Du är sista eventansvarig i det här podiet. Emoji GIF-filer Jag förstår diff --git a/app/src/main/res/values-th/strings.xml b/app/src/main/res/values-th/strings.xml index 17fbe8eb43..866f992ce7 100644 --- a/app/src/main/res/values-th/strings.xml +++ b/app/src/main/res/values-th/strings.xml @@ -1902,10 +1902,7 @@ คำอธิบาย บอกรายละเอียดเวทีให้คนอื่นรู้อีกสักหน่อย (ไม่จำเป็น) Go Live - ต้องมีตั๋ว เพิ่ม{speakerCount}แล้ว - ต้องมีตั๋ว - ตั้งราคาค่าเข้าชมเวทีของคุณ ชื่อเวที คุณจะพูดเรื่องอะไร สร้างช่องร้านค้า @@ -2458,7 +2455,6 @@ ออกและหยุดเวที เวทีที่ไม่มีผู้พูดจะหยุดโดยอัตโนมัติหลังจากผ่านไปไม่กี่นาที อยากหยุดเวทีนี้หรือเปล่า - คุณคือผู้จัดการกิจกรรมคนสุดท้ายในเวทีนี้ แสดงเมนูแบบเลื่อนลง อีโมจิ GIF diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 8f06e24b03..515d936dac 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -1907,10 +1907,7 @@ Açıklama İnsanlara sahnenden biraz daha bahset (isteğe bağlı) Yayını Başlat - Bilet Gereksin {speakerCount} Eklendi - Bilet Gerekli - Sahnen için katılma ücreti belirle. Sahne Adı Ne hakkında konuşacaksın? Mağaza Kanalı Oluştur @@ -2463,7 +2460,6 @@ Çık ve sahneyi sonlandır Konuşmacısı olmayan bir sahne birkaç dakika sonra otomatik olarak sonlanır. Sahneyi de sonlandırmak istiyor musun? - Bu Sahne\'deki son etkinlik yöneticisi sensin. Açılır menüyü göster Emoji GIF\'ler diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 7baa320af8..78b26e559b 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -1897,10 +1897,7 @@ Опис Розкажи людям трохи більше про свою трибуну (необов\'язково) Go Live - Призначити квиток {speakerCount} додано - Потрібен квиток - Встанови ціну за приєднання до трибуни. Назва трибуни Про що хочеш поговорити? Створити канал крамниці @@ -2453,7 +2450,6 @@ Вийти та завершити трибуну Трибуна без доповідачів автоматично завершиться за декілька хвилин. Хочеш завершити трибуну? - Ви менеджер минулої події на цій трибуні. Показати спадне меню Емодзі Файли GIF diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml index 1d195bab96..700222255a 100644 --- a/app/src/main/res/values-vi/strings.xml +++ b/app/src/main/res/values-vi/strings.xml @@ -1897,10 +1897,7 @@ Mô tả Mô tả thêm về sân khấu của bạn (không bắt buộc) Go Live - Yêu Cầu Phiếu Đã thêm {speakerCount} - Yêu cầu phải có phiếu - Đặt một mức giá để vào sân khấu của bạn. Tên Sân Khấu Bạn định nói về điều gì? Tạo Kênh Cửa Hàng @@ -2453,7 +2450,6 @@ Thoát và kết thúc Sân Khấu Sân Khấu không có người nói sẽ tự động kết thúc sau vài phút. Bạn có muốn kết thúc Sân Khấu không? - Bạn là quản lý sự kiện cuối cùng ở Sân Khấu này. Hiển thị menu thả xuống Emoji Ảnh động diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 3398db32d4..436579c579 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -1902,10 +1902,7 @@ 描述 更多关于您的讲堂的信息(可选) 开始直播 - 需要门票 已添加 {speakerCount} - 需要门票 - 设定您讲堂的入场价。 讲堂标题 你准备聊些什么? 创建商店频道 @@ -2458,7 +2455,6 @@ 退出并结束此讲堂 不存在发言者的讲堂将会于几分钟后自动结束。 您想连同此讲堂一并结束吗? - 您是此讲堂的最后一位活动组织者。 显示下拉菜单 表情符号 动图 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 78de97c456..73c9858545 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -1902,10 +1902,7 @@ 簡介 簡單介紹您的舞台 (可選) 上舞台直播 - 需要門票 已新增 {speakerCount} - 需要門票 - 設定舞台門票的價格。 舞台標題 您要討論什麼? 創造商店頻道 @@ -2458,7 +2455,6 @@ 離開並結束舞台 沒有講者的舞台會在數分鐘之後自動結束。 您希望同時結束舞台嗎? - 您是此舞台最後一位活動經理。 顯示下拉式選單 表情符號 GIF diff --git a/app/src/main/res/values/plurals.xml b/app/src/main/res/values/plurals.xml index ddd6d0d0b5..2bc70c8ecf 100644 --- a/app/src/main/res/values/plurals.xml +++ b/app/src/main/res/values/plurals.xml @@ -1344,6 +1344,14 @@ {numSubscriptionsApplied} Boost {numSubscriptionsApplied} Boosts + + {numSubscriptionsApplied} Boost + {numSubscriptionsApplied} Boosts + + + {numSubscriptionsApplied} Boost + {numSubscriptionsApplied} Boosts + {numSubscriptionsApplied} Boost {numSubscriptionsApplied} Boosts diff --git a/app/src/main/res/values/public.xml b/app/src/main/res/values/public.xml index 4cd6d35c73..411c7cbc2a 100644 --- a/app/src/main/res/values/public.xml +++ b/app/src/main/res/values/public.xml @@ -8828,543 +8828,544 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -10769,58 +10770,60 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -15044,9334 +15047,9352 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index dd7c89ac08..e003fa906a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -670,7 +670,15 @@ unknown File Selector Media Selector + Description (ALT Text) + Add a description + Save Processing… + You can only upload !!{limit}!! files at a time! + Too many uploads! + Upload Attachment Utilities + Modify Attachment + Remove Attachment When others speak When I speak !!{name}!! - Audience @@ -1439,7 +1447,7 @@ Select a color Transparency Use Default - e288d36125434d0ca1c607a587d8b858 + c4125df74bbf4b3da77a5d0455afde56 Coming Soon Slash command application {applicationName} {applicationName} application @@ -1968,14 +1976,11 @@ Description Tell people a little more about your stage (optional) Go Live - Require Ticket Where\'s the party? Sed tincidunt aenean eu, ultrices ullamcorper tristique habitant. Ut integer pellentesque sit malesuada. Magna vivamus. Who’s invited? Sed tincidunt aenean eu, ultrices ullamcorper tristique habitant. Ut integer pellentesque sit malesuada. Magna vivamus. {speakerCount} Added - Ticket Required - Set a price for admission to your stage. Stage Title What are you gonna talk about? Create Store Channel @@ -2137,7 +2142,10 @@ Activate Not authorized to enable test-mode for this application. Clear + Failed to authorize app + Full URL Invalid application ID + Invalid URL Localhost Enter your Discord application ID to enable test mode for that application. An application in test mode will allow you to view related unpublished SKUs and bypass related purchases to make development easier. Application Test Mode @@ -2572,7 +2580,6 @@ Exit and end the Stage A Stage with no speakers will automatically end after a few minutes. Do you want to also end the Stage? - You’re the last event manager in this Stage. Show dropdown menu Expression Picker Actions Emoji @@ -2695,6 +2702,7 @@ Members will be restricted to sending one message per this interval, unless they have Manage Channel or Manage Messages permissions. This is the channel we send system event messages to. These can be turned off at any time. Send helpful tips for server setup. + Allow members to reply to welcome messages with a sticker. Send a random welcome message when someone joins this server. Send a message when someone boosts this server. Members are automatically kicked when they disconnect unless a role is assigned. @@ -3368,6 +3376,7 @@ Missing permission to connect. There {count} associated with this channel. Deleting this channel will also delete the {count}. Where is your event? + Click to copy event link We recommend an image that\'s at least 800px wide and 400px tall. Add a Cover Photo (Optional) Remove Photo @@ -3408,6 +3417,7 @@ Or, send an event invite link to a friend Invite friends to event Join + Event Link Copied! {count} Listening You cannot edit the location type of an event after it starts. You do not have permission. @@ -3704,6 +3714,7 @@ Do you want to make your entire server premium or just a portion of its channels? Important decision time. Monetization Format + {price}/{interval} Publish Tier Any changes will be saved and the tier will immediately become visible to members of your server. Are you ready to publish this tier? @@ -3805,8 +3816,6 @@ Joined {joinedDate} Premium Premium - Inside, we both know what\'s been going on - Your heart\'s been aching, but you\'re too shy to say it Manage Tiers Edit Server Rules Server Rules @@ -4705,6 +4714,8 @@ Turn on video to wave hello to each other, stream, or show off your pets. This server now has Video Chat! Ready to talk? Grab a seat in this voice channel so people know you\'re around to hang out. + Voice channels are for hanging out. When you’re ready to talk, just hop in. Friends will be able to see and join you. It’s like using telepathy to say hi. + No one\'s here yet Servers sidebar Happening Now Hardware Acceleration @@ -4973,9 +4984,11 @@ Dialog Icon Image Image Actions + Alt Image compression Auto-compress Images When this is on, images sent will be compressed. Get Nitro to send a crystal clear image! **[Get Nitro]({nitroLink})** + Image descriptions are used to describe images for screenreaders. Images Attachment file type: !!{fileType}!! !!{name}!! Emoji @@ -5332,6 +5345,7 @@ [Connect Twitch or YouTube accounts](onClick) Looking for more servers to join? **Join** a server with an invite code or link. + Join Muted Enter an invite and join your friend\'s server. Join a server Join a Server with an Invite Link @@ -5965,8 +5979,8 @@ Members with this permission can drag other members out of this channel. They can only move members between channels both they and the member they are moving have access. Move To User has been moved to the selected channel. - Alert Cleared - No Alert Showing + Alert Cleared + No Alert Showing New notification Remove %1$s More than %1$d new notifications @@ -7590,6 +7604,8 @@ up to 3 days up to 7 days up to 7 days + This server currently has {numSubscriptionsApplied} applied. + This server currently has {numSubscriptionsApplied} applied. It has unlocked the !!{planName}!! plan. You did it! You are here! {numSubscriptionsApplied} @@ -7935,6 +7951,7 @@ Discord is connected to your real-time communication server on **{hostname}** with an average ping of **{averagePing} ms**. The last ping was **{lastPing} ms**. If the ping is not consistent or more than {badPing} ms, consider asking the server admins or owner to switch to a different region under the Voice Channel Settings. Discord is connected to your real-time communication server on **{hostname}** with an average ping of **{averagePing} ms**. The last ping was **{lastPing} ms**. Outbound packet loss rate is **{outboundLossRate}%%**. If the ping is not consistent or more than {badPing} ms, consider asking the server admins or owner to switch to a different region under the Voice Channel Settings. If outbound packet loss rate is more than {badLossRate}%%, you may sound robotic. Locked and loaded! Discord has established a secure connection to your real-time communication server and is attempting to send data. + Camera RTC Debug: {context} Open Debug Panel Inbound @@ -9627,6 +9644,7 @@ Create Start Menu Shortcut When installing games from the Discord Store. Also makes your games discoverable via windows search. HypeSquad + With image descriptions Unsupported image format. You can upload a PNG, JPG or an animated GIF. Action Chat