95.2 - Alpha (95202)

This commit is contained in:
Juby210 2021-09-29 08:32:07 +02:00
parent 9423fd8ada
commit 94c8b0b188
77 changed files with 8934 additions and 8782 deletions

View File

@ -10,8 +10,8 @@ android {
applicationId 'com.discord'
minSdkVersion 21
targetSdkVersion 29
versionCode 95201
versionName "95.1 - Alpha"
versionCode 95202
versionName "95.2 - Alpha"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}

View File

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

View File

@ -10,19 +10,39 @@ import com.discord.api.utcdatetime.UtcDateTime;
import d0.z.d.m;
/* compiled from: TrackAgeGateSubmitted.kt */
public final class TrackAgeGateSubmitted implements AnalyticsSchema, TrackBaseReceiver, TrackSourceMetadataReceiver {
private final transient String analyticsSchemaTypeName = "age_gate_submitted";
private final UtcDateTime dob = null;
private final Long dobDay = null;
private final Long dobMonth = null;
private final Long dobYear = null;
private final transient String analyticsSchemaTypeName;
private final UtcDateTime dob;
private final Long dobDay;
private final Long dobMonth;
private final Long dobYear;
private TrackBase trackBase;
private TrackSourceMetadata trackSourceMetadata;
public TrackAgeGateSubmitted() {
this.dob = null;
this.dobDay = null;
this.dobMonth = null;
this.dobYear = null;
this.analyticsSchemaTypeName = "age_gate_submitted";
}
public TrackAgeGateSubmitted(UtcDateTime utcDateTime, Long l, Long l2, Long l3) {
this.dob = utcDateTime;
this.dobDay = l;
this.dobMonth = l2;
this.dobYear = l3;
this.analyticsSchemaTypeName = "age_gate_submitted";
}
@Override // com.discord.api.science.AnalyticsSchema
public String b() {
return this.analyticsSchemaTypeName;
}
public void c(TrackSourceMetadata trackSourceMetadata) {
this.trackSourceMetadata = trackSourceMetadata;
}
public boolean equals(Object obj) {
if (this == obj) {
return true;

View File

@ -0,0 +1,48 @@
package com.discord.analytics.generated.events;
import c.d.b.a.a;
import com.discord.analytics.generated.traits.TrackBase;
import com.discord.analytics.generated.traits.TrackBaseReceiver;
import com.discord.api.science.AnalyticsSchema;
import d0.z.d.m;
/* compiled from: TrackGuildDefaultDmsUpdated.kt */
public final class TrackGuildDefaultDmsUpdated implements AnalyticsSchema, TrackBaseReceiver {
private final transient String analyticsSchemaTypeName = "guild_default_dms_updated";
private final Boolean appliedToExistingGuilds = null;
private final Boolean defaultGuildsRestricted = null;
private TrackBase trackBase;
@Override // com.discord.api.science.AnalyticsSchema
public String b() {
return this.analyticsSchemaTypeName;
}
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (!(obj instanceof TrackGuildDefaultDmsUpdated)) {
return false;
}
TrackGuildDefaultDmsUpdated trackGuildDefaultDmsUpdated = (TrackGuildDefaultDmsUpdated) obj;
return m.areEqual(this.defaultGuildsRestricted, trackGuildDefaultDmsUpdated.defaultGuildsRestricted) && m.areEqual(this.appliedToExistingGuilds, trackGuildDefaultDmsUpdated.appliedToExistingGuilds);
}
public int hashCode() {
Boolean bool = this.defaultGuildsRestricted;
int i = 0;
int hashCode = (bool != null ? bool.hashCode() : 0) * 31;
Boolean bool2 = this.appliedToExistingGuilds;
if (bool2 != null) {
i = bool2.hashCode();
}
return hashCode + i;
}
public String toString() {
StringBuilder P = a.P("TrackGuildDefaultDmsUpdated(defaultGuildsRestricted=");
P.append(this.defaultGuildsRestricted);
P.append(", appliedToExistingGuilds=");
return a.C(P, this.appliedToExistingGuilds, ")");
}
}

View File

@ -0,0 +1,6 @@
package com.discord.analytics.generated.events;
import com.discord.api.science.AnalyticsSchema;
/* compiled from: TrackGuildDefaultDmsUpdated.kt */
public interface TrackGuildDefaultDmsUpdatedReceiver extends AnalyticsSchema {
}

View File

@ -23,6 +23,8 @@ public final class TrackPaymentRefunded implements AnalyticsSchema, TrackBaseRec
private final CharSequence paymentType = null;
private final Long price = null;
private final CharSequence refundReason = null;
private final Long refundedBy = null;
private final Long refunderType = null;
private final Long skuId = null;
private final Long skuSubscriptionPlanId = null;
private final Long skuType = null;
@ -50,7 +52,7 @@ public final class TrackPaymentRefunded implements AnalyticsSchema, TrackBaseRec
return false;
}
TrackPaymentRefunded trackPaymentRefunded = (TrackPaymentRefunded) obj;
return m.areEqual(this.paymentId, trackPaymentRefunded.paymentId) && m.areEqual(this.createdAt, trackPaymentRefunded.createdAt) && m.areEqual(this.paymentType, trackPaymentRefunded.paymentType) && m.areEqual(this.paymentGateway, trackPaymentRefunded.paymentGateway) && m.areEqual(this.price, trackPaymentRefunded.price) && m.areEqual(this.currency, trackPaymentRefunded.currency) && m.areEqual(this.amount, trackPaymentRefunded.amount) && m.areEqual(this.amountRefunded, trackPaymentRefunded.amountRefunded) && m.areEqual(this.tax, trackPaymentRefunded.tax) && m.areEqual(this.taxInclusive, trackPaymentRefunded.taxInclusive) && m.areEqual(this.skuId, trackPaymentRefunded.skuId) && m.areEqual(this.skuType, trackPaymentRefunded.skuType) && m.areEqual(this.skuSubscriptionPlanId, trackPaymentRefunded.skuSubscriptionPlanId) && m.areEqual(this.subscriptionId, trackPaymentRefunded.subscriptionId) && m.areEqual(this.subscriptionType, trackPaymentRefunded.subscriptionType) && m.areEqual(this.subscriptionPaymentGatewayPlanId, trackPaymentRefunded.subscriptionPaymentGatewayPlanId) && m.areEqual(this.subscriptionPlanId, trackPaymentRefunded.subscriptionPlanId) && m.areEqual(this.subscriptionCreatedAt, trackPaymentRefunded.subscriptionCreatedAt) && m.areEqual(this.subscriptionCurrentPeriodStart, trackPaymentRefunded.subscriptionCurrentPeriodStart) && m.areEqual(this.subscriptionCurrentPeriodEnd, trackPaymentRefunded.subscriptionCurrentPeriodEnd) && m.areEqual(this.paymentSourceId, trackPaymentRefunded.paymentSourceId) && m.areEqual(this.paymentSourceCountry, trackPaymentRefunded.paymentSourceCountry) && m.areEqual(this.failureMessage, trackPaymentRefunded.failureMessage) && m.areEqual(this.isGift, trackPaymentRefunded.isGift) && m.areEqual(this.refundReason, trackPaymentRefunded.refundReason) && m.areEqual(this.captured, trackPaymentRefunded.captured);
return m.areEqual(this.paymentId, trackPaymentRefunded.paymentId) && m.areEqual(this.createdAt, trackPaymentRefunded.createdAt) && m.areEqual(this.paymentType, trackPaymentRefunded.paymentType) && m.areEqual(this.paymentGateway, trackPaymentRefunded.paymentGateway) && m.areEqual(this.price, trackPaymentRefunded.price) && m.areEqual(this.currency, trackPaymentRefunded.currency) && m.areEqual(this.amount, trackPaymentRefunded.amount) && m.areEqual(this.amountRefunded, trackPaymentRefunded.amountRefunded) && m.areEqual(this.tax, trackPaymentRefunded.tax) && m.areEqual(this.taxInclusive, trackPaymentRefunded.taxInclusive) && m.areEqual(this.skuId, trackPaymentRefunded.skuId) && m.areEqual(this.skuType, trackPaymentRefunded.skuType) && m.areEqual(this.skuSubscriptionPlanId, trackPaymentRefunded.skuSubscriptionPlanId) && m.areEqual(this.subscriptionId, trackPaymentRefunded.subscriptionId) && m.areEqual(this.subscriptionType, trackPaymentRefunded.subscriptionType) && m.areEqual(this.subscriptionPaymentGatewayPlanId, trackPaymentRefunded.subscriptionPaymentGatewayPlanId) && m.areEqual(this.subscriptionPlanId, trackPaymentRefunded.subscriptionPlanId) && m.areEqual(this.subscriptionCreatedAt, trackPaymentRefunded.subscriptionCreatedAt) && m.areEqual(this.subscriptionCurrentPeriodStart, trackPaymentRefunded.subscriptionCurrentPeriodStart) && m.areEqual(this.subscriptionCurrentPeriodEnd, trackPaymentRefunded.subscriptionCurrentPeriodEnd) && m.areEqual(this.paymentSourceId, trackPaymentRefunded.paymentSourceId) && m.areEqual(this.paymentSourceCountry, trackPaymentRefunded.paymentSourceCountry) && m.areEqual(this.failureMessage, trackPaymentRefunded.failureMessage) && m.areEqual(this.isGift, trackPaymentRefunded.isGift) && m.areEqual(this.refundReason, trackPaymentRefunded.refundReason) && m.areEqual(this.captured, trackPaymentRefunded.captured) && m.areEqual(this.refunderType, trackPaymentRefunded.refunderType) && m.areEqual(this.refundedBy, trackPaymentRefunded.refundedBy);
}
public int hashCode() {
@ -106,10 +108,14 @@ public final class TrackPaymentRefunded implements AnalyticsSchema, TrackBaseRec
CharSequence charSequence6 = this.refundReason;
int hashCode25 = (hashCode24 + (charSequence6 != null ? charSequence6.hashCode() : 0)) * 31;
Boolean bool3 = this.captured;
if (bool3 != null) {
i = bool3.hashCode();
int hashCode26 = (hashCode25 + (bool3 != null ? bool3.hashCode() : 0)) * 31;
Long l14 = this.refunderType;
int hashCode27 = (hashCode26 + (l14 != null ? l14.hashCode() : 0)) * 31;
Long l15 = this.refundedBy;
if (l15 != null) {
i = l15.hashCode();
}
return hashCode25 + i;
return hashCode27 + i;
}
public String toString() {
@ -164,6 +170,10 @@ public final class TrackPaymentRefunded implements AnalyticsSchema, TrackBaseRec
P.append(", refundReason=");
P.append(this.refundReason);
P.append(", captured=");
return a.C(P, this.captured, ")");
P.append(this.captured);
P.append(", refunderType=");
P.append(this.refunderType);
P.append(", refundedBy=");
return a.F(P, this.refundedBy, ")");
}
}

View File

@ -24,4 +24,8 @@ public final class TrackImpressionContactSyncInputName implements AnalyticsSchem
public String b() {
return this.analyticsSchemaTypeName;
}
public void c(TrackImpressionMetadata trackImpressionMetadata) {
this.trackImpressionMetadata = trackImpressionMetadata;
}
}

View File

@ -24,4 +24,8 @@ public final class TrackImpressionContactSyncStart implements AnalyticsSchema, T
public String b() {
return this.analyticsSchemaTypeName;
}
public void c(TrackImpressionMetadata trackImpressionMetadata) {
this.trackImpressionMetadata = trackImpressionMetadata;
}
}

View File

@ -24,4 +24,8 @@ public final class TrackImpressionContactSyncSuggestions implements AnalyticsSch
public String b() {
return this.analyticsSchemaTypeName;
}
public void c(TrackImpressionMetadata trackImpressionMetadata) {
this.trackImpressionMetadata = trackImpressionMetadata;
}
}

View File

@ -4,11 +4,27 @@ import c.d.b.a.a;
import d0.z.d.m;
/* compiled from: TrackSourceMetadata.kt */
public final class TrackSourceMetadata {
private final CharSequence sourceObject = null;
private final CharSequence sourceObjectType = null;
private final CharSequence sourcePage = null;
private final Long sourcePromotionId = null;
private final CharSequence sourceSection = null;
private final CharSequence sourceObject;
private final CharSequence sourceObjectType;
private final CharSequence sourcePage;
private final Long sourcePromotionId;
private final CharSequence sourceSection;
public TrackSourceMetadata() {
this(null, null, null, null, null, 31);
}
public TrackSourceMetadata(CharSequence charSequence, CharSequence charSequence2, CharSequence charSequence3, CharSequence charSequence4, Long l, int i) {
int i2 = i & 2;
int i3 = i & 4;
int i4 = i & 8;
int i5 = i & 16;
this.sourcePage = (i & 1) != 0 ? null : charSequence;
this.sourceSection = null;
this.sourceObject = null;
this.sourceObjectType = null;
this.sourcePromotionId = null;
}
public boolean equals(Object obj) {
if (this == obj) {

View File

@ -2,6 +2,7 @@ package com.discord.analytics.utils;
/* compiled from: ImpressionGroups.kt */
public final class ImpressionGroups {
public static final String CHANNEL_ADD_FLOW = "channel_add_flow";
public static final String CONTACT_SYNC_FLOW = "contact_sync_flow";
public static final String GUILD_ADD_FLOW = "guild_add_flow";
public static final String GUILD_ADD_NUF = "guild_add_nuf";
public static final ImpressionGroups INSTANCE = new ImpressionGroups();

View File

@ -478,7 +478,7 @@ public abstract class AppFragment extends Fragment implements AppComponent, AppP
if (appLogger.a || z4) {
appLogger.b = invoke;
appLogger.a = true;
appLogger.d.track(invoke);
appLogger.a(invoke);
}
return;
}
@ -487,7 +487,7 @@ public abstract class AppFragment extends Fragment implements AppComponent, AppP
}
appLogger.b = invoke;
appLogger.a = true;
appLogger.d.track(invoke);
appLogger.a(invoke);
}
}
}

View File

@ -4,6 +4,7 @@ import com.discord.api.science.AnalyticsSchema;
import com.discord.utilities.analytics.AnalyticsUtils;
import com.discord.utilities.features.GrowthTeamFeatures;
import d0.z.d.m;
import kotlin.jvm.functions.Function0;
/* compiled from: AppLogger.kt */
public final class AppLogger {
public boolean a;
@ -28,4 +29,17 @@ public final class AppLogger {
this.d = instance;
this.e = z2;
}
public final void a(AnalyticsSchema analyticsSchema) {
Function0<AnalyticsSchema> function0;
AnalyticsSchema invoke;
if (analyticsSchema != null) {
this.d.track(analyticsSchema);
return;
}
LoggingConfig loggingConfig = this.f1608c.getLoggingConfig();
if (loggingConfig != null && (function0 = loggingConfig.f1610c) != null && (invoke = function0.mo1invoke()) != null) {
this.d.track(invoke);
}
}
}

View File

@ -100,8 +100,10 @@ public final class GuildMember {
GuildRole guildRole2 = null;
for (Long l : list) {
long longValue = l.longValue();
if (!(map == null || (guildRole = map.get(Long.valueOf(longValue))) == null || guildRole.d() == null || !RoleUtils.rankIsHigher(guildRole, guildRole2))) {
guildRole2 = guildRole;
if (!(map == null || (guildRole = map.get(Long.valueOf(longValue))) == null)) {
if (((guildRole.d() == null && guildRole.j() == null) ? false : true) && RoleUtils.rankIsHigher(guildRole, guildRole2)) {
guildRole2 = guildRole;
}
}
}
return guildRole2;

View File

@ -30,7 +30,6 @@ public final class StoreAudioManagerV2 extends StoreV2 {
public static final Companion Companion = new Companion(null);
private static final State DEFAULT_STATE;
private static final List<DiscordAudioManager.DeviceTypes> VOICE_ONLY_DEVICE_PRIORITIZATION;
private final StoreAnalytics analyticsStore;
private Handler audioManagerHandler;
private final HandlerThread audioManagerThread = new HandlerThread("AudioManagerThread", -1);
private final StoreChannels channelsStore;
@ -244,13 +243,12 @@ public final class StoreAudioManagerV2 extends StoreV2 {
VOICE_ONLY_DEVICE_PRIORITIZATION = n.listOf((Object[]) new DiscordAudioManager.DeviceTypes[]{DiscordAudioManager.DeviceTypes.SPEAKERPHONE, deviceTypes, DiscordAudioManager.DeviceTypes.BLUETOOTH_HEADSET, DiscordAudioManager.DeviceTypes.WIRED_HEADSET});
}
public StoreAudioManagerV2(ObservationDeck observationDeck, Dispatcher dispatcher, StoreVoiceChannelSelected storeVoiceChannelSelected, StoreChannels storeChannels, StoreStreamRtcConnection storeStreamRtcConnection, StoreAnalytics storeAnalytics, VideoUseDetector videoUseDetector, StoreExperiments storeExperiments) {
public StoreAudioManagerV2(ObservationDeck observationDeck, Dispatcher dispatcher, StoreVoiceChannelSelected storeVoiceChannelSelected, StoreChannels storeChannels, StoreStreamRtcConnection storeStreamRtcConnection, VideoUseDetector videoUseDetector, StoreExperiments storeExperiments) {
m.checkNotNullParameter(observationDeck, "observationDeck");
m.checkNotNullParameter(dispatcher, "dispatcher");
m.checkNotNullParameter(storeVoiceChannelSelected, "voiceChannelSelectedStore");
m.checkNotNullParameter(storeChannels, "channelsStore");
m.checkNotNullParameter(storeStreamRtcConnection, "streamRtcConnectionStore");
m.checkNotNullParameter(storeAnalytics, "analyticsStore");
m.checkNotNullParameter(videoUseDetector, "videoUseDetector");
m.checkNotNullParameter(storeExperiments, "experimentsStore");
this.observationDeck = observationDeck;
@ -258,7 +256,6 @@ public final class StoreAudioManagerV2 extends StoreV2 {
this.voiceChannelSelectedStore = storeVoiceChannelSelected;
this.channelsStore = storeChannels;
this.streamRtcConnectionStore = storeStreamRtcConnection;
this.analyticsStore = storeAnalytics;
this.videoUseDetector = videoUseDetector;
this.experimentsStore = storeExperiments;
State state = new State(null, null, 3, null);
@ -442,15 +439,11 @@ public final class StoreAudioManagerV2 extends StoreV2 {
public final void selectOutputDevice(DiscordAudioManager.DeviceTypes deviceTypes) {
m.checkNotNullParameter(deviceTypes, "device");
DiscordAudioManager.DeviceTypes activeAudioDevice = this.state.getActiveAudioDevice();
Handler handler = this.audioManagerHandler;
if (handler == null) {
m.throwUninitializedPropertyAccessException("audioManagerHandler");
}
handler.post(new StoreAudioManagerV2$selectOutputDevice$1(deviceTypes));
if (deviceTypes != activeAudioDevice) {
this.analyticsStore.trackVoiceAudioOutputModeSelected(this.voiceChannelSelectedStore.getSelectedVoiceChannelId(), activeAudioDevice, deviceTypes);
}
}
public final void setState$app_productionCanaryRelease(State state) {

View File

@ -4,7 +4,7 @@ import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentManager;
import com.discord.utilities.analytics.AnalyticsTracker;
import com.discord.utilities.analytics.Traits;
import com.discord.widgets.contact_sync.ContactSyncAnalytics;
import com.discord.widgets.contact_sync.ContactSyncFlowAnalytics;
import com.discord.widgets.contact_sync.ContactSyncUpsellSheet;
import d0.t.g0;
import d0.z.d.m;
@ -28,7 +28,7 @@ public final class StoreContactSync$createContactSyncNotice$1 extends o implemen
public final boolean invoke(FragmentActivity fragmentActivity) {
m.checkNotNullParameter(fragmentActivity, "appActivity");
AnalyticsTracker.INSTANCE.openPopout("Contact Sync", new Traits.Location("Release Upsell", null, null, null, null, 30, null));
ContactSyncAnalytics.Companion.trackStart$default(ContactSyncAnalytics.Companion, false, g0.mapOf(d0.o.to("location_page", "Release Upsell")), 1, null);
ContactSyncFlowAnalytics.Companion.trackStart$default(ContactSyncFlowAnalytics.Companion, false, g0.mapOf(d0.o.to("location_page", "Release Upsell")), 1, null);
ContactSyncUpsellSheet.Companion companion = ContactSyncUpsellSheet.Companion;
FragmentManager supportFragmentManager = fragmentActivity.getSupportFragmentManager();
m.checkNotNullExpressionValue(supportFragmentManager, "appActivity.supportFragmentManager");

View File

@ -6,7 +6,7 @@ import com.discord.models.experiments.domain.Experiment;
import com.discord.stores.StoreInviteSettings;
import com.discord.stores.StoreNavigation;
import com.discord.stores.StoreNux;
import com.discord.widgets.contact_sync.ContactSyncAnalytics;
import com.discord.widgets.contact_sync.ContactSyncFlowAnalytics;
import com.discord.widgets.contact_sync.ContactSyncMode;
import com.discord.widgets.contact_sync.WidgetContactSync;
import com.discord.widgets.guilds.invite.WidgetGuildInvite;
@ -67,7 +67,7 @@ public final class StoreNavigation$ActivityNavigationLifecycleCallbacks$inviteCo
WidgetGuildInvite.Companion.launch(appActivity, inviteCode);
StoreNavigation.ActivityNavigationLifecycleCallbacks.access$getStream$p(this.this$0).getNux$app_productionCanaryRelease().updateNux(AnonymousClass1.INSTANCE);
} else if (!appActivity.h(a0.getOrCreateKotlinClass(WidgetContactSync.class))) {
ContactSyncAnalytics.Companion.trackStart(true, g0.mapOf(d0.o.to("location_page", "Onboarding")));
ContactSyncFlowAnalytics.Companion.trackStart(true, g0.mapOf(d0.o.to("location_page", "Onboarding")));
WidgetContactSync.Companion.launch$default(WidgetContactSync.Companion, appActivity, ContactSyncMode.ONBOARDING, false, false, false, 28, null);
}
return true;

View File

@ -7,7 +7,7 @@ import com.discord.models.experiments.domain.Experiment;
import com.discord.stores.StoreNavigation;
import com.discord.stores.StoreNux;
import com.discord.utilities.features.GrowthTeamFeatures;
import com.discord.widgets.contact_sync.ContactSyncAnalytics;
import com.discord.widgets.contact_sync.ContactSyncFlowAnalytics;
import com.discord.widgets.contact_sync.ContactSyncMode;
import com.discord.widgets.contact_sync.WidgetContactSync;
import com.discord.widgets.guilds.create.CreateGuildTrigger;
@ -78,7 +78,7 @@ public final class StoreNavigation$ActivityNavigationLifecycleCallbacks$nuxState
StoreNavigation.ActivityNavigationLifecycleCallbacks.access$getStream$p(this.this$0).getNux$app_productionCanaryRelease().updateNux(AnonymousClass1.INSTANCE);
}
} else if (!appActivity.h(a0.getOrCreateKotlinClass(WidgetContactSync.class))) {
ContactSyncAnalytics.Companion.trackStart(true, g0.mapOf(d0.o.to("location_page", "Onboarding")));
ContactSyncFlowAnalytics.Companion.trackStart(true, g0.mapOf(d0.o.to("location_page", "Onboarding")));
WidgetContactSync.Companion.launch$default(WidgetContactSync.Companion, appActivity, ContactSyncMode.ONBOARDING, false, false, false, 28, null);
}
return true;

View File

@ -923,7 +923,7 @@ public final class StoreStream {
this.mfa = new StoreMFA(this, this.dispatcher, ObservationDeckProvider.get());
StoreStreamRtcConnection storeStreamRtcConnection = new StoreStreamRtcConnection(storeMediaEngine, this.users, this, this.dispatcher, this.clock, this.analytics, storeRtcConnection, null, null, null, 896, null);
this.streamRtcConnection = storeStreamRtcConnection;
StoreAudioManagerV2 storeAudioManagerV2 = new StoreAudioManagerV2(ObservationDeckProvider.get(), this.dispatcher, storeVoiceChannelSelected, this.channels, storeStreamRtcConnection, this.analytics, videoUseDetector, this.experiments);
StoreAudioManagerV2 storeAudioManagerV2 = new StoreAudioManagerV2(ObservationDeckProvider.get(), this.dispatcher, storeVoiceChannelSelected, this.channels, storeStreamRtcConnection, videoUseDetector, this.experiments);
this.audioManagerV2 = storeAudioManagerV2;
StoreApplicationStreamPreviews storeApplicationStreamPreviews = new StoreApplicationStreamPreviews(this.dispatcher, this.clock, null, null, 12, null);
this.applicationStreamPreviews = storeApplicationStreamPreviews;

View File

@ -1,6 +1,7 @@
package com.discord.utilities;
import android.graphics.Bitmap;
import android.os.Build;
import com.discord.utilities.images.MGImages;
import com.discord.utilities.images.MGImagesBitmap;
import d0.o;
@ -39,7 +40,7 @@ public final class ShareUtils$updateDirectShareTargets$4<T, R> implements b<List
int i2 = shareUtils$updateDirectShareTargets$4.$fullBitmapSize;
linkedHashMap.put(key, mGImages.centerBitmapInTransparentBitmap(bitmap, i, i, i2, i2));
}
return new MGImagesBitmap.CloseableBitmaps(linkedHashMap);
return new MGImagesBitmap.CloseableBitmaps(linkedHashMap, Build.VERSION.SDK_INT > 24);
}
}

View File

@ -12,7 +12,9 @@ import co.discord.media_engine.VideoInputDeviceDescription;
import com.adjust.sdk.Adjust;
import com.adjust.sdk.AdjustAttribution;
import com.adjust.sdk.AdjustEvent;
import com.discord.analytics.generated.events.TrackAgeGateSubmitted;
import com.discord.analytics.generated.events.impression.TrackImpressionInviteAccept;
import com.discord.analytics.generated.traits.TrackSourceMetadata;
import com.discord.api.activity.ActivityPlatform;
import com.discord.api.application.Application;
import com.discord.api.channel.Channel;
@ -24,6 +26,7 @@ import com.discord.api.stageinstance.StageInstance;
import com.discord.api.sticker.Sticker;
import com.discord.api.thread.ThreadMemberFlags;
import com.discord.api.user.User;
import com.discord.api.utcdatetime.UtcDateTime;
import com.discord.api.voice.state.VoiceState;
import com.discord.app.AppLog;
import com.discord.models.domain.ModelApplicationStream;
@ -82,8 +85,10 @@ import d0.t.n;
import d0.t.r;
import d0.t.u;
import d0.z.d.m;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
@ -92,6 +97,7 @@ import java.util.Locale;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.TimeZone;
import kotlin.Lazy;
import kotlin.NoWhenBranchMatchedException;
import kotlin.Pair;
@ -1013,10 +1019,26 @@ public final class AnalyticsTracker {
public final void ageGateSubmitted(long j, String str) {
m.checkNotNullParameter(str, "sourcePage");
HashMap hashMap = new HashMap();
hashMap.put("dob", Long.valueOf(j));
hashMap.put("source_page", str);
tracker.track("age_gate_submitted", hashMap);
AnalyticsUtils.Tracker tracker2 = tracker;
UtcDateTime utcDateTime = new UtcDateTime(j);
Locale locale = Locale.ROOT;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd", locale);
simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
String format = simpleDateFormat.format(new Date(j));
m.checkNotNullExpressionValue(format, "formatter.format(Date(this))");
Long valueOf = Long.valueOf(Long.parseLong(format));
SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("MM", locale);
simpleDateFormat2.setTimeZone(TimeZone.getTimeZone("UTC"));
String format2 = simpleDateFormat2.format(new Date(j));
m.checkNotNullExpressionValue(format2, "formatter.format(Date(this))");
Long valueOf2 = Long.valueOf(Long.parseLong(format2));
SimpleDateFormat simpleDateFormat3 = new SimpleDateFormat("yyyy", locale);
simpleDateFormat3.setTimeZone(TimeZone.getTimeZone("UTC"));
String format3 = simpleDateFormat3.format(new Date(j));
m.checkNotNullExpressionValue(format3, "formatter.format(Date(this))");
TrackAgeGateSubmitted trackAgeGateSubmitted = new TrackAgeGateSubmitted(utcDateTime, valueOf, valueOf2, Long.valueOf(Long.parseLong(format3)));
trackAgeGateSubmitted.c(new TrackSourceMetadata(str, null, null, null, null, 30));
tracker2.track(trackAgeGateSubmitted);
}
public final void appCrashed() {

View File

@ -128,9 +128,10 @@ public final class NotificationRenderer {
contentIntent.setFullScreenIntent(fullScreenIntent, true);
contentIntent.setVisibility(1);
}
Uri uri = null;
if (!extras.isEmpty()) {
contentIntent.setNumber(extras.size());
contentIntent.setStyle(getMessageStyle(context, notificationData, extras, new MGImagesBitmap.CloseableBitmaps(h0.emptyMap())));
contentIntent.setStyle(getMessageStyle(context, notificationData, extras, new MGImagesBitmap.CloseableBitmaps(h0.emptyMap(), false, 2, null)));
}
if (notificationData.getShouldUseBigText()) {
contentIntent.setStyle(new NotificationCompat.BigTextStyle().bigText(notificationData.getContent(context)));
@ -143,11 +144,11 @@ public final class NotificationRenderer {
}
Uri notificationSound = notificationData.getNotificationSound(context);
if (notificationSound != null) {
if (!(!settingsV2.isDisableSound())) {
notificationSound = null;
if (!settingsV2.isDisableSound()) {
uri = notificationSound;
}
if (notificationSound != null) {
contentIntent.setSound(notificationSound).setDefaults(INSTANCE.getNotificationDefaults(settingsV2.isDisableSound(), settingsV2.isDisableVibrate()) & -2);
if (uri != null) {
contentIntent.setSound(uri).setDefaults(INSTANCE.getNotificationDefaults(settingsV2.isDisableSound(), settingsV2.isDisableVibrate()) & -2);
}
}
}

View File

@ -25,6 +25,10 @@ public final class GrowthTeamFeatures {
return StoreStream.Companion.getExperiments().getGuildExperiment("2021-06_welcome_cta", j, z2);
}
public final boolean imbalancedAndroidSplashNoop() {
return isExperimentEnabled$default(this, "2021-09_imbalanced_android_splash_noop", 0, 1, null);
}
public final boolean isAndroidSmsAutofillEnabled() {
return isExperimentEnabled$default(this, "2021-09_android_sms_autofill", 0, 1, null);
}

View File

@ -11,6 +11,6 @@ public final class MGImagesBitmap$getBitmaps$4<T, R> implements b<Map<String, Bi
public final MGImagesBitmap.CloseableBitmaps call(Map<String, Bitmap> map) {
m.checkNotNullExpressionValue(map, "it");
return new MGImagesBitmap.CloseableBitmaps(map);
return new MGImagesBitmap.CloseableBitmaps(map, false, 2, null);
}
}

View File

@ -19,6 +19,7 @@ import java.util.Map;
import java.util.Set;
import java.util.function.BiFunction;
import java.util.function.Function;
import kotlin.jvm.internal.DefaultConstructorMarker;
import rx.Observable;
/* compiled from: MGImagesBitmap.kt */
public final class MGImagesBitmap {
@ -26,11 +27,18 @@ public final class MGImagesBitmap {
/* compiled from: MGImagesBitmap.kt */
public static final class CloseableBitmaps implements Map<String, Bitmap>, Closeable, a {
private final boolean recycleBitmaps;
private final Map<String, Bitmap> underlyingMap;
public CloseableBitmaps(Map<String, Bitmap> map) {
public CloseableBitmaps(Map<String, Bitmap> map, boolean z2) {
m.checkNotNullParameter(map, "underlyingMap");
this.underlyingMap = map;
this.recycleBitmaps = z2;
}
/* JADX INFO: this call moved to the top of the method (can break code semantics) */
public /* synthetic */ CloseableBitmaps(Map map, boolean z2, int i, DefaultConstructorMarker defaultConstructorMarker) {
this(map, (i & 2) != 0 ? true : z2);
}
@Override // java.util.Map
@ -40,8 +48,10 @@ public final class MGImagesBitmap {
@Override // java.io.Closeable, java.lang.AutoCloseable
public void close() {
for (Map.Entry<String, Bitmap> entry : this.underlyingMap.entrySet()) {
entry.getValue().recycle();
if (this.recycleBitmaps) {
for (Map.Entry<String, Bitmap> entry : this.underlyingMap.entrySet()) {
entry.getValue().recycle();
}
}
}

View File

@ -1,7 +1,7 @@
package com.discord.utilities.intent;
import androidx.fragment.app.FragmentActivity;
import com.discord.widgets.contact_sync.ContactSyncAnalytics;
import com.discord.widgets.contact_sync.ContactSyncFlowAnalytics;
import com.discord.widgets.contact_sync.WidgetContactSync;
import d0.t.g0;
import d0.z.d.m;
@ -26,7 +26,7 @@ public final class RouteHandlers$selectFeature$settingMap$9 extends o implements
public final void invoke(FragmentActivity fragmentActivity) {
m.checkNotNullParameter(fragmentActivity, "ctx");
ContactSyncAnalytics.Companion.trackStart$default(ContactSyncAnalytics.Companion, false, g0.mapOf(d0.o.to("location_page", "Deep Link")), 1, null);
ContactSyncFlowAnalytics.Companion.trackStart$default(ContactSyncFlowAnalytics.Companion, false, g0.mapOf(d0.o.to("location_page", "Deep Link")), 1, null);
WidgetContactSync.Companion.launch$default(WidgetContactSync.Companion, fragmentActivity, null, false, false, false, 30, null);
}
}

View File

@ -18,6 +18,7 @@ import com.discord.stores.StoreStream;
import com.discord.utilities.auth.GoogleSmartLockManager;
import com.discord.utilities.auth.RegistrationFlowRepo;
import com.discord.utilities.color.ColorCompat;
import com.discord.utilities.features.GrowthTeamFeatures;
import com.discord.utilities.rx.ObservableExtensionsKt;
import com.discord.utilities.rx.ObservableExtensionsKt$filterNull$1;
import com.discord.utilities.rx.ObservableExtensionsKt$filterNull$2;
@ -169,5 +170,6 @@ public final class WidgetAuthLanding extends AppFragment {
m.checkNotNullExpressionValue(F2, "StoreStream.getExperimen…experiment?.bucket == 1 }");
ObservableExtensionsKt.appSubscribe$default(ObservableExtensionsKt.bindToComponentLifecycle$default(F2, this, null, 2, null), WidgetAuthLanding.class, (Context) null, (Function1) null, (Function1) null, (Function0) null, (Function0) null, new WidgetAuthLanding$onViewBoundOrOnResume$2(this), 62, (Object) null);
ObservableExtensionsKt.appSubscribe$default(ObservableExtensionsKt.bindToComponentLifecycle$default(getViewModel().observeEvents(), this, null, 2, null), WidgetAuthLanding.class, (Context) null, (Function1) null, (Function1) null, (Function0) null, (Function0) null, new WidgetAuthLanding$onViewBoundOrOnResume$3(this), 62, (Object) null);
GrowthTeamFeatures.INSTANCE.imbalancedAndroidSplashNoop();
}
}

View File

@ -171,9 +171,10 @@ public final class WidgetChannelsListItemChannelActions extends AppBottomSheet {
return this.guild;
}
public final CharSequence getMuteChannelText(Context context) {
public final CharSequence getMuteChannelText(Context context, Channel channel) {
m.checkNotNullParameter(context, "context");
return this.isMuted ? b.h(context, R.string.unmute_channel_generic, new Object[0], null, 4) : b.h(context, R.string.mute_channel_generic, new Object[0], null, 4);
m.checkNotNullParameter(channel, "channel");
return (!this.isMuted || !AnimatableValueParser.f1(channel)) ? (this.isMuted || !AnimatableValueParser.f1(channel)) ? this.isMuted ? b.h(context, R.string.unmute_channel_generic, new Object[0], null, 4) : b.h(context, R.string.mute_channel_generic, new Object[0], null, 4) : b.h(context, R.string.mute_category, new Object[0], null, 4) : b.h(context, R.string.unmute_category, new Object[0], null, 4);
}
public final int getMuteIconResId(Context context) {
@ -283,7 +284,7 @@ public final class WidgetChannelsListItemChannelActions extends AppBottomSheet {
textView4.setCompoundDrawablesWithIntrinsicBounds(model.getMuteIconResId(context), 0, 0, 0);
Context context2 = textView4.getContext();
m.checkNotNullExpressionValue(context2, "context");
textView4.setText(model.getMuteChannelText(context2));
textView4.setText(model.getMuteChannelText(context2, model.getChannel()));
TextView textView5 = getBinding().l;
textView5.setVisibility(ThreadUtils.INSTANCE.isThreadsEnabled(model.getChannel().f()) && AnimatableValueParser.C1(model.getChannel()) && !model.getChannel().o() ? 0 : 8);
setOnClickAndDismissListener(textView5, new WidgetChannelsListItemChannelActions$configureUI$$inlined$apply$lambda$4(textView5, this, model));

View File

@ -8,8 +8,8 @@ import d0.t.h0;
import d0.z.d.m;
import java.util.Map;
import kotlin.jvm.internal.DefaultConstructorMarker;
/* compiled from: ContactSyncAnalytics.kt */
public final class ContactSyncAnalytics {
/* compiled from: ContactSyncFlowAnalytics.kt */
public final class ContactSyncFlowAnalytics {
private static final String CONTACT_SYNC_FLOW_KEY = "Contact Sync";
public static final Companion Companion = new Companion(null);
private final Clock clock;
@ -17,7 +17,7 @@ public final class ContactSyncAnalytics {
private String lastStep;
private long lastStepTimestamp;
/* compiled from: ContactSyncAnalytics.kt */
/* compiled from: ContactSyncFlowAnalytics.kt */
public static final class Companion {
private Companion() {
}
@ -26,7 +26,7 @@ public final class ContactSyncAnalytics {
this();
}
/* JADX DEBUG: Multi-variable search result rejected for r0v0, resolved type: com.discord.widgets.contact_sync.ContactSyncAnalytics$Companion */
/* JADX DEBUG: Multi-variable search result rejected for r0v0, resolved type: com.discord.widgets.contact_sync.ContactSyncFlowAnalytics$Companion */
/* JADX WARN: Multi-variable type inference failed */
public static /* synthetic */ void trackStart$default(Companion companion, boolean z2, Map map, int i, Object obj) {
if ((i & 1) != 0) {
@ -42,18 +42,18 @@ public final class ContactSyncAnalytics {
Map<String, ? extends Object> mutableMap = h0.toMutableMap(map != null ? map : h0.emptyMap());
mutableMap.put("has_phone_number", Boolean.valueOf(StoreStream.Companion.getUsers().getMe().getPhoneNumber() != null));
AnalyticsTracker analyticsTracker = AnalyticsTracker.INSTANCE;
analyticsTracker.relationshipSyncFlow(ContactSyncAnalytics.CONTACT_SYNC_FLOW_KEY, "Flow Initialized", "Landing", 0, false, false, mutableMap);
analyticsTracker.relationshipSyncFlow(ContactSyncFlowAnalytics.CONTACT_SYNC_FLOW_KEY, "Flow Initialized", "Landing", 0, false, false, mutableMap);
if (z2) {
AnalyticsTracker.newUserOnboarding$default(analyticsTracker, ContactSyncAnalytics.CONTACT_SYNC_FLOW_KEY, "Flow Initialized", "Landing", null, false, 24, null);
AnalyticsTracker.newUserOnboarding$default(analyticsTracker, ContactSyncFlowAnalytics.CONTACT_SYNC_FLOW_KEY, "Flow Initialized", "Landing", null, false, 24, null);
}
}
}
public ContactSyncAnalytics() {
public ContactSyncFlowAnalytics() {
this(false, null, 3, null);
}
public ContactSyncAnalytics(boolean z2, Clock clock) {
public ContactSyncFlowAnalytics(boolean z2, Clock clock) {
m.checkNotNullParameter(clock, "clock");
this.isOnboarding = z2;
this.clock = clock;
@ -62,26 +62,26 @@ public final class ContactSyncAnalytics {
}
/* JADX INFO: this call moved to the top of the method (can break code semantics) */
public /* synthetic */ ContactSyncAnalytics(boolean z2, Clock clock, int i, DefaultConstructorMarker defaultConstructorMarker) {
public /* synthetic */ ContactSyncFlowAnalytics(boolean z2, Clock clock, int i, DefaultConstructorMarker defaultConstructorMarker) {
this((i & 1) != 0 ? false : z2, (i & 2) != 0 ? ClockFactory.get() : clock);
}
/* JADX DEBUG: Multi-variable search result rejected for r0v0, resolved type: com.discord.widgets.contact_sync.ContactSyncAnalytics */
/* JADX DEBUG: Multi-variable search result rejected for r0v0, resolved type: com.discord.widgets.contact_sync.ContactSyncFlowAnalytics */
/* JADX WARN: Multi-variable type inference failed */
public static /* synthetic */ void trackEnd$default(ContactSyncAnalytics contactSyncAnalytics, boolean z2, Map map, int i, Object obj) {
public static /* synthetic */ void trackEnd$default(ContactSyncFlowAnalytics contactSyncFlowAnalytics, boolean z2, Map map, int i, Object obj) {
if ((i & 2) != 0) {
map = null;
}
contactSyncAnalytics.trackEnd(z2, map);
contactSyncFlowAnalytics.trackEnd(z2, map);
}
/* JADX DEBUG: Multi-variable search result rejected for r0v0, resolved type: com.discord.widgets.contact_sync.ContactSyncAnalytics */
/* JADX DEBUG: Multi-variable search result rejected for r0v0, resolved type: com.discord.widgets.contact_sync.ContactSyncFlowAnalytics */
/* JADX WARN: Multi-variable type inference failed */
public static /* synthetic */ void trackFlowStep$default(ContactSyncAnalytics contactSyncAnalytics, String str, boolean z2, boolean z3, Map map, int i, Object obj) {
public static /* synthetic */ void trackFlowStep$default(ContactSyncFlowAnalytics contactSyncFlowAnalytics, String str, boolean z2, boolean z3, Map map, int i, Object obj) {
if ((i & 8) != 0) {
map = null;
}
contactSyncAnalytics.trackFlowStep(str, z2, z3, map);
contactSyncFlowAnalytics.trackFlowStep(str, z2, z3, map);
}
public final Clock getClock() {

View File

@ -0,0 +1,44 @@
package com.discord.widgets.contact_sync;
import com.discord.analytics.generated.events.impression.TrackImpressionContactSyncInputName;
import com.discord.analytics.generated.events.impression.TrackImpressionContactSyncStart;
import com.discord.analytics.generated.events.impression.TrackImpressionContactSyncSuggestions;
import com.discord.api.science.AnalyticsSchema;
import com.discord.widgets.contact_sync.WidgetContactSyncViewModel;
import d0.z.d.o;
import kotlin.jvm.functions.Function0;
/* compiled from: WidgetContactSync.kt */
public final class WidgetContactSync$loggingConfig$1 extends o implements Function0<AnalyticsSchema> {
public final /* synthetic */ WidgetContactSync this$0;
/* JADX INFO: super call moved to the top of the method (can break code semantics) */
public WidgetContactSync$loggingConfig$1(WidgetContactSync widgetContactSync) {
super(0);
this.this$0 = widgetContactSync;
}
@Override // kotlin.jvm.functions.Function0
/* renamed from: invoke */
public final AnalyticsSchema mo1invoke() {
int access$getDisplayedChildIndex$p = WidgetContactSync.access$getDisplayedChildIndex$p(this.this$0);
if (access$getDisplayedChildIndex$p == WidgetContactSyncViewModel.Views.VIEW_LANDING.ordinal()) {
TrackImpressionContactSyncStart trackImpressionContactSyncStart = new TrackImpressionContactSyncStart();
trackImpressionContactSyncStart.c(WidgetContactSync.access$getImpressionMetadata$p(this.this$0));
return trackImpressionContactSyncStart;
} else if (access$getDisplayedChildIndex$p == WidgetContactSyncViewModel.Views.VIEW_NAME_INPUT.ordinal()) {
TrackImpressionContactSyncInputName trackImpressionContactSyncInputName = new TrackImpressionContactSyncInputName();
trackImpressionContactSyncInputName.c(WidgetContactSync.access$getImpressionMetadata$p(this.this$0));
return trackImpressionContactSyncInputName;
} else if (access$getDisplayedChildIndex$p == WidgetContactSyncViewModel.Views.VIEW_SUGGESTIONS.ordinal()) {
TrackImpressionContactSyncSuggestions trackImpressionContactSyncSuggestions = new TrackImpressionContactSyncSuggestions();
trackImpressionContactSyncSuggestions.c(WidgetContactSync.access$getImpressionMetadata$p(this.this$0));
return trackImpressionContactSyncSuggestions;
} else if (access$getDisplayedChildIndex$p != WidgetContactSyncViewModel.Views.VIEW_SUGGESTIONS_EMPTY.ordinal()) {
return null;
} else {
TrackImpressionContactSyncSuggestions trackImpressionContactSyncSuggestions2 = new TrackImpressionContactSyncSuggestions();
trackImpressionContactSyncSuggestions2.c(WidgetContactSync.access$getImpressionMetadata$p(this.this$0));
return trackImpressionContactSyncSuggestions2;
}
}
}

View File

@ -14,9 +14,12 @@ import c.a.d.j;
import c.a.k.b;
import c.d.b.a.a;
import com.discord.R;
import com.discord.analytics.generated.traits.TrackImpressionMetadata;
import com.discord.analytics.utils.ImpressionGroups;
import com.discord.app.AppActivity;
import com.discord.app.AppFragment;
import com.discord.app.AppViewFlipper;
import com.discord.app.LoggingConfig;
import com.discord.databinding.WidgetContactSyncBinding;
import com.discord.utilities.accessibility.AccessibilityUtils;
import com.discord.utilities.analytics.AnalyticsTracker;
@ -38,7 +41,6 @@ import d0.z.d.m;
import java.io.Serializable;
import java.util.Objects;
import kotlin.Lazy;
import kotlin.NoWhenBranchMatchedException;
import kotlin.jvm.functions.Function0;
import kotlin.jvm.functions.Function1;
import kotlin.jvm.internal.DefaultConstructorMarker;
@ -54,6 +56,8 @@ public final class WidgetContactSync extends AppFragment {
private final FragmentViewBindingDelegate binding$delegate = FragmentViewBindingDelegateKt.viewBinding$default(this, WidgetContactSync$binding$2.INSTANCE, null, 2, null);
private int displayedChildIndex;
private ContactSyncFriendSuggestionListAdapter friendSuggestionsAdapter;
private final TrackImpressionMetadata impressionMetadata = new TrackImpressionMetadata(null, null, null, ImpressionGroups.CONTACT_SYNC_FLOW, 7);
private final LoggingConfig loggingConfig = new LoggingConfig(false, null, new WidgetContactSync$loggingConfig$1(this), 3);
private String phoneNumber;
private final Lazy viewModel$delegate = FragmentViewModelLazyKt.createViewModelLazy(this, a0.getOrCreateKotlinClass(WidgetContactSyncViewModel.class), new WidgetContactSync$appActivityViewModels$$inlined$activityViewModels$1(this), new e0(new WidgetContactSync$viewModel$2(this)));
@ -102,22 +106,6 @@ public final class WidgetContactSync extends AppFragment {
}
}
public final /* synthetic */ class WhenMappings {
public static final /* synthetic */ int[] $EnumSwitchMapping$0;
static {
WidgetContactSyncViewModel.Views.values();
int[] iArr = new int[6];
$EnumSwitchMapping$0 = iArr;
iArr[WidgetContactSyncViewModel.Views.VIEW_LANDING.ordinal()] = 1;
iArr[WidgetContactSyncViewModel.Views.VIEW_ADD_PHONE.ordinal()] = 2;
iArr[WidgetContactSyncViewModel.Views.VIEW_VERIFY_PHONE.ordinal()] = 3;
iArr[WidgetContactSyncViewModel.Views.VIEW_NAME_INPUT.ordinal()] = 4;
iArr[WidgetContactSyncViewModel.Views.VIEW_SUGGESTIONS.ordinal()] = 5;
iArr[WidgetContactSyncViewModel.Views.VIEW_SUGGESTIONS_EMPTY.ordinal()] = 6;
}
}
public WidgetContactSync() {
super(R.layout.widget_contact_sync);
}
@ -130,6 +118,14 @@ public final class WidgetContactSync extends AppFragment {
return widgetContactSync.getBinding();
}
public static final /* synthetic */ int access$getDisplayedChildIndex$p(WidgetContactSync widgetContactSync) {
return widgetContactSync.displayedChildIndex;
}
public static final /* synthetic */ TrackImpressionMetadata access$getImpressionMetadata$p(WidgetContactSync widgetContactSync) {
return widgetContactSync.impressionMetadata;
}
public static final /* synthetic */ WidgetContactSyncViewModel access$getViewModel$p(WidgetContactSync widgetContactSync) {
return widgetContactSync.getViewModel();
}
@ -150,6 +146,10 @@ public final class WidgetContactSync extends AppFragment {
widgetContactSync.onPermissionsGranted();
}
public static final /* synthetic */ void access$setDisplayedChildIndex$p(WidgetContactSync widgetContactSync, int i) {
widgetContactSync.displayedChildIndex = i;
}
private final void configureToolbar(WidgetContactSyncViewModel.ToolbarConfig toolbarConfig) {
setActionBarDisplayHomeAsUpEnabled(toolbarConfig.getShowBackButton());
setActionBarOptionsMenu(R.menu.menu_contact_sync, new WidgetContactSync$configureToolbar$1(this), new WidgetContactSync$configureToolbar$2(toolbarConfig));
@ -211,26 +211,12 @@ public final class WidgetContactSync extends AppFragment {
private final void configureViewFlipper(WidgetContactSyncViewModel.Views views) {
int i;
int ordinal = views.ordinal();
boolean z2 = false;
int i2 = 5;
if (ordinal == 0) {
i2 = 0;
} else if (ordinal == 1) {
i2 = 1;
} else if (ordinal == 2) {
i2 = 2;
} else if (ordinal == 3) {
i2 = 3;
} else if (ordinal == 4) {
i2 = 4;
} else if (ordinal != 5) {
throw new NoWhenBranchMatchedException();
}
if (i2 != this.displayedChildIndex) {
boolean z2 = true;
if (ordinal != this.displayedChildIndex) {
AppFragment.hideKeyboard$default(this, null, 1, null);
}
if (views == WidgetContactSyncViewModel.Views.VIEW_LANDING && ((i = this.displayedChildIndex) == 2 || i == 3)) {
z2 = true;
if (!(views == WidgetContactSyncViewModel.Views.VIEW_LANDING && ((i = this.displayedChildIndex) == 2 || i == 3))) {
z2 = false;
}
if (AccessibilityUtils.INSTANCE.isReducedMotionEnabled()) {
AppViewFlipper appViewFlipper = getBinding().h;
@ -240,15 +226,15 @@ public final class WidgetContactSync extends AppFragment {
m.checkNotNullExpressionValue(appViewFlipper2, "binding.contactSyncViewFlipper");
appViewFlipper2.setOutAnimation(AnimationUtils.loadAnimation(getContext(), R.anim.anim_fade_out_fast));
} else {
int i3 = this.displayedChildIndex;
if (i2 > i3 || z2) {
int i2 = this.displayedChildIndex;
if (ordinal > i2 || z2) {
AppViewFlipper appViewFlipper3 = getBinding().h;
m.checkNotNullExpressionValue(appViewFlipper3, "binding.contactSyncViewFlipper");
appViewFlipper3.setInAnimation(AnimationUtils.loadAnimation(getContext(), R.anim.activity_slide_horizontal_open_in));
AppViewFlipper appViewFlipper4 = getBinding().h;
m.checkNotNullExpressionValue(appViewFlipper4, "binding.contactSyncViewFlipper");
appViewFlipper4.setOutAnimation(AnimationUtils.loadAnimation(getContext(), R.anim.activity_slide_horizontal_open_out));
} else if (i2 < i3) {
} else if (ordinal < i2) {
AppViewFlipper appViewFlipper5 = getBinding().h;
m.checkNotNullExpressionValue(appViewFlipper5, "binding.contactSyncViewFlipper");
appViewFlipper5.setInAnimation(AnimationUtils.loadAnimation(getContext(), R.anim.activity_slide_horizontal_close_in));
@ -259,8 +245,9 @@ public final class WidgetContactSync extends AppFragment {
}
AppViewFlipper appViewFlipper7 = getBinding().h;
m.checkNotNullExpressionValue(appViewFlipper7, "binding.contactSyncViewFlipper");
appViewFlipper7.setDisplayedChild(i2);
this.displayedChildIndex = i2;
appViewFlipper7.setDisplayedChild(ordinal);
this.displayedChildIndex = ordinal;
getAppLogger().a(null);
}
private final WidgetContactSyncBinding getBinding() {
@ -347,6 +334,11 @@ public final class WidgetContactSync extends AppFragment {
requestContacts(new WidgetContactSync$requestContactsPermissions$1(this), new WidgetContactSync$requestContactsPermissions$2(this));
}
@Override // com.discord.app.AppFragment, com.discord.app.AppLogger.a
public LoggingConfig getLoggingConfig() {
return this.loggingConfig;
}
@Override // com.discord.app.AppFragment, androidx.fragment.app.Fragment
public void onResume() {
super.onResume();

View File

@ -56,7 +56,7 @@ public final class WidgetContactSyncViewModel extends AppViewModel<ViewState> {
private final PublishSubject<Event> eventsSubject;
private boolean initialized;
private final RestAPI restAPI;
private final ContactSyncAnalytics tracker;
private final ContactSyncFlowAnalytics tracker;
/* compiled from: WidgetContactSyncViewModel.kt */
/* renamed from: com.discord.widgets.contact_sync.WidgetContactSyncViewModel$1 reason: invalid class name */
@ -817,19 +817,28 @@ public final class WidgetContactSyncViewModel extends AppViewModel<ViewState> {
/* compiled from: WidgetContactSyncViewModel.kt */
public enum Views {
VIEW_LANDING,
VIEW_ADD_PHONE,
VIEW_VERIFY_PHONE,
VIEW_NAME_INPUT,
VIEW_SUGGESTIONS,
VIEW_SUGGESTIONS_EMPTY
VIEW_LANDING("Landing"),
VIEW_ADD_PHONE("Add Phone Number"),
VIEW_VERIFY_PHONE("Verify Phone Number"),
VIEW_NAME_INPUT("Name Input"),
VIEW_SUGGESTIONS("Suggestions Results"),
VIEW_SUGGESTIONS_EMPTY("Suggestions Results");
private final String trackingStep;
private Views(String str) {
this.trackingStep = str;
}
public final String getTrackingStep() {
return this.trackingStep;
}
}
public final /* synthetic */ class WhenMappings {
public static final /* synthetic */ int[] $EnumSwitchMapping$0;
public static final /* synthetic */ int[] $EnumSwitchMapping$1;
public static final /* synthetic */ int[] $EnumSwitchMapping$2;
public static final /* synthetic */ int[] $EnumSwitchMapping$3;
static {
ContactSyncMode.values();
@ -842,43 +851,28 @@ public final class WidgetContactSyncViewModel extends AppViewModel<ViewState> {
Views.values();
int[] iArr2 = new int[6];
$EnumSwitchMapping$1 = iArr2;
Views views = Views.VIEW_LANDING;
iArr2[views.ordinal()] = 1;
Views views2 = Views.VIEW_NAME_INPUT;
iArr2[views2.ordinal()] = 2;
Views views3 = Views.VIEW_SUGGESTIONS;
iArr2[views3.ordinal()] = 3;
Views views4 = Views.VIEW_SUGGESTIONS_EMPTY;
iArr2[views4.ordinal()] = 4;
Views views5 = Views.VIEW_ADD_PHONE;
iArr2[views5.ordinal()] = 5;
Views views6 = Views.VIEW_VERIFY_PHONE;
iArr2[views6.ordinal()] = 6;
Views.values();
int[] iArr3 = new int[6];
$EnumSwitchMapping$2 = iArr3;
iArr3[views.ordinal()] = 1;
iArr3[views2.ordinal()] = 2;
iArr3[views3.ordinal()] = 3;
iArr3[views4.ordinal()] = 4;
iArr3[views5.ordinal()] = 5;
iArr3[views6.ordinal()] = 6;
iArr2[Views.VIEW_LANDING.ordinal()] = 1;
iArr2[Views.VIEW_NAME_INPUT.ordinal()] = 2;
iArr2[Views.VIEW_SUGGESTIONS.ordinal()] = 3;
iArr2[Views.VIEW_SUGGESTIONS_EMPTY.ordinal()] = 4;
iArr2[Views.VIEW_ADD_PHONE.ordinal()] = 5;
iArr2[Views.VIEW_VERIFY_PHONE.ordinal()] = 6;
ContactSyncMode.values();
int[] iArr4 = new int[2];
$EnumSwitchMapping$3 = iArr4;
iArr4[contactSyncMode.ordinal()] = 1;
iArr4[contactSyncMode2.ordinal()] = 2;
int[] iArr3 = new int[2];
$EnumSwitchMapping$2 = iArr3;
iArr3[contactSyncMode.ordinal()] = 1;
iArr3[contactSyncMode2.ordinal()] = 2;
}
}
/* JADX WARNING: Illegal instructions before constructor call */
public WidgetContactSyncViewModel(ContactSyncMode contactSyncMode, boolean z2, boolean z3, RestAPI restAPI, Observable<StoreState> observable, ContactSyncAnalytics contactSyncAnalytics, boolean z4) {
public WidgetContactSyncViewModel(ContactSyncMode contactSyncMode, boolean z2, boolean z3, RestAPI restAPI, Observable<StoreState> observable, ContactSyncFlowAnalytics contactSyncFlowAnalytics, boolean z4) {
super(new ViewState(false, contactSyncMode, null, null, r10, "", null, false, false, r15, z2, z3, null, r19, r20, r5));
ToolbarConfig toolbarConfig;
m.checkNotNullParameter(contactSyncMode, "mode");
m.checkNotNullParameter(restAPI, "restAPI");
m.checkNotNullParameter(observable, "storeObservable");
m.checkNotNullParameter(contactSyncAnalytics, "tracker");
m.checkNotNullParameter(contactSyncFlowAnalytics, "tracker");
PhoneCountryCode default_country_code = PhoneCountryCode.Companion.getDEFAULT_COUNTRY_CODE();
Views views = Views.VIEW_LANDING;
List emptyList = n.emptyList();
@ -892,16 +886,16 @@ public final class WidgetContactSyncViewModel extends AppViewModel<ViewState> {
throw new NoWhenBranchMatchedException();
}
this.restAPI = restAPI;
this.tracker = contactSyncAnalytics;
this.tracker = contactSyncFlowAnalytics;
this.initialized = z4;
this.eventsSubject = PublishSubject.j0();
ObservableExtensionsKt.appSubscribe$default(ObservableExtensionsKt.ui$default(observable, this, null, 2, null), WidgetContactSyncViewModel.class, (Context) null, (Function1) null, (Function1) null, (Function0) null, (Function0) null, new AnonymousClass1(this), 62, (Object) null);
}
/* JADX WARNING: Illegal instructions before constructor call */
public /* synthetic */ WidgetContactSyncViewModel(ContactSyncMode contactSyncMode, boolean z2, boolean z3, RestAPI restAPI, Observable observable, ContactSyncAnalytics contactSyncAnalytics, boolean z4, int i, DefaultConstructorMarker defaultConstructorMarker) {
public /* synthetic */ WidgetContactSyncViewModel(ContactSyncMode contactSyncMode, boolean z2, boolean z3, RestAPI restAPI, Observable observable, ContactSyncFlowAnalytics contactSyncFlowAnalytics, boolean z4, int i, DefaultConstructorMarker defaultConstructorMarker) {
this(contactSyncMode, r0, r2, r3, r4, r5, (i & 64) == 0 ? z4 : r6);
ContactSyncAnalytics contactSyncAnalytics2;
ContactSyncFlowAnalytics contactSyncFlowAnalytics2;
boolean z5 = true;
boolean z6 = (i & 2) != 0 ? true : z2;
boolean z7 = (i & 4) != 0 ? true : z3;
@ -909,9 +903,9 @@ public final class WidgetContactSyncViewModel extends AppViewModel<ViewState> {
Observable<StoreState> observeStores = (i & 16) != 0 ? Companion.observeStores() : observable;
boolean z8 = false;
if ((i & 32) != 0) {
contactSyncAnalytics2 = new ContactSyncAnalytics(contactSyncMode != ContactSyncMode.ONBOARDING ? false : z5, ClockFactory.get());
contactSyncFlowAnalytics2 = new ContactSyncFlowAnalytics(contactSyncMode != ContactSyncMode.ONBOARDING ? false : z5, ClockFactory.get());
} else {
contactSyncAnalytics2 = contactSyncAnalytics;
contactSyncFlowAnalytics2 = contactSyncFlowAnalytics;
}
}
@ -1015,9 +1009,9 @@ public final class WidgetContactSyncViewModel extends AppViewModel<ViewState> {
return;
}
if (bulkFriendSuggestions.b().isEmpty()) {
ContactSyncAnalytics contactSyncAnalytics = this.tracker;
ContactSyncFlowAnalytics contactSyncFlowAnalytics = this.tracker;
Views views = Views.VIEW_SUGGESTIONS_EMPTY;
contactSyncAnalytics.trackFlowStep(viewToTrackingStep(views), false, false, g0.mapOf(d0.o.to("num_contacts_found", 0)));
contactSyncFlowAnalytics.trackFlowStep(views.getTrackingStep(), false, false, g0.mapOf(d0.o.to("num_contacts_found", 0)));
updateViewState(ViewState.copy$default(viewState, false, null, null, null, null, null, null, false, false, views, false, false, null, null, null, new ToolbarConfig(false, false), 32127, null));
return;
}
@ -1051,7 +1045,7 @@ public final class WidgetContactSyncViewModel extends AppViewModel<ViewState> {
if (!z2) {
}
}
this.tracker.trackFlowStep(viewToTrackingStep(Views.VIEW_SUGGESTIONS), false, false, g0.mapOf(d0.o.to("num_contacts_found", Integer.valueOf(arrayList.size()))));
this.tracker.trackFlowStep(Views.VIEW_SUGGESTIONS.getTrackingStep(), false, false, g0.mapOf(d0.o.to("num_contacts_found", Integer.valueOf(arrayList.size()))));
String a2 = bulkFriendSuggestions.a();
ArrayList arrayList2 = new ArrayList(d0.t.o.collectionSizeOrDefault(arrayList, 10));
for (FriendSuggestion friendSuggestion : arrayList) {
@ -1098,9 +1092,9 @@ public final class WidgetContactSyncViewModel extends AppViewModel<ViewState> {
private final void handlePhoneSubmitted() {
ViewState viewState = getViewState();
if (viewState != null) {
ContactSyncAnalytics contactSyncAnalytics = this.tracker;
ContactSyncFlowAnalytics contactSyncFlowAnalytics = this.tracker;
Views views = Views.VIEW_VERIFY_PHONE;
ContactSyncAnalytics.trackFlowStep$default(contactSyncAnalytics, viewToTrackingStep(views), false, false, null, 8, null);
ContactSyncFlowAnalytics.trackFlowStep$default(contactSyncFlowAnalytics, views.getTrackingStep(), false, false, null, 8, null);
updateViewState(ViewState.copy$default(viewState, false, null, null, null, null, null, null, false, false, views, false, false, null, null, null, null, 65023, null));
}
}
@ -1163,32 +1157,12 @@ public final class WidgetContactSyncViewModel extends AppViewModel<ViewState> {
}
}
private final String viewToTrackingStep(Views views) {
int ordinal = views.ordinal();
if (ordinal == 0) {
return "Landing";
}
if (ordinal == 1) {
return "Add Phone Number";
}
if (ordinal == 2) {
return "Verify Phone Number";
}
if (ordinal == 3) {
return "Name Input";
}
if (ordinal == 4 || ordinal == 5) {
return "Suggestions Results";
}
throw new NoWhenBranchMatchedException();
}
@MainThread
public final void dismissUpsell() {
StoreStream.Companion.getContactSync().dismissUpsell();
}
public final ContactSyncAnalytics getTracker() {
public final ContactSyncFlowAnalytics getTracker() {
return this.tracker;
}
@ -1251,9 +1225,9 @@ public final class WidgetContactSyncViewModel extends AppViewModel<ViewState> {
return;
}
if (viewState.getPhoneNumber() == null) {
ContactSyncAnalytics contactSyncAnalytics = this.tracker;
ContactSyncFlowAnalytics contactSyncFlowAnalytics = this.tracker;
Views views = Views.VIEW_ADD_PHONE;
ContactSyncAnalytics.trackFlowStep$default(contactSyncAnalytics, viewToTrackingStep(views), false, false, null, 8, null);
ContactSyncFlowAnalytics.trackFlowStep$default(contactSyncFlowAnalytics, views.getTrackingStep(), false, false, null, 8, null);
updateViewState(ViewState.copy$default(viewState, false, null, null, null, null, null, null, false, false, views, false, false, null, null, null, WidgetContactSyncViewModelKt.access$getTOOLBAR_CONFIG_DEFAULT$p(), 32255, null));
return;
}
@ -1307,7 +1281,7 @@ public final class WidgetContactSyncViewModel extends AppViewModel<ViewState> {
@MainThread
public final void onPermissionsDenied() {
this.tracker.trackFlowStep(viewToTrackingStep(Views.VIEW_LANDING), true, false, g0.mapOf(d0.o.to("mobile_contacts_permission", "denied")));
this.tracker.trackFlowStep(Views.VIEW_LANDING.getTrackingStep(), true, false, g0.mapOf(d0.o.to("mobile_contacts_permission", "denied")));
AnalyticsTracker.INSTANCE.permissionsAcked("contacts", false);
ViewState viewState = getViewState();
if (viewState != null) {
@ -1320,9 +1294,9 @@ public final class WidgetContactSyncViewModel extends AppViewModel<ViewState> {
ViewState viewState = getViewState();
if (viewState != null && viewState.getDisplayedChild() != Views.VIEW_SUGGESTIONS && viewState.getDisplayedChild() != Views.VIEW_SUGGESTIONS_EMPTY) {
AnalyticsTracker.INSTANCE.permissionsAcked("contacts", true);
ContactSyncAnalytics contactSyncAnalytics = this.tracker;
ContactSyncFlowAnalytics contactSyncFlowAnalytics = this.tracker;
Views views = Views.VIEW_NAME_INPUT;
ContactSyncAnalytics.trackFlowStep$default(contactSyncAnalytics, viewToTrackingStep(views), false, false, null, 8, null);
ContactSyncFlowAnalytics.trackFlowStep$default(contactSyncFlowAnalytics, views.getTrackingStep(), false, false, null, 8, null);
if (viewState.getName() != null) {
onNameSubmitted(viewState.getName());
} else {
@ -1354,7 +1328,7 @@ public final class WidgetContactSyncViewModel extends AppViewModel<ViewState> {
@MainThread
public final void requestingPermissions() {
ContactSyncAnalytics.trackFlowStep$default(this.tracker, "Contacts Permission Requested", false, false, null, 8, null);
ContactSyncFlowAnalytics.trackFlowStep$default(this.tracker, "Contacts Permission Requested", false, false, null, 8, null);
}
public final void skip() {
@ -1362,17 +1336,17 @@ public final class WidgetContactSyncViewModel extends AppViewModel<ViewState> {
if (viewState != null) {
int ordinal = viewState.getDisplayedChild().ordinal();
if (ordinal == 0) {
ContactSyncAnalytics.trackEnd$default(this.tracker, true, null, 2, null);
ContactSyncFlowAnalytics.trackEnd$default(this.tracker, true, null, 2, null);
handleComplete();
} else if (ordinal == 1) {
ContactSyncAnalytics contactSyncAnalytics = this.tracker;
ContactSyncFlowAnalytics contactSyncFlowAnalytics = this.tracker;
Views views = Views.VIEW_LANDING;
ContactSyncAnalytics.trackFlowStep$default(contactSyncAnalytics, viewToTrackingStep(views), false, true, null, 8, null);
ContactSyncFlowAnalytics.trackFlowStep$default(contactSyncFlowAnalytics, views.getTrackingStep(), false, true, null, 8, null);
updateViewState(ViewState.copy$default(viewState, false, null, null, null, null, null, null, false, false, views, false, false, null, null, null, getLandingToolbarConfig(viewState.getMode()), 32255, null));
} else if (ordinal == 2) {
ContactSyncAnalytics contactSyncAnalytics2 = this.tracker;
ContactSyncFlowAnalytics contactSyncFlowAnalytics2 = this.tracker;
Views views2 = Views.VIEW_ADD_PHONE;
ContactSyncAnalytics.trackFlowStep$default(contactSyncAnalytics2, viewToTrackingStep(views2), false, true, null, 8, null);
ContactSyncFlowAnalytics.trackFlowStep$default(contactSyncFlowAnalytics2, views2.getTrackingStep(), false, true, null, 8, null);
updateViewState(ViewState.copy$default(viewState, false, null, null, null, null, null, null, false, false, views2, false, false, null, null, null, null, 65023, null));
} else if (ordinal == 3) {
onNameSubmitted("");

View File

@ -39,7 +39,7 @@ public final class WidgetDirectoryChannel$onViewBound$5 extends o implements Fun
GuildMember member = companion.getGuilds().getMember(selectedGuildId, companion.getUsers().getMe().getId());
if (member != null && (guild = companion.getGuilds().getGuild(selectedGuildId)) != null && (context = this.this$0.getContext()) != null) {
m.checkNotNullExpressionValue(context, "context ?: return@appSubscribe");
if (selectedGuildId == j && guild.isHub()) {
if (this.this$0.isVisible() && selectedGuildId == j && guild.isHub()) {
String nick = member.getNick();
if ((nick == null || t.isBlank(nick)) && !companion.getDirectories().getAndSetSeenNamePrompt(selectedGuildId) && !GrowthTeamFeatures.INSTANCE.isHubNameKillSwitchEnabled()) {
j.d(context, WidgetHubAddName.class, new HubAddNameArgs(guild.getId()));

View File

@ -4,7 +4,7 @@ import android.view.View;
import c.d.b.a.a;
import com.discord.utilities.analytics.AnalyticsTracker;
import com.discord.utilities.analytics.Traits;
import com.discord.widgets.contact_sync.ContactSyncAnalytics;
import com.discord.widgets.contact_sync.ContactSyncFlowAnalytics;
import com.discord.widgets.contact_sync.WidgetContactSync;
import d0.o;
import d0.t.g0;
@ -15,7 +15,7 @@ public final class EmptyFriendsStateContactSyncView$updateView$1 implements View
@Override // android.view.View.OnClickListener
public final void onClick(View view) {
AnalyticsTracker.INSTANCE.openModal("Contact Sync", new Traits.Location("Friends List Empty State", null, null, null, null, 30, null));
ContactSyncAnalytics.Companion.trackStart$default(ContactSyncAnalytics.Companion, false, g0.mapOf(o.to("location_page", "Friends List Empty State")), 1, null);
ContactSyncFlowAnalytics.Companion.trackStart$default(ContactSyncFlowAnalytics.Companion, false, g0.mapOf(o.to("location_page", "Friends List Empty State")), 1, null);
WidgetContactSync.Companion.launch$default(WidgetContactSync.Companion, a.x(view, "it", "it.context"), null, false, false, false, 30, null);
}
}

View File

@ -9,7 +9,7 @@ import com.discord.utilities.analytics.Traits;
import com.discord.widgets.channels.WidgetGroupInviteFriends;
import com.discord.widgets.channels.invite.GroupInviteFriendsSheet;
import com.discord.widgets.channels.invite.GroupInviteFriendsSheetFeatureFlag;
import com.discord.widgets.contact_sync.ContactSyncAnalytics;
import com.discord.widgets.contact_sync.ContactSyncFlowAnalytics;
import com.discord.widgets.contact_sync.WidgetContactSync;
import com.discord.widgets.friends.WidgetFriendsAdd;
import d0.o;
@ -33,7 +33,7 @@ public final class WidgetFriendsList$configureToolbar$1<T1, T2> implements Actio
WidgetFriendsAdd.Companion.show$default(companion, context, null, "Friends", 2, null);
return;
case R.id.menu_friends_contact_sync /* 2131364198 */:
ContactSyncAnalytics.Companion.trackStart$default(ContactSyncAnalytics.Companion, false, g0.mapOf(o.to("location_page", "Friends List Icon")), 1, null);
ContactSyncFlowAnalytics.Companion.trackStart$default(ContactSyncFlowAnalytics.Companion, false, g0.mapOf(o.to("location_page", "Friends List Icon")), 1, null);
AnalyticsTracker.INSTANCE.openModal("Contact Sync", new Traits.Location("Friends List Icon", null, null, null, null, 30, null));
WidgetContactSync.Companion companion2 = WidgetContactSync.Companion;
m.checkNotNullExpressionValue(context, "context");

View File

@ -2,7 +2,7 @@ package com.discord.widgets.friends;
import com.discord.utilities.analytics.AnalyticsTracker;
import com.discord.utilities.analytics.Traits;
import com.discord.widgets.contact_sync.ContactSyncAnalytics;
import com.discord.widgets.contact_sync.ContactSyncFlowAnalytics;
import com.discord.widgets.contact_sync.WidgetContactSync;
import d0.t.g0;
import d0.z.d.o;
@ -21,7 +21,7 @@ public final class WidgetFriendsList$onViewBound$7 extends o implements Function
@Override // kotlin.jvm.functions.Function0
/* renamed from: invoke */
public final void mo1invoke() {
ContactSyncAnalytics.Companion.trackStart$default(ContactSyncAnalytics.Companion, false, g0.mapOf(d0.o.to("location_page", "Friends List Upsell")), 1, null);
ContactSyncFlowAnalytics.Companion.trackStart$default(ContactSyncFlowAnalytics.Companion, false, g0.mapOf(d0.o.to("location_page", "Friends List Upsell")), 1, null);
AnalyticsTracker.INSTANCE.openModal("Contact Sync", new Traits.Location("Friends List Upsell", null, null, null, null, 30, null));
WidgetContactSync.Companion.launch$default(WidgetContactSync.Companion, this.this$0.requireContext(), null, false, false, false, 30, null);
}

View File

@ -1,13 +1,37 @@
package com.discord.widgets.home;
import com.discord.models.guild.Guild;
import com.discord.stores.StoreNux;
import com.discord.stores.StoreStream;
import com.discord.utilities.features.GrowthTeamFeatures;
import j0.k.b;
import java.util.Collection;
import java.util.Iterator;
/* compiled from: WidgetHome.kt */
public final class WidgetHome$onViewBoundOrOnResume$8<T, R> implements b<StoreNux.NuxState, Boolean> {
public static final WidgetHome$onViewBoundOrOnResume$8 INSTANCE = new WidgetHome$onViewBoundOrOnResume$8();
public final Boolean call(StoreNux.NuxState nuxState) {
return Boolean.valueOf(GrowthTeamFeatures.INSTANCE.isHubEmailConnectionEnabled());
boolean z2;
Collection<Guild> values = StoreStream.Companion.getGuilds().getGuilds().values();
boolean z3 = false;
if (!(values instanceof Collection) || !values.isEmpty()) {
Iterator<T> it = values.iterator();
while (true) {
if (it.hasNext()) {
if (!(!it.next().isHub())) {
z2 = false;
break;
}
} else {
break;
}
}
}
z2 = true;
if (z2 && GrowthTeamFeatures.INSTANCE.isHubEmailConnectionEnabled()) {
z3 = true;
}
return Boolean.valueOf(z3);
}
}

View File

@ -651,7 +651,7 @@ public final class WidgetHome extends AppFragment implements OnTabSelectedListen
m.checkNotNullExpressionValue(x3, "StoreStream\n .get… .filter { it.firstOpen }");
ObservableExtensionsKt.appSubscribe$default(ObservableExtensionsKt.ui$default(ObservableExtensionsKt.takeSingleUntilTimeout$default(x3, 0, false, 1, null), this, null, 2, null), WidgetHome.class, (Context) null, (Function1) null, (Function1) null, (Function0) null, (Function0) null, new WidgetHome$onViewBoundOrOnResume$7(this), 62, (Object) null);
Observable<StoreNux.NuxState> x4 = companion.getNux().getNuxState().x(WidgetHome$onViewBoundOrOnResume$8.INSTANCE);
m.checkNotNullExpressionValue(x4, "StoreStream\n .get…mailConnectionEnabled() }");
m.checkNotNullExpressionValue(x4, "StoreStream\n .get…ectionEnabled()\n }");
ObservableExtensionsKt.appSubscribe$default(ObservableExtensionsKt.ui$default(ObservableExtensionsKt.takeSingleUntilTimeout$default(x4, 0, false, 1, null), this, null, 2, null), WidgetHome.class, (Context) null, (Function1) null, (Function1) null, (Function0) null, (Function0) null, new WidgetHome$onViewBoundOrOnResume$9(this), 62, (Object) null);
Observable x5 = StoreUser.observeMe$default(companion.getUsers(), false, 1, null).x(WidgetHome$onViewBoundOrOnResume$10.INSTANCE);
m.checkNotNullExpressionValue(x5, "StoreStream\n .get…hasUnreadUrgentMessages }");

View File

@ -76,7 +76,7 @@ public final class RoleIconView extends FrameLayout {
private final void showRoleIconToast(Context context, GuildRole guildRole) {
ModelEmojiUnicode modelEmojiUnicode;
EmojiNode emojiNode = hasIcon(guildRole) ? new EmojiNode(guildRole.g(), new RoleIconView$showRoleIconToast$1(guildRole), new EmojiNode.EmojiIdAndType.Unicode(""), DimenUtils.dpToPixels(24), DimenUtils.dpToPixels(24)) : (!hasUnicodeEmoji(guildRole) || (modelEmojiUnicode = StoreStream.Companion.getEmojis().getUnicodeEmojisNamesMap().get(guildRole.j())) == null) ? null : EmojiNode.Companion.from(modelEmojiUnicode, DimenUtils.dpToPixels(24));
EmojiNode emojiNode = hasIcon(guildRole) ? new EmojiNode(guildRole.g(), new RoleIconView$showRoleIconToast$1(guildRole), new EmojiNode.EmojiIdAndType.Unicode(""), DimenUtils.dpToPixels(24), DimenUtils.dpToPixels(24)) : (!hasUnicodeEmoji(guildRole) || (modelEmojiUnicode = StoreStream.Companion.getEmojis().getUnicodeEmojiSurrogateMap().get(guildRole.j())) == null) ? null : EmojiNode.Companion.from(modelEmojiUnicode, DimenUtils.dpToPixels(24));
if (emojiNode != null) {
RoleIconView$showRoleIconToast$renderContext$1 roleIconView$showRoleIconToast$renderContext$1 = new RoleIconView$showRoleIconToast$renderContext$1(context);
Set singleton = Collections.singleton(emojiNode);
@ -97,7 +97,7 @@ public final class RoleIconView extends FrameLayout {
m.checkNotNullExpressionValue(simpleDraweeView, "binding.roleIconIv");
IconUtils.setIcon$default(simpleDraweeView, guildRole, (int) R.dimen.role_icon_size, (MGImages.ChangeDetector) null, 8, (Object) null);
} else if (hasUnicodeEmoji(guildRole)) {
ModelEmojiUnicode modelEmojiUnicode = StoreStream.Companion.getEmojis().getUnicodeEmojisNamesMap().get(guildRole.j());
ModelEmojiUnicode modelEmojiUnicode = StoreStream.Companion.getEmojis().getUnicodeEmojiSurrogateMap().get(guildRole.j());
String imageUri = ModelEmojiUnicode.getImageUri(modelEmojiUnicode != null ? modelEmojiUnicode.getCodePoints() : null, getContext());
SimpleDraweeView simpleDraweeView2 = this.binding.b;
m.checkNotNullExpressionValue(simpleDraweeView2, "binding.roleIconIv");

View File

@ -314,7 +314,7 @@ public final class WidgetSettings extends AppFragment implements OnTabSelectedLi
TextView textView = binding.f;
m.checkNotNullExpressionValue(textView, "appInfoHeader");
String string = getString(R.string.app_information);
textView.setText(string + " - 95.1 - Alpha (95201)");
textView.setText(string + " - 95.2 - Alpha (95202)");
binding.A.setOnClickListener(new WidgetSettings$onViewBound$$inlined$with$lambda$3(this));
binding.u.setOnClickListener(WidgetSettings$onViewBound$1$5.INSTANCE);
binding.q.setOnClickListener(WidgetSettings$onViewBound$1$6.INSTANCE);

View File

@ -4,7 +4,7 @@ import android.view.View;
import com.discord.utilities.analytics.AnalyticsTracker;
import com.discord.utilities.analytics.Traits;
import com.discord.views.CheckedSetting;
import com.discord.widgets.contact_sync.ContactSyncAnalytics;
import com.discord.widgets.contact_sync.ContactSyncFlowAnalytics;
import com.discord.widgets.contact_sync.WidgetContactSync;
import com.discord.widgets.settings.WidgetSettingsPrivacy;
import d0.o;
@ -36,7 +36,7 @@ public final class WidgetSettingsPrivacy$configureContactSyncOptions$2 implement
WidgetSettingsPrivacy.access$toggleContactSync(this.this$0, this.$model.getContactSyncConnection(), z2);
} else if (z2) {
AnalyticsTracker.INSTANCE.openModal("Contact Sync", new Traits.Location(Traits.Location.Page.USER_SETTINGS, null, null, null, null, 30, null));
ContactSyncAnalytics.Companion.trackStart$default(ContactSyncAnalytics.Companion, false, g0.mapOf(o.to("location_page", Traits.Location.Page.USER_SETTINGS)), 1, null);
ContactSyncFlowAnalytics.Companion.trackStart$default(ContactSyncFlowAnalytics.Companion, false, g0.mapOf(o.to("location_page", Traits.Location.Page.USER_SETTINGS)), 1, null);
WidgetContactSync.Companion.launch$default(WidgetContactSync.Companion, this.this$0.requireContext(), null, false, false, false, 30, null);
}
}

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:background="?attr/colorBackgroundPrimary" android:layout_width="match_parent" android:layout_height="match_parent">
<TextView android:textSize="@dimen/uikit_textsize_xxlarge" android:textColor="?attr/colorHeaderPrimary" android:id="@+id/contact_sync_upsell_title" android:layout_marginTop="24dp" android:text="@string/contact_sync_landing_title" android:drawablePadding="16dp" android:fontFamily="?attr/font_primary_bold" android:textAlignment="center" app:drawableTopCompat="@drawable/img_contact_sync_landing_header" app:layout_constraintBottom_toTopOf="@+id/contact_sync_upsell_subtitle" app:layout_constraintEnd_toEndOf="0" app:layout_constraintStart_toStartOf="0" app:layout_constraintTop_toTopOf="0" app:layout_constraintVertical_chainStyle="2" style="@style/UiKit_TextView_H1"/>
<TextView android:gravity="center_horizontal" android:id="@+id/contact_sync_upsell_subtitle" android:paddingLeft="16dp" android:paddingRight="16dp" android:layout_marginTop="8dp" android:layout_marginBottom="24dp" android:text="@string/contact_sync_android_landing_screen_subtitle" android:lineSpacingMultiplier="1" app:layout_constraintBottom_toTopOf="@+id/contact_sync_upsell_cta" app:layout_constraintEnd_toEndOf="0" app:layout_constraintStart_toStartOf="0" app:layout_constraintTop_toBottomOf="@+id/contact_sync_upsell_title" style="@style/UiKit_TextView_Medium"/>
<TextView android:gravity="center_horizontal" android:id="@+id/contact_sync_upsell_subtitle" android:paddingLeft="16dp" android:paddingRight="16dp" android:layout_marginTop="8dp" android:layout_marginBottom="24dp" android:text="@string/contact_sync_subtitle" android:lineSpacingMultiplier="1" app:layout_constraintBottom_toTopOf="@+id/contact_sync_upsell_cta" app:layout_constraintEnd_toEndOf="0" app:layout_constraintStart_toStartOf="0" app:layout_constraintTop_toBottomOf="@+id/contact_sync_upsell_title" style="@style/UiKit_TextView_Medium"/>
<LinearLayout android:orientation="vertical" android:id="@+id/contact_sync_upsell_cta" android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_constraintBottom_toBottomOf="0">
<include android:id="@+id/contact_sync_upsell_toggle_info" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="16dp" layout="@layout/layout_contact_sync_toggle_info"/>
<com.google.android.material.button.MaterialButton android:id="@+id/contact_sync_upsell_next_button" android:layout_marginLeft="16dp" android:layout_marginRight="16dp" android:text="@string/get_started" android:layout_marginHorizontal="16dp" style="@style/UiKit_Material_Button"/>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" style="@style/UiKit_ViewGroup_Page">
<TextView android:textSize="@dimen/uikit_textsize_xxlarge" android:id="@+id/contact_sync_landing_title" android:text="@string/contact_sync_landing_title" android:drawablePadding="16dp" android:textAlignment="center" app:drawableTopCompat="@drawable/img_contact_sync_landing_header" app:layout_constraintBottom_toTopOf="@+id/contact_sync_landing_subtitle" app:layout_constraintEnd_toEndOf="0" app:layout_constraintStart_toStartOf="0" app:layout_constraintTop_toTopOf="0" app:layout_constraintVertical_chainStyle="2" style="@style/UiKit_TextView_H1_Bold"/>
<TextView android:gravity="center_horizontal" android:id="@+id/contact_sync_landing_subtitle" android:paddingLeft="16dp" android:paddingRight="16dp" android:layout_marginTop="8dp" android:text="@string/contact_sync_android_landing_screen_subtitle" android:lineSpacingMultiplier="1" app:layout_constraintBottom_toTopOf="@+id/contact_sync_landing_cta" app:layout_constraintEnd_toEndOf="0" app:layout_constraintStart_toStartOf="0" app:layout_constraintTop_toBottomOf="@+id/contact_sync_landing_title" style="@style/UiKit_TextView_Medium"/>
<TextView android:gravity="center_horizontal" android:id="@+id/contact_sync_landing_subtitle" android:paddingLeft="16dp" android:paddingRight="16dp" android:layout_marginTop="8dp" android:text="@string/contact_sync_subtitle" android:lineSpacingMultiplier="1" app:layout_constraintBottom_toTopOf="@+id/contact_sync_landing_cta" app:layout_constraintEnd_toEndOf="0" app:layout_constraintStart_toStartOf="0" app:layout_constraintTop_toBottomOf="@+id/contact_sync_landing_title" style="@style/UiKit_TextView_Medium"/>
<LinearLayout android:orientation="vertical" android:id="@+id/contact_sync_landing_cta" android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_constraintBottom_toTopOf="@+id/contact_sync_landing_toggle_info" app:layout_constraintEnd_toEndOf="0" app:layout_constraintStart_toStartOf="0">
<com.discord.views.LoadingButton android:id="@+id/contact_sync_landing_next_button" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="16dp" android:layout_marginRight="16dp" app:lb_disabled_alpha="0.6" app:lb_progress_color="@color/white" app:lb_text="@string/get_started"/>
<TextView android:textSize="@dimen/uikit_textsize_small" android:textColor="?attr/colorHeaderSecondary" android:id="@+id/contact_sync_landing_needs_permissions" android:paddingLeft="16dp" android:paddingTop="8dp" android:paddingRight="16dp" android:visibility="gone" android:text="@string/contact_sync_needs_permissions_android" android:lineSpacingMultiplier="1" android:paddingHorizontal="16dp" style="@style/UiKit_TextView"/>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:background="?attr/colorBackgroundPrimary" android:layout_width="match_parent" android:layout_height="match_parent">
<TextView android:textSize="@dimen/uikit_textsize_xxlarge" android:textColor="?attr/colorHeaderPrimary" android:id="@+id/contact_sync_upsell_title" android:layout_marginTop="24dp" android:text="@string/contact_sync_landing_title" android:drawablePadding="16dp" android:fontFamily="?attr/font_primary_bold" android:textAlignment="center" app:drawableTopCompat="@drawable/img_contact_sync_landing_header" app:layout_constraintBottom_toTopOf="@+id/contact_sync_upsell_subtitle" app:layout_constraintEnd_toEndOf="0" app:layout_constraintStart_toStartOf="0" app:layout_constraintTop_toTopOf="0" app:layout_constraintVertical_chainStyle="2" style="@style/UiKit_TextView_H1"/>
<TextView android:gravity="center_horizontal" android:id="@+id/contact_sync_upsell_subtitle" android:paddingLeft="16dp" android:paddingRight="16dp" android:layout_marginTop="8dp" android:layout_marginBottom="24dp" android:text="@string/contact_sync_android_landing_screen_subtitle" android:lineSpacingMultiplier="1" app:layout_constraintBottom_toTopOf="@+id/contact_sync_upsell_cta" app:layout_constraintEnd_toEndOf="0" app:layout_constraintStart_toStartOf="0" app:layout_constraintTop_toBottomOf="@+id/contact_sync_upsell_title" style="@style/UiKit_TextView_Medium"/>
<TextView android:gravity="center_horizontal" android:id="@+id/contact_sync_upsell_subtitle" android:paddingLeft="16dp" android:paddingRight="16dp" android:layout_marginTop="8dp" android:layout_marginBottom="24dp" android:text="@string/contact_sync_subtitle" android:lineSpacingMultiplier="1" app:layout_constraintBottom_toTopOf="@+id/contact_sync_upsell_cta" app:layout_constraintEnd_toEndOf="0" app:layout_constraintStart_toStartOf="0" app:layout_constraintTop_toBottomOf="@+id/contact_sync_upsell_title" style="@style/UiKit_TextView_Medium"/>
<LinearLayout android:orientation="vertical" android:id="@+id/contact_sync_upsell_cta" android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_constraintBottom_toBottomOf="0">
<include android:id="@+id/contact_sync_upsell_toggle_info" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="16dp" layout="@layout/layout_contact_sync_toggle_info"/>
<com.google.android.material.button.MaterialButton android:id="@+id/contact_sync_upsell_next_button" android:layout_marginLeft="16dp" android:layout_marginRight="16dp" android:text="@string/get_started" style="@style/UiKit_Material_Button"/>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" style="@style/UiKit_ViewGroup_Page">
<TextView android:textSize="@dimen/uikit_textsize_xxlarge" android:id="@+id/contact_sync_landing_title" android:text="@string/contact_sync_landing_title" android:drawablePadding="16dp" android:textAlignment="center" app:drawableTopCompat="@drawable/img_contact_sync_landing_header" app:layout_constraintBottom_toTopOf="@+id/contact_sync_landing_subtitle" app:layout_constraintEnd_toEndOf="0" app:layout_constraintStart_toStartOf="0" app:layout_constraintTop_toTopOf="0" app:layout_constraintVertical_chainStyle="2" style="@style/UiKit_TextView_H1_Bold"/>
<TextView android:gravity="center_horizontal" android:id="@+id/contact_sync_landing_subtitle" android:paddingLeft="16dp" android:paddingRight="16dp" android:layout_marginTop="8dp" android:text="@string/contact_sync_android_landing_screen_subtitle" android:lineSpacingMultiplier="1" app:layout_constraintBottom_toTopOf="@+id/contact_sync_landing_cta" app:layout_constraintEnd_toEndOf="0" app:layout_constraintStart_toStartOf="0" app:layout_constraintTop_toBottomOf="@+id/contact_sync_landing_title" style="@style/UiKit_TextView_Medium"/>
<TextView android:gravity="center_horizontal" android:id="@+id/contact_sync_landing_subtitle" android:paddingLeft="16dp" android:paddingRight="16dp" android:layout_marginTop="8dp" android:text="@string/contact_sync_subtitle" android:lineSpacingMultiplier="1" app:layout_constraintBottom_toTopOf="@+id/contact_sync_landing_cta" app:layout_constraintEnd_toEndOf="0" app:layout_constraintStart_toStartOf="0" app:layout_constraintTop_toBottomOf="@+id/contact_sync_landing_title" style="@style/UiKit_TextView_Medium"/>
<LinearLayout android:orientation="vertical" android:id="@+id/contact_sync_landing_cta" android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_constraintBottom_toTopOf="@+id/contact_sync_landing_toggle_info" app:layout_constraintEnd_toEndOf="0" app:layout_constraintStart_toStartOf="0">
<com.discord.views.LoadingButton android:id="@+id/contact_sync_landing_next_button" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="16dp" android:layout_marginRight="16dp" app:lb_disabled_alpha="0.6" app:lb_progress_color="@color/white" app:lb_text="@string/get_started"/>
<TextView android:textSize="@dimen/uikit_textsize_small" android:textColor="?attr/colorHeaderSecondary" android:id="@+id/contact_sync_landing_needs_permissions" android:paddingLeft="16dp" android:paddingTop="8dp" android:paddingRight="16dp" android:visibility="gone" android:text="@string/contact_sync_needs_permissions_android" android:lineSpacingMultiplier="1" style="@style/UiKit_TextView"/>

View File

@ -35,8 +35,8 @@
<string name="abc_toolbar_collapse_description">Collapse</string>
<string name="about_this_app">About this App</string>
<string name="accept">Accept</string>
<string name="accept_dm_header">Accept DM from {user}?</string>
<string name="accept_dm_subtext">They will only be notified if you Accept and reply.</string>
<string name="accept_dm_header">New direct message</string>
<string name="accept_dm_subtext">Accept to start chatting. They will only be notified if you message them back.</string>
<string name="accept_invite_modal_button">Accept Invite</string>
<string name="accept_request_button_after">Request Accepted</string>
<string name="accessibility">Accessibility</string>
@ -1397,6 +1397,7 @@
<string name="close">Close</string>
<string name="close_action_sheet">Close action sheet</string>
<string name="close_dm">Close DM</string>
<string name="close_dm_tooltip">Not interested? Ignore to close this DM.</string>
<string name="close_drawer">Close drawer</string>
<string name="close_stream">Close Stream</string>
<string name="close_window">Close Window</string>
@ -1552,7 +1553,6 @@
<string name="connection_status_voice_connected">Voice Connected</string>
<string name="connection_verified">Verified</string>
<string name="connections">Connections</string>
<string name="contact_sync_android_landing_screen_subtitle">Discord can connect you with your friends and help them find you.</string>
<string name="contact_sync_cta_button_subtitle">Add friends from your contacts automatically</string>
<string name="contact_sync_cta_button_title">Sync your contacts</string>
<string name="contact_sync_empty_friends_subtitle">Add friends from your contacts and let them know youre on Discord.</string>
@ -2227,6 +2227,7 @@
<string name="dnd_operation_label_move">Move</string>
<string name="dnd_operation_label_start">Start Drag and Drop</string>
<string name="done">Done</string>
<string name="dont_ask_again">Don\'t ask again</string>
<string name="dont_show_again">Don\'t show me this again.</string>
<string name="download">Download</string>
<string name="download_app">Download App</string>
@ -2361,6 +2362,7 @@
<string name="emoji_modifier_medium_skin_tone">Medium skin tone</string>
<string name="emoji_modifier_none">None</string>
<string name="emoji_names_with_favorited">!!{names}!!, favorited</string>
<string name="emoji_picker_create_emoji_title">Upload an emoji to this server</string>
<string name="emoji_picker_premium_upsell_body">Use these emoji and more by subscribing to Nitro.</string>
<string name="emoji_picker_premium_upsell_cta">Get Nitro</string>
<string name="emoji_popout_current_guild_description">This emoji is from this server. Get Nitro to use it everywhere.</string>
@ -3336,6 +3338,7 @@
<string name="guild_event_create_entity_type_error_empty_field">You must first choose an event location.</string>
<string name="guild_event_create_header">What\'s your event about?</string>
<string name="guild_event_create_irl_location_error_empty_field">A location is required.</string>
<string name="guild_event_create_start_time_error_event_started">You cannot edit the start time of an already active event.</string>
<string name="guild_event_create_topic_error_empty_field">An event topic is required.</string>
<string name="guild_event_create_topic_label">Event Topic</string>
<string name="guild_event_create_topic_placeholder">What\'s your event?</string>
@ -4100,6 +4103,9 @@
<string name="guild_settings_emoji_alias">Alias</string>
<string name="guild_settings_emoji_alias_placeholder">Enter Alias</string>
<string name="guild_settings_emoji_upload_to_server_message">Add up to {count} custom emoji that anyone can use in this server. Animated GIF emoji may be used by members with Discord Nitro. Emoji names must be at least 2 characters long and can only contain alphanumeric characters and underscores. Emoji must be under {maxSize}kb in size.</string>
<string name="guild_settings_emojis_upsell_banner_text">Boost your server to Level {level} to unlock more emoji slots!</string>
<string name="guild_settings_emojis_upsell_banner_too_many_emojis_header">Level {level} emojis lost</string>
<string name="guild_settings_emojis_upsell_banner_too_many_emojis_text">Boost your server to Level {level} or buy a level to unlock your emojis!</string>
<string name="guild_settings_enable_discoverable">Enable Discovery</string>
<string name="guild_settings_example_tooltip">Here\'s an example!</string>
<string name="guild_settings_filter_action">Filter by Action</string>
@ -5870,8 +5876,8 @@
<string name="move_members_description">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.</string>
<string name="move_to">Move To</string>
<string name="move_to_success">User has been moved to the selected channel.</string>
<string name="res_2131891969_msg_alert_cleared">Alert Cleared</string>
<string name="res_2131891970_msg_no_alert_showing">No Alert Showing</string>
<string name="res_2131891976_msg_alert_cleared">Alert Cleared</string>
<string name="res_2131891977_msg_no_alert_showing">No Alert Showing</string>
<string name="mtrl_badge_numberless_content_description">New notification</string>
<string name="mtrl_chip_close_icon_content_description">Remove %1$s</string>
<string name="mtrl_exceed_max_badge_number_content_description">More than %1$d new notifications</string>
@ -7438,6 +7444,7 @@
<string name="reply_quote_sticker_mobile">Tap to see sticker</string>
<string name="replying_to">Replying to $[](userHook)</string>
<string name="report">Report</string>
<string name="report_dm_tooltip">Report spam or abuse and close this DM.</string>
<string name="report_message">Report Message Posted by !!{name}!!</string>
<string name="report_message_menu_option">Report Message</string>
<string name="report_modal_block_user">Block user</string>
@ -8011,7 +8018,7 @@
<string name="search_with_google">Search with Google</string>
<string name="searching">Searching…</string>
<string name="security">Security</string>
<string name="see_detail">See Details</string>
<string name="see_detail">Event Details</string>
<string name="see_thread">See Thread </string>
<string name="see_thread_mobile"></string>
<string name="select">Select</string>
@ -9710,6 +9717,8 @@
<string name="voice_call_action_a11y_hint">Open voice call actions</string>
<string name="voice_call_member_list_title">{count}</string>
<string name="voice_channel">Voice Channel</string>
<string name="voice_channel_change_confirmation_body">Looks like you\'re in another voice channel. Are you sure you want to switch to **!!{channel}!!**?</string>
<string name="voice_channel_change_confirmation_header">You sure?</string>
<string name="voice_channel_deafened">Deafened</string>
<string name="voice_channel_desc">Connect to live audio for group conversations</string>
<string name="voice_channel_empty">Feelin\' lonely? Add friends to this voice channel by creating an invite link.</string>

View File

@ -1478,7 +1478,6 @@
<string name="connection_status_voice_connected">Свързано гласово устройство</string>
<string name="connection_verified">Потвърдено</string>
<string name="connections">Връзки</string>
<string name="contact_sync_android_landing_screen_subtitle">Discord може да те свърже с приятелите ти и да им помогне да те намерят.</string>
<string name="contact_sync_cta_button_subtitle">Добави приятели от контактите си автоматично</string>
<string name="contact_sync_cta_button_title">Синхронизиране на контактите ти</string>
<string name="contact_sync_empty_friends_subtitle">Добави приятели от контактите си и им съобщи, че си в Discord.</string>
@ -3174,7 +3173,6 @@
<string name="guild_event_location_title">Къде е събитието ти?</string>
<string name="guild_event_location_voice_field_label">Избери канал</string>
<string name="guild_event_location_voice_field_placeholder">Избери гласов канал</string>
<string name="guild_event_modal_empty_subtitle">Създай събития, за да има повод сървърът ти да се събере.</string>
<string name="guild_event_modal_empty_title">Няма предстоящи събития.</string>
<string name="guild_event_modal_progress_bar_step_1">Място</string>
<string name="guild_event_modal_progress_bar_step_2">Инфо за събитието</string>
@ -4194,7 +4192,6 @@
<string name="hub_create_or_add_guild_title">Помогни на ученическия хъб за !!{guildName}!! да се разрасне</string>
<string name="hub_create_server_confirmation_go">Към сървъра</string>
<string name="hub_create_server_confirmation_stay">Назад към хъба</string>
<string name="hub_create_server_confirmation_subtitle">Твоят сървър е създаден и добавен към !!{guildName}!!! Ученически хъб</string>
<string name="hub_create_title">Персонализирай своя сървър</string>
<string name="hub_customize_existing_guild_title">Помогни на други ученици да намерят !!{guildName}!!</string>
<string name="hub_customize_guild_subtitle">Дай на сървъра си описание и категория, за да могат хората по-лесно да го намират.</string>

View File

@ -1478,7 +1478,6 @@
<string name="connection_status_voice_connected">Hlas připojen</string>
<string name="connection_verified">Ověřeno</string>
<string name="connections">Propojení</string>
<string name="contact_sync_android_landing_screen_subtitle">Discord ti může pomoct najít tvé přátele a spojit se s nimi.</string>
<string name="contact_sync_cta_button_subtitle">Automaticky přidávat přátele z tvých kontaktů</string>
<string name="contact_sync_cta_button_title">Synchronizovat kontakty</string>
<string name="contact_sync_empty_friends_subtitle">Přidej si přátele ze svých kontaktů a dej jim vědět, že jsi na Discordu.</string>
@ -3179,7 +3178,6 @@
<string name="guild_event_location_title">Kde tvoje událost probíhá?</string>
<string name="guild_event_location_voice_field_label">Vybrat kanál</string>
<string name="guild_event_location_voice_field_placeholder">Vyber hlasový kanál</string>
<string name="guild_event_modal_empty_subtitle">Vytvoř pro svůj server události, kde se budete moci všichni setkat.</string>
<string name="guild_event_modal_empty_title">Nejsou naplánované žádné události.</string>
<string name="guild_event_modal_progress_bar_step_1">Umístění</string>
<string name="guild_event_modal_progress_bar_step_2">Informace o události</string>
@ -4197,7 +4195,6 @@
<string name="hub_create_or_add_guild_title">Pomáhej budovat studentské centrum !!{guildName}!!</string>
<string name="hub_create_server_confirmation_go">Přejít na server</string>
<string name="hub_create_server_confirmation_stay">Zpět do centra</string>
<string name="hub_create_server_confirmation_subtitle">Tvůj server je na světě a stal se součástí studentského centra !!{guildName}!!!</string>
<string name="hub_create_title">Server dle tvého gusta</string>
<string name="hub_customize_existing_guild_title">Pomoz dalším studentům najít !!{guildName}!!</string>
<string name="hub_customize_guild_subtitle">Přidej svému serveru popis a kategorii, aby ho lidé mohli lépe najít.</string>

View File

@ -1483,7 +1483,6 @@
<string name="connection_status_voice_connected">Stemmetilsluttet</string>
<string name="connection_verified">Bekræftet</string>
<string name="connections">Forbindelser</string>
<string name="contact_sync_android_landing_screen_subtitle">Discord kan forbinde dig med dine venner og hjælpe dem med at finde dig.</string>
<string name="contact_sync_cta_button_subtitle">Tilføj automatisk venner fra dine kontakter</string>
<string name="contact_sync_cta_button_title">Synkroniser dine kontakter</string>
<string name="contact_sync_empty_friends_subtitle">Tilføj venner fra dine kontakter, og fortæl dem, at du er på Discord.</string>
@ -3179,7 +3178,6 @@
<string name="guild_event_location_title">Hvor er dit event?</string>
<string name="guild_event_location_voice_field_label">Vælg en kanal</string>
<string name="guild_event_location_voice_field_placeholder">Vælg en talekanal</string>
<string name="guild_event_modal_empty_subtitle">Opret nogle events til din server, så I kan mødes.</string>
<string name="guild_event_modal_empty_title">Der er ingen fremtidige events.</string>
<string name="guild_event_modal_progress_bar_step_1">Sted</string>
<string name="guild_event_modal_progress_bar_step_2">Event-oplysninger</string>
@ -4197,7 +4195,6 @@
<string name="hub_create_or_add_guild_title">Hjælp med at udvikle Elevhubben for !!{guildName}!!</string>
<string name="hub_create_server_confirmation_go">Gå til serveren</string>
<string name="hub_create_server_confirmation_stay">Tilbage til hub</string>
<string name="hub_create_server_confirmation_subtitle">Din server er blevet oprettet og tilføjet til Elevhubben for !!{guildName}!!! Elevhub</string>
<string name="hub_create_title">Tilpas din server</string>
<string name="hub_customize_existing_guild_title">Hjælp andre studerende med at finde !!{guildName}!!</string>
<string name="hub_customize_guild_subtitle">Tilføj en beskrivelse og en kategori til din server, så folk lettere kan finde den.</string>

View File

@ -1487,7 +1487,6 @@
<string name="connection_status_voice_connected">Sprachchat verbunden</string>
<string name="connection_verified">Verifiziert</string>
<string name="connections">Verknüpfungen</string>
<string name="contact_sync_android_landing_screen_subtitle">Discord kann dich mit deinen Freunden verbinden und dir helfen, sie zu finden.</string>
<string name="contact_sync_cta_button_subtitle">Füge Freunde aus deinen Kontakten automatisch hinzu</string>
<string name="contact_sync_cta_button_title">Synchronisiere deine Kontakte</string>
<string name="contact_sync_empty_friends_subtitle">Füge Freunde aus deinen Kontakten hinzu, damit sie wissen, dass du bei Discord bist.</string>
@ -3188,7 +3187,6 @@
<string name="guild_event_location_title">Wo ist dein Event?</string>
<string name="guild_event_location_voice_field_label">Kanal auswählen</string>
<string name="guild_event_location_voice_field_placeholder">Wähle einen Sprachkanal</string>
<string name="guild_event_modal_empty_subtitle">Erstelle Events, an denen alle Servermitglieder teilnehmen können.</string>
<string name="guild_event_modal_empty_title">Es stehen keine Events an.</string>
<string name="guild_event_modal_progress_bar_step_1">Verzeichnis</string>
<string name="guild_event_modal_progress_bar_step_2">Eventinformationen</string>
@ -4206,7 +4204,6 @@
<string name="hub_create_or_add_guild_title">Hilf dem Bildungshub für !!{guildName}!! zu wachsen</string>
<string name="hub_create_server_confirmation_go">Zum Server</string>
<string name="hub_create_server_confirmation_stay">Zurück zum Hub</string>
<string name="hub_create_server_confirmation_subtitle">Dein Server wurde erstellt und zum Bildungshub für !!{guildName}!! hinzugefügt!</string>
<string name="hub_create_title">Passe deinen Server an</string>
<string name="hub_customize_existing_guild_title">Hilf anderen dabei, !!{guildName}!! zu finden!</string>
<string name="hub_customize_guild_subtitle">Füge deinem Server eine Beschreibung und Kategorie hinzu, damit andere ihn finden können.</string>

View File

@ -1478,7 +1478,6 @@
<string name="connection_status_voice_connected">Η φωνή συνδέθηκε</string>
<string name="connection_verified">Επαληθευμένο</string>
<string name="connections">Συνδέσεις</string>
<string name="contact_sync_android_landing_screen_subtitle">Το Discord μπορεί να σε συνδέσει με τους φίλους σου και να τους βοηθήσει να σε βρουν.</string>
<string name="contact_sync_cta_button_subtitle">Πρόσθεσε αυτόματα φίλους από τις επαφές σου</string>
<string name="contact_sync_cta_button_title">Συγχρόνισε τις επαφές σου</string>
<string name="contact_sync_empty_friends_subtitle">Πρόσθεσε φίλους από τις επαφές σου και ενημέρωσέ τους ότι είσαι στο Discord.</string>
@ -3174,7 +3173,6 @@
<string name="guild_event_location_title">Πού βρίσκεται η εκδήλωσή σου;</string>
<string name="guild_event_location_voice_field_label">Επέλεξε ένα κανάλι</string>
<string name="guild_event_location_voice_field_placeholder">Επιλέξτε ένα κανάλι ομιλίας</string>
<string name="guild_event_modal_empty_subtitle">Δημιούργησε εκδηλώσεις για να φέρεις πιο κοντά τον διακομιστή σου.</string>
<string name="guild_event_modal_empty_title">Δεν υπάρχουν προσεχείς εκδηλώσεις.</string>
<string name="guild_event_modal_progress_bar_step_1">Τοποθεσία</string>
<string name="guild_event_modal_progress_bar_step_2">Πληροφορίες εκδήλωσης</string>
@ -4192,7 +4190,6 @@
<string name="hub_create_or_add_guild_title">Βοήθησε το Φοιτητικό Hub του !!{guildName}!! να μεγαλώσει</string>
<string name="hub_create_server_confirmation_go">Μετάβαση στον διακομιστή</string>
<string name="hub_create_server_confirmation_stay">Πίσω στο Hub</string>
<string name="hub_create_server_confirmation_subtitle">Ο διακομιστής σου δημιουργήθηκε και προστέθηκε στο Φοιτητικό Hub του !!{guildName}!!</string>
<string name="hub_create_title">Προσάρμοσε τον διακομιστή σου</string>
<string name="hub_customize_existing_guild_title">Βοήθησε άλλους φοιτητές να βρουν το !!{guildName}!!</string>
<string name="hub_customize_guild_subtitle">Δώσε στον διακομιστή σου περιγραφή και κατηγορία για να βοηθήσεις τους άλλους να τον βρουν.</string>

View File

@ -35,8 +35,8 @@
<string name="abc_toolbar_collapse_description">[Çöļļåþšé one two]</string>
<string name="about_this_app">[Åɓöûţ ţĥîš Åþþ one two three]</string>
<string name="accept">[Åççéþţ one two]</string>
<string name="accept_dm_header">[Åççéþţ ÐḾ ƒŕöḿ »{user}«¿ one two three]</string>
<string name="accept_dm_subtext">[Ţĥéý ŵîļļ öñļý ɓé ñöţîƒîéð îƒ ýöû Åççéþţ åñð ŕéþļý. one two three four five six]</string>
<string name="accept_dm_header">[Ñéŵ ðîŕéçţ ḿéššåĝé one two three]</string>
<string name="accept_dm_subtext">[Åççéþţ ţö šţåŕţ çĥåţţîñĝ. Ţĥéý ŵîļļ öñļý ɓé ñöţîƒîéð îƒ ýöû ḿéššåĝé ţĥéḿ ɓåçķ. one two three four five six seven eight nine]</string>
<string name="accept_invite_modal_button">[Åççéþţ ÎñVîţé one two]</string>
<string name="accept_request_button_after">[ŔéQûéšţ Åççéþţéð one two three]</string>
<string name="accessibility">[Åççéššîɓîļîţý one two]</string>
@ -1397,6 +1397,7 @@
<string name="close">[Çļöšé one]</string>
<string name="close_action_sheet">[Çļöšé åçţîöñ šĥééţ one two three]</string>
<string name="close_dm">[Çļöšé ÐḾ one two]</string>
<string name="close_dm_tooltip">[Ñöţ îñţéŕéšţéð¿ Îĝñöŕé ţö çļöšé ţĥîš ÐḾ. one two three four five]</string>
<string name="close_drawer">[Çļöšé ðŕåŵéŕ one two]</string>
<string name="close_stream">[Çļöšé Šţŕéåḿ one two]</string>
<string name="close_window">[Çļöšé Ŵîñðöŵ one two]</string>
@ -1552,7 +1553,6 @@
<string name="connection_status_voice_connected">[νöîçé Çöññéçţéð one two three]</string>
<string name="connection_verified">[νéŕîƒîéð one two]</string>
<string name="connections">[Çöññéçţîöñš one two]</string>
<string name="contact_sync_android_landing_screen_subtitle">[Ðîšçöŕð çåñ çöññéçţ ýöû ŵîţĥ ýöûŕ ƒŕîéñðš åñð ĥéļþ ţĥéḿ ƒîñð ýöû. one two three four five six seven]</string>
<string name="contact_sync_cta_button_subtitle">[Åðð ƒŕîéñðš ƒŕöḿ ýöûŕ çöñţåçţš åûţöḿåţîçåļļý one two three four five]</string>
<string name="contact_sync_cta_button_title">[Šýñç ýöûŕ çöñţåçţš one two three]</string>
<string name="contact_sync_empty_friends_subtitle">[Åðð ƒŕîéñðš ƒŕöḿ ýöûŕ çöñţåçţš åñð ļéţ ţĥéḿ ķñöŵ ýöû’ŕé öñ Ðîšçöŕð. one two three four five six seven eight]</string>
@ -2227,6 +2227,7 @@
<string name="dnd_operation_label_move">[ḾöVé one]</string>
<string name="dnd_operation_label_start">[Šţåŕţ Ðŕåĝ åñð Ðŕöþ one two three]</string>
<string name="done">[Ðöñé one]</string>
<string name="dont_ask_again">[Ðöñ\'ţ åšķ åĝåîñ one two three]</string>
<string name="dont_show_again">[Ðöñ\'ţ šĥöŵ ḿé ţĥîš åĝåîñ. one two three]</string>
<string name="download">[Ðöŵñļöåð one two]</string>
<string name="download_app">[Ðöŵñļöåð Åþþ one two]</string>
@ -2361,6 +2362,7 @@
<string name="emoji_modifier_medium_skin_tone">[Ḿéðîûḿ šķîñ ţöñé one two three]</string>
<string name="emoji_modifier_none">[Ñöñé one]</string>
<string name="emoji_names_with_favorited">[¡¡»{names}«¡¡, ƒåVöŕîţéð one two three]</string>
<string name="emoji_picker_create_emoji_title">[Ûþļöåð åñ éḿöĵî ţö ţĥîš šéŕVéŕ one two three four]</string>
<string name="emoji_picker_premium_upsell_body">[Ûšé ţĥéšé éḿöĵî åñð ḿöŕé ɓý šûɓšçŕîɓîñĝ ţö Ñîţŕö. one two three four five six]</string>
<string name="emoji_picker_premium_upsell_cta">[Ĝéţ Ñîţŕö one two]</string>
<string name="emoji_popout_current_guild_description">[Ţĥîš éḿöĵî îš ƒŕöḿ ţĥîš šéŕVéŕ. Ĝéţ Ñîţŕö ţö ûšé îţ éVéŕýŵĥéŕé. one two three four five six seven]</string>
@ -3336,6 +3338,7 @@
<string name="guild_event_create_entity_type_error_empty_field">[Ýöû ḿûšţ ƒîŕšţ çĥööšé åñ éVéñţ ļöçåţîöñ. one two three four five]</string>
<string name="guild_event_create_header">[Ŵĥåţ\'š ýöûŕ éVéñţ åɓöûţ¿ one two three]</string>
<string name="guild_event_create_irl_location_error_empty_field">[Å ļöçåţîöñ îš ŕéQûîŕéð. one two three]</string>
<string name="guild_event_create_start_time_error_event_started">[Ýöû çåññöţ éðîţ ţĥé šţåŕţ ţîḿé öƒ åñ åļŕéåðý åçţîVé éVéñţ. one two three four five six seven]</string>
<string name="guild_event_create_topic_error_empty_field">[Åñ éVéñţ ţöþîç îš ŕéQûîŕéð. one two three four]</string>
<string name="guild_event_create_topic_label">[ÉVéñţ Ţöþîç one two]</string>
<string name="guild_event_create_topic_placeholder">[Ŵĥåţ\'š ýöûŕ éVéñţ¿ one two three]</string>
@ -4100,6 +4103,9 @@
<string name="guild_settings_emoji_alias">[Åļîåš one]</string>
<string name="guild_settings_emoji_alias_placeholder">[Éñţéŕ Åļîåš one two]</string>
<string name="guild_settings_emoji_upload_to_server_message">[Åðð ûþ ţö »{count}« çûšţöḿ éḿöĵî ţĥåţ åñýöñé çåñ ûšé îñ ţĥîš šéŕVéŕ. Åñîḿåţéð ĜÎF éḿöĵî ḿåý ɓé ûšéð ɓý ḿéḿɓéŕš ŵîţĥ Ðîšçöŕð Ñîţŕö. Éḿöĵî ñåḿéš ḿûšţ ɓé åţ ļéåšţ 2 çĥåŕåçţéŕš ļöñĝ åñð çåñ öñļý çöñţåîñ åļþĥåñûḿéŕîç çĥåŕåçţéŕš åñð ûñðéŕšçöŕéš. Éḿöĵî ḿûšţ ɓé ûñðéŕ »{maxSize}«ķɓ îñ šîžé. one two three four five six seven eight nine ten eleven twelve thirteen fourteen fiveteen sixteen seventeen nineteen twenty one two three four five six seven eight nine ten eleven twelve thirteen fourteen fiveteen sixteen seventeen nineteen twenty one two three four]</string>
<string name="guild_settings_emojis_upsell_banner_text">[βööšţ ýöûŕ šéŕVéŕ ţö ĻéVéļ »{level}« ţö ûñļöçķ ḿöŕé éḿöĵî šļöţš¡ one two three four five six seven]</string>
<string name="guild_settings_emojis_upsell_banner_too_many_emojis_header">[ĻéVéļ »{level}« éḿöĵîš ļöšţ one two three]</string>
<string name="guild_settings_emojis_upsell_banner_too_many_emojis_text">[βööšţ ýöûŕ šéŕVéŕ ţö ĻéVéļ »{level}« öŕ ɓûý å ļéVéļ ţö ûñļöçķ ýöûŕ éḿöĵîš¡ one two three four five six seven]</string>
<string name="guild_settings_enable_discoverable">[Éñåɓļé ÐîšçöVéŕý one two three]</string>
<string name="guild_settings_example_tooltip">[Ĥéŕé\'š åñ éхåḿþļé¡ one two three]</string>
<string name="guild_settings_filter_action">[Fîļţéŕ ɓý Åçţîöñ one two three]</string>
@ -5870,8 +5876,8 @@
<string name="move_members_description">[Ḿéḿɓéŕš ŵîţĥ ţĥîš þéŕḿîššîöñ çåñ ðŕåĝ öţĥéŕ ḿéḿɓéŕš öûţ öƒ ţĥîš çĥåññéļ. Ţĥéý çåñ öñļý ḿöVé ḿéḿɓéŕš ɓéţŵééñ çĥåññéļš ɓöţĥ ţĥéý åñð ţĥé ḿéḿɓéŕ ţĥéý åŕé ḿöVîñĝ ĥåVé åççéšš. one two three four five six seven eight nine ten eleven twelve thirteen fourteen fiveteen]</string>
<string name="move_to">[ḾöVé Ţö one two]</string>
<string name="move_to_success">[Ûšéŕ ĥåš ɓééñ ḿöVéð ţö ţĥé šéļéçţéð çĥåññéļ. one two three four five]</string>
<string name="res_2131891969_msg_alert_cleared">[Åļéŕţ Çļéåŕéð one two]</string>
<string name="res_2131891970_msg_no_alert_showing">[Ñö Åļéŕţ Šĥöŵîñĝ one two three]</string>
<string name="res_2131891976_msg_alert_cleared">[Åļéŕţ Çļéåŕéð one two]</string>
<string name="res_2131891977_msg_no_alert_showing">[Ñö Åļéŕţ Šĥöŵîñĝ one two three]</string>
<string name="mtrl_badge_numberless_content_description">[Ñéŵ ñöţîƒîçåţîöñ one two three]</string>
<string name="mtrl_chip_close_icon_content_description">[ŔéḿöVé »%1$s« one two]</string>
<string name="mtrl_exceed_max_badge_number_content_description">[Ḿöŕé ţĥåñ %1$d ñéŵ ñöţîƒîçåţîöñš one two three four]</string>
@ -7438,6 +7444,7 @@
<string name="reply_quote_sticker_mobile">[Ţåþ ţö šéé šţîçķéŕ one two three]</string>
<string name="replying_to">[Ŕéþļýîñĝ ţö €[](ûšéŕĤööķ) one two three]</string>
<string name="report">[Ŕéþöŕţ one two]</string>
<string name="report_dm_tooltip">[Ŕéþöŕţ šþåḿ öŕ åɓûšé åñð çļöšé ţĥîš ÐḾ. one two three four five]</string>
<string name="report_message">[Ŕéþöŕţ Ḿéššåĝé Þöšţéð ɓý ¡¡»{name}«¡¡ one two three four]</string>
<string name="report_message_menu_option">[Ŕéþöŕţ Ḿéššåĝé one two three]</string>
<string name="report_modal_block_user">[βļöçķ ûšéŕ one two]</string>
@ -8011,7 +8018,7 @@
<string name="search_with_google">[Šéåŕçĥ ŵîţĥ Ĝööĝļé one two three]</string>
<string name="searching">[Šéåŕçĥîñĝ… one two]</string>
<string name="security">[Šéçûŕîţý one two]</string>
<string name="see_detail">[Šéé Ðéţåîļš one two]</string>
<string name="see_detail">[ÉVéñţ Ðéţåîļš one two]</string>
<string name="see_thread">[Šéé Ţĥŕéåð one two]</string>
<string name="see_thread_mobile">[ one]</string>
<string name="select">[Šéļéçţ one two]</string>
@ -9710,6 +9717,8 @@
<string name="voice_call_action_a11y_hint">[Öþéñ Vöîçé çåļļ åçţîöñš one two three]</string>
<string name="voice_call_member_list_title">[»{count}«]</string>
<string name="voice_channel">[νöîçé Çĥåññéļ one two]</string>
<string name="voice_channel_change_confirmation_body">[Ļööķš ļîķé ýöû\'ŕé îñ åñöţĥéŕ Vöîçé çĥåññéļ. Åŕé ýöû šûŕé ýöû ŵåñţ ţö šŵîţçĥ ţö **¡¡»{channel}«¡¡**¿ one two three four five six seven eight nine ten eleven twelve thirteen fourteen fiveteen]</string>
<string name="voice_channel_change_confirmation_header">[Ýöû šûŕé¿ one two]</string>
<string name="voice_channel_deafened">[Ðéåƒéñéð one two]</string>
<string name="voice_channel_desc">[Çöññéçţ ţö ļîVé åûðîö ƒöŕ ĝŕöûþ çöñVéŕšåţîöñš one two three four five]</string>
<string name="voice_channel_empty">[Fééļîñ\' ļöñéļý¿ Åðð ƒŕîéñðš ţö ţĥîš Vöîçé çĥåññéļ ɓý çŕéåţîñĝ åñ îñVîţé ļîñķ. one two three four five six seven eight]</string>

View File

@ -1439,7 +1439,6 @@
<string name="connection_status_voice_connected">Voz conectada</string>
<string name="connection_verified">Verificado</string>
<string name="connections">Conexiones</string>
<string name="contact_sync_android_landing_screen_subtitle">Discord puede conectar con tus amigos y ayudarte a encontrarlos.</string>
<string name="contact_sync_cta_button_subtitle">Añade amigos de tus contactos de forma automática</string>
<string name="contact_sync_cta_button_title">Sincroniza tus contactos</string>
<string name="contact_sync_empty_friends_subtitle">Añade amigos de tus contactos y avísalos de que estás en Discord.</string>
@ -3078,7 +3077,6 @@
<string name="guild_event_location_title">¿Dónde es tu evento?</string>
<string name="guild_event_location_voice_field_label">Selecciona un canal</string>
<string name="guild_event_location_voice_field_placeholder">Seleccionar un canal de voz</string>
<string name="guild_event_modal_empty_subtitle">Crea eventos para reunir a tu servidor.</string>
<string name="guild_event_modal_empty_title">No hay eventos próximamente.</string>
<string name="guild_event_modal_progress_bar_step_1">Ubicación</string>
<string name="guild_event_modal_progress_bar_step_2">Información del evento</string>
@ -4096,7 +4094,6 @@
<string name="hub_create_or_add_guild_title">Ayuda a que crezca el Centro de Estudiantes de !!{guildName}!!</string>
<string name="hub_create_server_confirmation_go">Ir al servidor</string>
<string name="hub_create_server_confirmation_stay">Volver al Centro</string>
<string name="hub_create_server_confirmation_subtitle">¡Tu servidor se ha creado y añadido al Centro de Estudiantes de !!{guildName}!!!</string>
<string name="hub_create_title">Personaliza tu servidor</string>
<string name="hub_customize_existing_guild_title">Ayuda a otros estudiantes a encontrar !!{guildName}!!</string>
<string name="hub_customize_guild_subtitle">Añade una descripción y una categoría a tu servidor para que la gente pueda encontrarlo con más facilidad.</string>

View File

@ -1478,7 +1478,6 @@
<string name="connection_status_voice_connected">Äänet yhdistetty</string>
<string name="connection_verified">Vahvistettu</string>
<string name="connections">Yhteydet</string>
<string name="contact_sync_android_landing_screen_subtitle">Discord voi yhdistää sinut kavereihisi ja auttaa kavereitasi löytämään sinut.</string>
<string name="contact_sync_cta_button_subtitle">Lisää yhteystietosi kavereiksi automaattisesti</string>
<string name="contact_sync_cta_button_title">Synkronoi yhteystietosi</string>
<string name="contact_sync_empty_friends_subtitle">Lisää yhteystiedoissasi olevat henkilöt kavereiksesi ja ilmoita heille, että olet Discordissa.</string>
@ -3174,7 +3173,6 @@
<string name="guild_event_location_title">Missä tapahtumasi järjestetään?</string>
<string name="guild_event_location_voice_field_label">Valitse kanava</string>
<string name="guild_event_location_voice_field_placeholder">Valitse puhekanava</string>
<string name="guild_event_modal_empty_subtitle">Kokoa palvelin yhteen luomalla tapahtumia.</string>
<string name="guild_event_modal_empty_title">Tulevia tapahtumia ei ole.</string>
<string name="guild_event_modal_progress_bar_step_1">Sijainti</string>
<string name="guild_event_modal_progress_bar_step_2">Tapahtuman tiedot</string>
@ -4192,7 +4190,6 @@
<string name="hub_create_or_add_guild_title">Auta kasvattamaan oppilaitoksen !!{guildName}!! oppilaskeskusta</string>
<string name="hub_create_server_confirmation_go">Siirry palvelimelle</string>
<string name="hub_create_server_confirmation_stay">Takaisin keskukseen</string>
<string name="hub_create_server_confirmation_subtitle">Palvelimesi on luotu ja lisätty oppilaskeskukseen (!!{guildName}!!)!</string>
<string name="hub_create_title">Mukauta palvelintasi</string>
<string name="hub_customize_existing_guild_title">Auta muita opiskelijoita löytämään tiensä tänne: !!{guildName}!!</string>
<string name="hub_customize_guild_subtitle">Kirjoita palvelimesi kuvaus ja valitse sille luokka, jonka avulla ihmiset löytävät sen.</string>

View File

@ -1488,7 +1488,6 @@
<string name="connection_status_voice_connected">Voix connectée</string>
<string name="connection_verified">Vérifiée</string>
<string name="connections">Connexions</string>
<string name="contact_sync_android_landing_screen_subtitle">Discord te connecte avec tes amis et leur permet de te retrouver plus facilement.</string>
<string name="contact_sync_cta_button_subtitle">Ajouter des amis automatiquement à partir des contacts</string>
<string name="contact_sync_cta_button_title">Synchroniser tes contacts</string>
<string name="contact_sync_empty_friends_subtitle">Ajoute tes amis depuis tes contacts et dis-leur que tu es sur Discord.</string>
@ -3184,7 +3183,6 @@
<string name="guild_event_location_title">Où se trouve ton événement ?</string>
<string name="guild_event_location_voice_field_label">Sélectionne un salon</string>
<string name="guild_event_location_voice_field_placeholder">Sélectionner un salon vocal</string>
<string name="guild_event_modal_empty_subtitle">Crée des événements pour rassembler ton serveur.</string>
<string name="guild_event_modal_empty_title">Aucun événement à venir.</string>
<string name="guild_event_modal_progress_bar_step_1">Emplacement</string>
<string name="guild_event_modal_progress_bar_step_2">Infos de l\'événement</string>
@ -4202,7 +4200,6 @@
<string name="hub_create_or_add_guild_title">Aide à faire grandir le Pôle étudiant de !!{guildName}!!</string>
<string name="hub_create_server_confirmation_go">Aller sur le serveur</string>
<string name="hub_create_server_confirmation_stay">Retour au Pôle</string>
<string name="hub_create_server_confirmation_subtitle">Ton serveur a été créé et ajouté au Pôle étudiant de !!{guildName}!! !</string>
<string name="hub_create_title">Personnalise ton serveur</string>
<string name="hub_customize_existing_guild_title">Aide d\'autres étudiants à retrouver !!{guildName}!!</string>
<string name="hub_customize_guild_subtitle">Donne une description et une catégorie à ton serveur pour aider les gens à le retrouver.</string>

View File

@ -1478,7 +1478,6 @@
<string name="connection_status_voice_connected">वॉयस कनेक्ट हो गई है</string>
<string name="connection_verified">वेरीफाई किया गया</string>
<string name="connections">कनेक्शन</string>
<string name="contact_sync_android_landing_screen_subtitle">Discord आपको आपके फ्रेंड्स से कनेक्ट करके उन्हें आपको ढूंढने में भी मदद कर सकता है.</string>
<string name="contact_sync_cta_button_subtitle">अपने कांटेक्ट में से फ्रेंड्स को खुद से ऐड करें</string>
<string name="contact_sync_cta_button_title">अपने कांटेक्ट को सिंक्रोनाइज़ करें</string>
<string name="contact_sync_empty_friends_subtitle">अपने कॉन्टैक्ट्स से फ्रेंड्स को ऐड करें और उन्हें बताएं कि आप भी Discord पर आ गए हैं.</string>
@ -3174,7 +3173,6 @@
<string name="guild_event_location_title">आपका इवेंट कहां पर है?</string>
<string name="guild_event_location_voice_field_label">चैनल को सलेक्ट करें</string>
<string name="guild_event_location_voice_field_placeholder">एक वॉयस चैनल सलेक्ट करें</string>
<string name="guild_event_modal_empty_subtitle">अपने सर्वर को एक साथ लाने के लिए कुछ इवेंट्स क्रिएट करें.</string>
<string name="guild_event_modal_empty_title">कोई भी आगामी (अपकमिंग) इवेंट्स नहीं हैं.</string>
<string name="guild_event_modal_progress_bar_step_1">लोकेशन</string>
<string name="guild_event_modal_progress_bar_step_2">इवेंट की जानकारी</string>
@ -4192,7 +4190,6 @@
<string name="hub_create_or_add_guild_title">!!{guildName}!! के लिए स्टूडेंट हब को बढ़ाने में मदद करो</string>
<string name="hub_create_server_confirmation_go">सर्वर पर जाएं</string>
<string name="hub_create_server_confirmation_stay">हब पर वापस जाएं</string>
<string name="hub_create_server_confirmation_subtitle">आपका सर्वर !!{guildName}!!के लिए क्रिएट और स्टूडेंट हब के साथ ऐड किया गया है</string>
<string name="hub_create_title">अपना सर्वर कस्टमाइज़ करें</string>
<string name="hub_customize_existing_guild_title">बाकी स्टूडेंट्स की !!{guildName}!! को ढूंढ़ने में मदद करें</string>
<string name="hub_customize_guild_subtitle">लोगों को आपका सर्वर ढूंढ़ने में मदद करने के लिए उन्हें सर्वर का डिस्क्रिप्शन और कैटेगरी बताएं.</string>

View File

@ -1478,7 +1478,6 @@
<string name="connection_status_voice_connected">Glas povezan</string>
<string name="connection_verified">Potvrđeno</string>
<string name="connections">Veze</string>
<string name="contact_sync_android_landing_screen_subtitle">Discord te može spojiti s vlastitim prijateljima, a i pomoći im da te lociraju.</string>
<string name="contact_sync_cta_button_subtitle">Automatski dodaj prijatelje iz svojih kontakata</string>
<string name="contact_sync_cta_button_title">Sinkroniziraj svoje kontakte</string>
<string name="contact_sync_empty_friends_subtitle">Automatski dodaj prijatelje iz svojih kontakata i javi im da si na Discordu.</string>
@ -3174,7 +3173,6 @@
<string name="guild_event_location_title">Gdje je tvoj događaj?</string>
<string name="guild_event_location_voice_field_label">Odaberi kanal</string>
<string name="guild_event_location_voice_field_placeholder">Odaberi neki glasovni kanal</string>
<string name="guild_event_modal_empty_subtitle">Napravi poneki događaj kako bi se ekipa s tvojeg servera mogla okupiti.</string>
<string name="guild_event_modal_empty_title">Nema nadolazećih događaja.</string>
<string name="guild_event_modal_progress_bar_step_1">Mjesto</string>
<string name="guild_event_modal_progress_bar_step_2">Informacije o događaju</string>
@ -4192,7 +4190,6 @@
<string name="hub_create_or_add_guild_title">Pomozi da Učenički Hub !!{guildName}!! naraste</string>
<string name="hub_create_server_confirmation_go">Idi na Server</string>
<string name="hub_create_server_confirmation_stay">Natrag na Hub</string>
<string name="hub_create_server_confirmation_subtitle">Tvoj server je stvoren i dodan u Hub za !!{guildName}!!! Učenički Hub</string>
<string name="hub_create_title">Prilagodi svoj server</string>
<string name="hub_customize_existing_guild_title">Pomozi drugim učenicima da pronađu !!{guildName}!!</string>
<string name="hub_customize_guild_subtitle">Daj svom serveru opis i kategoriju kako bi ga ljudi lakše našli.</string>

View File

@ -1478,7 +1478,6 @@
<string name="connection_status_voice_connected">Hang csatlakoztatva</string>
<string name="connection_verified">Hitelesítve</string>
<string name="connections">Kapcsolatok</string>
<string name="contact_sync_android_landing_screen_subtitle">A Discord összeköthet barátaiddal és segíthet abban, hogy megtaláljanak.</string>
<string name="contact_sync_cta_button_subtitle">Barátok automatikus hozzáadása a kapcsolatokból</string>
<string name="contact_sync_cta_button_title">Szinkronizáld a kapcsolatokat</string>
<string name="contact_sync_empty_friends_subtitle">Add hozzá a kapcsolataidat barátként és értesítsd őket, hogy te is használod a Discordot.</string>
@ -3174,7 +3173,6 @@
<string name="guild_event_location_title">Hol van az eseményed?</string>
<string name="guild_event_location_voice_field_label">Válassz csatornát</string>
<string name="guild_event_location_voice_field_placeholder">Hangcsatorna választása</string>
<string name="guild_event_modal_empty_subtitle">Szervezz eseményeket a szerverednek, hogy együtt lehessenek.</string>
<string name="guild_event_modal_empty_title">Nincsenek közelgő események.</string>
<string name="guild_event_modal_progress_bar_step_1">Hely</string>
<string name="guild_event_modal_progress_bar_step_2">Esemény infó</string>
@ -4192,7 +4190,6 @@
<string name="hub_create_or_add_guild_title">Segíts !!{guildName}!! diákcsomópontjának gyarapításában!</string>
<string name="hub_create_server_confirmation_go">Ugrás a szerverre</string>
<string name="hub_create_server_confirmation_stay">Vissza a csomópontra</string>
<string name="hub_create_server_confirmation_subtitle">Létrehoztad a szerveredet és hozzáadtad a következő diákcsomópontjához: !!{guildName}!!</string>
<string name="hub_create_title">A szervered személyre szabása</string>
<string name="hub_customize_existing_guild_title">Segíts, hogy mások is rátaláljanak: !!{guildName}!!</string>
<string name="hub_customize_guild_subtitle">Add meg szervered leírását és kategóriáját, hogy mások is megtalálják!</string>

View File

@ -1488,7 +1488,6 @@
<string name="connection_status_voice_connected">Connesso al canale vocale</string>
<string name="connection_verified">Verificato</string>
<string name="connections">Collegamenti</string>
<string name="contact_sync_android_landing_screen_subtitle">Discord può metterti in contatto con i tuoi amici e può aiutare loro a trovare te.</string>
<string name="contact_sync_cta_button_subtitle">Aggiungi automaticamente amici dalla tua lista contatti</string>
<string name="contact_sync_cta_button_title">Sincronizza i tuoi contatti</string>
<string name="contact_sync_empty_friends_subtitle">Aggiungi gli amici dalla tua lista contatti e fagli sapere che sei su Discord.</string>
@ -3184,7 +3183,6 @@
<string name="guild_event_location_title">Dov\'è il tuo evento?</string>
<string name="guild_event_location_voice_field_label">Seleziona un canale</string>
<string name="guild_event_location_voice_field_placeholder">Seleziona un canale vocale</string>
<string name="guild_event_modal_empty_subtitle">Crea degli eventi per dare occasione al tuo server di ritrovarsi.</string>
<string name="guild_event_modal_empty_title">Non ci sono eventi in programma.</string>
<string name="guild_event_modal_progress_bar_step_1">Posizione</string>
<string name="guild_event_modal_progress_bar_step_2">Informazioni evento</string>
@ -4202,7 +4200,6 @@
<string name="hub_create_or_add_guild_title">Aiuta a far crescere l\'hub studenti di !!{guildName}!!</string>
<string name="hub_create_server_confirmation_go">Vai al server</string>
<string name="hub_create_server_confirmation_stay">Torna all\'hub</string>
<string name="hub_create_server_confirmation_subtitle">Il server è stato creato e aggiunto all\'hub studenti di !!{guildName}!!!</string>
<string name="hub_create_title">Personalizza il tuo server</string>
<string name="hub_customize_existing_guild_title">Aiuta altri studenti a trovare !!{guildName}!!</string>
<string name="hub_customize_guild_subtitle">Inserisci una descrizione e una categoria per il tuo server per renderlo più facile da trovare.</string>

View File

@ -1488,7 +1488,6 @@
<string name="connection_status_voice_connected">通話中</string>
<string name="connection_verified">認証済み</string>
<string name="connections">接続</string>
<string name="contact_sync_android_landing_screen_subtitle">Discordで友達を見つけたり、友達があなたを追加したりできます。</string>
<string name="contact_sync_cta_button_subtitle">連絡先から自動的に友達を追加しよう</string>
<string name="contact_sync_cta_button_title">連絡先の同期</string>
<string name="contact_sync_empty_friends_subtitle">連絡先から友達を追加して、あなたがDiscordに入ったことを友達に知らせましょう。</string>
@ -3189,7 +3188,6 @@
<string name="guild_event_location_title">イベントはどこで行われますか?</string>
<string name="guild_event_location_voice_field_label">チャンネルを選択</string>
<string name="guild_event_location_voice_field_placeholder">ボイスチャンネルを選択</string>
<string name="guild_event_modal_empty_subtitle">サーバーの仲間が集まって楽しめるイベントを計画しましょう。</string>
<string name="guild_event_modal_empty_title">予定されているイベントはありません。</string>
<string name="guild_event_modal_progress_bar_step_1">場所</string>
<string name="guild_event_modal_progress_bar_step_2">イベントの情報</string>
@ -4207,7 +4205,6 @@
<string name="hub_create_or_add_guild_title">!!{guildName}!!の Student Hub を成長させよう</string>
<string name="hub_create_server_confirmation_go">サーバーへ移動</string>
<string name="hub_create_server_confirmation_stay">Hub に戻る</string>
<string name="hub_create_server_confirmation_subtitle">サーバーが作成され、!!{guildName}!!の Student Hub に追加されました!</string>
<string name="hub_create_title">サーバーをカスタマイズ</string>
<string name="hub_customize_existing_guild_title">他の学生たちが !!{guildName}!! を探しやすくする</string>
<string name="hub_customize_guild_subtitle">サーバーに概要とカテゴリーを追加し、探しやすくしましょう。</string>

View File

@ -1488,7 +1488,6 @@
<string name="connection_status_voice_connected">음성 연결됨</string>
<string name="connection_verified">인증됨</string>
<string name="connections">연결</string>
<string name="contact_sync_android_landing_screen_subtitle">Discord에서 친구를 찾거나 친구가 나를 찾을 수 있어요.</string>
<string name="contact_sync_cta_button_subtitle">자동으로 연락처의 친구 추가</string>
<string name="contact_sync_cta_button_title">연락처 동기화</string>
<string name="contact_sync_empty_friends_subtitle">연락처의 친구를 추가하고 회원님이 Discord에 가입했음을 알려주세요.</string>
@ -3184,7 +3183,6 @@
<string name="guild_event_location_title">이벤트의 위치가 어디인가요?</string>
<string name="guild_event_location_voice_field_label">채널 선택하기</string>
<string name="guild_event_location_voice_field_placeholder">음성 채널 선택</string>
<string name="guild_event_modal_empty_subtitle">서버를 위한 이벤트를 만들어서 사람들이 모이게 해보세요.</string>
<string name="guild_event_modal_empty_title">다가오는 이벤트가 없어요.</string>
<string name="guild_event_modal_progress_bar_step_1">위치</string>
<string name="guild_event_modal_progress_bar_step_2">이벤트 정보</string>
@ -4202,7 +4200,6 @@
<string name="hub_create_or_add_guild_title">!!{guildName}!!를 위한 학생 허브가 성장하도록 도와주세요</string>
<string name="hub_create_server_confirmation_go">서버로 가기</string>
<string name="hub_create_server_confirmation_stay">Hub로 돌아가기</string>
<string name="hub_create_server_confirmation_subtitle">서버가 생성되어 !!{guildName}!!에 추가되었어요! 학생 허브</string>
<string name="hub_create_title">서버 커스터마이징하기</string>
<string name="hub_customize_existing_guild_title">다른 학생들이 !!{guildName}!!을(를) 찾을 수 있게 해주세요</string>
<string name="hub_customize_guild_subtitle">서버에 설명과 카테고리를 제공해서 사람들이 찾을 수 있게 해주세요.</string>

View File

@ -1478,7 +1478,6 @@
<string name="connection_status_voice_connected">Prisijungta Prie Pokalbio</string>
<string name="connection_verified">Patvirtinta</string>
<string name="connections">Sąsajos</string>
<string name="contact_sync_android_landing_screen_subtitle">Discord gali susieti tave su tavo draugais ir padėti jiems tave surasti.</string>
<string name="contact_sync_cta_button_subtitle">Automatiškai pridėk draugus iš savo kontaktų</string>
<string name="contact_sync_cta_button_title">Sinchronizuok savo kontaktus</string>
<string name="contact_sync_empty_friends_subtitle">Pridėk draugus iš savo kontaktų ir pranešk jiems, kad esi Discord.</string>
@ -3174,7 +3173,6 @@
<string name="guild_event_location_title">Kur tavo renginys vyks?</string>
<string name="guild_event_location_voice_field_label">Pasirink kanalą</string>
<string name="guild_event_location_voice_field_placeholder">Pasirinkite balso kanalą</string>
<string name="guild_event_modal_empty_subtitle">Sukurk keletą renginių ir stiprink savo serverio bendruomenę.</string>
<string name="guild_event_modal_empty_title">Artėjančių renginių nėra.</string>
<string name="guild_event_modal_progress_bar_step_1">Vieta</string>
<string name="guild_event_modal_progress_bar_step_2">Renginio informacija</string>
@ -4192,7 +4190,6 @@
<string name="hub_create_or_add_guild_title">Padėk !!{guildName}!! Student Hub augti</string>
<string name="hub_create_server_confirmation_go">Eiti į serverį</string>
<string name="hub_create_server_confirmation_stay">Atgal į Hub</string>
<string name="hub_create_server_confirmation_subtitle">Tavo serveris sukurtas ir pridėtas į !!{guildName}!!! Student Hub</string>
<string name="hub_create_title">Tinkink savo serverį</string>
<string name="hub_customize_existing_guild_title">Padėk kietiems moksleiviams / studentams rasti !!{guildName}!!</string>
<string name="hub_customize_guild_subtitle">Pateik savo serverio aprašą ir nurodyk jo kategoriją, kad serverį lengviau rastų kiti.</string>

View File

@ -1488,7 +1488,6 @@
<string name="connection_status_voice_connected">Spraak gekoppeld</string>
<string name="connection_verified">Geverifieerd</string>
<string name="connections">Verbindingen</string>
<string name="contact_sync_android_landing_screen_subtitle">Discord kan je verbinden met je vrienden en kan hen helpen jou te vinden.</string>
<string name="contact_sync_cta_button_subtitle">Automatisch vrienden uit je contactpersonen toevoegen</string>
<string name="contact_sync_cta_button_title">Je contactpersonen synchroniseren</string>
<string name="contact_sync_empty_friends_subtitle">Voeg vrienden uit je contactpersonen toe en laat ze weten dat je op Discord zit.</string>
@ -3184,7 +3183,6 @@
<string name="guild_event_location_title">Waar bevindt je evenement zich?</string>
<string name="guild_event_location_voice_field_label">Selecteer een kanaal</string>
<string name="guild_event_location_voice_field_placeholder">Selecteer een spraakkanaal</string>
<string name="guild_event_modal_empty_subtitle">Organiseer wat evenementen om je server samen te brengen.</string>
<string name="guild_event_modal_empty_title">Er zijn geen komende evenementen.</string>
<string name="guild_event_modal_progress_bar_step_1">Locatie</string>
<string name="guild_event_modal_progress_bar_step_2">Evenementinformatie</string>
@ -4202,7 +4200,6 @@
<string name="hub_create_or_add_guild_title">Help om de studentenhub van !!{guildName}!! te laten groeien</string>
<string name="hub_create_server_confirmation_go">Naar server gaan</string>
<string name="hub_create_server_confirmation_stay">Terug naar hub</string>
<string name="hub_create_server_confirmation_subtitle">Je server is aangemaakt en toegevoegd aan de studentenhub van !!{guildName}!!!</string>
<string name="hub_create_title">Je server aanpassen</string>
<string name="hub_customize_existing_guild_title">Help andere studenten om !!{guildName}!! te kunnen vinden</string>
<string name="hub_customize_guild_subtitle">Geef je server een beschrijving en categorie zodat mensen hem makkelijker kunnen vinden.</string>

View File

@ -1430,7 +1430,6 @@
<string name="connection_status_voice_connected">Tale er tilkoblet</string>
<string name="connection_verified">Bekreftet</string>
<string name="connections">Tilkoblinger</string>
<string name="contact_sync_android_landing_screen_subtitle">Discord kan sette deg i kontakt med venner og hjelpe dem med å finne deg.</string>
<string name="contact_sync_cta_button_subtitle">Legg til venner fra kontaktene dine automatisk</string>
<string name="contact_sync_cta_button_title">Synkroniser kontaktene dine</string>
<string name="contact_sync_empty_friends_subtitle">Legg til venner fra kontaktene dine og gi dem beskjed om at du er på Discord.</string>
@ -3069,7 +3068,6 @@
<string name="guild_event_location_title">Hvor foregår eventen?</string>
<string name="guild_event_location_voice_field_label">Velg en kanal</string>
<string name="guild_event_location_voice_field_placeholder">Velg en talekanal</string>
<string name="guild_event_modal_empty_subtitle">Lag noen eventer som serveren din kan samles rundt.</string>
<string name="guild_event_modal_empty_title">Det er ingen kommende eventer.</string>
<string name="guild_event_modal_progress_bar_step_1">Posisjon</string>
<string name="guild_event_modal_progress_bar_step_2">Info om event</string>
@ -4087,7 +4085,6 @@
<string name="hub_create_or_add_guild_title">Bidra til at skolehuben for !!{guildName}!! vokser</string>
<string name="hub_create_server_confirmation_go">Gå til server</string>
<string name="hub_create_server_confirmation_stay">Tilbake til huben</string>
<string name="hub_create_server_confirmation_subtitle">Serveren din ble opprettet og lagt til skolehuben for !!{guildName}!!!</string>
<string name="hub_create_title">Tilpass serveren din</string>
<string name="hub_customize_existing_guild_title">Hjelp andre med å finne !!{guildName}!!</string>
<string name="hub_customize_guild_subtitle">Gi serveren en beskrivelse og kategori, så det blir enklere for andre å finne den.</string>

View File

@ -1488,7 +1488,6 @@
<string name="connection_status_voice_connected">Połączono z czatem głosowym</string>
<string name="connection_verified">Zweryfikowane</string>
<string name="connections">Połączone konta</string>
<string name="contact_sync_android_landing_screen_subtitle">Discord może dodać Twoich znajomych i pomóc im znaleźć Ciebie.</string>
<string name="contact_sync_cta_button_subtitle">Automatycznie dodaj znajomych z kontaktów</string>
<string name="contact_sync_cta_button_title">Zsynchronizuj swoje kontakty</string>
<string name="contact_sync_empty_friends_subtitle">Dodaj znajomych z kontaktów i poinformuj ich, że korzystasz z Discorda.</string>
@ -3189,7 +3188,6 @@
<string name="guild_event_location_title">Gdzie odbywa się Twoje wydarzenie?</string>
<string name="guild_event_location_voice_field_label">Wybierz kanał</string>
<string name="guild_event_location_voice_field_placeholder">Wybierz kanał głosowy</string>
<string name="guild_event_modal_empty_subtitle">Stwórz dla swojego serwera kilka wydarzeń integracyjnych.</string>
<string name="guild_event_modal_empty_title">Brak zbliżających się wydarzeń.</string>
<string name="guild_event_modal_progress_bar_step_1">Lokalizacja</string>
<string name="guild_event_modal_progress_bar_step_2">Informacje o wydarzeniu</string>
@ -4207,7 +4205,6 @@
<string name="hub_create_or_add_guild_title">Pomóż rozwijać centrum szkolne dla: !!{guildName}!!</string>
<string name="hub_create_server_confirmation_go">Przejdź do serwera</string>
<string name="hub_create_server_confirmation_stay">Wróć do centrum</string>
<string name="hub_create_server_confirmation_subtitle">Twój serwer został utworzony i dodany do centrum szkolnego dla: !!{guildName}!!</string>
<string name="hub_create_title">Spersonalizuj swój serwer</string>
<string name="hub_customize_existing_guild_title">Pomóż innym uczniom/studentom odnaleźć: !!{guildName}!!</string>
<string name="hub_customize_guild_subtitle">Dodaj opis i kategorię swojego serwera, aby inni mogli go łatwiej znaleźć.</string>
@ -6142,6 +6139,7 @@
<string name="premium_changelog_localized_price_header">Nitro kosztuje teraz !!{price}!!</string>
<string name="premium_changelog_settings_card_cta">Rzuć okiem!</string>
<string name="premium_changelog_settings_card_description">Dzięki Nitro możesz ustawić unikalny awatar na każdym serwerze. I nie tylko!</string>
<string name="premium_changelog_settings_card_description_localized_price">Obniżyliśmy cenę Nitro w Twoim kraju! Sprawdź nasze najnowsze korzyści Nitro a wśród nich m. in. awatary serwerowe, dzięki którym na każdym serwerze możesz korzystać z innego awatara.</string>
<string name="premium_changelog_settings_card_header">Nowe letnie udoskonalenia!</string>
<string name="premium_chat_perks_animated_avatar_and_emoji_mobile">Przesyłaj i używaj animowanych awatarów i emoji</string>
<string name="premium_chat_perks_custom_emoji_mobile">Dziel się własnymi emoji na wszystkich serwerach</string>

View File

@ -1488,7 +1488,6 @@
<string name="connection_status_voice_connected">Voz conectada</string>
<string name="connection_verified">Verificado</string>
<string name="connections">Conexões</string>
<string name="contact_sync_android_landing_screen_subtitle">O Discord pode conectar você com seus amigos e ajudá-los a encontrar você.</string>
<string name="contact_sync_cta_button_subtitle">Adicione amigos automaticamente dos seus contatos</string>
<string name="contact_sync_cta_button_title">Sincronizar seus contatos</string>
<string name="contact_sync_empty_friends_subtitle">Adicione amigos a partir dos seus contatos e avise-os que você está no Discord.</string>
@ -3135,7 +3134,6 @@
<string name="guild_event_location_title">Onde é seu evento?</string>
<string name="guild_event_location_voice_field_label">Selecione um canal</string>
<string name="guild_event_location_voice_field_placeholder">Escolha um canal de voz</string>
<string name="guild_event_modal_empty_subtitle">Crie alguns eventos no seu servidor para reunir a galera.</string>
<string name="guild_event_modal_empty_title">Não há eventos futuros.</string>
<string name="guild_event_modal_progress_bar_step_1">Localização</string>
<string name="guild_event_modal_progress_bar_step_2">Informações do evento</string>
@ -4153,7 +4151,6 @@
<string name="hub_create_or_add_guild_title">Ajude a Central de Estudantes de !!{guildName}!! a crescer</string>
<string name="hub_create_server_confirmation_go">Ir para o Servidor</string>
<string name="hub_create_server_confirmation_stay">Voltar à Central</string>
<string name="hub_create_server_confirmation_subtitle">Seu servidor foi criado e adicionado à Central de !!{guildName}!!</string>
<string name="hub_create_title">Personalize seu servidor</string>
<string name="hub_customize_existing_guild_title">Ajude outros estudantes a encontrar !!{guildName}!!</string>
<string name="hub_customize_guild_subtitle">Dê uma descrição e uma categoria ao seu servidor e ajude as pessoas a encontrá-lo.</string>
@ -6087,6 +6084,7 @@
<string name="premium_changelog_localized_price_header">O Nitro agora custa !!{price}!!</string>
<string name="premium_changelog_settings_card_cta">Dê uma olhada!</string>
<string name="premium_changelog_settings_card_description">Carregue um avatar único para cada servidor e muito mais com o Nitro.</string>
<string name="premium_changelog_settings_card_description_localized_price">Baixamos o preço do Nitro no seu país! Confira as mais novas vantagens Nitro, incluindo avatares de servidor, que permite utilizar avatares diferentes em cada servidor.</string>
<string name="premium_changelog_settings_card_header">Novas atualizações de verão!</string>
<string name="premium_chat_perks_animated_avatar_and_emoji_mobile">Envie e use avatares animados e emojis</string>
<string name="premium_chat_perks_custom_emoji_mobile">Compartilhe emojis personalizados em todos os servidores</string>

View File

@ -1478,7 +1478,6 @@
<string name="connection_status_voice_connected">Voce conectată</string>
<string name="connection_verified">Verificat</string>
<string name="connections">Conexiuni</string>
<string name="contact_sync_android_landing_screen_subtitle">Discord te poate conecta cu prietenii și îi poate ajuta să te găsească.</string>
<string name="contact_sync_cta_button_subtitle">Adaugă automat contactele ca prieteni</string>
<string name="contact_sync_cta_button_title">Sincronizează-ți contactele</string>
<string name="contact_sync_empty_friends_subtitle">Adaugă prieteni din lista de contacte și dă-le de știre că ești pe Discord.</string>
@ -3174,7 +3173,6 @@
<string name="guild_event_location_title">Unde se ține evenimentul tău?</string>
<string name="guild_event_location_voice_field_label">Alege un canal</string>
<string name="guild_event_location_voice_field_placeholder">Selectează un canal de voce</string>
<string name="guild_event_modal_empty_subtitle">Creează evenimente la care să poată participa serverul tău.</string>
<string name="guild_event_modal_empty_title">Nu există evenimente viitoare.</string>
<string name="guild_event_modal_progress_bar_step_1">Locație</string>
<string name="guild_event_modal_progress_bar_step_2">Informații eveniment</string>
@ -4192,7 +4190,6 @@
<string name="hub_create_or_add_guild_title">Ajută hub-ul studențesc pentru !!{guildName}!! să se dezvolte</string>
<string name="hub_create_server_confirmation_go">Mergi la server</string>
<string name="hub_create_server_confirmation_stay">Înapoi la hub</string>
<string name="hub_create_server_confirmation_subtitle">Serverul tău a fost creat și adăugat în hub-ul studențesc pentru !!{guildName}!!!</string>
<string name="hub_create_title">Personalizează-ți server-ul</string>
<string name="hub_customize_existing_guild_title">Ajută alți studenți sau elevi să găsească !!{guildName}!!</string>
<string name="hub_customize_guild_subtitle">Adaugă descrierea și categoria serverului tău, pentru a-l face mai ușor de găsit.</string>

View File

@ -1488,7 +1488,6 @@
<string name="connection_status_voice_connected">Голосовая связь подключена</string>
<string name="connection_verified">Проверено</string>
<string name="connections">Интеграции</string>
<string name="contact_sync_android_landing_screen_subtitle">Discord поможет вашим друзьям найти вас.</string>
<string name="contact_sync_cta_button_subtitle">Автоматически добавьте друзей из контактов</string>
<string name="contact_sync_cta_button_title">Синхронизируйте свои контакты</string>
<string name="contact_sync_empty_friends_subtitle">Добавьте друзей из контактов и сообщите им о том, что вы теперь используете Discord.</string>
@ -3189,7 +3188,6 @@
<string name="guild_event_location_title">Где пройдёт ваше событие?</string>
<string name="guild_event_location_voice_field_label">Выбрать канал</string>
<string name="guild_event_location_voice_field_placeholder">Выберите голосовой канал</string>
<string name="guild_event_modal_empty_subtitle">Организуйте события для своего сервера.</string>
<string name="guild_event_modal_empty_title">Нет предстоящих событий.</string>
<string name="guild_event_modal_progress_bar_step_1">Место</string>
<string name="guild_event_modal_progress_bar_step_2">Сведения о событии</string>
@ -4207,7 +4205,6 @@
<string name="hub_create_or_add_guild_title">Помогите студенческому центру «!!{guildName}!!» вырасти</string>
<string name="hub_create_server_confirmation_go">Перейти на сервер</string>
<string name="hub_create_server_confirmation_stay">Вернуться в центр</string>
<string name="hub_create_server_confirmation_subtitle">Ваш сервер был создан и добавлен в студенческий центр «!!{guildName}!!»</string>
<string name="hub_create_title">Персонализируйте свой сервер</string>
<string name="hub_customize_existing_guild_title">Помогите другим учащимся найти «!!{guildName}!!»</string>
<string name="hub_customize_guild_subtitle">Добавьте к своему серверу описание и категорию, чтобы его было проще найти.</string>

View File

@ -1439,7 +1439,6 @@
<string name="connection_status_voice_connected">Röst ansluten</string>
<string name="connection_verified">Verifierad</string>
<string name="connections">Anslutningar</string>
<string name="contact_sync_android_landing_screen_subtitle">Discord kan hjälpa dig att få kontakt med dina vänner och hjälpa dem hitta dig.</string>
<string name="contact_sync_cta_button_subtitle">Lägg till vänner från dina kontakter automatiskt</string>
<string name="contact_sync_cta_button_title">Synka dina kontakter</string>
<string name="contact_sync_empty_friends_subtitle">Lägg till vänner från dina kontakter och låt dem veta att du finns på Discord.</string>
@ -3078,7 +3077,6 @@
<string name="guild_event_location_title">Var hålls ditt event?</string>
<string name="guild_event_location_voice_field_label">Välj en kanal</string>
<string name="guild_event_location_voice_field_placeholder">Välj en röstkanal</string>
<string name="guild_event_modal_empty_subtitle">Skapa några event som för samman din server.</string>
<string name="guild_event_modal_empty_title">Det finns inga kommande event.</string>
<string name="guild_event_modal_progress_bar_step_1">Plats</string>
<string name="guild_event_modal_progress_bar_step_2">Eventinfo</string>
@ -4096,7 +4094,6 @@
<string name="hub_create_or_add_guild_title">Hjälp till med att få studenthubben för !!{guildName}!! att växa</string>
<string name="hub_create_server_confirmation_go">Gå till server</string>
<string name="hub_create_server_confirmation_stay">Tillbaka till hubben</string>
<string name="hub_create_server_confirmation_subtitle">Din server har skapats och lagts till i studenthubben för !!{guildName}!!!</string>
<string name="hub_create_title">Specialanpassa din server</string>
<string name="hub_customize_existing_guild_title">Hjälp andra studenter hitta !!{guildName}!!</string>
<string name="hub_customize_guild_subtitle">Ge din server en beskrivning och en kategori för att hjälpa folk att hitta den.</string>

View File

@ -1478,7 +1478,6 @@
<string name="connection_status_voice_connected">เชื่อมต่อเสียงแล้ว</string>
<string name="connection_verified">ยืนยันแล้ว</string>
<string name="connections">การเชื่อมต่อ</string>
<string name="contact_sync_android_landing_screen_subtitle">Discord สามารถเชื่อมต่อคุณกับเพื่อน ๆ และช่วยให้พวกเขาหาคุณพบ</string>
<string name="contact_sync_cta_button_subtitle">เพิ่มเพื่อนจากรายชื่อผู้ติดต่อของคุณโดยอัตโนมัติ</string>
<string name="contact_sync_cta_button_title">ซิงก์รายชื่อติดต่อของคุณ</string>
<string name="contact_sync_empty_friends_subtitle">เพิ่มเพื่อน ๆ จากรายชื่อติดต่อของคุณแล้วแจ้งให้พวกเขารู้ว่าคุณอยู่บน Discord แล้ว</string>
@ -3174,7 +3173,6 @@
<string name="guild_event_location_title">กิจกรรมของคุณจัดขึ้นที่ใด</string>
<string name="guild_event_location_voice_field_label">เลือกช่อง</string>
<string name="guild_event_location_voice_field_placeholder">เลือกช่องสำหรับพูดคุย</string>
<string name="guild_event_modal_empty_subtitle">สร้างกิจกรรมให้เซิร์ฟเวอร์ของคุณมารวมตัวกัน</string>
<string name="guild_event_modal_empty_title">ไม่มีกิจกรรมที่กำลังจะมาถึง</string>
<string name="guild_event_modal_progress_bar_step_1">ตำแหน่ง</string>
<string name="guild_event_modal_progress_bar_step_2">ข้อมูลกิจกรรม</string>
@ -4192,7 +4190,6 @@
<string name="hub_create_or_add_guild_title">ช่วยสร้างการเติบโตให้ Student Hub สำหรับ !!{guildName}!!</string>
<string name="hub_create_server_confirmation_go">ไปที่เซิร์ฟเวอร์</string>
<string name="hub_create_server_confirmation_stay">กลับไปที่ Hub</string>
<string name="hub_create_server_confirmation_subtitle">เซิร์ฟเวอร์ของคุณถูกสร้างและเพิ่มไปยัง Student Hub สำหรับ !!{guildName}!! แล้ว!</string>
<string name="hub_create_title">ปรับแต่งเซิร์ฟเวอร์ของคุณ</string>
<string name="hub_customize_existing_guild_title">ช่วยให้นักเรียนนักศึกษาคนอื่นค้นเจอ !!{guildName}!!</string>
<string name="hub_customize_guild_subtitle">ระบุคำบรรยายและหมวดหมู่ให้เซิร์ฟเวอร์ของคุณ เพื่อช่วยให้ผู้คนค้นพบเซิร์ฟเวอร์</string>

View File

@ -1488,7 +1488,6 @@
<string name="connection_status_voice_connected">Ses Bağlantısı Kuruldu</string>
<string name="connection_verified">Doğrulandı</string>
<string name="connections">Bağlantılar</string>
<string name="contact_sync_android_landing_screen_subtitle">Discord, arkadaşlarınla bağlantı kurmana ve onların seni bulmalarına yardımcı olur.</string>
<string name="contact_sync_cta_button_subtitle">Kişilerinden otomatik olarak arkadaş ekle</string>
<string name="contact_sync_cta_button_title">Kişilerini senkronize et</string>
<string name="contact_sync_empty_friends_subtitle">Kişilerinden arkadaş ekle ve onları Discord\'da olduğundan haberdar et.</string>
@ -3189,7 +3188,6 @@
<string name="guild_event_location_title">Etkinliğin nerede olacak?</string>
<string name="guild_event_location_voice_field_label">Bir kanal seç</string>
<string name="guild_event_location_voice_field_placeholder">Bir ses kanalı seç</string>
<string name="guild_event_modal_empty_subtitle">Sunucunun bir araya gelmesi için birkaç etkinlik oluştur.</string>
<string name="guild_event_modal_empty_title">Yakında bir etkinlik yok.</string>
<string name="guild_event_modal_progress_bar_step_1">Konum</string>
<string name="guild_event_modal_progress_bar_step_2">Etkinlik Bilgisi</string>
@ -4207,7 +4205,6 @@
<string name="hub_create_or_add_guild_title">!!{guildName}!! için Öğrenci Merkezi\'ni büyütmeye yardım et</string>
<string name="hub_create_server_confirmation_go">Sunucuya git</string>
<string name="hub_create_server_confirmation_stay">Merkez\'e dön</string>
<string name="hub_create_server_confirmation_subtitle">Sunucun oluşturuldu ve !!{guildName}!! için Öğrenci Merkezi\'ne eklendi!</string>
<string name="hub_create_title">Sunucunu özelleştir</string>
<string name="hub_customize_existing_guild_title">Diğer öğrencilerin !!{guildName}!! guild\'ini bulmasına yardımcı ol</string>
<string name="hub_customize_guild_subtitle">İnsanların bulabilmesi için sunucuna bir açıklama ve kategori ver.</string>
@ -6142,6 +6139,7 @@
<string name="premium_changelog_localized_price_header">Nitro şimdi !!{price}!!</string>
<string name="premium_changelog_settings_card_cta">Hemen göz at!</string>
<string name="premium_changelog_settings_card_description">Nitro ile her sunucu için eşsiz bir avatar yükle ve daha fazlasını yap.</string>
<string name="premium_changelog_settings_card_description_localized_price">Ülkende Nitro fiyatını düşürdük! Her sunucuda farklı bir avatar kullanmanı sağlayan sunucu avatarları gibi en yeni Nitro avantajlarına göz at.</string>
<string name="premium_changelog_settings_card_header">Yeni Yaz Güncellemeleri!</string>
<string name="premium_chat_perks_animated_avatar_and_emoji_mobile">Hareketli avatarlar ve emojiler yükle ve kullan</string>
<string name="premium_chat_perks_custom_emoji_mobile">Tüm sunucularda özel emojiler paylaş</string>

View File

@ -1478,7 +1478,6 @@
<string name="connection_status_voice_connected">Голосовий зв\'язок підключено</string>
<string name="connection_verified">Перевірено</string>
<string name="connections">З\'єднання</string>
<string name="contact_sync_android_landing_screen_subtitle">Discord може з\'єднувати вас з вашими друзями і допомагати їм знаходити вас.</string>
<string name="contact_sync_cta_button_subtitle">Автоматично додавай друзів зі свого списку контактів</string>
<string name="contact_sync_cta_button_title">Синхронізуй свої контакти</string>
<string name="contact_sync_empty_friends_subtitle">Додай друзів зі свого списку контактів, щоб вони знали, що ти є в Discord.</string>
@ -3174,7 +3173,6 @@
<string name="guild_event_location_title">Де відбудеться подія?</string>
<string name="guild_event_location_voice_field_label">Оберіть канал</string>
<string name="guild_event_location_voice_field_placeholder">Оберіть голосовий канал</string>
<string name="guild_event_modal_empty_subtitle">Створіть декілька подій, щоби зібрати сервер.</string>
<string name="guild_event_modal_empty_title">Немає запланованих подій.</string>
<string name="guild_event_modal_progress_bar_step_1">Місце розташування</string>
<string name="guild_event_modal_progress_bar_step_2">Інфо про подію</string>
@ -4192,7 +4190,6 @@
<string name="hub_create_or_add_guild_title">Допоможіть розвивати Студентський хаб закладу !!{guildName}!!</string>
<string name="hub_create_server_confirmation_go">Піти на сервер</string>
<string name="hub_create_server_confirmation_stay">Повернутися до хабу</string>
<string name="hub_create_server_confirmation_subtitle">Ваш сервер було створено та додано до студентського хабу закладу !!{guildName}!!!</string>
<string name="hub_create_title">Персоналізуй свій сервер</string>
<string name="hub_customize_existing_guild_title">Допоможіть іншим студентам знайти !!{guildName}!!</string>
<string name="hub_customize_guild_subtitle">Опишіть сервер та визначте категорію, щоби людям було легше знайти його.</string>

View File

@ -1478,7 +1478,6 @@
<string name="connection_status_voice_connected">Đã Kết Nối Giọng Nói</string>
<string name="connection_verified">Đã được xác định</string>
<string name="connections">Kết nối</string>
<string name="contact_sync_android_landing_screen_subtitle">Discord có thể kết nối và giúp bạn bè của bạn tìm thấy bạn.</string>
<string name="contact_sync_cta_button_subtitle">Tự động thêm bạn bè từ danh bạ</string>
<string name="contact_sync_cta_button_title">Đồng bộ hóa danh bạ</string>
<string name="contact_sync_empty_friends_subtitle">Thêm bạn bè từ danh bạ và cho họ biết bạn đang sử dụng Discord.</string>
@ -3174,7 +3173,6 @@
<string name="guild_event_location_title">Sự kiện của bạn diễn ra ở đâu?</string>
<string name="guild_event_location_voice_field_label">Chọn kênh</string>
<string name="guild_event_location_voice_field_placeholder">Chọn một kênh thoại</string>
<string name="guild_event_modal_empty_subtitle">Tạo một số sự kiện để máy chủ của bạn cùng tham gia.</string>
<string name="guild_event_modal_empty_title">Không có sự kiện nào sắp diễn ra.</string>
<string name="guild_event_modal_progress_bar_step_1">Thư mục</string>
<string name="guild_event_modal_progress_bar_step_2">Thông tin sự kiện</string>
@ -4194,7 +4192,6 @@
<string name="hub_create_or_add_guild_title">Giúp phát triển Student Hub dành cho !!{guildName}!!</string>
<string name="hub_create_server_confirmation_go">Đi tới máy chủ</string>
<string name="hub_create_server_confirmation_stay">Quay về Hub</string>
<string name="hub_create_server_confirmation_subtitle">Máy chủ của bạn đã được tạo và thêm vào !!{guildName}!!! Student Hub</string>
<string name="hub_create_title">Tùy chỉnh máy chủ của bạn</string>
<string name="hub_customize_existing_guild_title">Giúp những sinh viên khác tìm !!{guildName}!!</string>
<string name="hub_customize_guild_subtitle">Cung cấp cho máy chủ của bạn mô tả và danh mục để giúp mọi người có thể tìm nó.</string>

View File

@ -1488,7 +1488,6 @@
<string name="connection_status_voice_connected">语音已连接</string>
<string name="connection_verified">已验证</string>
<string name="connections">连接​​​​​​​​</string>
<string name="contact_sync_android_landing_screen_subtitle">Discord 可将您和您的好友联系起来,帮助他们找到您。</string>
<string name="contact_sync_cta_button_subtitle">自动从您的联系人中添加好友</string>
<string name="contact_sync_cta_button_title">同步您的联系人</string>
<string name="contact_sync_empty_friends_subtitle">从联系人中添加好友并告知他们您加入了Discord。</string>
@ -3184,7 +3183,6 @@
<string name="guild_event_location_title">您活动的位置是?</string>
<string name="guild_event_location_voice_field_label">选择一个频道</string>
<string name="guild_event_location_voice_field_placeholder">选择一个语音频道</string>
<string name="guild_event_modal_empty_subtitle">为您的服务器创办一些活动,让大家聚在一起。</string>
<string name="guild_event_modal_empty_title">没有临期活动。</string>
<string name="guild_event_modal_progress_bar_step_1">位置</string>
<string name="guild_event_modal_progress_bar_step_2">活动信息</string>
@ -4202,7 +4200,6 @@
<string name="hub_create_or_add_guild_title">助力!!{guildName}!!的 Student Hub 成长</string>
<string name="hub_create_server_confirmation_go">前往服务器</string>
<string name="hub_create_server_confirmation_stay">返回至 Hub</string>
<string name="hub_create_server_confirmation_subtitle">您的服务器已被创建并添加至!!{guildName}!!的 Student Hub</string>
<string name="hub_create_title">自定义您的服务器</string>
<string name="hub_customize_existing_guild_title">帮助其他同学找到!!{guildName}!!</string>
<string name="hub_customize_guild_subtitle">为您的服务器添加描述与类别,从而帮助大家找到它。</string>

View File

@ -1483,7 +1483,6 @@
<string name="connection_status_voice_connected">語音已連線</string>
<string name="connection_verified">已驗證</string>
<string name="connections">連接</string>
<string name="contact_sync_android_landing_screen_subtitle">Discord 可以聯絡您的好友,並幫助他們找到您。</string>
<string name="contact_sync_cta_button_subtitle">自動從您的聯絡人資訊新增好友</string>
<string name="contact_sync_cta_button_title">同步您的聯絡人資訊</string>
<string name="contact_sync_empty_friends_subtitle">透過您的聯絡人資訊添加好友,讓他們知道您在使用 Discord。</string>
@ -3179,7 +3178,6 @@
<string name="guild_event_location_title">您的活動在哪裡舉行?</string>
<string name="guild_event_location_voice_field_label">選擇一個頻道</string>
<string name="guild_event_location_voice_field_placeholder">選擇語音頻道</string>
<string name="guild_event_modal_empty_subtitle">建立幾場活動,讓您的伺服器好友相聚在一起。</string>
<string name="guild_event_modal_empty_title">目前沒有即將開始的活動。</string>
<string name="guild_event_modal_progress_bar_step_1">位置</string>
<string name="guild_event_modal_progress_bar_step_2">活動資訊</string>
@ -4197,7 +4195,6 @@
<string name="hub_create_or_add_guild_title">幫助 !!{guildName}!! 專用的學生中心成長茁壯</string>
<string name="hub_create_server_confirmation_go">前往伺服器</string>
<string name="hub_create_server_confirmation_stay">返回中心</string>
<string name="hub_create_server_confirmation_subtitle">您的伺服器已建立並新增至 !!{guildName}!! 的學生中心!</string>
<string name="hub_create_title">將你的伺服器個人化</string>
<string name="hub_customize_existing_guild_title">幫助其他學生找到 !!{guildName}!!</string>
<string name="hub_customize_guild_subtitle">幫您的伺服器新增描述跟類別,幫助其他人找到它。</string>

File diff suppressed because it is too large Load Diff

View File

@ -35,8 +35,8 @@
<string name="abc_toolbar_collapse_description">Collapse</string>
<string name="about_this_app">About this App</string>
<string name="accept">Accept</string>
<string name="accept_dm_header">Accept DM from {user}?</string>
<string name="accept_dm_subtext">They will only be notified if you Accept and reply.</string>
<string name="accept_dm_header">New direct message</string>
<string name="accept_dm_subtext">Accept to start chatting. They will only be notified if you message them back.</string>
<string name="accept_invite_modal_button">Accept Invite</string>
<string name="accept_request_button_after">Request Accepted</string>
<string name="accessibility">Accessibility</string>
@ -1400,6 +1400,7 @@
<string name="close">Close</string>
<string name="close_action_sheet">Close action sheet</string>
<string name="close_dm">Close DM</string>
<string name="close_dm_tooltip">Not interested? Ignore to close this DM.</string>
<string name="close_drawer">Close drawer</string>
<string name="close_stream">Close Stream</string>
<string name="close_window">Close Window</string>
@ -1426,7 +1427,7 @@
<string name="color_picker_title">Select a color</string>
<string name="color_picker_transparency">Transparency</string>
<string name="color_picker_use_default">Use Default</string>
<string name="res_2131887506_com_crashlytics_android_build_id">a13d6c1d7ce2414eaf92197e14b59933</string>
<string name="res_2131887507_com_crashlytics_android_build_id">0c2a5d273223415f820afc976c5ef272</string>
<string name="coming_soon">Coming Soon</string>
<string name="command_accessibility_desc_app_header_item">Slash command application {applicationName}</string>
<string name="command_accessibility_desc_app_item">{applicationName} application</string>
@ -1556,7 +1557,6 @@
<string name="connection_status_voice_connected">Voice Connected</string>
<string name="connection_verified">Verified</string>
<string name="connections">Connections</string>
<string name="contact_sync_android_landing_screen_subtitle">Discord can connect you with your friends and help them find you.</string>
<string name="contact_sync_cta_button_subtitle">Add friends from your contacts automatically</string>
<string name="contact_sync_cta_button_title">Sync your contacts</string>
<string name="contact_sync_empty_friends_subtitle">Add friends from your contacts and let them know youre on Discord.</string>
@ -2233,6 +2233,7 @@
<string name="dnd_operation_label_move">Move</string>
<string name="dnd_operation_label_start">Start Drag and Drop</string>
<string name="done">Done</string>
<string name="dont_ask_again">Don\'t ask again</string>
<string name="dont_show_again">Don\'t show me this again.</string>
<string name="download">Download</string>
<string name="download_app">Download App</string>
@ -2367,6 +2368,7 @@
<string name="emoji_modifier_medium_skin_tone">Medium skin tone</string>
<string name="emoji_modifier_none">None</string>
<string name="emoji_names_with_favorited">!!{names}!!, favorited</string>
<string name="emoji_picker_create_emoji_title">Upload an emoji to this server</string>
<string name="emoji_picker_premium_upsell_body">Use these emoji and more by subscribing to Nitro.</string>
<string name="emoji_picker_premium_upsell_cta">Get Nitro</string>
<string name="emoji_popout_current_guild_description">This emoji is from this server. Get Nitro to use it everywhere.</string>
@ -3352,6 +3354,7 @@
<string name="guild_event_create_entity_type_error_empty_field">You must first choose an event location.</string>
<string name="guild_event_create_header">What\'s your event about?</string>
<string name="guild_event_create_irl_location_error_empty_field">A location is required.</string>
<string name="guild_event_create_start_time_error_event_started">You cannot edit the start time of an already active event.</string>
<string name="guild_event_create_topic_error_empty_field">An event topic is required.</string>
<string name="guild_event_create_topic_label">Event Topic</string>
<string name="guild_event_create_topic_placeholder">What\'s your event?</string>
@ -4116,6 +4119,9 @@
<string name="guild_settings_emoji_alias">Alias</string>
<string name="guild_settings_emoji_alias_placeholder">Enter Alias</string>
<string name="guild_settings_emoji_upload_to_server_message">Add up to {count} custom emoji that anyone can use in this server. Animated GIF emoji may be used by members with Discord Nitro. Emoji names must be at least 2 characters long and can only contain alphanumeric characters and underscores. Emoji must be under {maxSize}kb in size.</string>
<string name="guild_settings_emojis_upsell_banner_text">Boost your server to Level {level} to unlock more emoji slots!</string>
<string name="guild_settings_emojis_upsell_banner_too_many_emojis_header">Level {level} emojis lost</string>
<string name="guild_settings_emojis_upsell_banner_too_many_emojis_text">Boost your server to Level {level} or buy a level to unlock your emojis!</string>
<string name="guild_settings_enable_discoverable">Enable Discovery</string>
<string name="guild_settings_example_tooltip">Here\'s an example!</string>
<string name="guild_settings_filter_action">Filter by Action</string>
@ -5889,8 +5895,8 @@
<string name="move_members_description">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.</string>
<string name="move_to">Move To</string>
<string name="move_to_success">User has been moved to the selected channel.</string>
<string name="res_2131891969_msg_alert_cleared">Alert Cleared</string>
<string name="res_2131891970_msg_no_alert_showing">No Alert Showing</string>
<string name="res_2131891976_msg_alert_cleared">Alert Cleared</string>
<string name="res_2131891977_msg_no_alert_showing">No Alert Showing</string>
<string name="mtrl_badge_numberless_content_description">New notification</string>
<string name="mtrl_chip_close_icon_content_description">Remove %1$s</string>
<string name="mtrl_exceed_max_badge_number_content_description">More than %1$d new notifications</string>
@ -7465,6 +7471,7 @@
<string name="reply_quote_sticker_mobile">Tap to see sticker</string>
<string name="replying_to">Replying to $[](userHook)</string>
<string name="report">Report</string>
<string name="report_dm_tooltip">Report spam or abuse and close this DM.</string>
<string name="report_message">Report Message Posted by !!{name}!!</string>
<string name="report_message_menu_option">Report Message</string>
<string name="report_modal_block_user">Block user</string>
@ -8038,7 +8045,7 @@
<string name="search_with_google">Search with Google</string>
<string name="searching">Searching…</string>
<string name="security">Security</string>
<string name="see_detail">See Details</string>
<string name="see_detail">Event Details</string>
<string name="see_thread">See Thread </string>
<string name="see_thread_mobile"></string>
<string name="select">Select</string>
@ -9739,6 +9746,8 @@
<string name="voice_call_action_a11y_hint">Open voice call actions</string>
<string name="voice_call_member_list_title">{count}</string>
<string name="voice_channel">Voice Channel</string>
<string name="voice_channel_change_confirmation_body">Looks like you\'re in another voice channel. Are you sure you want to switch to **!!{channel}!!**?</string>
<string name="voice_channel_change_confirmation_header">You sure?</string>
<string name="voice_channel_deafened">Deafened</string>
<string name="voice_channel_desc">Connect to live audio for group conversations</string>
<string name="voice_channel_empty">Feelin\' lonely? Add friends to this voice channel by creating an invite link.</string>