diff --git a/app/build.gradle b/app/build.gradle index 6009ec270e..98d2d55974 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ android { applicationId 'com.discord' minSdkVersion 21 targetSdkVersion 30 - versionCode 102203 - versionName "102.3 - Alpha" + versionCode 102204 + versionName "102.4 - Alpha" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d22257874d..8d72f773c9 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,5 +1,5 @@ - + @@ -72,7 +72,7 @@ - + @@ -115,11 +115,16 @@ - + + + + + + @@ -131,7 +136,7 @@ - + diff --git a/app/src/main/java/com/discord/restapi/RestAPIInterface.java b/app/src/main/java/com/discord/restapi/RestAPIInterface.java index 6fcab6f206..9921d1cc1c 100644 --- a/app/src/main/java/com/discord/restapi/RestAPIInterface.java +++ b/app/src/main/java/com/discord/restapi/RestAPIInterface.java @@ -280,9 +280,6 @@ public interface RestAPIInterface { @f("channels/{channelId}/call") Observable call(@s("channelId") long j); - @b("guilds/{guildId}/requests/@me") - Observable cancelGuildJoinRequest(@s("guildId") long j); - @i0.f0.o("users/@me/guilds/premium/subscription-slots/{subscriptionSlotId}/cancel") Observable cancelSubscriptionSlot(@s("subscriptionSlotId") long j); @@ -325,11 +322,11 @@ public interface RestAPIInterface { @i0.f0.o("guilds/{guildId}/role-subscriptions/group-listings/{groupListingId}/subscription-listings") Observable createGuildRoleSubscriptionTier(@s("guildId") long j, @s("groupListingId") long j2, @a RestAPIParams.CreateGuildRoleSubscriptionTierListing createGuildRoleSubscriptionTierListing); - @i0.f0.o("guilds/{guildId}/events") + @i0.f0.o("guilds/{guildId}/scheduled-events") Observable createGuildScheduledEvent(@s("guildId") long j, @a RestAPIParams.CreateGuildScheduledEventBody createGuildScheduledEventBody); - @i0.f0.o("users/@me/guild-events/{eventId}") - Observable createGuildScheduledEventRsvp(@s("eventId") long j); + @p("guilds/{guildId}/scheduled-events/{eventId}/users/@me") + Observable createGuildScheduledEventRsvp(@s("guildId") long j, @s("eventId") long j2); @i0.f0.o("google-play/purchase-metadata") Observable createPurchaseMetadata(@a RestAPIParams.PurchaseMetadataBody purchaseMetadataBody); @@ -367,14 +364,14 @@ public interface RestAPIInterface { @b("guilds/{guildId}/integrations/{integrationId}") Observable deleteGuildIntegration(@s("guildId") long j, @s("integrationId") long j2); - @b("/guilds/{guildId}/role-subscriptions/group-listings/{groupListingId}/subscription-listings/{listingId}") + @b("guilds/{guildId}/role-subscriptions/group-listings/{groupListingId}/subscription-listings/{listingId}") Observable deleteGuildRoleSubscriptionTierListing(@s("guildId") long j, @s("groupListingId") long j2, @s("listingId") long j3); - @b("guild-events/{eventId}") - Observable deleteGuildScheduledEvent(@s("eventId") long j); + @b("guilds/{guildId}/scheduled-events/{eventId}") + Observable deleteGuildScheduledEvent(@s("guildId") long j, @s("eventId") long j2); - @b("users/@me/guild-events/{eventId}") - Observable deleteGuildScheduledEventRsvp(@s("eventId") long j); + @b("guilds/{guildId}/scheduled-events/{eventId}/users/@me") + Observable deleteGuildScheduledEventRsvp(@s("guildId") long j, @s("eventId") long j2); @b("channels/{channel_id}/messages/{message_id}") Observable deleteMessage(@s("channel_id") long j, @s("message_id") long j2); @@ -532,7 +529,7 @@ public interface RestAPIInterface { @f("users/@me/entitlements/gifts") Observable> getGifts(); - @f("/guilds/{guildId}/applications") + @f("guilds/{guildId}/applications") Observable> getGuildApplications(@s("guildId") long j); @f("guilds/{guildId}/emojis") @@ -559,13 +556,13 @@ public interface RestAPIInterface { @f("guilds/{guildId}/role-subscriptions/group-listings") Observable> getGuildRoleSubscriptionGroupListings(@s("guildId") long j); - @f("guild-events/{eventId}") - Observable getGuildScheduledEvent(@s("eventId") long j); + @f("guilds/{guildId}/scheduled-events/{eventId}") + Observable getGuildScheduledEvent(@s("guildId") long j, @s("eventId") long j2); - @f("guild-events/{eventId}/users") - Observable getGuildScheduledEventUsers(@s("eventId") long j, @t("limit") int i, @t("with_member") boolean z2); + @f("guilds/{guildId}/scheduled-events/{eventId}/users") + Observable getGuildScheduledEventUsers(@s("guildId") long j, @s("eventId") long j2, @t("limit") int i, @t("with_member") boolean z2); - @f("guilds/{guildId}/events") + @f("guilds/{guildId}/scheduled-events") Observable> getGuildScheduledEvents(@s("guildId") long j, @t("with_user_count") boolean z2); @f("guilds/templates/{guildTemplateCode}") @@ -670,8 +667,8 @@ public interface RestAPIInterface { @f("users/@me/affinities/users") Observable getUserAffinities(); - @f("users/@me/guilds/{guildId}/events/users") - Observable> getUserGuildScheduledEvents(@s("guildId") long j); + @f("users/@me/scheduled-events") + Observable> getUserGuildScheduledEvents(@t("guild_ids") long j); @f("users/@me/join-request-guilds") Observable> getUserJoinRequestGuilds(); @@ -811,6 +808,9 @@ public interface RestAPIInterface { @i0.f0.o("users/@me/harvest") Observable requestHarvest(); + @b("guilds/{guildId}/requests/@me") + Observable resetGuildJoinRequest(@s("guildId") long j); + @f("entitlements/gift-codes/{code}") Observable resolveGiftCode(@s("code") String str, @t("with_application") boolean z2, @t("with_subscription_plan") boolean z3); @@ -919,11 +919,11 @@ public interface RestAPIInterface { @n("guilds/{guildId}/role-subscriptions/group-listings/{groupListingId}") Observable updateGuildRoleSubscriptionGroupListing(@s("guildId") long j, @s("groupListingId") long j2, @a RestAPIParams.UpdateGuildRoleSubscriptionGroupListing updateGuildRoleSubscriptionGroupListing); - @n("/guilds/{guildId}/role-subscriptions/group-listings/{groupListingId}/subscription-listings/{listingId}") + @n("guilds/{guildId}/role-subscriptions/group-listings/{groupListingId}/subscription-listings/{listingId}") Observable updateGuildRoleSubscriptionTierListing(@s("guildId") long j, @s("groupListingId") long j2, @s("listingId") long j3, @a RestAPIParams.UpdateGuildRoleSubscriptionTierListing updateGuildRoleSubscriptionTierListing); - @n("guild-events/{eventId}") - Observable updateGuildScheduledEvent(@s("eventId") long j, @a RestAPIParams.UpdateGuildScheduledEventBody updateGuildScheduledEventBody); + @n("guilds/{guildId}/scheduled-events/{eventId}") + Observable updateGuildScheduledEvent(@s("guildId") long j, @s("eventId") long j2, @a RestAPIParams.UpdateGuildScheduledEventBody updateGuildScheduledEventBody); @n("guilds/{guildId}/members/@me") Observable updateMeGuildMember(@s("guildId") long j, @a PatchGuildMemberBody patchGuildMemberBody); diff --git a/app/src/main/java/com/discord/stores/StoreGuildScheduledEvents$toggleMeRsvpForEvent$1.java b/app/src/main/java/com/discord/stores/StoreGuildScheduledEvents$toggleMeRsvpForEvent$1.java index 960d2309dc..05126d513c 100644 --- a/app/src/main/java/com/discord/stores/StoreGuildScheduledEvents$toggleMeRsvpForEvent$1.java +++ b/app/src/main/java/com/discord/stores/StoreGuildScheduledEvents$toggleMeRsvpForEvent$1.java @@ -137,11 +137,11 @@ public final class StoreGuildScheduledEvents$toggleMeRsvpForEvent$1 extends o im if (this.this$0.isMeRsvpedToEvent(this.$guildScheduledEvent.g(), this.$eventId)) { StoreGuildScheduledEvents storeGuildScheduledEvents = this.this$0; StoreGuildScheduledEvents.access$processRsvpDelete(storeGuildScheduledEvents, this.$storeEvent, StoreGuildScheduledEvents.access$getUserStore$p(storeGuildScheduledEvents).getMe().getId()); - ObservableExtensionsKt.appSubscribe$default(ObservableExtensionsKt.restSubscribeOn$default(RestAPI.Companion.getApi().deleteGuildScheduledEventRsvp(this.$storeEvent.h()), false, 1, null), this.this$0.getClass(), (Context) null, (Function1) null, new AnonymousClass1(this), (Function0) null, (Function0) null, new AnonymousClass2(this), 54, (Object) null); + ObservableExtensionsKt.appSubscribe$default(ObservableExtensionsKt.restSubscribeOn$default(RestAPI.Companion.getApi().deleteGuildScheduledEventRsvp(this.$storeEvent.g(), this.$storeEvent.h()), false, 1, null), this.this$0.getClass(), (Context) null, (Function1) null, new AnonymousClass1(this), (Function0) null, (Function0) null, new AnonymousClass2(this), 54, (Object) null); return; } StoreGuildScheduledEvents storeGuildScheduledEvents2 = this.this$0; StoreGuildScheduledEvents.access$processRsvpCreate(storeGuildScheduledEvents2, this.$storeEvent, StoreGuildScheduledEvents.access$getUserStore$p(storeGuildScheduledEvents2).getMe().getId()); - ObservableExtensionsKt.appSubscribe$default(ObservableExtensionsKt.restSubscribeOn$default(RestAPI.Companion.getApi().createGuildScheduledEventRsvp(this.$storeEvent.h()), false, 1, null), this.this$0.getClass(), (Context) null, (Function1) null, new AnonymousClass3(this), (Function0) null, (Function0) null, new AnonymousClass4(this), 54, (Object) null); + ObservableExtensionsKt.appSubscribe$default(ObservableExtensionsKt.restSubscribeOn$default(RestAPI.Companion.getApi().createGuildScheduledEventRsvp(this.$guildScheduledEvent.g(), this.$storeEvent.h()), false, 1, null), this.this$0.getClass(), (Context) null, (Function1) null, new AnonymousClass3(this), (Function0) null, (Function0) null, new AnonymousClass4(this), 54, (Object) null); } } diff --git a/app/src/main/java/com/discord/stores/StoreGuildScheduledEvents.java b/app/src/main/java/com/discord/stores/StoreGuildScheduledEvents.java index 2b9f9bfb2e..930abe2fab 100644 --- a/app/src/main/java/com/discord/stores/StoreGuildScheduledEvents.java +++ b/app/src/main/java/com/discord/stores/StoreGuildScheduledEvents.java @@ -401,11 +401,11 @@ public final class StoreGuildScheduledEvents extends StoreV2 { } } - public final void fetchRsvpUsers(long j) { + public final void fetchRsvpUsers(long j, long j2) { this.isUsersForGuildEventFetching = true; this.isUsersForGuildEventError = false; markChanged(); - ObservableExtensionsKt.appSubscribe$default(ObservableExtensionsKt.restSubscribeOn$default(RestAPI.Companion.getApi().getGuildScheduledEventUsers(j, 100, true), false, 1, null), StoreGuildScheduledEvents.class, (Context) null, (Function1) null, new StoreGuildScheduledEvents$fetchRsvpUsers$1(this), (Function0) null, (Function0) null, new StoreGuildScheduledEvents$fetchRsvpUsers$2(this, j), 54, (Object) null); + ObservableExtensionsKt.appSubscribe$default(ObservableExtensionsKt.restSubscribeOn$default(RestAPI.Companion.getApi().getGuildScheduledEventUsers(j, j2, 100, true), false, 1, null), StoreGuildScheduledEvents.class, (Context) null, (Function1) null, new StoreGuildScheduledEvents$fetchRsvpUsers$1(this), (Function0) null, (Function0) null, new StoreGuildScheduledEvents$fetchRsvpUsers$2(this, j2), 54, (Object) null); } public final void fetchUserGuildScheduledEvents(long j) { diff --git a/app/src/main/java/com/discord/stores/StoreMessagesHolder.java b/app/src/main/java/com/discord/stores/StoreMessagesHolder.java index 3dd0e7de60..35b530f751 100644 --- a/app/src/main/java/com/discord/stores/StoreMessagesHolder.java +++ b/app/src/main/java/com/discord/stores/StoreMessagesHolder.java @@ -38,7 +38,7 @@ public class StoreMessagesHolder { private static final int MAX_MESSAGES_PER_CHANNEL = 200; private static final int MAX_MESSAGES_PER_CHANNEL_TRIM = 100; private final Set activeChannels = new HashSet(); - private final Persister>> cache = new Persister<>("STORE_MESSAGES_CACHE_V36", new HashMap()); + private final Persister>> cache = new Persister<>("STORE_MESSAGES_CACHE_V37", new HashMap()); private boolean cacheEnabled; private Subscription cachePersistSubscription; private long cachePersistedAt = ClockFactory.get().currentTimeMillis(); diff --git a/app/src/main/java/com/discord/utilities/guilds/MemberVerificationUtils.java b/app/src/main/java/com/discord/utilities/guilds/MemberVerificationUtils.java index 9d6fb7113a..32979e55d4 100644 --- a/app/src/main/java/com/discord/utilities/guilds/MemberVerificationUtils.java +++ b/app/src/main/java/com/discord/utilities/guilds/MemberVerificationUtils.java @@ -12,6 +12,7 @@ import com.discord.models.member.GuildMember; import com.discord.stores.StoreGuilds; import com.discord.stores.StoreStream; import com.discord.widgets.servers.member_verification.MemberVerificationPendingDialog; +import com.discord.widgets.servers.member_verification.MemberVerificationPendingViewModel; import com.discord.widgets.servers.member_verification.MemberVerificationSuccessDialog; import com.discord.widgets.servers.member_verification.WidgetMemberVerification; import d0.j; @@ -56,8 +57,8 @@ public final class MemberVerificationUtils { memberVerificationUtils.maybeShowVerificationGate(context, fragmentManager, j, str, (i & 16) != 0 ? null : modelInvite, (i & 32) != 0 ? MemberVerificationUtils$maybeShowVerificationGate$1.INSTANCE : function0, function02); } - private final void showMemberVerificationPendingDialog(FragmentManager fragmentManager, long j) { - MemberVerificationPendingDialog.Companion.show(fragmentManager, j); + private final void showMemberVerificationPendingDialog(FragmentManager fragmentManager, long j, MemberVerificationPendingViewModel.DialogState dialogState) { + MemberVerificationPendingDialog.Companion.show(fragmentManager, j, dialogState); } private final void showMemberVerificationSuccessDialog(Guild guild, ModelInvite modelInvite) { @@ -124,9 +125,10 @@ public final class MemberVerificationUtils { showMemberVerificationWidget(context, j, str, modelInvite); } else if (ordinal == 1) { function0.mo1invoke(); - showMemberVerificationPendingDialog(fragmentManager, j); + showMemberVerificationPendingDialog(fragmentManager, j, MemberVerificationPendingViewModel.DialogState.CANCEL); } else if (ordinal == 2) { function0.mo1invoke(); + showMemberVerificationPendingDialog(fragmentManager, j, MemberVerificationPendingViewModel.DialogState.REJECTED); } else if (ordinal == 3) { function02.mo1invoke(); showMemberVerificationSuccessDialog(guild, modelInvite); diff --git a/app/src/main/java/com/discord/utilities/guilds/RoleIconUtils.java b/app/src/main/java/com/discord/utilities/guilds/RoleIconUtils.java new file mode 100644 index 0000000000..f1e75e978c --- /dev/null +++ b/app/src/main/java/com/discord/utilities/guilds/RoleIconUtils.java @@ -0,0 +1,21 @@ +package com.discord.utilities.guilds; + +import com.discord.api.guild.GuildFeature; +import com.discord.api.role.GuildRole; +import com.discord.models.guild.Guild; +import d0.z.d.m; +/* compiled from: RoleIconUtils.kt */ +public final class RoleIconUtils { + public static final RoleIconUtils INSTANCE = new RoleIconUtils(); + + private RoleIconUtils() { + } + + public final boolean canUseRoleIcons(Guild guild, GuildRole guildRole) { + m.checkNotNullParameter(guild, "$this$canUseRoleIcons"); + if (!guild.hasFeature(GuildFeature.ROLE_ICONS)) { + return guildRole != null && RoleUtils.hasSubscriptionListingId(guildRole); + } + return true; + } +} 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 2d19aeb591..613166fcb0 100644 --- a/app/src/main/java/com/discord/utilities/rest/RestAPI.java +++ b/app/src/main/java/com/discord/utilities/rest/RestAPI.java @@ -631,12 +631,6 @@ public final class RestAPI implements RestAPIInterface { return this._api.call(j); } - @Override // com.discord.restapi.RestAPIInterface - @b("guilds/{guildId}/requests/@me") - public Observable cancelGuildJoinRequest(@s("guildId") long j) { - return this._api.cancelGuildJoinRequest(j); - } - @Override // com.discord.restapi.RestAPIInterface @o("users/@me/guilds/premium/subscription-slots/{subscriptionSlotId}/cancel") public Observable cancelSubscriptionSlot(@s("subscriptionSlotId") long j) { @@ -741,16 +735,16 @@ public final class RestAPI implements RestAPIInterface { } @Override // com.discord.restapi.RestAPIInterface - @o("guilds/{guildId}/events") + @o("guilds/{guildId}/scheduled-events") public Observable createGuildScheduledEvent(@s("guildId") long j, @i0.f0.a RestAPIParams.CreateGuildScheduledEventBody createGuildScheduledEventBody) { m.checkNotNullParameter(createGuildScheduledEventBody, "event"); return this._api.createGuildScheduledEvent(j, createGuildScheduledEventBody); } @Override // com.discord.restapi.RestAPIInterface - @o("users/@me/guild-events/{eventId}") - public Observable createGuildScheduledEventRsvp(@s("eventId") long j) { - return this._api.createGuildScheduledEventRsvp(j); + @p("guilds/{guildId}/scheduled-events/{eventId}/users/@me") + public Observable createGuildScheduledEventRsvp(@s("guildId") long j, @s("eventId") long j2) { + return this._api.createGuildScheduledEventRsvp(j, j2); } public final Observable createOrFetchDM(long j) { @@ -839,21 +833,21 @@ public final class RestAPI implements RestAPIInterface { } @Override // com.discord.restapi.RestAPIInterface - @b("/guilds/{guildId}/role-subscriptions/group-listings/{groupListingId}/subscription-listings/{listingId}") + @b("guilds/{guildId}/role-subscriptions/group-listings/{groupListingId}/subscription-listings/{listingId}") public Observable deleteGuildRoleSubscriptionTierListing(@s("guildId") long j, @s("groupListingId") long j2, @s("listingId") long j3) { return this._api.deleteGuildRoleSubscriptionTierListing(j, j2, j3); } @Override // com.discord.restapi.RestAPIInterface - @b("guild-events/{eventId}") - public Observable deleteGuildScheduledEvent(@s("eventId") long j) { - return this._api.deleteGuildScheduledEvent(j); + @b("guilds/{guildId}/scheduled-events/{eventId}") + public Observable deleteGuildScheduledEvent(@s("guildId") long j, @s("eventId") long j2) { + return this._api.deleteGuildScheduledEvent(j, j2); } @Override // com.discord.restapi.RestAPIInterface - @b("users/@me/guild-events/{eventId}") - public Observable deleteGuildScheduledEventRsvp(@s("eventId") long j) { - return this._api.deleteGuildScheduledEventRsvp(j); + @b("guilds/{guildId}/scheduled-events/{eventId}/users/@me") + public Observable deleteGuildScheduledEventRsvp(@s("guildId") long j, @s("eventId") long j2) { + return this._api.deleteGuildScheduledEventRsvp(j, j2); } @Override // com.discord.restapi.RestAPIInterface @@ -1232,7 +1226,7 @@ public final class RestAPI implements RestAPIInterface { } @Override // com.discord.restapi.RestAPIInterface - @f("/guilds/{guildId}/applications") + @f("guilds/{guildId}/applications") public Observable> getGuildApplications(@s("guildId") long j) { return this._api.getGuildApplications(j); } @@ -1286,19 +1280,19 @@ public final class RestAPI implements RestAPIInterface { } @Override // com.discord.restapi.RestAPIInterface - @f("guild-events/{eventId}") - public Observable getGuildScheduledEvent(@s("eventId") long j) { - return this._api.getGuildScheduledEvent(j); + @f("guilds/{guildId}/scheduled-events/{eventId}") + public Observable getGuildScheduledEvent(@s("guildId") long j, @s("eventId") long j2) { + return this._api.getGuildScheduledEvent(j, j2); } @Override // com.discord.restapi.RestAPIInterface - @f("guild-events/{eventId}/users") - public Observable getGuildScheduledEventUsers(@s("eventId") long j, @t("limit") int i, @t("with_member") boolean z2) { - return this._api.getGuildScheduledEventUsers(j, i, z2); + @f("guilds/{guildId}/scheduled-events/{eventId}/users") + public Observable getGuildScheduledEventUsers(@s("guildId") long j, @s("eventId") long j2, @t("limit") int i, @t("with_member") boolean z2) { + return this._api.getGuildScheduledEventUsers(j, j2, i, z2); } @Override // com.discord.restapi.RestAPIInterface - @f("guilds/{guildId}/events") + @f("guilds/{guildId}/scheduled-events") public Observable> getGuildScheduledEvents(@s("guildId") long j, @t("with_user_count") boolean z2) { return this._api.getGuildScheduledEvents(j, z2); } @@ -1534,8 +1528,8 @@ public final class RestAPI implements RestAPIInterface { } @Override // com.discord.restapi.RestAPIInterface - @f("users/@me/guilds/{guildId}/events/users") - public Observable> getUserGuildScheduledEvents(@s("guildId") long j) { + @f("users/@me/scheduled-events") + public Observable> getUserGuildScheduledEvents(@t("guild_ids") long j) { return this._api.getUserGuildScheduledEvents(j); } @@ -1922,6 +1916,12 @@ public final class RestAPI implements RestAPIInterface { return this._api.updateMyVoiceStates(channel.f(), new RestAPIParams.ChannelVoiceStateUpdate(channel.h(), null, new UtcDateTime(clock.currentTimeMillis()), 2, null)); } + @Override // com.discord.restapi.RestAPIInterface + @b("guilds/{guildId}/requests/@me") + public Observable resetGuildJoinRequest(@s("guildId") long j) { + return this._api.resetGuildJoinRequest(j); + } + @Override // com.discord.restapi.RestAPIInterface @f("entitlements/gift-codes/{code}") public Observable resolveGiftCode(@s("code") String str, @t("with_application") boolean z2, @t("with_subscription_plan") boolean z3) { @@ -2204,17 +2204,17 @@ public final class RestAPI implements RestAPIInterface { } @Override // com.discord.restapi.RestAPIInterface - @i0.f0.n("/guilds/{guildId}/role-subscriptions/group-listings/{groupListingId}/subscription-listings/{listingId}") + @i0.f0.n("guilds/{guildId}/role-subscriptions/group-listings/{groupListingId}/subscription-listings/{listingId}") public Observable updateGuildRoleSubscriptionTierListing(@s("guildId") long j, @s("groupListingId") long j2, @s("listingId") long j3, @i0.f0.a RestAPIParams.UpdateGuildRoleSubscriptionTierListing updateGuildRoleSubscriptionTierListing) { m.checkNotNullParameter(updateGuildRoleSubscriptionTierListing, "body"); return this._api.updateGuildRoleSubscriptionTierListing(j, j2, j3, updateGuildRoleSubscriptionTierListing); } @Override // com.discord.restapi.RestAPIInterface - @i0.f0.n("guild-events/{eventId}") - public Observable updateGuildScheduledEvent(@s("eventId") long j, @i0.f0.a RestAPIParams.UpdateGuildScheduledEventBody updateGuildScheduledEventBody) { + @i0.f0.n("guilds/{guildId}/scheduled-events/{eventId}") + public Observable updateGuildScheduledEvent(@s("guildId") long j, @s("eventId") long j2, @i0.f0.a RestAPIParams.UpdateGuildScheduledEventBody updateGuildScheduledEventBody) { m.checkNotNullParameter(updateGuildScheduledEventBody, "body"); - return this._api.updateGuildScheduledEvent(j, updateGuildScheduledEventBody); + return this._api.updateGuildScheduledEvent(j, j2, updateGuildScheduledEventBody); } @Override // com.discord.restapi.RestAPIInterface diff --git a/app/src/main/java/com/discord/widgets/chat/input/WidgetChatInput.java b/app/src/main/java/com/discord/widgets/chat/input/WidgetChatInput.java index d226a91df7..122bf0756d 100644 --- a/app/src/main/java/com/discord/widgets/chat/input/WidgetChatInput.java +++ b/app/src/main/java/com/discord/widgets/chat/input/WidgetChatInput.java @@ -265,15 +265,18 @@ public final class WidgetChatInput extends AppFragment { if (ordinal == 1) { getBinding().f1804s.d.setText(R.string.member_verification_application_confirmation_title); getBinding().f1804s.f136c.setImageResource(R.drawable.img_member_verification_pending); + getBinding().f1804s.b.setImageResource(R.drawable.ic_close_circle_nova_grey_24dp); return; } else if (ordinal == 2) { getBinding().f1804s.d.setText(R.string.member_verification_application_rejected_title); getBinding().f1804s.f136c.setImageResource(R.drawable.img_member_verification_denied); + getBinding().f1804s.b.setImageResource(R.drawable.ic_member_verification_chat_guard_cta); return; } } getBinding().f1804s.d.setText(R.string.member_verification_chat_blocker_text); getBinding().f1804s.f136c.setImageResource(R.drawable.img_member_verification_started); + getBinding().f1804s.b.setImageResource(R.drawable.ic_member_verification_chat_guard_cta); } else { TextView textView2 = getBinding().r.e; m.checkNotNullExpressionValue(textView2, "binding.guard.chatInputGuardText"); diff --git a/app/src/main/java/com/discord/widgets/guilds/contextmenu/WidgetFolderContextMenu.java b/app/src/main/java/com/discord/widgets/guilds/contextmenu/WidgetFolderContextMenu.java index 92c477cedf..63032d4869 100644 --- a/app/src/main/java/com/discord/widgets/guilds/contextmenu/WidgetFolderContextMenu.java +++ b/app/src/main/java/com/discord/widgets/guilds/contextmenu/WidgetFolderContextMenu.java @@ -216,6 +216,7 @@ public final class WidgetFolderContextMenu extends AppFragment { TextView textView2 = getBinding().d; m.checkNotNullExpressionValue(textView2, "binding.folderContextMenuMarkAsRead"); textView2.setVisibility(valid.getShowMarkAsRead() ? 0 : 8); + getBinding().b.setContentPadding(0, 0, 0, 0); CardView cardView = getBinding().b; m.checkNotNullExpressionValue(cardView, "binding.folderContextMenuCard"); if (cardView.getVisibility() == 0) { diff --git a/app/src/main/java/com/discord/widgets/guilds/contextmenu/WidgetGuildContextMenu.java b/app/src/main/java/com/discord/widgets/guilds/contextmenu/WidgetGuildContextMenu.java index d12b641e34..d23dd3097a 100644 --- a/app/src/main/java/com/discord/widgets/guilds/contextmenu/WidgetGuildContextMenu.java +++ b/app/src/main/java/com/discord/widgets/guilds/contextmenu/WidgetGuildContextMenu.java @@ -216,6 +216,7 @@ public final class WidgetGuildContextMenu extends AppFragment { i = 0; } textView3.setVisibility(i); + getBinding().b.setContentPadding(0, 0, 0, 0); CardView cardView = getBinding().b; m.checkNotNullExpressionValue(cardView, "binding.guildContextMenuCard"); if (cardView.getVisibility() == 0) { diff --git a/app/src/main/java/com/discord/widgets/guildscheduledevent/GuildScheduledEventAPI.java b/app/src/main/java/com/discord/widgets/guildscheduledevent/GuildScheduledEventAPI.java index 920965f5c0..1c92327d6b 100644 --- a/app/src/main/java/com/discord/widgets/guildscheduledevent/GuildScheduledEventAPI.java +++ b/app/src/main/java/com/discord/widgets/guildscheduledevent/GuildScheduledEventAPI.java @@ -12,11 +12,11 @@ public final class GuildScheduledEventAPI { private GuildScheduledEventAPI() { } - public final Observable endEvent(long j) { - return RestAPI.Companion.getApi().updateGuildScheduledEvent(j, new RestAPIParams.UpdateGuildScheduledEventBody(null, null, null, null, null, null, null, null, GuildScheduledEventStatus.COMPLETED, 255, null)); + public final Observable endEvent(long j, long j2) { + return RestAPI.Companion.getApi().updateGuildScheduledEvent(j, j2, new RestAPIParams.UpdateGuildScheduledEventBody(null, null, null, null, null, null, null, null, GuildScheduledEventStatus.COMPLETED, 255, null)); } - public final Observable startEvent(long j) { - return RestAPI.Companion.getApi().updateGuildScheduledEvent(j, new RestAPIParams.UpdateGuildScheduledEventBody(null, null, null, null, null, null, null, null, GuildScheduledEventStatus.ACTIVE, 255, null)); + public final Observable startEvent(long j, long j2) { + return RestAPI.Companion.getApi().updateGuildScheduledEvent(j, j2, new RestAPIParams.UpdateGuildScheduledEventBody(null, null, null, null, null, null, null, null, GuildScheduledEventStatus.ACTIVE, 255, null)); } } diff --git a/app/src/main/java/com/discord/widgets/guildscheduledevent/GuildScheduledEventDetailsViewModel.java b/app/src/main/java/com/discord/widgets/guildscheduledevent/GuildScheduledEventDetailsViewModel.java index 3f02e7093c..5c512475b3 100644 --- a/app/src/main/java/com/discord/widgets/guildscheduledevent/GuildScheduledEventDetailsViewModel.java +++ b/app/src/main/java/com/discord/widgets/guildscheduledevent/GuildScheduledEventDetailsViewModel.java @@ -757,7 +757,7 @@ public final class GuildScheduledEventDetailsViewModel extends AppViewModel { + public final /* synthetic */ WidgetEndGuildScheduledEventBottomSheet this$0; + + /* JADX INFO: super call moved to the top of the method (can break code semantics) */ + public WidgetEndGuildScheduledEventBottomSheet$guildId$2(WidgetEndGuildScheduledEventBottomSheet widgetEndGuildScheduledEventBottomSheet) { + super(0); + this.this$0 = widgetEndGuildScheduledEventBottomSheet; + } + + /* Return type fixed from 'long' to match base method */ + /* JADX WARNING: Unknown variable types count: 1 */ + @Override // kotlin.jvm.functions.Function0 + /* renamed from: invoke */ + public final Long mo1invoke() { + return this.this$0.requireArguments().getLong("com.discord.intent.extra.EXTRA_GUILD_ID"); + } +} diff --git a/app/src/main/java/com/discord/widgets/guildscheduledevent/WidgetEndGuildScheduledEventBottomSheet.java b/app/src/main/java/com/discord/widgets/guildscheduledevent/WidgetEndGuildScheduledEventBottomSheet.java index e546d84265..4d7c1e02b3 100644 --- a/app/src/main/java/com/discord/widgets/guildscheduledevent/WidgetEndGuildScheduledEventBottomSheet.java +++ b/app/src/main/java/com/discord/widgets/guildscheduledevent/WidgetEndGuildScheduledEventBottomSheet.java @@ -31,6 +31,7 @@ public final class WidgetEndGuildScheduledEventBottomSheet extends AppBottomShee public static final Companion Companion = new Companion(null); private static final String EXTRA_REQUEST_KEY = "INTENT_EXTRA_REQUEST_KEY"; private final FragmentViewBindingDelegate binding$delegate = FragmentViewBindingDelegateKt.viewBinding$default(this, WidgetEndGuildScheduledEventBottomSheet$binding$2.INSTANCE, null, 2, null); + private final Lazy guildId$delegate = g.lazy(new WidgetEndGuildScheduledEventBottomSheet$guildId$2(this)); private final Lazy guildScheduledEventId$delegate = g.lazy(new WidgetEndGuildScheduledEventBottomSheet$guildScheduledEventId$2(this)); private final Lazy requestKey$delegate = g.lazy(new WidgetEndGuildScheduledEventBottomSheet$requestKey$2(this)); @@ -50,11 +51,11 @@ public final class WidgetEndGuildScheduledEventBottomSheet extends AppBottomShee FragmentKt.setFragmentResultListener(fragment, str, new WidgetEndGuildScheduledEventBottomSheet$Companion$registerForResult$1(str, function0)); } - public final void show(FragmentManager fragmentManager, String str, long j) { + public final void show(FragmentManager fragmentManager, String str, long j, long j2) { m.checkNotNullParameter(fragmentManager, "fragmentManager"); m.checkNotNullParameter(str, "requestKey"); WidgetEndGuildScheduledEventBottomSheet widgetEndGuildScheduledEventBottomSheet = new WidgetEndGuildScheduledEventBottomSheet(); - widgetEndGuildScheduledEventBottomSheet.setArguments(BundleKt.bundleOf(o.to("com.discord.intent.extra.EXTRA_GUILD_SCHEDULED_EVENT_ID", Long.valueOf(j)), o.to(WidgetEndGuildScheduledEventBottomSheet.EXTRA_REQUEST_KEY, str))); + widgetEndGuildScheduledEventBottomSheet.setArguments(BundleKt.bundleOf(o.to("com.discord.intent.extra.EXTRA_GUILD_SCHEDULED_EVENT_ID", Long.valueOf(j2)), o.to("com.discord.intent.extra.EXTRA_GUILD_ID", Long.valueOf(j)), o.to(WidgetEndGuildScheduledEventBottomSheet.EXTRA_REQUEST_KEY, str))); widgetEndGuildScheduledEventBottomSheet.show(fragmentManager, WidgetEndGuildScheduledEventBottomSheet.class.getSimpleName()); } } @@ -81,6 +82,10 @@ public final class WidgetEndGuildScheduledEventBottomSheet extends AppBottomShee return (WidgetEndStageBottomSheetBinding) this.binding$delegate.getValue((Fragment) this, $$delegatedProperties[0]); } + private final long getGuildId() { + return ((Number) this.guildId$delegate.getValue()).longValue(); + } + private final long getGuildScheduledEventId() { return ((Number) this.guildScheduledEventId$delegate.getValue()).longValue(); } @@ -90,7 +95,7 @@ public final class WidgetEndGuildScheduledEventBottomSheet extends AppBottomShee } private final void onConfirmEnd() { - ObservableExtensionsKt.appSubscribe$default(ObservableExtensionsKt.restSubscribeOn$default(GuildScheduledEventAPI.INSTANCE.endEvent(getGuildScheduledEventId()), false, 1, null), WidgetEndGuildScheduledEventBottomSheet.class, (Context) null, (Function1) null, (Function1) null, (Function0) null, (Function0) null, WidgetEndGuildScheduledEventBottomSheet$onConfirmEnd$1.INSTANCE, 62, (Object) null); + ObservableExtensionsKt.appSubscribe$default(ObservableExtensionsKt.restSubscribeOn$default(GuildScheduledEventAPI.INSTANCE.endEvent(getGuildId(), getGuildScheduledEventId()), false, 1, null), WidgetEndGuildScheduledEventBottomSheet.class, (Context) null, (Function1) null, (Function1) null, (Function0) null, (Function0) null, WidgetEndGuildScheduledEventBottomSheet$onConfirmEnd$1.INSTANCE, 62, (Object) null); } @Override // com.discord.app.AppBottomSheet diff --git a/app/src/main/java/com/discord/widgets/roles/RoleIconView.java b/app/src/main/java/com/discord/widgets/roles/RoleIconView.java index eaf4c36e10..7f7ccb54fd 100644 --- a/app/src/main/java/com/discord/widgets/roles/RoleIconView.java +++ b/app/src/main/java/com/discord/widgets/roles/RoleIconView.java @@ -6,16 +6,16 @@ import android.view.LayoutInflater; import android.widget.FrameLayout; import c.a.k.b; import com.discord.R; -import com.discord.api.guild.GuildFeature; import com.discord.api.role.GuildRole; import com.discord.databinding.RoleIconViewBinding; import com.discord.models.domain.emoji.ModelEmojiUnicode; +import com.discord.models.guild.Guild; import com.discord.stores.StoreStream; import com.discord.utilities.dimen.DimenUtils; import com.discord.utilities.guilds.GuildUtilsKt; +import com.discord.utilities.guilds.RoleIconUtils; import com.discord.utilities.icon.IconUtils; import com.discord.utilities.images.MGImages; -import com.discord.utilities.premium.PremiumUtils; import com.discord.utilities.textprocessing.AstRenderer; import com.discord.utilities.textprocessing.node.EmojiNode; import com.discord.utilities.view.ToastManager; @@ -101,8 +101,8 @@ public final class RoleIconView extends FrameLayout { } public final void setRole(GuildRole guildRole, Long l) { - boolean doesGuildHaveEnoughBoostsForFeature = PremiumUtils.INSTANCE.doesGuildHaveEnoughBoostsForFeature(l != null ? StoreStream.Companion.getGuilds().getGuild(l.longValue()) : null, GuildFeature.ROLE_ICONS); - if (guildRole == null || !hasIconOrUnicodeEmoji(guildRole) || !doesGuildHaveEnoughBoostsForFeature) { + Guild guild = l != null ? StoreStream.Companion.getGuilds().getGuild(l.longValue()) : null; + if (guildRole == null || !hasIconOrUnicodeEmoji(guildRole) || guild == null || !RoleIconUtils.INSTANCE.canUseRoleIcons(guild, guildRole)) { setVisibility(8); return; } diff --git a/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingDialog$Companion$enqueue$memberVerificationPendingDialogNotice$1.java b/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingDialog$Companion$enqueue$memberVerificationPendingDialogNotice$1.java index 89f01f1307..e0efda1c64 100644 --- a/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingDialog$Companion$enqueue$memberVerificationPendingDialogNotice$1.java +++ b/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingDialog$Companion$enqueue$memberVerificationPendingDialogNotice$1.java @@ -4,18 +4,21 @@ import android.os.Bundle; import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentManager; import com.discord.widgets.servers.WidgetServerSettingsChannels; +import com.discord.widgets.servers.member_verification.MemberVerificationPendingViewModel; import d0.z.d.a0; import d0.z.d.m; import d0.z.d.o; import kotlin.jvm.functions.Function1; /* compiled from: MemberVerificationPendingDialog.kt */ public final class MemberVerificationPendingDialog$Companion$enqueue$memberVerificationPendingDialogNotice$1 extends o implements Function1 { + public final /* synthetic */ MemberVerificationPendingViewModel.DialogState $dialogState; public final /* synthetic */ long $guildId; /* JADX INFO: super call moved to the top of the method (can break code semantics) */ - public MemberVerificationPendingDialog$Companion$enqueue$memberVerificationPendingDialogNotice$1(long j) { + public MemberVerificationPendingDialog$Companion$enqueue$memberVerificationPendingDialogNotice$1(long j, MemberVerificationPendingViewModel.DialogState dialogState) { super(1); this.$guildId = j; + this.$dialogState = dialogState; } /* Return type fixed from 'java.lang.Object' to match base method */ @@ -30,6 +33,7 @@ public final class MemberVerificationPendingDialog$Companion$enqueue$memberVerif MemberVerificationPendingDialog memberVerificationPendingDialog = new MemberVerificationPendingDialog(); Bundle bundle = new Bundle(); bundle.putLong(WidgetServerSettingsChannels.INTENT_EXTRA_GUILD_ID, this.$guildId); + bundle.putSerializable("INTENT_EXTRA_DIALOG_STATE", this.$dialogState); memberVerificationPendingDialog.setArguments(bundle); FragmentManager supportFragmentManager = fragmentActivity.getSupportFragmentManager(); m.checkNotNullExpressionValue(supportFragmentManager, "appActivity.supportFragmentManager"); diff --git a/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingDialog$configureLoadedUI$6.java b/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingDialog$configureLoadedUI$10.java similarity index 64% rename from app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingDialog$configureLoadedUI$6.java rename to app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingDialog$configureLoadedUI$10.java index c222347bce..db3f9efe3e 100644 --- a/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingDialog$configureLoadedUI$6.java +++ b/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingDialog$configureLoadedUI$10.java @@ -2,16 +2,15 @@ package com.discord.widgets.servers.member_verification; import android.view.View; /* compiled from: MemberVerificationPendingDialog.kt */ -public final class MemberVerificationPendingDialog$configureLoadedUI$6 implements View.OnClickListener { +public final class MemberVerificationPendingDialog$configureLoadedUI$10 implements View.OnClickListener { public final /* synthetic */ MemberVerificationPendingDialog this$0; - public MemberVerificationPendingDialog$configureLoadedUI$6(MemberVerificationPendingDialog memberVerificationPendingDialog) { + public MemberVerificationPendingDialog$configureLoadedUI$10(MemberVerificationPendingDialog memberVerificationPendingDialog) { this.this$0 = memberVerificationPendingDialog; } @Override // android.view.View.OnClickListener public final void onClick(View view) { - MemberVerificationPendingDialog.access$getViewModel$p(this.this$0).leaveGuild(); this.this$0.dismiss(); } } diff --git a/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingDialog$configureLoadedUI$11.java b/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingDialog$configureLoadedUI$11.java new file mode 100644 index 0000000000..e962099aa1 --- /dev/null +++ b/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingDialog$configureLoadedUI$11.java @@ -0,0 +1,21 @@ +package com.discord.widgets.servers.member_verification; + +import android.content.Context; +import android.view.View; +import com.discord.utilities.uri.UriHandler; +import d0.z.d.m; +/* compiled from: MemberVerificationPendingDialog.kt */ +public final class MemberVerificationPendingDialog$configureLoadedUI$11 implements View.OnClickListener { + public final /* synthetic */ MemberVerificationPendingDialog this$0; + + public MemberVerificationPendingDialog$configureLoadedUI$11(MemberVerificationPendingDialog memberVerificationPendingDialog) { + this.this$0 = memberVerificationPendingDialog; + } + + @Override // android.view.View.OnClickListener + public final void onClick(View view) { + Context requireContext = this.this$0.requireContext(); + m.checkNotNullExpressionValue(requireContext, "requireContext()"); + UriHandler.directToPlayStore$default(requireContext, null, null, 6, null); + } +} diff --git a/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingDialog$configureLoadedUI$12.java b/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingDialog$configureLoadedUI$12.java new file mode 100644 index 0000000000..cd4883c088 --- /dev/null +++ b/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingDialog$configureLoadedUI$12.java @@ -0,0 +1,16 @@ +package com.discord.widgets.servers.member_verification; + +import android.view.View; +/* compiled from: MemberVerificationPendingDialog.kt */ +public final class MemberVerificationPendingDialog$configureLoadedUI$12 implements View.OnClickListener { + public final /* synthetic */ MemberVerificationPendingDialog this$0; + + public MemberVerificationPendingDialog$configureLoadedUI$12(MemberVerificationPendingDialog memberVerificationPendingDialog) { + this.this$0 = memberVerificationPendingDialog; + } + + @Override // android.view.View.OnClickListener + public final void onClick(View view) { + this.this$0.dismiss(); + } +} diff --git a/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingDialog$configureLoadedUI$4.java b/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingDialog$configureLoadedUI$4.java index b16cfdf863..703059d843 100644 --- a/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingDialog$configureLoadedUI$4.java +++ b/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingDialog$configureLoadedUI$4.java @@ -11,7 +11,7 @@ public final class MemberVerificationPendingDialog$configureLoadedUI$4 implement @Override // android.view.View.OnClickListener public final void onClick(View view) { - MemberVerificationPendingDialog.access$getViewModel$p(this.this$0).cancelApplication(); + MemberVerificationPendingDialog.access$getViewModel$p(this.this$0).resetGuildJoinRequest(); this.this$0.dismiss(); } } diff --git a/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingDialog$configureLoadedUI$8.java b/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingDialog$configureLoadedUI$8.java index acb96ec8cc..1c81d01450 100644 --- a/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingDialog$configureLoadedUI$8.java +++ b/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingDialog$configureLoadedUI$8.java @@ -1,9 +1,6 @@ package com.discord.widgets.servers.member_verification; -import android.content.Context; import android.view.View; -import com.discord.utilities.uri.UriHandler; -import d0.z.d.m; /* compiled from: MemberVerificationPendingDialog.kt */ public final class MemberVerificationPendingDialog$configureLoadedUI$8 implements View.OnClickListener { public final /* synthetic */ MemberVerificationPendingDialog this$0; @@ -14,8 +11,7 @@ public final class MemberVerificationPendingDialog$configureLoadedUI$8 implement @Override // android.view.View.OnClickListener public final void onClick(View view) { - Context requireContext = this.this$0.requireContext(); - m.checkNotNullExpressionValue(requireContext, "requireContext()"); - UriHandler.directToPlayStore$default(requireContext, null, null, 6, null); + MemberVerificationPendingDialog.access$getViewModel$p(this.this$0).resetGuildJoinRequest(); + this.this$0.dismiss(); } } diff --git a/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingDialog$configureLoadedUI$9.java b/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingDialog$configureLoadedUI$9.java index acac7adf38..a72beb9368 100644 --- a/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingDialog$configureLoadedUI$9.java +++ b/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingDialog$configureLoadedUI$9.java @@ -11,6 +11,7 @@ public final class MemberVerificationPendingDialog$configureLoadedUI$9 implement @Override // android.view.View.OnClickListener public final void onClick(View view) { + MemberVerificationPendingDialog.access$getViewModel$p(this.this$0).leaveGuild(); this.this$0.dismiss(); } } diff --git a/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingDialog$viewModel$2.java b/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingDialog$viewModel$2.java index db6dc49757..cb9a28e335 100644 --- a/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingDialog$viewModel$2.java +++ b/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingDialog$viewModel$2.java @@ -5,6 +5,7 @@ import com.discord.app.AppViewModel; import com.discord.widgets.servers.WidgetServerSettingsChannels; import com.discord.widgets.servers.member_verification.MemberVerificationPendingViewModel; import d0.z.d.o; +import java.io.Serializable; import java.util.Objects; import kotlin.jvm.functions.Function0; /* compiled from: MemberVerificationPendingDialog.kt */ @@ -21,8 +22,15 @@ public final class MemberVerificationPendingDialog$viewModel$2 extends o impleme /* renamed from: invoke */ public final AppViewModel mo1invoke() { Bundle arguments = this.this$0.getArguments(); + Serializable serializable = null; Long valueOf = arguments != null ? Long.valueOf(arguments.getLong(WidgetServerSettingsChannels.INTENT_EXTRA_GUILD_ID)) : null; Objects.requireNonNull(valueOf, "null cannot be cast to non-null type com.discord.primitives.GuildId /* = kotlin.Long */"); - return new MemberVerificationPendingViewModel(valueOf.longValue(), null, null, 6, null); + long longValue = valueOf.longValue(); + Bundle arguments2 = this.this$0.getArguments(); + if (arguments2 != null) { + serializable = arguments2.getSerializable("INTENT_EXTRA_DIALOG_STATE"); + } + Objects.requireNonNull(serializable, "null cannot be cast to non-null type com.discord.widgets.servers.member_verification.MemberVerificationPendingViewModel.DialogState"); + return new MemberVerificationPendingViewModel(longValue, (MemberVerificationPendingViewModel.DialogState) serializable, null, null, 12, null); } } diff --git a/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingDialog.java b/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingDialog.java index af6938bd6e..932f307dfb 100644 --- a/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingDialog.java +++ b/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingDialog.java @@ -37,6 +37,7 @@ import rx.Observable; public final class MemberVerificationPendingDialog extends AppDialog { public static final /* synthetic */ KProperty[] $$delegatedProperties = {a.b0(MemberVerificationPendingDialog.class, "binding", "getBinding()Lcom/discord/databinding/WidgetMemberVerificationPendingDialogBinding;", 0)}; public static final Companion Companion = new Companion(null); + private static final String INTENT_EXTRA_DIALOG_STATE = "INTENT_EXTRA_DIALOG_STATE"; private static final String INTENT_EXTRA_GUILD_ID = "INTENT_EXTRA_GUILD_ID"; private final FragmentViewBindingDelegate binding$delegate = FragmentViewBindingDelegateKt.viewBinding$default(this, MemberVerificationPendingDialog$binding$2.INSTANCE, null, 2, null); private final Lazy viewModel$delegate; @@ -50,16 +51,33 @@ public final class MemberVerificationPendingDialog extends AppDialog { this(); } - public final void enqueue(long j, String str) { - m.checkNotNullParameter(str, "guildName"); - StoreStream.Companion.getNotices().requestToShow(new StoreNotices.Notice(str, null, 0, 0, false, d0.t.m.listOf(a0.getOrCreateKotlinClass(WidgetHome.class)), 0, false, 0, new MemberVerificationPendingDialog$Companion$enqueue$memberVerificationPendingDialogNotice$1(j), FontUtils.MAX_FONT_SCALING, null)); + public static /* synthetic */ void enqueue$default(Companion companion, long j, String str, MemberVerificationPendingViewModel.DialogState dialogState, int i, Object obj) { + if ((i & 4) != 0) { + dialogState = MemberVerificationPendingViewModel.DialogState.PENDING; + } + companion.enqueue(j, str, dialogState); } - public final void show(FragmentManager fragmentManager, long j) { + public static /* synthetic */ void show$default(Companion companion, FragmentManager fragmentManager, long j, MemberVerificationPendingViewModel.DialogState dialogState, int i, Object obj) { + if ((i & 4) != 0) { + dialogState = MemberVerificationPendingViewModel.DialogState.PENDING; + } + companion.show(fragmentManager, j, dialogState); + } + + public final void enqueue(long j, String str, MemberVerificationPendingViewModel.DialogState dialogState) { + m.checkNotNullParameter(str, "guildName"); + m.checkNotNullParameter(dialogState, "dialogState"); + StoreStream.Companion.getNotices().requestToShow(new StoreNotices.Notice(str, null, 0, 0, false, d0.t.m.listOf(a0.getOrCreateKotlinClass(WidgetHome.class)), 0, false, 0, new MemberVerificationPendingDialog$Companion$enqueue$memberVerificationPendingDialogNotice$1(j, dialogState), FontUtils.MAX_FONT_SCALING, null)); + } + + public final void show(FragmentManager fragmentManager, long j, MemberVerificationPendingViewModel.DialogState dialogState) { m.checkNotNullParameter(fragmentManager, "supportFragmentManager"); + m.checkNotNullParameter(dialogState, "dialogState"); MemberVerificationPendingDialog memberVerificationPendingDialog = new MemberVerificationPendingDialog(); Bundle bundle = new Bundle(); bundle.putLong("INTENT_EXTRA_GUILD_ID", j); + bundle.putSerializable(MemberVerificationPendingDialog.INTENT_EXTRA_DIALOG_STATE, dialogState); memberVerificationPendingDialog.setArguments(bundle); memberVerificationPendingDialog.show(fragmentManager, MemberVerificationPendingDialog.class.getSimpleName()); } @@ -71,17 +89,20 @@ public final class MemberVerificationPendingDialog extends AppDialog { static { MemberVerificationPendingViewModel.DialogState.values(); - int[] iArr = new int[4]; + int[] iArr = new int[5]; $EnumSwitchMapping$0 = iArr; - MemberVerificationPendingViewModel.DialogState dialogState = MemberVerificationPendingViewModel.DialogState.LEAVE; + MemberVerificationPendingViewModel.DialogState dialogState = MemberVerificationPendingViewModel.DialogState.CANCEL; iArr[dialogState.ordinal()] = 1; + MemberVerificationPendingViewModel.DialogState dialogState2 = MemberVerificationPendingViewModel.DialogState.LEAVE; + iArr[dialogState2.ordinal()] = 2; MemberVerificationPendingViewModel.DialogState.values(); - int[] iArr2 = new int[4]; + int[] iArr2 = new int[5]; $EnumSwitchMapping$1 = iArr2; iArr2[MemberVerificationPendingViewModel.DialogState.PENDING.ordinal()] = 1; - iArr2[MemberVerificationPendingViewModel.DialogState.CANCEL.ordinal()] = 2; - iArr2[dialogState.ordinal()] = 3; - iArr2[MemberVerificationPendingViewModel.DialogState.UPGRADE.ordinal()] = 4; + iArr2[dialogState.ordinal()] = 2; + iArr2[MemberVerificationPendingViewModel.DialogState.REJECTED.ordinal()] = 3; + iArr2[dialogState2.ordinal()] = 4; + iArr2[MemberVerificationPendingViewModel.DialogState.UPGRADE.ordinal()] = 5; } } @@ -103,20 +124,18 @@ public final class MemberVerificationPendingDialog extends AppDialog { private final void configureLoadedUI(MemberVerificationPendingViewModel.ViewState.Loaded loaded) { ImageView imageView = getBinding().b; m.checkNotNullExpressionValue(imageView, "binding.memberVerificationPendingImg"); - int i = 0; + boolean z2 = false; imageView.setVisibility(loaded.getShowPendingImage() ? 0 : 8); TextView textView = getBinding().e; m.checkNotNullExpressionValue(textView, "binding.memberVerificationTertiaryBtn"); - if (!loaded.getShowTertiaryButton()) { - i = 8; - } - textView.setVisibility(i); - int themedColor = loaded.getDialogState().ordinal() != 3 ? ColorCompat.getThemedColor(getContext(), (int) R.attr.color_brand_500) : ColorCompat.getColor(getContext(), (int) R.color.status_red_500); + textView.setVisibility(loaded.getShowTertiaryButton() ? 0 : 8); + int ordinal = loaded.getDialogState().ordinal(); + int color = (ordinal == 2 || ordinal == 4) ? ColorCompat.getColor(getContext(), (int) R.color.status_red_500) : ColorCompat.getThemedColor(getContext(), (int) R.attr.color_brand_500); MaterialButton materialButton = getBinding().f1947c; m.checkNotNullExpressionValue(materialButton, "binding.memberVerificationPrimaryBtn"); - materialButton.setBackgroundTintList(ColorStateList.valueOf(themedColor)); - int ordinal = loaded.getDialogState().ordinal(); - if (ordinal == 0) { + materialButton.setBackgroundTintList(ColorStateList.valueOf(color)); + int ordinal2 = loaded.getDialogState().ordinal(); + if (ordinal2 == 0) { getBinding().b.setImageResource(R.drawable.ic_community_update); TextView textView2 = getBinding().g; m.checkNotNullExpressionValue(textView2, "binding.pendingDialogTitle"); @@ -130,9 +149,9 @@ public final class MemberVerificationPendingDialog extends AppDialog { MaterialButton materialButton3 = getBinding().d; m.checkNotNullExpressionValue(materialButton3, "binding.memberVerificationSecondaryBtn"); materialButton3.setText(getString(R.string.cancel)); - getBinding().f1947c.setOnClickListener(new MemberVerificationPendingDialog$configureLoadedUI$8(this)); - getBinding().d.setOnClickListener(new MemberVerificationPendingDialog$configureLoadedUI$9(this)); - } else if (ordinal == 1) { + getBinding().f1947c.setOnClickListener(new MemberVerificationPendingDialog$configureLoadedUI$11(this)); + getBinding().d.setOnClickListener(new MemberVerificationPendingDialog$configureLoadedUI$12(this)); + } else if (ordinal2 == 1) { getBinding().b.setImageResource(R.drawable.ic_member_verification_pending); TextView textView4 = getBinding().g; m.checkNotNullExpressionValue(textView4, "binding.pendingDialogTitle"); @@ -142,43 +161,84 @@ public final class MemberVerificationPendingDialog extends AppDialog { textView5.setText(getString(R.string.member_verification_pending_application_modal_desc)); MaterialButton materialButton4 = getBinding().f1947c; m.checkNotNullExpressionValue(materialButton4, "binding.memberVerificationPrimaryBtn"); - materialButton4.setText(getString(R.string.member_verification_pending_application_modal_confirm)); - MaterialButton materialButton5 = getBinding().d; - m.checkNotNullExpressionValue(materialButton5, "binding.memberVerificationSecondaryBtn"); - materialButton5.setText(getString(R.string.member_verification_pending_application_modal_cancel)); + materialButton4.setText(getString(R.string.got_it)); getBinding().f1947c.setOnClickListener(new MemberVerificationPendingDialog$configureLoadedUI$1(this)); - getBinding().d.setOnClickListener(new MemberVerificationPendingDialog$configureLoadedUI$2(this)); - getBinding().e.setOnClickListener(new MemberVerificationPendingDialog$configureLoadedUI$3(this)); - } else if (ordinal == 2) { - TextView textView6 = getBinding().g; - m.checkNotNullExpressionValue(textView6, "binding.pendingDialogTitle"); - textView6.setText(getString(R.string.member_verification_pending_application_cancel_modal_title)); - TextView textView7 = getBinding().f; - m.checkNotNullExpressionValue(textView7, "binding.pendingDialogDesc"); - textView7.setText(getString(R.string.member_verification_pending_application_leave_server_modal_desc)); - MaterialButton materialButton6 = getBinding().f1947c; - m.checkNotNullExpressionValue(materialButton6, "binding.memberVerificationPrimaryBtn"); - materialButton6.setText(getString(R.string.member_verification_pending_application_modal_cancel)); + if (loaded.isPreviewEnabled()) { + MaterialButton materialButton5 = getBinding().d; + m.checkNotNullExpressionValue(materialButton5, "binding.memberVerificationSecondaryBtn"); + materialButton5.setVisibility(8); + TextView textView6 = getBinding().e; + m.checkNotNullExpressionValue(textView6, "binding.memberVerificationTertiaryBtn"); + textView6.setVisibility(8); + return; + } + MaterialButton materialButton6 = getBinding().d; + m.checkNotNullExpressionValue(materialButton6, "binding.memberVerificationSecondaryBtn"); + materialButton6.setVisibility(0); MaterialButton materialButton7 = getBinding().d; m.checkNotNullExpressionValue(materialButton7, "binding.memberVerificationSecondaryBtn"); - materialButton7.setText(getString(R.string.member_verification_pending_application_modal_dismiss)); - getBinding().f1947c.setOnClickListener(new MemberVerificationPendingDialog$configureLoadedUI$4(this)); - getBinding().d.setOnClickListener(new MemberVerificationPendingDialog$configureLoadedUI$5(this)); - } else if (ordinal == 3) { - TextView textView8 = getBinding().g; - m.checkNotNullExpressionValue(textView8, "binding.pendingDialogTitle"); - textView8.setText(getString(R.string.member_verification_pending_application_leave_server_modal_title)); - TextView textView9 = getBinding().f; - m.checkNotNullExpressionValue(textView9, "binding.pendingDialogDesc"); - textView9.setText(getString(R.string.member_verification_pending_application_leave_server_modal_desc)); + materialButton7.setText(getString(R.string.member_verification_cancel_application)); + getBinding().d.setOnClickListener(new MemberVerificationPendingDialog$configureLoadedUI$2(this)); + TextView textView7 = getBinding().e; + m.checkNotNullExpressionValue(textView7, "binding.memberVerificationTertiaryBtn"); + textView7.setVisibility(0); + TextView textView8 = getBinding().e; + m.checkNotNullExpressionValue(textView8, "binding.memberVerificationTertiaryBtn"); + textView8.setText(getString(R.string.leave_server)); + getBinding().e.setOnClickListener(new MemberVerificationPendingDialog$configureLoadedUI$3(this)); + } else if (ordinal2 == 2) { + TextView textView9 = getBinding().g; + m.checkNotNullExpressionValue(textView9, "binding.pendingDialogTitle"); + textView9.setText(getString(R.string.member_verification_pending_application_cancel_modal_title)); + TextView textView10 = getBinding().f; + m.checkNotNullExpressionValue(textView10, "binding.pendingDialogDesc"); + textView10.setText(getString(R.string.member_verification_pending_application_leave_server_modal_desc)); MaterialButton materialButton8 = getBinding().f1947c; m.checkNotNullExpressionValue(materialButton8, "binding.memberVerificationPrimaryBtn"); - materialButton8.setText(getString(R.string.member_verification_pending_application_modal_leave)); + materialButton8.setText(getString(R.string.member_verification_pending_application_modal_cancel)); MaterialButton materialButton9 = getBinding().d; m.checkNotNullExpressionValue(materialButton9, "binding.memberVerificationSecondaryBtn"); materialButton9.setText(getString(R.string.member_verification_pending_application_modal_dismiss)); - getBinding().f1947c.setOnClickListener(new MemberVerificationPendingDialog$configureLoadedUI$6(this)); - getBinding().d.setOnClickListener(new MemberVerificationPendingDialog$configureLoadedUI$7(this)); + getBinding().f1947c.setOnClickListener(new MemberVerificationPendingDialog$configureLoadedUI$4(this)); + getBinding().d.setOnClickListener(new MemberVerificationPendingDialog$configureLoadedUI$5(this)); + } else if (ordinal2 == 3) { + TextView textView11 = getBinding().g; + m.checkNotNullExpressionValue(textView11, "binding.pendingDialogTitle"); + textView11.setText(getString(R.string.member_verification_application_rejected_title)); + if (loaded.getRejectionReason() != null) { + String rejectionReason = loaded.getRejectionReason(); + if (rejectionReason == null || rejectionReason.length() == 0) { + z2 = true; + } + if (!z2) { + TextView textView12 = getBinding().f; + m.checkNotNullExpressionValue(textView12, "binding.pendingDialogDesc"); + textView12.setText(getString(R.string.member_verification_application_rejected_reason) + " " + loaded.getRejectionReason()); + } + } + MaterialButton materialButton10 = getBinding().f1947c; + m.checkNotNullExpressionValue(materialButton10, "binding.memberVerificationPrimaryBtn"); + materialButton10.setText(getString(R.string.okay)); + MaterialButton materialButton11 = getBinding().d; + m.checkNotNullExpressionValue(materialButton11, "binding.memberVerificationSecondaryBtn"); + materialButton11.setText(getString(R.string.member_verification_application_reapply)); + getBinding().f1947c.setOnClickListener(new MemberVerificationPendingDialog$configureLoadedUI$7(this)); + getBinding().d.setOnClickListener(new MemberVerificationPendingDialog$configureLoadedUI$8(this)); + } else if (ordinal2 == 4) { + TextView textView13 = getBinding().g; + m.checkNotNullExpressionValue(textView13, "binding.pendingDialogTitle"); + textView13.setText(getString(R.string.member_verification_pending_application_leave_server_modal_title)); + TextView textView14 = getBinding().f; + m.checkNotNullExpressionValue(textView14, "binding.pendingDialogDesc"); + textView14.setText(getString(R.string.member_verification_pending_application_leave_server_modal_desc)); + MaterialButton materialButton12 = getBinding().f1947c; + m.checkNotNullExpressionValue(materialButton12, "binding.memberVerificationPrimaryBtn"); + materialButton12.setText(getString(R.string.member_verification_pending_application_modal_leave)); + MaterialButton materialButton13 = getBinding().d; + m.checkNotNullExpressionValue(materialButton13, "binding.memberVerificationSecondaryBtn"); + materialButton13.setText(getString(R.string.member_verification_pending_application_modal_dismiss)); + getBinding().f1947c.setOnClickListener(new MemberVerificationPendingDialog$configureLoadedUI$9(this)); + getBinding().d.setOnClickListener(new MemberVerificationPendingDialog$configureLoadedUI$10(this)); } } @@ -198,8 +258,8 @@ public final class MemberVerificationPendingDialog extends AppDialog { return (MemberVerificationPendingViewModel) this.viewModel$delegate.getValue(); } - public static final void show(FragmentManager fragmentManager, long j) { - Companion.show(fragmentManager, j); + public static final void show(FragmentManager fragmentManager, long j, MemberVerificationPendingViewModel.DialogState dialogState) { + Companion.show(fragmentManager, j, dialogState); } @Override // com.discord.app.AppDialog diff --git a/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingViewModel$Companion$observeStores$1.java b/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingViewModel$Companion$observeStores$1.java index 74d983d4a3..702dd065b7 100644 --- a/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingViewModel$Companion$observeStores$1.java +++ b/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingViewModel$Companion$observeStores$1.java @@ -1,13 +1,19 @@ package com.discord.widgets.servers.member_verification; +import com.discord.models.guild.Guild; import com.discord.stores.StoreGuildMemberVerificationForm; import com.discord.widgets.servers.member_verification.MemberVerificationPendingViewModel; -import j0.k.b; +import d0.z.d.k; +import kotlin.jvm.functions.Function2; /* compiled from: MemberVerificationPendingViewModel.kt */ -public final class MemberVerificationPendingViewModel$Companion$observeStores$1 implements b { +public final /* synthetic */ class MemberVerificationPendingViewModel$Companion$observeStores$1 extends k implements Function2 { public static final MemberVerificationPendingViewModel$Companion$observeStores$1 INSTANCE = new MemberVerificationPendingViewModel$Companion$observeStores$1(); - public final MemberVerificationPendingViewModel.StoreState call(StoreGuildMemberVerificationForm.MemberVerificationFormData memberVerificationFormData) { - return new MemberVerificationPendingViewModel.StoreState(memberVerificationFormData); + public MemberVerificationPendingViewModel$Companion$observeStores$1() { + super(2, MemberVerificationPendingViewModel.StoreState.class, "", "(Lcom/discord/stores/StoreGuildMemberVerificationForm$MemberVerificationFormData;Lcom/discord/models/guild/Guild;)V", 0); + } + + public final MemberVerificationPendingViewModel.StoreState invoke(StoreGuildMemberVerificationForm.MemberVerificationFormData memberVerificationFormData, Guild guild) { + return new MemberVerificationPendingViewModel.StoreState(memberVerificationFormData, guild); } } diff --git a/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingViewModel$cancelApplication$2.java b/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingViewModel$cancelApplication$2.java deleted file mode 100644 index 93a8b71a2a..0000000000 --- a/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingViewModel$cancelApplication$2.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.discord.widgets.servers.member_verification; - -import com.discord.widgets.servers.member_verification.MemberVerificationPendingViewModel; -import d0.z.d.o; -import kotlin.Unit; -import kotlin.jvm.functions.Function1; -import rx.subjects.PublishSubject; -/* compiled from: MemberVerificationPendingViewModel.kt */ -public final class MemberVerificationPendingViewModel$cancelApplication$2 extends o implements Function1 { - public final /* synthetic */ MemberVerificationPendingViewModel this$0; - - /* JADX INFO: super call moved to the top of the method (can break code semantics) */ - public MemberVerificationPendingViewModel$cancelApplication$2(MemberVerificationPendingViewModel memberVerificationPendingViewModel) { - super(1); - this.this$0 = memberVerificationPendingViewModel; - } - - /* Return type fixed from 'java.lang.Object' to match base method */ - /* JADX DEBUG: Method arguments types fixed to match base method, original types: [java.lang.Object] */ - @Override // kotlin.jvm.functions.Function1 - public /* bridge */ /* synthetic */ Unit invoke(Void r1) { - invoke(r1); - return Unit.a; - } - - public final void invoke(Void r2) { - PublishSubject access$getEventSubject$p = MemberVerificationPendingViewModel.access$getEventSubject$p(this.this$0); - access$getEventSubject$p.j.onNext(MemberVerificationPendingViewModel.Event.Success.INSTANCE); - } -} diff --git a/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingViewModel$cancelApplication$1.java b/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingViewModel$resetGuildJoinRequest$1.java similarity index 82% rename from app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingViewModel$cancelApplication$1.java rename to app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingViewModel$resetGuildJoinRequest$1.java index 5aab33f57a..7309892570 100644 --- a/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingViewModel$cancelApplication$1.java +++ b/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingViewModel$resetGuildJoinRequest$1.java @@ -8,11 +8,11 @@ import kotlin.Unit; import kotlin.jvm.functions.Function1; import rx.subjects.PublishSubject; /* compiled from: MemberVerificationPendingViewModel.kt */ -public final class MemberVerificationPendingViewModel$cancelApplication$1 extends o implements Function1 { +public final class MemberVerificationPendingViewModel$resetGuildJoinRequest$1 extends o implements Function1 { public final /* synthetic */ MemberVerificationPendingViewModel this$0; /* JADX INFO: super call moved to the top of the method (can break code semantics) */ - public MemberVerificationPendingViewModel$cancelApplication$1(MemberVerificationPendingViewModel memberVerificationPendingViewModel) { + public MemberVerificationPendingViewModel$resetGuildJoinRequest$1(MemberVerificationPendingViewModel memberVerificationPendingViewModel) { super(1); this.this$0 = memberVerificationPendingViewModel; } diff --git a/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingViewModel$resetGuildJoinRequest$2.java b/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingViewModel$resetGuildJoinRequest$2.java new file mode 100644 index 0000000000..1d80b6ba4f --- /dev/null +++ b/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingViewModel$resetGuildJoinRequest$2.java @@ -0,0 +1,28 @@ +package com.discord.widgets.servers.member_verification; + +import com.discord.models.domain.ModelMemberVerificationFormResponse; +import d0.z.d.o; +import kotlin.Unit; +import kotlin.jvm.functions.Function1; +/* compiled from: MemberVerificationPendingViewModel.kt */ +public final class MemberVerificationPendingViewModel$resetGuildJoinRequest$2 extends o implements Function1 { + public final /* synthetic */ MemberVerificationPendingViewModel this$0; + + /* JADX INFO: super call moved to the top of the method (can break code semantics) */ + public MemberVerificationPendingViewModel$resetGuildJoinRequest$2(MemberVerificationPendingViewModel memberVerificationPendingViewModel) { + super(1); + this.this$0 = memberVerificationPendingViewModel; + } + + /* Return type fixed from 'java.lang.Object' to match base method */ + /* JADX DEBUG: Method arguments types fixed to match base method, original types: [java.lang.Object] */ + @Override // kotlin.jvm.functions.Function1 + public /* bridge */ /* synthetic */ Unit invoke(ModelMemberVerificationFormResponse modelMemberVerificationFormResponse) { + invoke(modelMemberVerificationFormResponse); + return Unit.a; + } + + public final void invoke(ModelMemberVerificationFormResponse modelMemberVerificationFormResponse) { + MemberVerificationPendingViewModel.access$onResetSuccess(this.this$0); + } +} diff --git a/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingViewModel$sam$rx_functions_Func2$0.java b/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingViewModel$sam$rx_functions_Func2$0.java new file mode 100644 index 0000000000..b369cf85e8 --- /dev/null +++ b/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingViewModel$sam$rx_functions_Func2$0.java @@ -0,0 +1,17 @@ +package com.discord.widgets.servers.member_verification; + +import kotlin.jvm.functions.Function2; +import rx.functions.Func2; +/* compiled from: MemberVerificationPendingViewModel.kt */ +public final class MemberVerificationPendingViewModel$sam$rx_functions_Func2$0 implements Func2 { + private final /* synthetic */ Function2 function; + + public MemberVerificationPendingViewModel$sam$rx_functions_Func2$0(Function2 function2) { + this.function = function2; + } + + @Override // rx.functions.Func2 + public final /* synthetic */ Object call(Object obj, Object obj2) { + return this.function.invoke(obj, obj2); + } +} diff --git a/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingViewModel.java b/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingViewModel.java index af1778fdd4..cfdab4c383 100644 --- a/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingViewModel.java +++ b/app/src/main/java/com/discord/widgets/servers/member_verification/MemberVerificationPendingViewModel.java @@ -3,8 +3,10 @@ package com.discord.widgets.servers.member_verification; import android.content.Context; import androidx.annotation.MainThread; import c.d.b.a.a; +import com.discord.api.guild.GuildFeature; import com.discord.app.AppViewModel; import com.discord.models.domain.ModelMemberVerificationForm; +import com.discord.models.guild.Guild; import com.discord.stores.StoreGuildMemberVerificationForm; import com.discord.stores.StoreStream; import com.discord.utilities.rest.RestAPI; @@ -16,10 +18,12 @@ import kotlin.jvm.functions.Function0; import kotlin.jvm.functions.Function1; import kotlin.jvm.internal.DefaultConstructorMarker; import rx.Observable; +import rx.functions.Func2; import rx.subjects.PublishSubject; /* compiled from: MemberVerificationPendingViewModel.kt */ public final class MemberVerificationPendingViewModel extends AppViewModel { public static final Companion Companion = new Companion(null); + private final DialogState dialogState; private final PublishSubject eventSubject; private final long guildId; private final RestAPI restAPI; @@ -62,10 +66,19 @@ public final class MemberVerificationPendingViewModel extends AppViewModel observeStores(long j) { - Observable F = StoreStream.Companion.getMemberVerificationForms().observeMemberVerificationFormData(j).F(MemberVerificationPendingViewModel$Companion$observeStores$1.INSTANCE); - m.checkNotNullExpressionValue(F, "StoreStream\n .g…d).map { StoreState(it) }"); - return F; + StoreStream.Companion companion = StoreStream.Companion; + Observable observeMemberVerificationFormData = companion.getMemberVerificationForms().observeMemberVerificationFormData(j); + Observable observeGuild = companion.getGuilds().observeGuild(j); + MemberVerificationPendingViewModel$Companion$observeStores$1 memberVerificationPendingViewModel$Companion$observeStores$1 = MemberVerificationPendingViewModel$Companion$observeStores$1.INSTANCE; + if (memberVerificationPendingViewModel$Companion$observeStores$1 != null) { + memberVerificationPendingViewModel$Companion$observeStores$1 = new MemberVerificationPendingViewModel$sam$rx_functions_Func2$0(memberVerificationPendingViewModel$Companion$observeStores$1); + } + Observable j2 = Observable.j(observeMemberVerificationFormData, observeGuild, (Func2) memberVerificationPendingViewModel$Companion$observeStores$1); + m.checkNotNullExpressionValue(j2, "Observable.combineLatest… ::StoreState\n )"); + return j2; } } @@ -74,6 +87,7 @@ public final class MemberVerificationPendingViewModel extends AppViewModel observable) { + public MemberVerificationPendingViewModel(long j, DialogState dialogState, RestAPI restAPI, Observable observable) { super(null); + m.checkNotNullParameter(dialogState, "dialogState"); m.checkNotNullParameter(restAPI, "restAPI"); m.checkNotNullParameter(observable, "storeObservable"); this.guildId = j; + this.dialogState = dialogState; this.restAPI = restAPI; - this.eventSubject = PublishSubject.k0(); + PublishSubject k0 = PublishSubject.k0(); + m.checkNotNullExpressionValue(k0, "PublishSubject.create()"); + this.eventSubject = k0; ObservableExtensionsKt.appSubscribe$default(ObservableExtensionsKt.ui$default(ObservableExtensionsKt.computationLatest(observable), this, null, 2, null), MemberVerificationPendingViewModel.class, (Context) null, (Function1) null, (Function1) null, (Function0) null, (Function0) null, new AnonymousClass1(this), 62, (Object) null); } /* JADX INFO: this call moved to the top of the method (can break code semantics) */ - public /* synthetic */ MemberVerificationPendingViewModel(long j, RestAPI restAPI, Observable observable, int i, DefaultConstructorMarker defaultConstructorMarker) { - this(j, (i & 2) != 0 ? RestAPI.Companion.getApi() : restAPI, (i & 4) != 0 ? Companion.access$observeStores(Companion, j) : observable); + public /* synthetic */ MemberVerificationPendingViewModel(long j, DialogState dialogState, RestAPI restAPI, Observable observable, int i, DefaultConstructorMarker defaultConstructorMarker) { + this(j, (i & 2) != 0 ? DialogState.PENDING : dialogState, (i & 4) != 0 ? RestAPI.Companion.getApi() : restAPI, (i & 8) != 0 ? Companion.access$observeStores(Companion, j) : observable); } public static final /* synthetic */ PublishSubject access$getEventSubject$p(MemberVerificationPendingViewModel memberVerificationPendingViewModel) { @@ -288,19 +372,28 @@ public final class MemberVerificationPendingViewModel extends AppViewModel publishSubject = this.eventSubject; + publishSubject.j.onNext(Event.Success.INSTANCE); } public final void leaveGuild() { @@ -308,9 +401,11 @@ public final class MemberVerificationPendingViewModel extends AppViewModel observeEvents() { - PublishSubject publishSubject = this.eventSubject; - m.checkNotNullExpressionValue(publishSubject, "eventSubject"); - return publishSubject; + return this.eventSubject; + } + + public final void resetGuildJoinRequest() { + ObservableExtensionsKt.appSubscribe$default(ObservableExtensionsKt.ui$default(ObservableExtensionsKt.restSubscribeOn$default(this.restAPI.resetGuildJoinRequest(this.guildId), false, 1, null), this, null, 2, null), MemberVerificationPendingViewModel.class, (Context) null, (Function1) null, new MemberVerificationPendingViewModel$resetGuildJoinRequest$1(this), (Function0) null, (Function0) null, new MemberVerificationPendingViewModel$resetGuildJoinRequest$2(this), 54, (Object) null); } public final void updateDialogState(DialogState dialogState) { @@ -322,12 +417,7 @@ public final class MemberVerificationPendingViewModel extends AppViewModel - + diff --git a/app/src/main/res/layout/widget_guild_context_menu.xml b/app/src/main/res/layout/widget_guild_context_menu.xml index dafe8fb16e..543d72bcf0 100644 --- a/app/src/main/res/layout/widget_guild_context_menu.xml +++ b/app/src/main/res/layout/widget_guild_context_menu.xml @@ -1,5 +1,5 @@ - + diff --git a/app/src/main/res/values-ar-rXB/strings.xml b/app/src/main/res/values-ar-rXB/strings.xml index 21341b0aca..6e2991aeb8 100644 --- a/app/src/main/res/values-ar-rXB/strings.xml +++ b/app/src/main/res/values-ar-rXB/strings.xml @@ -296,8 +296,8 @@ ‏‮Play‬‏ ‏‮animated‬‏ ‏‮emoji‬‏ ‏‮I‬‏ ‏‮want‬‏ ‏‮emoji‬‏ ‏‮to‬‏ ‏‮move‬‏ ‏‮and‬‏ ‏‮groove.‬‏ ‏‮Animated‬‏ ‏‮Emoji‬‏ - ‏‮Servers‬‏ ‏‮with‬‏ ‏‮{tier3}‬‏ ‏‮can‬‏ ‏‮choose‬‏ ‏‮a‬‏ ‏‮GIF‬‏ ‏‮for‬‏ ‏‮their‬‏ ‏‮server‬‏ ‏‮banner‬‏ ‏‮under‬‏ ‏‮Server‬‏ ‏‮Settings‬‏ ‏‮>‬‏ ‏‮Overview.‬‏ - ‏‮You‬‏ ‏‮can‬‏ ‏‮now‬‏ ‏‮choose‬‏ ‏‮a‬‏ ‏‮GIF‬‏ ‏‮for‬‏ ‏‮your‬‏ ‏‮server‬‏ ‏‮banner‬‏ ‏‮as‬‏ ‏‮part‬‏ ‏‮of‬‏ ‏‮your‬‏ ‏‮{tier3}‬‏‏‮.‬‏ ‏‮Try‬‏ ‏‮it‬‏ ‏‮out‬‏ ‏‮now‬‏ ‏‮under‬‏ ‏‮Server‬‏ ‏‮Settings‬‏ ‏‮>‬‏ ‏‮Overview!‬‏ + ‏‮Servers‬‏ ‏‮with‬‏ ‏‮{tier3}‬‏ ‏‮can‬‏ ‏‮choose‬‏ ‏‮a‬‏ ‏‮GIF‬‏ ‏‮for‬‏ ‏‮their‬‏ ‏‮server‬‏ ‏‮banner‬‏ ‏‮under‬‏ ‏‮**Server‬‏ ‏‮Settings‬‏ ‏‮>‬‏ ‏‮Overview**.‬‏ + ‏‮You‬‏ ‏‮can‬‏ ‏‮now‬‏ ‏‮choose‬‏ ‏‮a‬‏ ‏‮GIF‬‏ ‏‮for‬‏ ‏‮your‬‏ ‏‮server‬‏ ‏‮banner‬‏ ‏‮as‬‏ ‏‮part‬‏ ‏‮of‬‏ ‏‮your‬‏ ‏‮{tier3}‬‏‏‮.‬‏ ‏‮Try‬‏ ‏‮it‬‏ ‏‮out‬‏ ‏‮now‬‏ ‏‮under‬‏ ‏‮**Server‬‏ ‏‮Settings‬‏ ‏‮>‬‏ ‏‮Overview**!‬‏ ‏‮Boosting‬‏ ‏‮Level‬‏ ‏‮3‬‏ ‏‮perks‬‏ ‏‮Boosting‬‏ ‏‮Communities‬‏ ‏‮plan‬‏ ‏‮Boosting‬‏ ‏‮Level‬‏ ‏‮3‬‏ @@ -1311,9 +1311,17 @@ ‏‮Channel‬‏ ‏‮!!‬‏‏‮{channelName}‬‏‏‮!!‬‏ ‏‮(channel)‬‏ ‏‮Channel‬‏ ‏‮Actions‬‏ + ‏‮You’ll‬‏ ‏‮also‬‏ ‏‮help‬‏ ‏‮unlock‬‏ ‏‮more‬‏ ‏‮customization‬‏ ‏‮features‬‏ ‏‮and‬‏ ‏‮utility‬‏ ‏‮upgrades‬‏ ‏‮for‬‏ ‏‮everyone‬‏ ‏‮in‬‏ ‏‮the‬‏ ‏‮server‬‏ ‏‮like:‬‏ + ‏‮Boost‬‏ ‏‮your‬‏ ‏‮server‬‏ ‏‮to‬‏ ‏‮{targetLevelOrPlan}‬‏ ‏‮to‬‏ ‏‮use‬‏ ‏‮your‬‏ ‏‮new‬‏ ‏‮channel‬‏ ‏‮banner‬‏ + ‏‮Boost‬‏ ‏‮your‬‏ ‏‮server‬‏ ‏‮to‬‏ ‏‮the‬‏ ‏‮{targetLevelOrPlan}‬‏ ‏‮plan‬‏ ‏‮to‬‏ ‏‮use‬‏ ‏‮your‬‏ ‏‮new‬‏ ‏‮channel‬‏ ‏‮banner‬‏ + ‏‮This‬‏ ‏‮looks‬‏ ‏‮great!‬‏ ‏‮This‬‏ ‏‮image‬‏ ‏‮will‬‏ ‏‮display‬‏ ‏‮at‬‏ ‏‮the‬‏ ‏‮top‬‏ ‏‮of‬‏ ‏‮your‬‏ ‏‮Channel‬‏ ‏‮Information‬‏ ‏‮sidebar.‬‏ ‏‮File‬‏ ‏‮types‬‏ ‏‮accepted‬‏ ‏‮are‬‏ ‏‮.png‬‏ ‏‮and‬‏ ‏‮.jpg.‬‏ ‏‮The‬‏ ‏‮recommended‬‏ ‏‮minimum‬‏ ‏‮dimensions‬‏ ‏‮are‬‏ ‏‮480x144‬‏ ‏‮and‬‏ ‏‮recommended‬‏ ‏‮aspect‬‏ ‏‮ratio‬‏ ‏‮is‬‏ ‏‮10:3.‬‏ ‏‮Max‬‏ ‏‮file‬‏ ‏‮size‬‏ ‏‮of‬‏ ‏‮10MB.‬‏ ‏‮Channel‬‏ ‏‮Banner‬‏ ‏‮Image‬‏ + ‏‮**NEW!**‬‏ ‏‮Try‬‏ ‏‮adding‬‏ ‏‮a‬‏ ‏‮channel‬‏ ‏‮banner‬‏ + ‏‮Try‬‏ ‏‮it!‬‏ + ‏‮**NEW!**‬‏ ‏‮Boost‬‏ ‏‮to‬‏ ‏‮Level‬‏ ‏‮3‬‏ ‏‮to‬‏ ‏‮set‬‏ ‏‮a‬‏ ‏‮channel‬‏ ‏‮banner.‬‏ + ‏‮**NEW!**‬‏ ‏‮Boost‬‏ ‏‮to‬‏ ‏‮the‬‏ ‏‮Communities‬‏ ‏‮plan‬‏ ‏‮to‬‏ ‏‮set‬‏ ‏‮a‬‏ ‏‮channel‬‏ ‏‮banner.‬‏ ‏‮Currently‬‏ ‏‮Speaking:‬‏ ‏‮!!‬‏‏‮{username}‬‏‏‮!!‬‏ ‏‮Participants‬‏ ‏‮—‬‏ ‏‮{count}‬‏ ‏‮Channel‬‏ ‏‮Call‬‏ ‏‮Actions‬‏ @@ -2656,6 +2664,7 @@ ‏‮Copy‬‏ ‏‮link‬‏ ‏‮Open‬‏ ‏‮in‬‏ ‏‮browser‬‏ ‏‮Share‬‏ ‏‮link‬‏ + ‏‮You‬‏ ‏‮cannot‬‏ ‏‮have‬‏ ‏‮more‬‏ ‏‮favorites.‬‏ ‏‮Favorite‬‏ ‏‮You‬‏ ‏‮cannot‬‏ ‏‮have‬‏ ‏‮more‬‏ ‏‮than‬‏ ‏‮{count}‬‏ ‏‮favorites.‬‏ ‏‮Oh‬‏ ‏‮no!‬‏ @@ -3556,7 +3565,7 @@ ‏‮Folder‬‏ ‏‮settings‬‏ ‏‮saved!‬‏ ‏‮You‬‏ ‏‮can‬‏ ‏‮change‬‏ ‏‮how‬‏ ‏‮others‬‏ ‏‮see‬‏ ‏‮you‬‏ ‏‮inside‬‏ ‏‮this‬‏ ‏‮server‬‏ ‏‮only‬‏ ‏‮(!!‬‏‏‮{guildName}‬‏‏‮!!)‬‏ ‏‮by‬‏ ‏‮setting‬‏ ‏‮a‬‏ ‏‮server‬‏ ‏‮profile.‬‏ ‏‮Anything‬‏ ‏‮not‬‏ ‏‮set‬‏ ‏‮here‬‏ ‏‮will‬‏ ‏‮show‬‏ ‏‮your‬‏ ‏‮default‬‏ ‏‮user‬‏ ‏‮profile.‬‏ ‏‮Server‬‏ ‏‮Profile‬‏ ‏‮Banner‬‏ - ‏‮Server‬‏ ‏‮Profile‬‏ ‏‮-‬‏ ‏‮$[](guildIconHook)‬‏ ‏‮!!‬‏‏‮{guildName}‬‏‏‮!!‬‏ + ‏‮Server‬‏ ‏‮Profile‬‏ ‏‮-‬‏ ‏‮$[](guildIconHook)‬‏ ‏‮!!‬‏‏‮{guildName}‬‏‏‮!!‬‏ ‏‮Set‬‏ ‏‮a‬‏ ‏‮different‬‏ ‏‮avatar,‬‏ ‏‮profile‬‏ ‏‮banner,‬‏ ‏‮and‬‏ ‏‮about‬‏ ‏‮me‬‏ ‏‮in‬‏ ‏‮each‬‏ ‏‮of‬‏ ‏‮your‬‏ ‏‮servers‬‏ ‏‮and‬‏ ‏‮more‬‏ ‏‮with‬‏ ‏‮[Discord‬‏ ‏‮Nitro!](onAndMore)‬‏ ‏‮Be‬‏ ‏‮who‬‏ ‏‮you‬‏ ‏‮want‬‏ ‏‮and‬‏ ‏‮use‬‏ ‏‮a‬‏ ‏‮different‬‏ ‏‮avatar,‬‏ ‏‮banner,‬‏ ‏‮and‬‏ ‏‮bio‬‏ ‏‮in‬‏ ‏‮each‬‏ ‏‮of‬‏ ‏‮your‬‏ ‏‮servers,‬‏ ‏‮unlock‬‏ ‏‮animated‬‏ ‏‮avatars,‬‏ ‏‮and‬‏ ‏‮more‬‏ ‏‮with‬‏ ‏‮[Discord‬‏ ‏‮Nitro!](onAndMore)‬‏ ‏‮Want‬‏ ‏‮full‬‏ ‏‮access‬‏ ‏‮to‬‏ ‏‮server‬‏ ‏‮profiles?‬‏ @@ -3897,6 +3906,7 @@ ‏‮Manage‬‏ ‏‮Subscriptions‬‏ ‏‮Manage‬‏ ‏‮Premium‬‏ ‏‮Memberships‬‏ ‏‮Joined‬‏ ‏‮{joinedDate}‬‏ + ‏‮Premium‬‏ ‏‮tiers‬‏ ‏‮are‬‏ ‏‮available‬‏ ‏‮to‬‏ ‏‮approved‬‏ ‏‮server‬‏ ‏‮members.‬‏ ‏‮Premium‬‏ ‏‮Channel‬‏ ‏‮(Locked)‬‏ ‏‮Premium‬‏ ‏‮Premium‬‏ @@ -3966,9 +3976,9 @@ ‏‮Create‬‏ ‏‮Webhook‬‏ ‏‮Delete‬‏ ‏‮Webhook‬‏ ‏‮Update‬‏ ‏‮Webhook‬‏ - ‏‮**Try‬‏ ‏‮an‬‏ ‏‮animated‬‏ ‏‮banner!**‬‏ ‏‮Choose‬‏ ‏‮a‬‏ ‏‮GIF‬‏ ‏‮from‬‏ ‏‮Tenor‬‏ ‏‮for‬‏ ‏‮your‬‏ ‏‮server‬‏ ‏‮banner‬‏ - ‏‮**NEW!**‬‏ ‏‮Boost‬‏ ‏‮to‬‏ ‏‮Level‬‏ ‏‮3‬‏ ‏‮to‬‏ ‏‮unlock‬‏ ‏‮animated‬‏ ‏‮server‬‏ ‏‮banners.‬‏ - ‏‮**NEW!**‬‏ ‏‮Boost‬‏ ‏‮to‬‏ ‏‮the‬‏ ‏‮Communities‬‏ ‏‮plan‬‏ ‏‮to‬‏ ‏‮unlock‬‏ ‏‮animated‬‏ ‏‮server‬‏ ‏‮banners.‬‏ + ‏‮**NEW!**‬‏ ‏‮Set‬‏ ‏‮an‬‏ ‏‮animated‬‏ ‏‮server‬‏ ‏‮banner‬‏ ‏‮by‬‏ ‏‮uploading‬‏ ‏‮or‬‏ ‏‮selecting‬‏ ‏‮a‬‏ ‏‮GIF.‬‏ + ‏‮**NEW!**‬‏ ‏‮Boost‬‏ ‏‮to‬‏ ‏‮Level‬‏ ‏‮3‬‏ ‏‮to‬‏ ‏‮use‬‏ ‏‮an‬‏ ‏‮animated‬‏ ‏‮server‬‏ ‏‮banner.‬‏ + ‏‮**NEW!**‬‏ ‏‮Boost‬‏ ‏‮to‬‏ ‏‮the‬‏ ‏‮Communities‬‏ ‏‮plan‬‏ ‏‮to‬‏ ‏‮use‬‏ ‏‮an‬‏ ‏‮animated‬‏ ‏‮server‬‏ ‏‮banner.‬‏ ‏‮Try‬‏ ‏‮it!‬‏ ‏‮$[**!!‬‏‏‮{user}‬‏‏‮!!**](userHook)‬‏ ‏‮created‬‏ ‏‮an‬‏ ‏‮announcement‬‏ ‏‮thread‬‏ ‏‮$[**!!‬‏‏‮{target}‬‏‏‮!!**](targetHook)‬‏ ‏‮$[**!!‬‏‏‮{user}‬‏‏‮!!**](userHook)‬‏ ‏‮added‬‏ ‏‮$[**!!‬‏‏‮{target}‬‏‏‮!!**](targetHook)‬‏ ‏‮to‬‏ ‏‮the‬‏ ‏‮server‬‏ @@ -4841,6 +4851,8 @@ ‏‮[Rules‬‏ ‏‮and‬‏ ‏‮restrictions‬‏ ‏‮apply.](‬‏‏‮{termsURL}‬‏‏‮)‬‏ ‏‮Enjoy‬‏ ‏‮a‬‏ ‏‮free‬‏ ‏‮month‬‏ ‏‮on‬‏ ‏‮us‬‏ ‏‮+1‬‏ ‏‮month‬‏ ‏‮free‬‏ + ‏‮Curious‬‏ ‏‮about‬‏ ‏‮our‬‏ ‏‮holiday‬‏ ‏‮promotion?‬‏ + ‏‮Check‬‏ ‏‮it‬‏ ‏‮out‬‏ ‏‮on‬‏ ‏‮web‬‏ ‏‮or‬‏ ‏‮in‬‏ ‏‮our‬‏ ‏‮desktop‬‏ ‏‮app‬‏ ‏‮A‬‏ ‏‮free‬‏ ‏‮month‬‏ ‏‮will‬‏ ‏‮automatically‬‏ ‏‮get‬‏ ‏‮added‬‏ ‏‮to‬‏ ‏‮your‬‏ ‏‮account.‬‏ ‏‮Enjoy!‬‏ ‏‮You\'re‬‏ ‏‮getting‬‏ ‏‮a‬‏ ‏‮free‬‏ ‏‮month!‬‏ ‏‮Learn‬‏ ‏‮more‬‏ ‏‮about‬‏ ‏‮this‬‏ ‏‮promotion\'s‬‏ ‏‮[rules‬‏ ‏‮and‬‏ ‏‮restrictions](‬‏‏‮{helpdeskUrl}‬‏‏‮).‬‏ @@ -6087,8 +6099,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‬‏ @@ -8309,7 +8321,6 @@ ‏‮Select‬‏ ‏‮Image‬‏ ‏‮Upload‬‏ ‏‮File‬‏ ‏‮Try‬‏ ‏‮animated‬‏ ‏‮avatar‬‏ - ‏‮Try‬‏ ‏‮animated‬‏ ‏‮banner‬‏ ‏‮Preview‬‏ ‏‮an‬‏ ‏‮image‬‏ ‏‮Select‬‏ ‏‮message‬‏ ‏‮Select‬‏ ‏‮picture‬‏ @@ -9496,6 +9507,7 @@ ‏‮Please‬‏ ‏‮update‬‏ ‏‮Discord‬‏ ‏‮to‬‏ ‏‮access‬‏ ‏‮this‬‏ ‏‮channel‬‏ ‏‮Unknown‬‏ ‏‮Region‬‏ ‏‮Unknown‬‏ ‏‮User‬‏ + ‏‮Unlock‬‏ ‏‮Avatar‬‏ ‏‮Unmute‬‏ ‏‮Unmute‬‏ ‏‮Category‬‏ ‏‮Unmute‬‏ ‏‮**!!‬‏‏‮{name}‬‏‏‮!!**‬‏ diff --git a/app/src/main/res/values-en-rXA/strings.xml b/app/src/main/res/values-en-rXA/strings.xml index b656365ffb..db14b0d3f2 100644 --- a/app/src/main/res/values-en-rXA/strings.xml +++ b/app/src/main/res/values-en-rXA/strings.xml @@ -296,8 +296,8 @@ [Þļåý åñîḿåţéð éḿöĵî one two three] [Î ŵåñţ éḿöĵî ţö ḿöVé åñð ĝŕööVé. one two three four] [Åñîḿåţéð Éḿöĵî one two three] - [ŠéŕVéŕš ŵîţĥ »{tier3}« çåñ çĥööšé å ĜÎF ƒöŕ ţĥéîŕ šéŕVéŕ ɓåññéŕ ûñðéŕ ŠéŕVéŕ Šéţţîñĝš > ÖVéŕVîéŵ. one two three four five six seven eight nine ten] - [Ýöû çåñ ñöŵ çĥööšé å ĜÎF ƒöŕ ýöûŕ šéŕVéŕ ɓåññéŕ åš þåŕţ öƒ ýöûŕ »{tier3}«. Ţŕý îţ öûţ ñöŵ ûñðéŕ ŠéŕVéŕ Šéţţîñĝš > ÖVéŕVîéŵ¡ one two three four five six seven eight nine ten eleven twelve] + [ŠéŕVéŕš ŵîţĥ »{tier3}« çåñ çĥööšé å ĜÎF ƒöŕ ţĥéîŕ šéŕVéŕ ɓåññéŕ ûñðéŕ **ŠéŕVéŕ Šéţţîñĝš > ÖVéŕVîéŵ**. one two three four five six seven eight nine ten eleven twelve thirteen fourteen fiveteen sixteen] + [Ýöû çåñ ñöŵ çĥööšé å ĜÎF ƒöŕ ýöûŕ šéŕVéŕ ɓåññéŕ åš þåŕţ öƒ ýöûŕ »{tier3}«. Ţŕý îţ öûţ ñöŵ ûñðéŕ **ŠéŕVéŕ Šéţţîñĝš > ÖVéŕVîéŵ**¡ one two three four five six seven eight nine ten eleven twelve thirteen fourteen fiveteen sixteen seventeen nineteen twenty] [βööšţîñĝ ĻéVéļ 3 þéŕķš one two three] [βööšţîñĝ Çöḿḿûñîţîéš þļåñ one two three] [βööšţîñĝ ĻéVéļ 3 one two three] @@ -1311,9 +1311,17 @@ [Çĥåññéļ one two] [¡¡»{channelName}«¡¡ (çĥåññéļ) one two three] [Çĥåññéļ Åçţîöñš one two three] + [Ýöû’ļļ åļšö ĥéļþ ûñļöçķ ḿöŕé çûšţöḿîžåţîöñ ƒéåţûŕéš åñð ûţîļîţý ûþĝŕåðéš ƒöŕ éVéŕýöñé îñ ţĥé šéŕVéŕ ļîķé: one two three four five six seven eight nine ten eleven] + [βööšţ ýöûŕ šéŕVéŕ ţö »{targetLevelOrPlan}« ţö ûšé ýöûŕ ñéŵ çĥåññéļ ɓåññéŕ one two three four five six] + [βööšţ ýöûŕ šéŕVéŕ ţö ţĥé »{targetLevelOrPlan}« þļåñ ţö ûšé ýöûŕ ñéŵ çĥåññéļ ɓåññéŕ one two three four five six seven] + [Ţĥîš ļööķš ĝŕéåţ¡ one two three] [Ţĥîš îḿåĝé ŵîļļ ðîšþļåý åţ ţĥé ţöþ öƒ ýöûŕ Çĥåññéļ Îñƒöŕḿåţîöñ šîðéɓåŕ. one two three four five six seven eight] [Fîļé ţýþéš åççéþţéð åŕé .þñĝ åñð .ĵþĝ. Ţĥé ŕéçöḿḿéñðéð ḿîñîḿûḿ ðîḿéñšîöñš åŕé 480х144 åñð ŕéçöḿḿéñðéð åšþéçţ ŕåţîö îš 10:3. Ḿåх ƒîļé šîžé öƒ 10Ḿβ. one two three four five six seven eight nine ten eleven twelve thirteen fourteen fiveteen sixteen seventeen nineteen twenty one two three four five] [Çĥåññéļ βåññéŕ Îḿåĝé one two three] + [**ÑÉŴ¡** Ţŕý åððîñĝ å çĥåññéļ ɓåññéŕ one two three four five] + [Ţŕý îţ¡ one two] + [**ÑÉŴ¡** βööšţ ţö ĻéVéļ 3 ţö šéţ å çĥåññéļ ɓåññéŕ. one two three four five six] + [**ÑÉŴ¡** βööšţ ţö ţĥé Çöḿḿûñîţîéš þļåñ ţö šéţ å çĥåññéļ ɓåññéŕ. one two three four five six seven] [Çûŕŕéñţļý Šþéåķîñĝ: ¡¡»{username}«¡¡ one two three] [Þåŕţîçîþåñţš — »{count}« one two three] [Çĥåññéļ Çåļļ Åçţîöñš one two three] @@ -2656,6 +2664,7 @@ [Çöþý ļîñķ one two] [Öþéñ îñ ɓŕöŵšéŕ one two three] [Šĥåŕé ļîñķ one two] + [Ýöû çåññöţ ĥåVé ḿöŕé ƒåVöŕîţéš. one two three four] [FåVöŕîţé one two] [Ýöû çåññöţ ĥåVé ḿöŕé ţĥåñ »{count}« ƒåVöŕîţéš. one two three four five] [Öĥ ñö¡ one two] @@ -3556,7 +3565,7 @@ [Föļðéŕ šéţţîñĝš šåVéð¡ one two three] [Ýöû çåñ çĥåñĝé ĥöŵ öţĥéŕš šéé ýöû îñšîðé ţĥîš šéŕVéŕ öñļý (¡¡»{guildName}«¡¡) ɓý šéţţîñĝ å šéŕ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] [ŠéŕVéŕ Þŕöƒîļé βåññéŕ one two three] - [ŠéŕVéŕ Þŕöƒîļé - €[](ĝûîļðÎçöñĤööķ) ¡¡»{guildName}«¡¡ one two three four five] + [ŠéŕVéŕ Þŕöƒîļé - €[](ĝûîļðÎçöñĤööķ) ¡¡»{guildName}«¡¡ one two three four five] [Šéţ å ðéŕéñţ åVåţåŕ, þŕöƒîļé ɓåññéŕ, åñð åɓöûţ ḿé îñ éåçĥ öƒ ýöûŕ šéŕVéŕš åñð ḿöŕé ŵîţĥ [Ðîšçöŕð Ñîţŕö¡](öñÅñðḾöŕé) one two three four five six seven eight nine ten eleven twelve thirteen fourteen fiveteen sixteen seventeen nineteen twenty] [βé ŵĥö ýöû ŵåñţ åñð ûšé å ðéŕéñţ åVåţåŕ, ɓåññéŕ, åñð ɓîö îñ éåçĥ öƒ ýöûŕ šéŕVéŕš, ûñļöçķ åñîḿåţéð å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] [Ŵåñţ ƒûļļ åççéšš ţö šéŕVéŕ þŕöƒîļéš¿ one two three four five] @@ -3897,6 +3906,7 @@ [Ḿåñåĝé Šûɓšçŕîþţîöñš one two three] [Ḿåñåĝé Þŕéḿîûḿ Ḿéḿɓéŕšĥîþš one two three four] [Ĵöîñéð »{joinedDate}« one two] + [Þŕéḿîûḿ ţîéŕš åŕé åVåîļåɓļé ţö åþþŕöVéð šéŕVéŕ ḿéḿɓéŕš. one two three four five six seven] [Þŕéḿîûḿ Çĥåññéļ (Ļöçķéð) one two three] [Þŕéḿîûḿ one two] [Þŕéḿîûḿ one two] @@ -3966,9 +3976,9 @@ [Çŕéåţé Ŵéɓĥööķ one two three] [Ðéļéţé Ŵéɓĥööķ one two three] [Ûþðåţé Ŵéɓĥööķ one two three] - [**Ţŕý åñ åñîḿåţéð ɓåññéŕ¡** Çĥööšé å ĜÎF ƒŕöḿ Ţéñöŕ ƒöŕ ýöûŕ šéŕVéŕ ɓåññéŕ one two three four five six seven eight] - [**ÑÉŴ¡** βööšţ ţö ĻéVéļ 3 ţö ûñļöçķ åñîḿåţéð šéŕVéŕ ɓåññéŕš. one two three four five six seven] - [**ÑÉŴ¡** βööšţ ţö ţĥé Çöḿḿûñîţîéš þļåñ ţö ûñļöçķ åñîḿåţéð šéŕVéŕ ɓåññéŕš. one two three four five six seven eight] + [**ÑÉŴ¡** Šéţ åñ åñîḿåţéð šéŕVéŕ ɓåññéŕ ɓý ûþļöåðîñĝ öŕ šéļéçţîñĝ å ĜÎF. one two three four five six seven eight] + [**ÑÉŴ¡** βööšţ ţö ĻéVéļ 3 ţö ûšé åñ åñîḿåţéð šéŕVéŕ ɓåññéŕ. one two three four five six seven] + [**ÑÉŴ¡** βööšţ ţö ţĥé Çöḿḿûñîţîéš þļåñ ţö ûšé åñ åñîḿåţéð šéŕVéŕ ɓåññéŕ. one two three four five six seven eight] [Ţŕý îţ¡ one two] [€[**¡¡»{user}«¡¡**](ûšéŕĤööķ) çŕéåţéð åñ åññöûñçéḿéñţ ţĥŕéåð €[**¡¡»{target}«¡¡**](ţåŕĝéţĤööķ) one two three four five six seven eight nine ten eleven twelve thirteen fourteen] [€[**¡¡»{user}«¡¡**](ûšéŕĤööķ) åððéð €[**¡¡»{target}«¡¡**](ţåŕĝéţĤööķ) ţö ţĥé šéŕVéŕ one two three four five six seven eight nine ten eleven twelve thirteen] @@ -4841,6 +4851,8 @@ [[Ŕûļéš åñð ŕéšţŕîçţîöñš åþþļý.](»{termsURL}«) one two three four] [Éñĵöý å ƒŕéé ḿöñţĥ öñ ûš one two three] [+1 ḿöñţĥ ƒŕéé one two] + [Çûŕîöûš åɓöûţ öûŕ ĥöļîðåý þŕöḿöţîöñ¿ one two three four five] + [Çĥéçķ îţ öûţ öñ ŵéɓ öŕ îñ öûŕ ðéšķţöþ åþþ one two three four five] [Å ƒŕéé ḿöñţĥ ŵîļļ åûţöḿåţîçåļļý ĝéţ åððéð ţö ýöûŕ åççöûñţ. Éñĵöý¡ one two three four five six seven] [Ýöû\'ŕé ĝéţţîñĝ å ƒŕéé ḿöñţĥ¡ one two three four] [Ļéåŕñ ḿöŕé åɓöûţ ţĥîš þŕöḿöţîöñ\'š [ŕûļéš åñð ŕéšţŕîçţîöñš](»{helpdeskUrl}«). one two three four five six seven eight nine ten eleven twelve] @@ -6087,8 +6099,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] @@ -8309,7 +8321,6 @@ [Šéļéçţ Îḿåĝé one two] [Ûþļöåð Fîļé one two] [Ţŕý åñîḿåţéð åVåţåŕ one two three] - [Ţŕý åñîḿåţéð ɓåññéŕ one two three] [ÞŕéVîéŵ åñ îḿåĝé one two three] [Šéļéçţ ḿéššåĝé one two three] [Šéļéçţ þîçţûŕé one two three] @@ -9496,6 +9507,7 @@ [Þļéåšé ûþðåţé Ðîšçöŕð ţö åççéšš ţĥîš çĥåññéļ one two three four five] [Ûñķñöŵñ Ŕéĝîöñ one two three] [Ûñķñöŵñ Ûšéŕ one two] + [Ûñļöçķ ÅVåţåŕ one two] [Ûñḿûţé one two] [Ûñḿûţé Çåţéĝöŕý one two three] [Ûñḿûţé **¡¡»{name}«¡¡** one two three] diff --git a/app/src/main/res/values/public.xml b/app/src/main/res/values/public.xml index 457fc4290b..142ccc11dc 100644 --- a/app/src/main/res/values/public.xml +++ b/app/src/main/res/values/public.xml @@ -15773,8896 +15773,8908 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 236836e4ac..1cbfb63e31 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -296,8 +296,8 @@ Play animated emoji I want emoji to move and groove. Animated Emoji - Servers with {tier3} can choose a GIF for their server banner under Server Settings > Overview. - You can now choose a GIF for your server banner as part of your {tier3}. Try it out now under Server Settings > Overview! + Servers with {tier3} can choose a GIF for their server banner under **Server Settings > Overview**. + You can now choose a GIF for your server banner as part of your {tier3}. Try it out now under **Server Settings > Overview**! Boosting Level 3 perks Boosting Communities plan Boosting Level 3 @@ -1313,9 +1313,17 @@ Channel !!{channelName}!! (channel) Channel Actions + You’ll also help unlock more customization features and utility upgrades for everyone in the server like: + Boost your server to {targetLevelOrPlan} to use your new channel banner + Boost your server to the {targetLevelOrPlan} plan to use your new channel banner + This looks great! This image will display at the top of your Channel Information sidebar. File types accepted are .png and .jpg. The recommended minimum dimensions are 480x144 and recommended aspect ratio is 10:3. Max file size of 10MB. Channel Banner Image + **NEW!** Try adding a channel banner + Try it! + **NEW!** Boost to Level 3 to set a channel banner. + **NEW!** Boost to the Communities plan to set a channel banner. Currently Speaking: !!{username}!! Participants — {count} Channel Call Actions @@ -1490,7 +1498,7 @@ Select a color Transparency Use Default - e46a8305e164499398a164eac80ee55f + d29304dcdba1428fbfcb3ab9d1458903 Coming Soon Slash command application {applicationName} {applicationName} application @@ -2666,6 +2674,7 @@ Copy link Open in browser Share link + You cannot have more favorites. Favorite You cannot have more than {count} favorites. Oh no! @@ -3572,7 +3581,7 @@ Folder settings saved! You can change how others see you inside this server only (!!{guildName}!!) by setting a server profile. Anything not set here will show your default user profile. Server Profile Banner - Server Profile - $[](guildIconHook) !!{guildName}!! + Server Profile - $[](guildIconHook) !!{guildName}!! Set a different avatar, profile banner, and about me in each of your servers and more with [Discord Nitro!](onAndMore) Be who you want and use a different avatar, banner, and bio in each of your servers, unlock animated avatars, and more with [Discord Nitro!](onAndMore) Want full access to server profiles? @@ -3913,6 +3922,7 @@ Manage Subscriptions Manage Premium Memberships Joined {joinedDate} + Premium tiers are available to approved server members. Premium Channel (Locked) Premium Premium @@ -3982,9 +3992,9 @@ Create Webhook Delete Webhook Update Webhook - **Try an animated banner!** Choose a GIF from Tenor for your server banner - **NEW!** Boost to Level 3 to unlock animated server banners. - **NEW!** Boost to the Communities plan to unlock animated server banners. + **NEW!** Set an animated server banner by uploading or selecting a GIF. + **NEW!** Boost to Level 3 to use an animated server banner. + **NEW!** Boost to the Communities plan to use an animated server banner. Try it! $[**!!{user}!!**](userHook) created an announcement thread $[**!!{target}!!**](targetHook) $[**!!{user}!!**](userHook) added $[**!!{target}!!**](targetHook) to the server @@ -4858,6 +4868,8 @@ [Rules and restrictions apply.]({termsURL}) Enjoy a free month on us +1 month free + Curious about our holiday promotion? + Check it out on web or in our desktop app A free month will automatically get added to your account. Enjoy! You\'re getting a free month! Learn more about this promotion\'s [rules and restrictions]({helpdeskUrl}). @@ -6106,8 +6118,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 @@ -8336,7 +8348,6 @@ Select Image Upload File Try animated avatar - Try animated banner Preview an image Select message Select picture @@ -9525,6 +9536,7 @@ Please update Discord to access this channel Unknown Region Unknown User + Unlock Avatar Unmute Unmute Category Unmute **!!{name}!!**