diff --git a/app/build.gradle b/app/build.gradle index 7f0c3af104..58059eda25 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ android { applicationId 'com.discord' minSdkVersion 21 targetSdkVersion 29 - versionCode 100200 - versionName "100.0 - Alpha" + versionCode 100204 + versionName "100.4 - Alpha" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f5d0b04255..b8a8cf205d 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,5 +1,5 @@ - + @@ -174,7 +174,7 @@ - + diff --git a/app/src/main/java/c/i/a/f/h/c/i.java b/app/src/main/java/c/i/a/f/h/c/i.java index 6a3405d7fd..49f734edcf 100644 --- a/app/src/main/java/c/i/a/f/h/c/i.java +++ b/app/src/main/java/c/i/a/f/h/c/i.java @@ -6,7 +6,7 @@ import c.i.a.f.e.h.c; import c.i.a.f.e.h.h; import com.google.android.gms.auth.api.credentials.Credential; import com.google.android.gms.common.api.Status; -import com.google.android.gms.internal.p000authapi.zzz; +import com.google.android.gms.internal.p001authapi.zzz; /* compiled from: com.google.android.gms:play-services-auth@@19.0.0 */ public final class i extends m { public final /* synthetic */ Credential l; diff --git a/app/src/main/java/c/i/a/f/h/c/l.java b/app/src/main/java/c/i/a/f/h/c/l.java index 41147e5892..70b8d3b145 100644 --- a/app/src/main/java/c/i/a/f/h/c/l.java +++ b/app/src/main/java/c/i/a/f/h/c/l.java @@ -6,7 +6,7 @@ import c.i.a.f.e.h.c; import c.i.a.f.e.h.h; import com.google.android.gms.auth.api.credentials.Credential; import com.google.android.gms.common.api.Status; -import com.google.android.gms.internal.p000authapi.zzt; +import com.google.android.gms.internal.p001authapi.zzt; /* compiled from: com.google.android.gms:play-services-auth@@19.0.0 */ public final class l extends m { public final /* synthetic */ Credential l; diff --git a/app/src/main/java/c/i/a/f/h/c/p.java b/app/src/main/java/c/i/a/f/h/c/p.java index a325861081..3038e2ae15 100644 --- a/app/src/main/java/c/i/a/f/h/c/p.java +++ b/app/src/main/java/c/i/a/f/h/c/p.java @@ -4,7 +4,7 @@ import android.os.Parcel; import android.os.Parcelable; import c.c.a.a0.d; import com.google.android.gms.auth.api.credentials.Credential; -import com.google.android.gms.internal.p000authapi.zzt; +import com.google.android.gms.internal.p001authapi.zzt; /* compiled from: com.google.android.gms:play-services-auth@@19.0.0 */ public final class p implements Parcelable.Creator { /* Return type fixed from 'java.lang.Object' to match base method */ diff --git a/app/src/main/java/c/i/a/f/h/c/s.java b/app/src/main/java/c/i/a/f/h/c/s.java index c866a2c545..152fd2ceed 100644 --- a/app/src/main/java/c/i/a/f/h/c/s.java +++ b/app/src/main/java/c/i/a/f/h/c/s.java @@ -4,8 +4,8 @@ import android.os.IBinder; import android.os.Parcel; import android.os.RemoteException; import com.google.android.gms.auth.api.credentials.CredentialRequest; -import com.google.android.gms.internal.p000authapi.zzt; -import com.google.android.gms.internal.p000authapi.zzz; +import com.google.android.gms.internal.p001authapi.zzt; +import com.google.android.gms.internal.p001authapi.zzz; /* compiled from: com.google.android.gms:play-services-auth@@19.0.0 */ public final class s extends c implements t { public s(IBinder iBinder) { diff --git a/app/src/main/java/c/i/a/f/h/c/t.java b/app/src/main/java/c/i/a/f/h/c/t.java index 1901b549b7..b4dff4c254 100644 --- a/app/src/main/java/c/i/a/f/h/c/t.java +++ b/app/src/main/java/c/i/a/f/h/c/t.java @@ -3,8 +3,8 @@ package c.i.a.f.h.c; import android.os.IInterface; import android.os.RemoteException; import com.google.android.gms.auth.api.credentials.CredentialRequest; -import com.google.android.gms.internal.p000authapi.zzt; -import com.google.android.gms.internal.p000authapi.zzz; +import com.google.android.gms.internal.p001authapi.zzt; +import com.google.android.gms.internal.p001authapi.zzz; /* compiled from: com.google.android.gms:play-services-auth@@19.0.0 */ public interface t extends IInterface { void I(r rVar, zzt zzt) throws RemoteException; diff --git a/app/src/main/java/c/i/a/f/h/c/u.java b/app/src/main/java/c/i/a/f/h/c/u.java index e46106b56a..c5b33ff4d3 100644 --- a/app/src/main/java/c/i/a/f/h/c/u.java +++ b/app/src/main/java/c/i/a/f/h/c/u.java @@ -4,7 +4,7 @@ import android.os.Parcel; import android.os.Parcelable; import c.c.a.a0.d; import com.google.android.gms.auth.api.credentials.Credential; -import com.google.android.gms.internal.p000authapi.zzz; +import com.google.android.gms.internal.p001authapi.zzz; /* compiled from: com.google.android.gms:play-services-auth@@19.0.0 */ public final class u implements Parcelable.Creator { /* Return type fixed from 'java.lang.Object' to match base method */ diff --git a/app/src/main/java/co/discord/media_engine/internal/DeviceInfo.java b/app/src/main/java/co/discord/media_engine/internal/DeviceInfo.java index 393b39a05d..479332596f 100644 --- a/app/src/main/java/co/discord/media_engine/internal/DeviceInfo.java +++ b/app/src/main/java/co/discord/media_engine/internal/DeviceInfo.java @@ -1,6 +1,7 @@ package co.discord.media_engine.internal; import androidx.annotation.NonNull; +import androidx.core.os.EnvironmentCompat; import co.discord.media_engine.CameraEnumeratorProvider; import java.util.Locale; import org.webrtc.CameraEnumerator; @@ -9,6 +10,11 @@ public final class DeviceInfo { return CameraEnumeratorProvider.get(); } + @NonNull + private String getDeviceFacingString(int i) { + return getDeviceFrontFacing(i) ? "front" : getDeviceBackFacing(i) ? "back" : EnvironmentCompat.MEDIA_UNKNOWN; + } + public boolean getDeviceBackFacing(int i) { return enumerator().isBackFacing(getDeviceName(i)); } @@ -19,7 +25,7 @@ public final class DeviceInfo { @NonNull public String getDeviceGuid(int i) { - return String.format(Locale.US, "android_camera_%d", Integer.valueOf(i)); + return String.format(Locale.US, "android_camera_%d_%s_facing", Integer.valueOf(i), getDeviceFacingString(i)); } @NonNull diff --git a/app/src/main/java/com/discord/analytics/generated/events/TrackGuildScheduledEventCreated.java b/app/src/main/java/com/discord/analytics/generated/events/TrackGuildScheduledEventCreated.java index df606d9aa3..10d321d8aa 100644 --- a/app/src/main/java/com/discord/analytics/generated/events/TrackGuildScheduledEventCreated.java +++ b/app/src/main/java/com/discord/analytics/generated/events/TrackGuildScheduledEventCreated.java @@ -13,6 +13,7 @@ import java.util.List; /* compiled from: TrackGuildScheduledEventCreated.kt */ public final class TrackGuildScheduledEventCreated implements AnalyticsSchema, TrackBaseReceiver, TrackGuildReceiver, TrackChannelReceiver { private final transient String analyticsSchemaTypeName = "guild_scheduled_event_created"; + private final CharSequence description = null; private final Long endTime = null; private final Long guildScheduledEventEntityType = null; private final CharSequence guildScheduledEventExternalLocation = null; @@ -26,6 +27,7 @@ public final class TrackGuildScheduledEventCreated implements AnalyticsSchema, T private TrackBase trackBase; private TrackChannel trackChannel; private TrackGuild trackGuild; + private final Long updaterId = null; @Override // com.discord.api.science.AnalyticsSchema public String b() { @@ -40,7 +42,7 @@ public final class TrackGuildScheduledEventCreated implements AnalyticsSchema, T return false; } TrackGuildScheduledEventCreated trackGuildScheduledEventCreated = (TrackGuildScheduledEventCreated) obj; - return m.areEqual(this.guildScheduledEventId, trackGuildScheduledEventCreated.guildScheduledEventId) && m.areEqual(this.name, trackGuildScheduledEventCreated.name) && m.areEqual(this.startTime, trackGuildScheduledEventCreated.startTime) && m.areEqual(this.endTime, trackGuildScheduledEventCreated.endTime) && m.areEqual(this.skuIds, trackGuildScheduledEventCreated.skuIds) && m.areEqual(this.guildScheduledEventStatus, trackGuildScheduledEventCreated.guildScheduledEventStatus) && m.areEqual(this.privacyLevel, trackGuildScheduledEventCreated.privacyLevel) && m.areEqual(this.guildScheduledEventEntityType, trackGuildScheduledEventCreated.guildScheduledEventEntityType) && m.areEqual(this.guildScheduledEventExternalLocation, trackGuildScheduledEventCreated.guildScheduledEventExternalLocation) && m.areEqual(this.guildScheduledEventInterestedCount, trackGuildScheduledEventCreated.guildScheduledEventInterestedCount); + return m.areEqual(this.guildScheduledEventId, trackGuildScheduledEventCreated.guildScheduledEventId) && m.areEqual(this.name, trackGuildScheduledEventCreated.name) && m.areEqual(this.startTime, trackGuildScheduledEventCreated.startTime) && m.areEqual(this.endTime, trackGuildScheduledEventCreated.endTime) && m.areEqual(this.skuIds, trackGuildScheduledEventCreated.skuIds) && m.areEqual(this.guildScheduledEventStatus, trackGuildScheduledEventCreated.guildScheduledEventStatus) && m.areEqual(this.privacyLevel, trackGuildScheduledEventCreated.privacyLevel) && m.areEqual(this.guildScheduledEventEntityType, trackGuildScheduledEventCreated.guildScheduledEventEntityType) && m.areEqual(this.guildScheduledEventExternalLocation, trackGuildScheduledEventCreated.guildScheduledEventExternalLocation) && m.areEqual(this.guildScheduledEventInterestedCount, trackGuildScheduledEventCreated.guildScheduledEventInterestedCount) && m.areEqual(this.description, trackGuildScheduledEventCreated.description) && m.areEqual(this.updaterId, trackGuildScheduledEventCreated.updaterId); } public int hashCode() { @@ -64,10 +66,14 @@ public final class TrackGuildScheduledEventCreated implements AnalyticsSchema, T CharSequence charSequence2 = this.guildScheduledEventExternalLocation; int hashCode9 = (hashCode8 + (charSequence2 != null ? charSequence2.hashCode() : 0)) * 31; Long l7 = this.guildScheduledEventInterestedCount; - if (l7 != null) { - i = l7.hashCode(); + int hashCode10 = (hashCode9 + (l7 != null ? l7.hashCode() : 0)) * 31; + CharSequence charSequence3 = this.description; + int hashCode11 = (hashCode10 + (charSequence3 != null ? charSequence3.hashCode() : 0)) * 31; + Long l8 = this.updaterId; + if (l8 != null) { + i = l8.hashCode(); } - return hashCode9 + i; + return hashCode11 + i; } public String toString() { @@ -90,6 +96,10 @@ public final class TrackGuildScheduledEventCreated implements AnalyticsSchema, T O.append(", guildScheduledEventExternalLocation="); O.append(this.guildScheduledEventExternalLocation); O.append(", guildScheduledEventInterestedCount="); - return a.E(O, this.guildScheduledEventInterestedCount, ")"); + O.append(this.guildScheduledEventInterestedCount); + O.append(", description="); + O.append(this.description); + O.append(", updaterId="); + return a.E(O, this.updaterId, ")"); } } diff --git a/app/src/main/java/com/discord/analytics/generated/events/TrackGuildScheduledEventDeleted.java b/app/src/main/java/com/discord/analytics/generated/events/TrackGuildScheduledEventDeleted.java index 73e1b7de44..0cbb3d9e5d 100644 --- a/app/src/main/java/com/discord/analytics/generated/events/TrackGuildScheduledEventDeleted.java +++ b/app/src/main/java/com/discord/analytics/generated/events/TrackGuildScheduledEventDeleted.java @@ -13,6 +13,7 @@ import java.util.List; /* compiled from: TrackGuildScheduledEventDeleted.kt */ public final class TrackGuildScheduledEventDeleted implements AnalyticsSchema, TrackBaseReceiver, TrackGuildReceiver, TrackChannelReceiver { private final transient String analyticsSchemaTypeName = "guild_scheduled_event_deleted"; + private final CharSequence description = null; private final Long endTime = null; private final Long guildScheduledEventEntityType = null; private final CharSequence guildScheduledEventExternalLocation = null; @@ -26,6 +27,7 @@ public final class TrackGuildScheduledEventDeleted implements AnalyticsSchema, T private TrackBase trackBase; private TrackChannel trackChannel; private TrackGuild trackGuild; + private final Long updaterId = null; @Override // com.discord.api.science.AnalyticsSchema public String b() { @@ -40,7 +42,7 @@ public final class TrackGuildScheduledEventDeleted implements AnalyticsSchema, T return false; } TrackGuildScheduledEventDeleted trackGuildScheduledEventDeleted = (TrackGuildScheduledEventDeleted) obj; - return m.areEqual(this.guildScheduledEventId, trackGuildScheduledEventDeleted.guildScheduledEventId) && m.areEqual(this.name, trackGuildScheduledEventDeleted.name) && m.areEqual(this.startTime, trackGuildScheduledEventDeleted.startTime) && m.areEqual(this.endTime, trackGuildScheduledEventDeleted.endTime) && m.areEqual(this.skuIds, trackGuildScheduledEventDeleted.skuIds) && m.areEqual(this.guildScheduledEventStatus, trackGuildScheduledEventDeleted.guildScheduledEventStatus) && m.areEqual(this.privacyLevel, trackGuildScheduledEventDeleted.privacyLevel) && m.areEqual(this.guildScheduledEventEntityType, trackGuildScheduledEventDeleted.guildScheduledEventEntityType) && m.areEqual(this.guildScheduledEventExternalLocation, trackGuildScheduledEventDeleted.guildScheduledEventExternalLocation) && m.areEqual(this.guildScheduledEventInterestedCount, trackGuildScheduledEventDeleted.guildScheduledEventInterestedCount); + return m.areEqual(this.guildScheduledEventId, trackGuildScheduledEventDeleted.guildScheduledEventId) && m.areEqual(this.name, trackGuildScheduledEventDeleted.name) && m.areEqual(this.startTime, trackGuildScheduledEventDeleted.startTime) && m.areEqual(this.endTime, trackGuildScheduledEventDeleted.endTime) && m.areEqual(this.skuIds, trackGuildScheduledEventDeleted.skuIds) && m.areEqual(this.guildScheduledEventStatus, trackGuildScheduledEventDeleted.guildScheduledEventStatus) && m.areEqual(this.privacyLevel, trackGuildScheduledEventDeleted.privacyLevel) && m.areEqual(this.guildScheduledEventEntityType, trackGuildScheduledEventDeleted.guildScheduledEventEntityType) && m.areEqual(this.guildScheduledEventExternalLocation, trackGuildScheduledEventDeleted.guildScheduledEventExternalLocation) && m.areEqual(this.guildScheduledEventInterestedCount, trackGuildScheduledEventDeleted.guildScheduledEventInterestedCount) && m.areEqual(this.description, trackGuildScheduledEventDeleted.description) && m.areEqual(this.updaterId, trackGuildScheduledEventDeleted.updaterId); } public int hashCode() { @@ -64,10 +66,14 @@ public final class TrackGuildScheduledEventDeleted implements AnalyticsSchema, T CharSequence charSequence2 = this.guildScheduledEventExternalLocation; int hashCode9 = (hashCode8 + (charSequence2 != null ? charSequence2.hashCode() : 0)) * 31; Long l7 = this.guildScheduledEventInterestedCount; - if (l7 != null) { - i = l7.hashCode(); + int hashCode10 = (hashCode9 + (l7 != null ? l7.hashCode() : 0)) * 31; + CharSequence charSequence3 = this.description; + int hashCode11 = (hashCode10 + (charSequence3 != null ? charSequence3.hashCode() : 0)) * 31; + Long l8 = this.updaterId; + if (l8 != null) { + i = l8.hashCode(); } - return hashCode9 + i; + return hashCode11 + i; } public String toString() { @@ -90,6 +96,10 @@ public final class TrackGuildScheduledEventDeleted implements AnalyticsSchema, T O.append(", guildScheduledEventExternalLocation="); O.append(this.guildScheduledEventExternalLocation); O.append(", guildScheduledEventInterestedCount="); - return a.E(O, this.guildScheduledEventInterestedCount, ")"); + O.append(this.guildScheduledEventInterestedCount); + O.append(", description="); + O.append(this.description); + O.append(", updaterId="); + return a.E(O, this.updaterId, ")"); } } diff --git a/app/src/main/java/com/discord/analytics/generated/events/TrackGuildScheduledEventUpdated.java b/app/src/main/java/com/discord/analytics/generated/events/TrackGuildScheduledEventUpdated.java index 40b19d4138..fd568b2d1b 100644 --- a/app/src/main/java/com/discord/analytics/generated/events/TrackGuildScheduledEventUpdated.java +++ b/app/src/main/java/com/discord/analytics/generated/events/TrackGuildScheduledEventUpdated.java @@ -13,19 +13,28 @@ import java.util.List; /* compiled from: TrackGuildScheduledEventUpdated.kt */ public final class TrackGuildScheduledEventUpdated implements AnalyticsSchema, TrackBaseReceiver, TrackGuildReceiver, TrackChannelReceiver { private final transient String analyticsSchemaTypeName = "guild_scheduled_event_updated"; + private final CharSequence description = null; private final Long endTime = null; private final Long guildScheduledEventEntityType = null; private final CharSequence guildScheduledEventExternalLocation = null; private final Long guildScheduledEventId = null; private final Long guildScheduledEventInterestedCount = null; private final Long guildScheduledEventStatus = null; + private final Long maxConcurrentListeners = null; + private final Long maxConcurrentParticipants = null; + private final Long maxConcurrentSpeakers = null; private final CharSequence name = null; + private final Long numParticipants = null; private final Long privacyLevel = null; private final List skuIds = null; private final Long startTime = null; + private final Long totalUniqueListeners = null; + private final Long totalUniqueParticipants = null; + private final Long totalUniqueSpeakers = null; private TrackBase trackBase; private TrackChannel trackChannel; private TrackGuild trackGuild; + private final Long updaterId = null; @Override // com.discord.api.science.AnalyticsSchema public String b() { @@ -40,7 +49,7 @@ public final class TrackGuildScheduledEventUpdated implements AnalyticsSchema, T return false; } TrackGuildScheduledEventUpdated trackGuildScheduledEventUpdated = (TrackGuildScheduledEventUpdated) obj; - return m.areEqual(this.guildScheduledEventId, trackGuildScheduledEventUpdated.guildScheduledEventId) && m.areEqual(this.name, trackGuildScheduledEventUpdated.name) && m.areEqual(this.startTime, trackGuildScheduledEventUpdated.startTime) && m.areEqual(this.endTime, trackGuildScheduledEventUpdated.endTime) && m.areEqual(this.skuIds, trackGuildScheduledEventUpdated.skuIds) && m.areEqual(this.guildScheduledEventStatus, trackGuildScheduledEventUpdated.guildScheduledEventStatus) && m.areEqual(this.privacyLevel, trackGuildScheduledEventUpdated.privacyLevel) && m.areEqual(this.guildScheduledEventEntityType, trackGuildScheduledEventUpdated.guildScheduledEventEntityType) && m.areEqual(this.guildScheduledEventExternalLocation, trackGuildScheduledEventUpdated.guildScheduledEventExternalLocation) && m.areEqual(this.guildScheduledEventInterestedCount, trackGuildScheduledEventUpdated.guildScheduledEventInterestedCount); + return m.areEqual(this.guildScheduledEventId, trackGuildScheduledEventUpdated.guildScheduledEventId) && m.areEqual(this.name, trackGuildScheduledEventUpdated.name) && m.areEqual(this.startTime, trackGuildScheduledEventUpdated.startTime) && m.areEqual(this.endTime, trackGuildScheduledEventUpdated.endTime) && m.areEqual(this.skuIds, trackGuildScheduledEventUpdated.skuIds) && m.areEqual(this.guildScheduledEventStatus, trackGuildScheduledEventUpdated.guildScheduledEventStatus) && m.areEqual(this.privacyLevel, trackGuildScheduledEventUpdated.privacyLevel) && m.areEqual(this.guildScheduledEventEntityType, trackGuildScheduledEventUpdated.guildScheduledEventEntityType) && m.areEqual(this.guildScheduledEventExternalLocation, trackGuildScheduledEventUpdated.guildScheduledEventExternalLocation) && m.areEqual(this.guildScheduledEventInterestedCount, trackGuildScheduledEventUpdated.guildScheduledEventInterestedCount) && m.areEqual(this.description, trackGuildScheduledEventUpdated.description) && m.areEqual(this.updaterId, trackGuildScheduledEventUpdated.updaterId) && m.areEqual(this.numParticipants, trackGuildScheduledEventUpdated.numParticipants) && m.areEqual(this.totalUniqueListeners, trackGuildScheduledEventUpdated.totalUniqueListeners) && m.areEqual(this.maxConcurrentListeners, trackGuildScheduledEventUpdated.maxConcurrentListeners) && m.areEqual(this.totalUniqueSpeakers, trackGuildScheduledEventUpdated.totalUniqueSpeakers) && m.areEqual(this.maxConcurrentSpeakers, trackGuildScheduledEventUpdated.maxConcurrentSpeakers) && m.areEqual(this.totalUniqueParticipants, trackGuildScheduledEventUpdated.totalUniqueParticipants) && m.areEqual(this.maxConcurrentParticipants, trackGuildScheduledEventUpdated.maxConcurrentParticipants); } public int hashCode() { @@ -64,10 +73,28 @@ public final class TrackGuildScheduledEventUpdated implements AnalyticsSchema, T CharSequence charSequence2 = this.guildScheduledEventExternalLocation; int hashCode9 = (hashCode8 + (charSequence2 != null ? charSequence2.hashCode() : 0)) * 31; Long l7 = this.guildScheduledEventInterestedCount; - if (l7 != null) { - i = l7.hashCode(); + int hashCode10 = (hashCode9 + (l7 != null ? l7.hashCode() : 0)) * 31; + CharSequence charSequence3 = this.description; + int hashCode11 = (hashCode10 + (charSequence3 != null ? charSequence3.hashCode() : 0)) * 31; + Long l8 = this.updaterId; + int hashCode12 = (hashCode11 + (l8 != null ? l8.hashCode() : 0)) * 31; + Long l9 = this.numParticipants; + int hashCode13 = (hashCode12 + (l9 != null ? l9.hashCode() : 0)) * 31; + Long l10 = this.totalUniqueListeners; + int hashCode14 = (hashCode13 + (l10 != null ? l10.hashCode() : 0)) * 31; + Long l11 = this.maxConcurrentListeners; + int hashCode15 = (hashCode14 + (l11 != null ? l11.hashCode() : 0)) * 31; + Long l12 = this.totalUniqueSpeakers; + int hashCode16 = (hashCode15 + (l12 != null ? l12.hashCode() : 0)) * 31; + Long l13 = this.maxConcurrentSpeakers; + int hashCode17 = (hashCode16 + (l13 != null ? l13.hashCode() : 0)) * 31; + Long l14 = this.totalUniqueParticipants; + int hashCode18 = (hashCode17 + (l14 != null ? l14.hashCode() : 0)) * 31; + Long l15 = this.maxConcurrentParticipants; + if (l15 != null) { + i = l15.hashCode(); } - return hashCode9 + i; + return hashCode18 + i; } public String toString() { @@ -90,6 +117,24 @@ public final class TrackGuildScheduledEventUpdated implements AnalyticsSchema, T O.append(", guildScheduledEventExternalLocation="); O.append(this.guildScheduledEventExternalLocation); O.append(", guildScheduledEventInterestedCount="); - return a.E(O, this.guildScheduledEventInterestedCount, ")"); + O.append(this.guildScheduledEventInterestedCount); + O.append(", description="); + O.append(this.description); + O.append(", updaterId="); + O.append(this.updaterId); + O.append(", numParticipants="); + O.append(this.numParticipants); + O.append(", totalUniqueListeners="); + O.append(this.totalUniqueListeners); + O.append(", maxConcurrentListeners="); + O.append(this.maxConcurrentListeners); + O.append(", totalUniqueSpeakers="); + O.append(this.totalUniqueSpeakers); + O.append(", maxConcurrentSpeakers="); + O.append(this.maxConcurrentSpeakers); + O.append(", totalUniqueParticipants="); + O.append(this.totalUniqueParticipants); + O.append(", maxConcurrentParticipants="); + return a.E(O, this.maxConcurrentParticipants, ")"); } } diff --git a/app/src/main/java/com/discord/analytics/generated/events/TrackImageScanned.java b/app/src/main/java/com/discord/analytics/generated/events/TrackImageScanned.java index c866f4a635..1dc843b2ab 100644 --- a/app/src/main/java/com/discord/analytics/generated/events/TrackImageScanned.java +++ b/app/src/main/java/com/discord/analytics/generated/events/TrackImageScanned.java @@ -8,6 +8,7 @@ import com.discord.api.science.AnalyticsSchema; /* compiled from: TrackImageScanned.kt */ public final class TrackImageScanned implements AnalyticsSchema, TrackBaseReceiver { private final transient String analyticsSchemaTypeName = "image_scanned"; + private final Long guildId = null; private final Float openNsfwNsfw = null; private final Float openNsfwSfw = null; private final CharSequence provider = null; @@ -32,7 +33,7 @@ public final class TrackImageScanned implements AnalyticsSchema, TrackBaseReceiv return false; } TrackImageScanned trackImageScanned = (TrackImageScanned) obj; - return m.areEqual(this.scanUuid, trackImageScanned.scanUuid) && m.areEqual(this.provider, trackImageScanned.provider) && m.areEqual(this.safeSearchAdultLikelihood, trackImageScanned.safeSearchAdultLikelihood) && m.areEqual(this.safeSearchMedicalLikelihood, trackImageScanned.safeSearchMedicalLikelihood) && m.areEqual(this.safeSearchRacyLikelihood, trackImageScanned.safeSearchRacyLikelihood) && m.areEqual(this.safeSearchSpoofLikelihood, trackImageScanned.safeSearchSpoofLikelihood) && m.areEqual(this.safeSearchViolenceLikelihood, trackImageScanned.safeSearchViolenceLikelihood) && m.areEqual(this.openNsfwSfw, trackImageScanned.openNsfwSfw) && m.areEqual(this.openNsfwNsfw, trackImageScanned.openNsfwNsfw); + return m.areEqual(this.scanUuid, trackImageScanned.scanUuid) && m.areEqual(this.provider, trackImageScanned.provider) && m.areEqual(this.safeSearchAdultLikelihood, trackImageScanned.safeSearchAdultLikelihood) && m.areEqual(this.safeSearchMedicalLikelihood, trackImageScanned.safeSearchMedicalLikelihood) && m.areEqual(this.safeSearchRacyLikelihood, trackImageScanned.safeSearchRacyLikelihood) && m.areEqual(this.safeSearchSpoofLikelihood, trackImageScanned.safeSearchSpoofLikelihood) && m.areEqual(this.safeSearchViolenceLikelihood, trackImageScanned.safeSearchViolenceLikelihood) && m.areEqual(this.openNsfwSfw, trackImageScanned.openNsfwSfw) && m.areEqual(this.openNsfwNsfw, trackImageScanned.openNsfwNsfw) && m.areEqual(this.guildId, trackImageScanned.guildId); } public int hashCode() { @@ -54,10 +55,12 @@ public final class TrackImageScanned implements AnalyticsSchema, TrackBaseReceiv Float f = this.openNsfwSfw; int hashCode8 = (hashCode7 + (f != null ? f.hashCode() : 0)) * 31; Float f2 = this.openNsfwNsfw; - if (f2 != null) { - i = f2.hashCode(); + int hashCode9 = (hashCode8 + (f2 != null ? f2.hashCode() : 0)) * 31; + Long l = this.guildId; + if (l != null) { + i = l.hashCode(); } - return hashCode8 + i; + return hashCode9 + i; } public String toString() { @@ -79,7 +82,7 @@ public final class TrackImageScanned implements AnalyticsSchema, TrackBaseReceiv O.append(this.openNsfwSfw); O.append(", openNsfwNsfw="); O.append(this.openNsfwNsfw); - O.append(")"); - return O.toString(); + O.append(", guildId="); + return a.E(O, this.guildId, ")"); } } diff --git a/app/src/main/java/com/discord/p000native/engine/AudioInputDeviceDescription.java b/app/src/main/java/com/discord/p000native/engine/AudioInputDeviceDescription.java new file mode 100644 index 0000000000..ae28d4af7b --- /dev/null +++ b/app/src/main/java/com/discord/p000native/engine/AudioInputDeviceDescription.java @@ -0,0 +1,79 @@ +package com.discord.p000native.engine; + +import c.d.b.a.a; +import c0.z.d.m; +import com.discord.models.domain.ModelAuditLogEntry; +/* compiled from: AudioInputDeviceDescription.kt */ +/* renamed from: com.discord.native.engine.AudioInputDeviceDescription reason: invalid package */ +public final class AudioInputDeviceDescription { + private final String guid; + private final String name; + + public AudioInputDeviceDescription(String str, String str2) { + m.checkNotNullParameter(str, ModelAuditLogEntry.CHANGE_KEY_NAME); + m.checkNotNullParameter(str2, "guid"); + this.name = str; + this.guid = str2; + } + + public static /* synthetic */ AudioInputDeviceDescription copy$default(AudioInputDeviceDescription audioInputDeviceDescription, String str, String str2, int i, Object obj) { + if ((i & 1) != 0) { + str = audioInputDeviceDescription.name; + } + if ((i & 2) != 0) { + str2 = audioInputDeviceDescription.guid; + } + return audioInputDeviceDescription.copy(str, str2); + } + + public final String component1() { + return this.name; + } + + public final String component2() { + return this.guid; + } + + public final AudioInputDeviceDescription copy(String str, String str2) { + m.checkNotNullParameter(str, ModelAuditLogEntry.CHANGE_KEY_NAME); + m.checkNotNullParameter(str2, "guid"); + return new AudioInputDeviceDescription(str, str2); + } + + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (!(obj instanceof AudioInputDeviceDescription)) { + return false; + } + AudioInputDeviceDescription audioInputDeviceDescription = (AudioInputDeviceDescription) obj; + return m.areEqual(this.name, audioInputDeviceDescription.name) && m.areEqual(this.guid, audioInputDeviceDescription.guid); + } + + public final String getGuid() { + return this.guid; + } + + public final String getName() { + return this.name; + } + + public int hashCode() { + String str = this.name; + int i = 0; + int hashCode = (str != null ? str.hashCode() : 0) * 31; + String str2 = this.guid; + if (str2 != null) { + i = str2.hashCode(); + } + return hashCode + i; + } + + public String toString() { + StringBuilder O = a.O("AudioInputDeviceDescription(name="); + O.append(this.name); + O.append(", guid="); + return a.G(O, this.guid, ")"); + } +} diff --git a/app/src/main/java/com/discord/p000native/engine/AudioOutputDeviceDescription.java b/app/src/main/java/com/discord/p000native/engine/AudioOutputDeviceDescription.java new file mode 100644 index 0000000000..c51fc01446 --- /dev/null +++ b/app/src/main/java/com/discord/p000native/engine/AudioOutputDeviceDescription.java @@ -0,0 +1,79 @@ +package com.discord.p000native.engine; + +import c.d.b.a.a; +import c0.z.d.m; +import com.discord.models.domain.ModelAuditLogEntry; +/* compiled from: AudioOutputDeviceDescription.kt */ +/* renamed from: com.discord.native.engine.AudioOutputDeviceDescription reason: invalid package */ +public final class AudioOutputDeviceDescription { + private final String guid; + private final String name; + + public AudioOutputDeviceDescription(String str, String str2) { + m.checkNotNullParameter(str, ModelAuditLogEntry.CHANGE_KEY_NAME); + m.checkNotNullParameter(str2, "guid"); + this.name = str; + this.guid = str2; + } + + public static /* synthetic */ AudioOutputDeviceDescription copy$default(AudioOutputDeviceDescription audioOutputDeviceDescription, String str, String str2, int i, Object obj) { + if ((i & 1) != 0) { + str = audioOutputDeviceDescription.name; + } + if ((i & 2) != 0) { + str2 = audioOutputDeviceDescription.guid; + } + return audioOutputDeviceDescription.copy(str, str2); + } + + public final String component1() { + return this.name; + } + + public final String component2() { + return this.guid; + } + + public final AudioOutputDeviceDescription copy(String str, String str2) { + m.checkNotNullParameter(str, ModelAuditLogEntry.CHANGE_KEY_NAME); + m.checkNotNullParameter(str2, "guid"); + return new AudioOutputDeviceDescription(str, str2); + } + + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (!(obj instanceof AudioOutputDeviceDescription)) { + return false; + } + AudioOutputDeviceDescription audioOutputDeviceDescription = (AudioOutputDeviceDescription) obj; + return m.areEqual(this.name, audioOutputDeviceDescription.name) && m.areEqual(this.guid, audioOutputDeviceDescription.guid); + } + + public final String getGuid() { + return this.guid; + } + + public final String getName() { + return this.name; + } + + public int hashCode() { + String str = this.name; + int i = 0; + int hashCode = (str != null ? str.hashCode() : 0) * 31; + String str2 = this.guid; + if (str2 != null) { + i = str2.hashCode(); + } + return hashCode + i; + } + + public String toString() { + StringBuilder O = a.O("AudioOutputDeviceDescription(name="); + O.append(this.name); + O.append(", guid="); + return a.G(O, this.guid, ")"); + } +} diff --git a/app/src/main/java/com/discord/p000native/engine/ConnectionInfo.java b/app/src/main/java/com/discord/p000native/engine/ConnectionInfo.java new file mode 100644 index 0000000000..c1e06233c9 --- /dev/null +++ b/app/src/main/java/com/discord/p000native/engine/ConnectionInfo.java @@ -0,0 +1,116 @@ +package com.discord.p000native.engine; + +import c.d.b.a.a; +import c0.z.d.m; +/* compiled from: ConnectionInfo.kt */ +/* renamed from: com.discord.native.engine.ConnectionInfo reason: invalid package */ +public final class ConnectionInfo { + private final boolean isConnected; + private final String localAddress; + private final int localPort; + private final String protocol; + + public ConnectionInfo(boolean z2, String str, String str2, int i) { + m.checkNotNullParameter(str, "protocol"); + m.checkNotNullParameter(str2, "localAddress"); + this.isConnected = z2; + this.protocol = str; + this.localAddress = str2; + this.localPort = i; + } + + public static /* synthetic */ ConnectionInfo copy$default(ConnectionInfo connectionInfo, boolean z2, String str, String str2, int i, int i2, Object obj) { + if ((i2 & 1) != 0) { + z2 = connectionInfo.isConnected; + } + if ((i2 & 2) != 0) { + str = connectionInfo.protocol; + } + if ((i2 & 4) != 0) { + str2 = connectionInfo.localAddress; + } + if ((i2 & 8) != 0) { + i = connectionInfo.localPort; + } + return connectionInfo.copy(z2, str, str2, i); + } + + public final boolean component1() { + return this.isConnected; + } + + public final String component2() { + return this.protocol; + } + + public final String component3() { + return this.localAddress; + } + + public final int component4() { + return this.localPort; + } + + public final ConnectionInfo copy(boolean z2, String str, String str2, int i) { + m.checkNotNullParameter(str, "protocol"); + m.checkNotNullParameter(str2, "localAddress"); + return new ConnectionInfo(z2, str, str2, i); + } + + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (!(obj instanceof ConnectionInfo)) { + return false; + } + ConnectionInfo connectionInfo = (ConnectionInfo) obj; + return this.isConnected == connectionInfo.isConnected && m.areEqual(this.protocol, connectionInfo.protocol) && m.areEqual(this.localAddress, connectionInfo.localAddress) && this.localPort == connectionInfo.localPort; + } + + public final String getLocalAddress() { + return this.localAddress; + } + + public final int getLocalPort() { + return this.localPort; + } + + public final String getProtocol() { + return this.protocol; + } + + public int hashCode() { + boolean z2 = this.isConnected; + if (z2) { + z2 = true; + } + int i = z2 ? 1 : 0; + int i2 = z2 ? 1 : 0; + int i3 = z2 ? 1 : 0; + int i4 = i * 31; + String str = this.protocol; + int i5 = 0; + int hashCode = (i4 + (str != null ? str.hashCode() : 0)) * 31; + String str2 = this.localAddress; + if (str2 != null) { + i5 = str2.hashCode(); + } + return ((hashCode + i5) * 31) + this.localPort; + } + + public final boolean isConnected() { + return this.isConnected; + } + + public String toString() { + StringBuilder O = a.O("ConnectionInfo(isConnected="); + O.append(this.isConnected); + O.append(", protocol="); + O.append(this.protocol); + O.append(", localAddress="); + O.append(this.localAddress); + O.append(", localPort="); + return a.z(O, this.localPort, ")"); + } +} diff --git a/app/src/main/java/com/discord/p000native/engine/NativeConnection.java b/app/src/main/java/com/discord/p000native/engine/NativeConnection.java new file mode 100644 index 0000000000..fea782a807 --- /dev/null +++ b/app/src/main/java/com/discord/p000native/engine/NativeConnection.java @@ -0,0 +1,98 @@ +package com.discord.p000native.engine; + +import org.webrtc.VideoCapturer; +/* compiled from: NativeConnection.kt */ +/* renamed from: com.discord.native.engine.NativeConnection reason: invalid package */ +public final class NativeConnection { + private final long nativeInstance; + + /* compiled from: NativeConnection.kt */ + /* renamed from: com.discord.native.engine.NativeConnection$GetEncryptionModesCallback */ + public interface GetEncryptionModesCallback { + void onEncryptionModes(String[] strArr); + } + + /* compiled from: NativeConnection.kt */ + /* renamed from: com.discord.native.engine.NativeConnection$GetStatsCallback */ + public interface GetStatsCallback { + void onStats(String str); + } + + /* compiled from: NativeConnection.kt */ + /* renamed from: com.discord.native.engine.NativeConnection$OnPingCallback */ + public interface OnPingCallback { + void onPing(int i, String str, int i2, int i3); + } + + /* compiled from: NativeConnection.kt */ + /* renamed from: com.discord.native.engine.NativeConnection$OnPingTimeoutCallback */ + public interface OnPingTimeoutCallback { + void onPingTimeout(String str, int i, int i2, int i3); + } + + /* compiled from: NativeConnection.kt */ + /* renamed from: com.discord.native.engine.NativeConnection$OnSpeakingCallback */ + public interface OnSpeakingCallback { + void onSpeaking(String str, int i); + } + + /* compiled from: NativeConnection.kt */ + /* renamed from: com.discord.native.engine.NativeConnection$OnVideoCallback */ + public interface OnVideoCallback { + void onVideo(String str, long j, String str2, String str3); + } + + private final native void nativeDestroyInstance(); + + public final native void configureConnectionRetries(int i, int i2, int i3); + + public final native void destroyUser(String str); + + public final void dispose() { + nativeDestroyInstance(); + } + + public final native void getEncryptionModes(GetEncryptionModesCallback getEncryptionModesCallback); + + public final native void getFilteredStats(int i, GetStatsCallback getStatsCallback); + + public final native void getStats(GetStatsCallback getStatsCallback); + + public final native void mergeUsers(String str); + + public final native void setDesktopSource(String str, boolean z2, String str2); + + public final native void setLocalMute(String str, boolean z2); + + public final native void setLocalPan(String str, float f, float f2); + + public final native void setLocalVolume(String str, float f); + + public final native void setMinimumOutputDelay(int i); + + public final native void setNoInputThreshold(float f); + + public final native void setOnPingCallback(OnPingCallback onPingCallback); + + public final native void setOnPingTimeoutCallback(OnPingTimeoutCallback onPingTimeoutCallback); + + public final native void setOnSpeakingCallback(OnSpeakingCallback onSpeakingCallback); + + public final native void setOnVideoCallback(OnVideoCallback onVideoCallback); + + public final native void setPTTActive(boolean z2, boolean z3); + + public final native void setPingInterval(int i); + + public final native void setSelfDeafen(boolean z2); + + public final native void setSelfMute(boolean z2); + + public final native void setTransportOptions(String str); + + public final native void setVideoBroadcast(boolean z2); + + public final native void startBroadcast(VideoCapturer videoCapturer, long j); + + public final native void stopBroadcast(); +} diff --git a/app/src/main/java/com/discord/p000native/engine/NativeEngine.java b/app/src/main/java/com/discord/p000native/engine/NativeEngine.java new file mode 100644 index 0000000000..07a87a411b --- /dev/null +++ b/app/src/main/java/com/discord/p000native/engine/NativeEngine.java @@ -0,0 +1,168 @@ +package com.discord.p000native.engine; + +import android.content.Context; +import c0.z.d.m; +import co.discord.media_engine.CameraEnumeratorProvider; +import co.discord.media_engine.SharedEglBaseContext; +import kotlin.jvm.internal.DefaultConstructorMarker; +import org.webrtc.EglBase; +import org.webrtc.VideoFrame; +/* compiled from: NativeEngine.kt */ +/* renamed from: com.discord.native.engine.NativeEngine reason: invalid package */ +public final class NativeEngine { + public static final Companion Companion = new Companion(null); + public static final int LOGLEVEL_DEBUG = 2; + public static final int LOGLEVEL_DEFAULT = -1; + private final int logLevel; + private final long nativeInstance; + + /* compiled from: NativeEngine.kt */ + /* renamed from: com.discord.native.engine.NativeEngine$Companion */ + public static final class Companion { + private Companion() { + } + + public /* synthetic */ Companion(DefaultConstructorMarker defaultConstructorMarker) { + this(); + } + } + + /* compiled from: NativeEngine.kt */ + /* renamed from: com.discord.native.engine.NativeEngine$ConnectToServerCallback */ + public interface ConnectToServerCallback { + void onConnectToServer(ConnectionInfo connectionInfo, String str); + } + + /* compiled from: NativeEngine.kt */ + /* renamed from: com.discord.native.engine.NativeEngine$DeviceChangeCallback */ + public interface DeviceChangeCallback { + void onChange(AudioInputDeviceDescription[] audioInputDeviceDescriptionArr, AudioOutputDeviceDescription[] audioOutputDeviceDescriptionArr, VideoInputDeviceDescription[] videoInputDeviceDescriptionArr); + } + + /* compiled from: NativeEngine.kt */ + /* renamed from: com.discord.native.engine.NativeEngine$GetAudioInputDevicesCallback */ + public interface GetAudioInputDevicesCallback { + void onDevices(AudioInputDeviceDescription[] audioInputDeviceDescriptionArr); + } + + /* compiled from: NativeEngine.kt */ + /* renamed from: com.discord.native.engine.NativeEngine$GetAudioOutputDevicesCallback */ + public interface GetAudioOutputDevicesCallback { + void onDevices(AudioOutputDeviceDescription[] audioOutputDeviceDescriptionArr); + } + + /* compiled from: NativeEngine.kt */ + /* renamed from: com.discord.native.engine.NativeEngine$GetAudioSubsystemCallback */ + public interface GetAudioSubsystemCallback { + void onAudioSubsystem(String str, String str2); + } + + /* compiled from: NativeEngine.kt */ + /* renamed from: com.discord.native.engine.NativeEngine$GetRankedRtcRegionsCallback */ + public interface GetRankedRtcRegionsCallback { + void onRankedRtcRegions(String[] strArr); + } + + /* compiled from: NativeEngine.kt */ + /* renamed from: com.discord.native.engine.NativeEngine$GetSupportedVideoCodecsCallback */ + public interface GetSupportedVideoCodecsCallback { + void onSupportedVideoCodecs(String[] strArr); + } + + /* compiled from: NativeEngine.kt */ + /* renamed from: com.discord.native.engine.NativeEngine$GetVideoInputDevicesCallback */ + public interface GetVideoInputDevicesCallback { + void onDevices(VideoInputDeviceDescription[] videoInputDeviceDescriptionArr); + } + + /* compiled from: NativeEngine.kt */ + /* renamed from: com.discord.native.engine.NativeEngine$OnNoInputCallback */ + public interface OnNoInputCallback { + void onNoInput(boolean z2); + } + + /* compiled from: NativeEngine.kt */ + /* renamed from: com.discord.native.engine.NativeEngine$OnVoiceCallback */ + public interface OnVoiceCallback { + void onVoice(float f, int i); + } + + /* compiled from: NativeEngine.kt */ + /* renamed from: com.discord.native.engine.NativeEngine$VideoFrameCallback */ + public interface VideoFrameCallback { + boolean onFrame(VideoFrame videoFrame); + } + + static { + System.loadLibrary("discord"); + } + + public NativeEngine(Context context, int i) { + m.checkNotNullParameter(context, "context"); + this.logLevel = i; + Context applicationContext = context.getApplicationContext(); + m.checkNotNullExpressionValue(applicationContext, "context.applicationContext"); + CameraEnumeratorProvider.maybeInit(applicationContext); + Context applicationContext2 = context.getApplicationContext(); + m.checkNotNullExpressionValue(applicationContext2, "context.applicationContext"); + EglBase.Context eglContext = SharedEglBaseContext.getEglContext(); + m.checkNotNullExpressionValue(eglContext, "SharedEglBaseContext.getEglContext()"); + this.nativeInstance = nativeCreateInstance(applicationContext2, eglContext, i); + } + + private final native long nativeCreateInstance(Context context, EglBase.Context context2, int i); + + private final native void nativeDestroyInstance(); + + public final native NativeConnection createVoiceConnection(long j, String str, String str2, int i, String str3, String str4, ConnectToServerCallback connectToServerCallback); + + public final void dispose() { + nativeDestroyInstance(); + } + + public final native void enableBuiltInAEC(boolean z2); + + public final native void getAudioSubsystem(GetAudioSubsystemCallback getAudioSubsystemCallback); + + public final native void getInputDevices(GetAudioInputDevicesCallback getAudioInputDevicesCallback); + + public final native void getOutputDevices(GetAudioOutputDevicesCallback getAudioOutputDevicesCallback); + + public final native void getSupportedVideoCodecs(GetSupportedVideoCodecsCallback getSupportedVideoCodecsCallback); + + public final native void getVideoInputDevices(GetVideoInputDevicesCallback getVideoInputDevicesCallback); + + public final native void rankRtcRegions(String str, GetRankedRtcRegionsCallback getRankedRtcRegionsCallback); + + public final native void setAudioInputEnabled(boolean z2); + + public final native void setEmitVADLevel(boolean z2, boolean z3, String str); + + public final native void setInputDevice(String str); + + public final native void setInputDeviceIndex(int i); + + public final native void setInputVolume(float f); + + public final native void setNoInputThreshold(float f); + + public final native void setOnDeviceChangeCallback(DeviceChangeCallback deviceChangeCallback); + + public final native void setOnNoInputCallback(OnNoInputCallback onNoInputCallback); + + public final native void setOnVoiceCallback(OnVoiceCallback onVoiceCallback); + + public final native void setOutputDevice(String str); + + public final native void setOutputDeviceIndex(int i); + + public final native void setOutputVolume(float f); + + public final native void setTransportOptions(String str); + + public final native void setVideoInputDevice(String str); + + public final native void setVideoInputDeviceIndex(int i); + + public final native void setVideoOutputSink(String str, VideoFrameCallback videoFrameCallback); +} diff --git a/app/src/main/java/com/discord/p000native/engine/VideoInputDeviceDescription.java b/app/src/main/java/com/discord/p000native/engine/VideoInputDeviceDescription.java new file mode 100644 index 0000000000..0342f26aff --- /dev/null +++ b/app/src/main/java/com/discord/p000native/engine/VideoInputDeviceDescription.java @@ -0,0 +1,100 @@ +package com.discord.p000native.engine; + +import c.d.b.a.a; +import c0.z.d.m; +import com.discord.models.domain.ModelAuditLogEntry; +/* compiled from: VideoInputDeviceDescription.kt */ +/* renamed from: com.discord.native.engine.VideoInputDeviceDescription reason: invalid package */ +public final class VideoInputDeviceDescription { + private final VideoInputDeviceFacing facing; + private final String guid; + private final String name; + + public VideoInputDeviceDescription(String str, String str2, VideoInputDeviceFacing videoInputDeviceFacing) { + m.checkNotNullParameter(str, ModelAuditLogEntry.CHANGE_KEY_NAME); + m.checkNotNullParameter(str2, "guid"); + m.checkNotNullParameter(videoInputDeviceFacing, "facing"); + this.name = str; + this.guid = str2; + this.facing = videoInputDeviceFacing; + } + + public static /* synthetic */ VideoInputDeviceDescription copy$default(VideoInputDeviceDescription videoInputDeviceDescription, String str, String str2, VideoInputDeviceFacing videoInputDeviceFacing, int i, Object obj) { + if ((i & 1) != 0) { + str = videoInputDeviceDescription.name; + } + if ((i & 2) != 0) { + str2 = videoInputDeviceDescription.guid; + } + if ((i & 4) != 0) { + videoInputDeviceFacing = videoInputDeviceDescription.facing; + } + return videoInputDeviceDescription.copy(str, str2, videoInputDeviceFacing); + } + + public final String component1() { + return this.name; + } + + public final String component2() { + return this.guid; + } + + public final VideoInputDeviceFacing component3() { + return this.facing; + } + + public final VideoInputDeviceDescription copy(String str, String str2, VideoInputDeviceFacing videoInputDeviceFacing) { + m.checkNotNullParameter(str, ModelAuditLogEntry.CHANGE_KEY_NAME); + m.checkNotNullParameter(str2, "guid"); + m.checkNotNullParameter(videoInputDeviceFacing, "facing"); + return new VideoInputDeviceDescription(str, str2, videoInputDeviceFacing); + } + + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (!(obj instanceof VideoInputDeviceDescription)) { + return false; + } + VideoInputDeviceDescription videoInputDeviceDescription = (VideoInputDeviceDescription) obj; + return m.areEqual(this.name, videoInputDeviceDescription.name) && m.areEqual(this.guid, videoInputDeviceDescription.guid) && m.areEqual(this.facing, videoInputDeviceDescription.facing); + } + + public final VideoInputDeviceFacing getFacing() { + return this.facing; + } + + public final String getGuid() { + return this.guid; + } + + public final String getName() { + return this.name; + } + + public int hashCode() { + String str = this.name; + int i = 0; + int hashCode = (str != null ? str.hashCode() : 0) * 31; + String str2 = this.guid; + int hashCode2 = (hashCode + (str2 != null ? str2.hashCode() : 0)) * 31; + VideoInputDeviceFacing videoInputDeviceFacing = this.facing; + if (videoInputDeviceFacing != null) { + i = videoInputDeviceFacing.hashCode(); + } + return hashCode2 + i; + } + + public String toString() { + StringBuilder O = a.O("VideoInputDeviceDescription(name="); + O.append(this.name); + O.append(", guid="); + O.append(this.guid); + O.append(", facing="); + O.append(this.facing); + O.append(")"); + return O.toString(); + } +} diff --git a/app/src/main/java/com/discord/p000native/engine/VideoInputDeviceFacing.java b/app/src/main/java/com/discord/p000native/engine/VideoInputDeviceFacing.java new file mode 100644 index 0000000000..49a991686b --- /dev/null +++ b/app/src/main/java/com/discord/p000native/engine/VideoInputDeviceFacing.java @@ -0,0 +1,8 @@ +package com.discord.p000native.engine; +/* compiled from: VideoInputDeviceFacing.kt */ +/* renamed from: com.discord.native.engine.VideoInputDeviceFacing reason: invalid package */ +public enum VideoInputDeviceFacing { + Unknown, + Front, + Back +} diff --git a/app/src/main/java/com/discord/stores/StoreApplicationCommandFrecency$onCommandUsed$1.java b/app/src/main/java/com/discord/stores/StoreApplicationCommandFrecency$onCommandUsed$1.java new file mode 100644 index 0000000000..a2c664eee9 --- /dev/null +++ b/app/src/main/java/com/discord/stores/StoreApplicationCommandFrecency$onCommandUsed$1.java @@ -0,0 +1,33 @@ +package com.discord.stores; + +import c0.z.d.o; +import com.discord.utilities.frecency.FrecencyTracker; +import java.util.Map; +import kotlin.Unit; +import kotlin.jvm.functions.Function0; +/* compiled from: StoreApplicationCommandFrecency.kt */ +public final class StoreApplicationCommandFrecency$onCommandUsed$1 extends o implements Function0 { + public final /* synthetic */ String $commandId; + public final /* synthetic */ Long $guildId; + public final /* synthetic */ StoreApplicationCommandFrecency this$0; + + /* JADX INFO: super call moved to the top of the method (can break code semantics) */ + public StoreApplicationCommandFrecency$onCommandUsed$1(StoreApplicationCommandFrecency storeApplicationCommandFrecency, Long l, String str) { + super(0); + this.this$0 = storeApplicationCommandFrecency; + this.$guildId = l; + this.$commandId = str; + } + + @Override // kotlin.jvm.functions.Function0 + /* renamed from: invoke */ + public final void mo17invoke() { + FrecencyTracker.track$default(StoreApplicationCommandFrecency.access$getFrecency$p(this.this$0), StoreApplicationCommandFrecency.access$getKey(this.this$0, this.$guildId, this.$commandId), 0, 2, null); + StoreApplicationCommandFrecency.access$getFrecencyCache$p(this.this$0).set(StoreApplicationCommandFrecency.access$getFrecency$p(this.this$0), true); + Map access$getTopCommandIds$p = StoreApplicationCommandFrecency.access$getTopCommandIds$p(this.this$0); + Long l = this.$guildId; + access$getTopCommandIds$p.put(Long.valueOf(l != null ? l.longValue() : 0), StoreApplicationCommandFrecency.access$getAllTopCommandIds(this.this$0, this.$guildId)); + StoreApplicationCommandFrecency storeApplicationCommandFrecency = this.this$0; + storeApplicationCommandFrecency.markChanged(storeApplicationCommandFrecency); + } +} diff --git a/app/src/main/java/com/discord/stores/StoreApplicationCommandFrecency$populateStore$1.java b/app/src/main/java/com/discord/stores/StoreApplicationCommandFrecency$populateStore$1.java new file mode 100644 index 0000000000..c06b8d4ef0 --- /dev/null +++ b/app/src/main/java/com/discord/stores/StoreApplicationCommandFrecency$populateStore$1.java @@ -0,0 +1,59 @@ +package com.discord.stores; + +import c0.g0.s; +import c0.g0.w; +import c0.t.g0; +import c0.t.h0; +import c0.t.u; +import c0.z.d.o; +import com.discord.utilities.frecency.FrecencyTracker; +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import kotlin.Unit; +import kotlin.jvm.functions.Function0; +/* compiled from: StoreApplicationCommandFrecency.kt */ +public final class StoreApplicationCommandFrecency$populateStore$1 extends o implements Function0 { + public final /* synthetic */ StoreApplicationCommandFrecency this$0; + + /* JADX INFO: super call moved to the top of the method (can break code semantics) */ + public StoreApplicationCommandFrecency$populateStore$1(StoreApplicationCommandFrecency storeApplicationCommandFrecency) { + super(0); + this.this$0 = storeApplicationCommandFrecency; + } + + @Override // kotlin.jvm.functions.Function0 + /* renamed from: invoke */ + public final void mo17invoke() { + LinkedHashMap linkedHashMap = new LinkedHashMap(); + for (String str : FrecencyTracker.getSortedKeys$default(StoreApplicationCommandFrecency.access$getFrecency$p(this.this$0), 0, 1, null)) { + if (w.contains$default((CharSequence) str, (CharSequence) ":", false, 2, (Object) null)) { + List split$default = w.split$default((CharSequence) str, new String[]{":"}, false, 0, 6, (Object) null); + Long longOrNull = s.toLongOrNull((String) split$default.get(1)); + long longValue = longOrNull != null ? longOrNull.longValue() : 0; + String str2 = (String) split$default.get(0); + List list = (List) linkedHashMap.get(Long.valueOf(longValue)); + if (list == null) { + list = new ArrayList(); + linkedHashMap.put(Long.valueOf(longValue), list); + } + list.add(str2); + } else { + List list2 = (List) linkedHashMap.get(0L); + if (list2 == null) { + list2 = new ArrayList(); + linkedHashMap.put(0L, list2); + } + list2.add(str); + } + } + StoreApplicationCommandFrecency storeApplicationCommandFrecency = this.this$0; + LinkedHashMap linkedHashMap2 = new LinkedHashMap(g0.mapCapacity(linkedHashMap.size())); + for (Map.Entry entry : linkedHashMap.entrySet()) { + linkedHashMap2.put(entry.getKey(), u.toList((Iterable) entry.getValue())); + } + StoreApplicationCommandFrecency.access$setTopCommandIds$p(storeApplicationCommandFrecency, h0.toMutableMap(linkedHashMap2)); + StoreApplicationCommandFrecency.access$setTopCommandIdsSnapshot$p(this.this$0, linkedHashMap); + } +} diff --git a/app/src/main/java/com/discord/stores/StoreApplicationCommandFrecency.java b/app/src/main/java/com/discord/stores/StoreApplicationCommandFrecency.java index 990d8caf80..3d0f7fb778 100644 --- a/app/src/main/java/com/discord/stores/StoreApplicationCommandFrecency.java +++ b/app/src/main/java/com/discord/stores/StoreApplicationCommandFrecency.java @@ -1,12 +1,9 @@ package com.discord.stores; -import c0.g0.s; import c0.g0.w; -import c0.t.g0; import c0.t.h0; import c0.t.n; import c0.t.o; -import c0.t.u; import c0.z.d.m; import com.discord.stores.updates.ObservationDeck; import com.discord.stores.updates.ObservationDeckProvider; @@ -25,18 +22,17 @@ import kotlin.jvm.internal.DefaultConstructorMarker; import rx.Observable; /* compiled from: StoreApplicationCommandFrecency.kt */ public final class StoreApplicationCommandFrecency extends StoreV2 { + private final Dispatcher dispatcher; private final ApplicationCommandFrecencyTracker frecency; private final Persister frecencyCache; private final ObservationDeck observationDeck; private Map> topCommandIds; private Map> topCommandIdsSnapshot; - public StoreApplicationCommandFrecency() { - this(null, 1, null); - } - - public StoreApplicationCommandFrecency(ObservationDeck observationDeck) { + public StoreApplicationCommandFrecency(Dispatcher dispatcher, ObservationDeck observationDeck) { + m.checkNotNullParameter(dispatcher, "dispatcher"); m.checkNotNullParameter(observationDeck, "observationDeck"); + this.dispatcher = dispatcher; this.observationDeck = observationDeck; Persister persister = new Persister<>("CACHE_KEY_APPLICATION_COMMANDS", new ApplicationCommandFrecencyTracker(0, 0, 3, null)); this.frecencyCache = persister; @@ -47,8 +43,40 @@ public final class StoreApplicationCommandFrecency extends StoreV2 { } /* JADX INFO: this call moved to the top of the method (can break code semantics) */ - public /* synthetic */ StoreApplicationCommandFrecency(ObservationDeck observationDeck, int i, DefaultConstructorMarker defaultConstructorMarker) { - this((i & 1) != 0 ? ObservationDeckProvider.get() : observationDeck); + public /* synthetic */ StoreApplicationCommandFrecency(Dispatcher dispatcher, ObservationDeck observationDeck, int i, DefaultConstructorMarker defaultConstructorMarker) { + this(dispatcher, (i & 2) != 0 ? ObservationDeckProvider.get() : observationDeck); + } + + public static final /* synthetic */ List access$getAllTopCommandIds(StoreApplicationCommandFrecency storeApplicationCommandFrecency, Long l) { + return storeApplicationCommandFrecency.getAllTopCommandIds(l); + } + + public static final /* synthetic */ ApplicationCommandFrecencyTracker access$getFrecency$p(StoreApplicationCommandFrecency storeApplicationCommandFrecency) { + return storeApplicationCommandFrecency.frecency; + } + + public static final /* synthetic */ Persister access$getFrecencyCache$p(StoreApplicationCommandFrecency storeApplicationCommandFrecency) { + return storeApplicationCommandFrecency.frecencyCache; + } + + public static final /* synthetic */ String access$getKey(StoreApplicationCommandFrecency storeApplicationCommandFrecency, Long l, String str) { + return storeApplicationCommandFrecency.getKey(l, str); + } + + public static final /* synthetic */ Map access$getTopCommandIds$p(StoreApplicationCommandFrecency storeApplicationCommandFrecency) { + return storeApplicationCommandFrecency.topCommandIds; + } + + public static final /* synthetic */ Map access$getTopCommandIdsSnapshot$p(StoreApplicationCommandFrecency storeApplicationCommandFrecency) { + return storeApplicationCommandFrecency.topCommandIdsSnapshot; + } + + public static final /* synthetic */ void access$setTopCommandIds$p(StoreApplicationCommandFrecency storeApplicationCommandFrecency, Map map) { + storeApplicationCommandFrecency.topCommandIds = map; + } + + public static final /* synthetic */ void access$setTopCommandIdsSnapshot$p(StoreApplicationCommandFrecency storeApplicationCommandFrecency, Map map) { + storeApplicationCommandFrecency.topCommandIdsSnapshot = map; } private final List getAllTopCommandIds(Long l) { @@ -106,41 +134,11 @@ public final class StoreApplicationCommandFrecency extends StoreV2 { public final void onCommandUsed(Long l, String str) { m.checkNotNullParameter(str, "commandId"); - FrecencyTracker.track$default(this.frecency, getKey(l, str), 0, 2, null); - this.frecencyCache.set(this.frecency, true); - this.topCommandIds.put(Long.valueOf(l != null ? l.longValue() : 0), getAllTopCommandIds(l)); - markChanged(this); + this.dispatcher.schedule(new StoreApplicationCommandFrecency$onCommandUsed$1(this, l, str)); } public final void populateStore() { - LinkedHashMap linkedHashMap = new LinkedHashMap(); - for (String str : FrecencyTracker.getSortedKeys$default(this.frecency, 0, 1, null)) { - if (w.contains$default((CharSequence) str, (CharSequence) ":", false, 2, (Object) null)) { - List split$default = w.split$default((CharSequence) str, new String[]{":"}, false, 0, 6, (Object) null); - Long longOrNull = s.toLongOrNull((String) split$default.get(1)); - long longValue = longOrNull != null ? longOrNull.longValue() : 0; - String str2 = (String) split$default.get(0); - List list = (List) linkedHashMap.get(Long.valueOf(longValue)); - if (list == null) { - list = new ArrayList(); - linkedHashMap.put(Long.valueOf(longValue), list); - } - list.add(str2); - } else { - List list2 = (List) linkedHashMap.get(0L); - if (list2 == null) { - list2 = new ArrayList(); - linkedHashMap.put(0L, list2); - } - list2.add(str); - } - } - LinkedHashMap linkedHashMap2 = new LinkedHashMap(g0.mapCapacity(linkedHashMap.size())); - for (Map.Entry entry : linkedHashMap.entrySet()) { - linkedHashMap2.put(entry.getKey(), u.toList((Iterable) entry.getValue())); - } - this.topCommandIds = h0.toMutableMap(linkedHashMap2); - this.topCommandIdsSnapshot = linkedHashMap; + this.dispatcher.schedule(new StoreApplicationCommandFrecency$populateStore$1(this)); } @Override // com.discord.stores.StoreV2 diff --git a/app/src/main/java/com/discord/stores/StoreStream.java b/app/src/main/java/com/discord/stores/StoreStream.java index 20c53abf7f..8d062dcfd1 100644 --- a/app/src/main/java/com/discord/stores/StoreStream.java +++ b/app/src/main/java/com/discord/stores/StoreStream.java @@ -969,7 +969,7 @@ public final class StoreStream { this.expressionPickerNavigation = storeExpressionPickerNavigation; StoreChannelFollowerStats storeChannelFollowerStats = new StoreChannelFollowerStats(this.dispatcher, ObservationDeckProvider.get()); this.channelFollowerStats = storeChannelFollowerStats; - StoreApplicationCommandFrecency storeApplicationCommandFrecency = new StoreApplicationCommandFrecency(null, 1, null); + StoreApplicationCommandFrecency storeApplicationCommandFrecency = new StoreApplicationCommandFrecency(this.dispatcher, null, 2, null); this.applicationCommandFrecency = storeApplicationCommandFrecency; StorePendingReplies storePendingReplies = new StorePendingReplies(this.dispatcher, null, 2, null); this.pendingReplies = storePendingReplies; diff --git a/app/src/main/java/com/discord/utilities/fcm/NotificationData.java b/app/src/main/java/com/discord/utilities/fcm/NotificationData.java index 6b18eea17c..80dcaa4fd9 100644 --- a/app/src/main/java/com/discord/utilities/fcm/NotificationData.java +++ b/app/src/main/java/com/discord/utilities/fcm/NotificationData.java @@ -115,6 +115,7 @@ public final class NotificationData { private final String subtitleResName; private final String title; private final String titleResName; + private final String trackingType; private final String type; private final String userAvatar; private final Integer userDiscriminator; @@ -352,7 +353,7 @@ public final class NotificationData { this(new HashMap()); } - public NotificationData(String str, long j, MessageActivityType messageActivityType, String str2, int i, String str3, Channel channel, List list, long j2, String str4, Integer num, String str5, String str6, int i2, String str7, long j3, String str8, String str9, int i3, String str10, long j4, String str11, String str12, Sticker sticker, String str13, String str14, String str15, String str16, String str17, GuildScheduledEventEntityType guildScheduledEventEntityType, NotificationType notificationType) { + public NotificationData(String str, long j, MessageActivityType messageActivityType, String str2, int i, String str3, Channel channel, List list, long j2, String str4, Integer num, String str5, String str6, int i2, String str7, long j3, String str8, String str9, int i3, String str10, long j4, String str11, String str12, Sticker sticker, String str13, String str14, String str15, String str16, String str17, GuildScheduledEventEntityType guildScheduledEventEntityType, NotificationType notificationType, String str18) { m.checkNotNullParameter(str, "type"); m.checkNotNullParameter(channel, "channel"); m.checkNotNullParameter(list, "ackChannelIds"); @@ -386,6 +387,7 @@ public final class NotificationData { this.stageInstanceTopic = str17; this.guildScheduledEventEntityType = guildScheduledEventEntityType; this.notificationType = notificationType; + this.trackingType = str18; Long valueOf = Long.valueOf(j3); boolean z2 = false; long j5 = -1; @@ -407,7 +409,7 @@ public final class NotificationData { /* JADX WARNING: Illegal instructions before constructor call */ public NotificationData(Map map) { - this(r1, r1, r6, r7, r8, r9, r49, r11, r12, r14, r15, r16, r17, r18, r19, r20, r22, r23, r24, r25, r26, r28, r29, r30, r31, r32, r33, r34, r35, r36, r0 != null ? NotificationType.Companion.parse(r0) : null); + this(r1, r1, r6, r7, r8, r9, r49, r11, r12, r14, r15, r16, r17, r18, r19, r20, r22, r23, r24, r25, r26, r28, r29, r30, r31, r32, r33, r34, r35, r36, r1 != null ? NotificationType.Companion.parse(r1) : null, map.get("tracking_type")); Integer intOrNull; Long longOrNull; Integer intOrNull2; @@ -473,7 +475,11 @@ public final class NotificationData { } private final Intent addTrackingData(Intent intent) { - Intent putExtra = intent.putExtra(ANALYTICS_NOTIF_TYPE, this.type).putExtra(ANALYTICS_NOTIF_USER_ID, this.userId).putExtra(ANALYTICS_MESSAGE_ID, this.messageId).putExtra(ANALYTICS_MESSAGE_TYPE, this.messageType).putExtra("guild_id", this.guildId).putExtra("channel_id", this.channel.h()).putExtra(ANALYTICS_CHANNEL_TYPE, this.channel.A()).putExtra(ANALYTICS_REL_TYPE, this.relationshipType).putExtra(ANALYTICS_ACTIVITY_TYPE, this.activityType).putExtra(ANALYTICS_ACTIVITY_NAME, this.activityName); + String str = this.trackingType; + if (str == null) { + str = this.type; + } + Intent putExtra = intent.putExtra(ANALYTICS_NOTIF_TYPE, str).putExtra(ANALYTICS_NOTIF_USER_ID, this.userId).putExtra(ANALYTICS_MESSAGE_ID, this.messageId).putExtra(ANALYTICS_MESSAGE_TYPE, this.messageType).putExtra("guild_id", this.guildId).putExtra("channel_id", this.channel.h()).putExtra(ANALYTICS_CHANNEL_TYPE, this.channel.A()).putExtra(ANALYTICS_REL_TYPE, this.relationshipType).putExtra(ANALYTICS_ACTIVITY_TYPE, this.activityType).putExtra(ANALYTICS_ACTIVITY_NAME, this.activityName); m.checkNotNullExpressionValue(putExtra, "intent\n .putExtra…IVITY_NAME, activityName)"); return putExtra; } @@ -619,7 +625,7 @@ public final class NotificationData { String str3 = this.guildName; String str4 = this.guildIcon; List A = message.A(); - return new NotificationData(TYPE_MESSAGE_CREATE, o, b, g, intValue, i, a4, emptyList, i2, str, intOrNull, str2, b3, -1, null, j, str3, str4, -1, null, -1, null, null, A != null ? (Sticker) u.firstOrNull((List) A) : null, null, null, null, null, null, null, null); + return new NotificationData(TYPE_MESSAGE_CREATE, o, b, g, intValue, i, a4, emptyList, i2, str, intOrNull, str2, b3, -1, null, j, str3, str4, -1, null, -1, null, null, A != null ? (Sticker) u.firstOrNull((List) A) : null, null, null, null, null, null, null, null, null); } public final List getAckChannelIds() { diff --git a/app/src/main/java/com/discord/utilities/guildscheduledevent/GuildScheduledEventUtilities.java b/app/src/main/java/com/discord/utilities/guildscheduledevent/GuildScheduledEventUtilities.java index 58a6a486d5..357345509d 100644 --- a/app/src/main/java/com/discord/utilities/guildscheduledevent/GuildScheduledEventUtilities.java +++ b/app/src/main/java/com/discord/utilities/guildscheduledevent/GuildScheduledEventUtilities.java @@ -51,17 +51,8 @@ public final class GuildScheduledEventUtilities { return companion.canCreateAnyEvent(j, storeChannels, storePermissions); } - public static /* synthetic */ boolean canShareEvent$default(Companion companion, Long l, StoreChannels storeChannels, StoreGuilds storeGuilds, StoreUser storeUser, int i, Object obj) { - if ((i & 2) != 0) { - storeChannels = StoreStream.Companion.getChannels(); - } - if ((i & 4) != 0) { - storeGuilds = StoreStream.Companion.getGuilds(); - } - if ((i & 8) != 0) { - storeUser = StoreStream.Companion.getUsers(); - } - return companion.canShareEvent(l, storeChannels, storeGuilds, storeUser); + public static /* synthetic */ boolean canShareEvent$default(Companion companion, Long l, long j, StoreChannels storeChannels, StoreGuilds storeGuilds, StoreUser storeUser, StorePermissions storePermissions, int i, Object obj) { + return companion.canShareEvent(l, j, (i & 4) != 0 ? StoreStream.Companion.getChannels() : storeChannels, (i & 8) != 0 ? StoreStream.Companion.getGuilds() : storeGuilds, (i & 16) != 0 ? StoreStream.Companion.getUsers() : storeUser, (i & 32) != 0 ? StoreStream.Companion.getPermissions() : storePermissions); } public static /* synthetic */ boolean canStartEvent$default(Companion companion, long j, Long l, StoreChannels storeChannels, StorePermissions storePermissions, int i, Object obj) { @@ -121,24 +112,25 @@ public final class GuildScheduledEventUtilities { return PermissionUtils.can(Permission.MANAGE_EVENTS, l); } - public final boolean canShareEvent(Long l, StoreChannels storeChannels, StoreGuilds storeGuilds, StoreUser storeUser) { + public final boolean canShareEvent(Long l, long j, StoreChannels storeChannels, StoreGuilds storeGuilds, StoreUser storeUser, StorePermissions storePermissions) { GuildMember member; m.checkNotNullParameter(storeChannels, "channelsStore"); m.checkNotNullParameter(storeGuilds, "guildsStore"); m.checkNotNullParameter(storeUser, "usersStore"); + m.checkNotNullParameter(storePermissions, "permissionsStore"); if (l == null) { - return true; + return PermissionUtils.can(1, storePermissions.getGuildPermissions().get(Long.valueOf(j))); } Channel channel = storeChannels.getChannel(l.longValue()); - if (channel != null) { - PermissionUtils permissionUtils = PermissionUtils.INSTANCE; - Map map = (Map) a.s0(channel, storeGuilds.getRoles()); - if (map == null) { - map = h0.emptyMap(); - } - return permissionUtils.canEveryoneRole(1025, channel, map) && (member = storeGuilds.getMember(channel.f(), storeUser.getMe().getId())) != null && !member.getPending(); + if (channel == null || !PermissionUtils.can(1, storePermissions.getPermissionsByChannel().get(l))) { + return false; } - return false; + PermissionUtils permissionUtils = PermissionUtils.INSTANCE; + Map map = (Map) a.s0(channel, storeGuilds.getRoles()); + if (map == null) { + map = h0.emptyMap(); + } + return permissionUtils.canEveryoneRole(Permission.VIEW_CHANNEL, channel, map) && (member = storeGuilds.getMember(channel.f(), storeUser.getMe().getId())) != null && !member.getPending(); } public final boolean canStartEvent(long j, Long l, StoreChannels storeChannels, StorePermissions storePermissions) { diff --git a/app/src/main/java/com/discord/utilities/search/query/node/content/ContentNode.java b/app/src/main/java/com/discord/utilities/search/query/node/content/ContentNode.java index e88360394d..d060501519 100644 --- a/app/src/main/java/com/discord/utilities/search/query/node/content/ContentNode.java +++ b/app/src/main/java/com/discord/utilities/search/query/node/content/ContentNode.java @@ -9,7 +9,7 @@ import com.discord.utilities.search.query.node.QueryNode; public final class ContentNode extends QueryNode { private final CharSequence content; - /* JADX DEBUG: TODO: convert one arg to string using `String.valueOf()`, args: [(wrap: java.lang.CharSequence : 0x0011: IGET (r2v1 java.lang.CharSequence) = (r2v0 com.discord.utilities.search.query.node.content.ContentNode) com.discord.utilities.search.query.node.content.ContentNode.content java.lang.CharSequence), (' ' char), (wrap: java.lang.CharSequence : 0x001b: IGET (r2v3 java.lang.CharSequence) = (r3v0 com.discord.utilities.search.query.node.content.ContentNode) com.discord.utilities.search.query.node.content.ContentNode.content java.lang.CharSequence)] */ + /* JADX DEBUG: TODO: convert one arg to string using `String.valueOf()`, args: [(wrap: java.lang.CharSequence : 0x000f: IGET (r2v1 java.lang.CharSequence) = (r2v0 com.discord.utilities.search.query.node.content.ContentNode) com.discord.utilities.search.query.node.content.ContentNode.content java.lang.CharSequence), (' ' char), (wrap: java.lang.CharSequence : 0x0019: IGET (r2v3 java.lang.CharSequence) = (r3v0 com.discord.utilities.search.query.node.content.ContentNode) com.discord.utilities.search.query.node.content.ContentNode.content java.lang.CharSequence)] */ /* JADX WARNING: Illegal instructions before constructor call */ public ContentNode(ContentNode contentNode, ContentNode contentNode2) { this(r0.toString()); diff --git a/app/src/main/java/com/discord/utilities/search/query/node/filter/FilterNode.java b/app/src/main/java/com/discord/utilities/search/query/node/filter/FilterNode.java index 3aa196f5ac..a81d829cfd 100644 --- a/app/src/main/java/com/discord/utilities/search/query/node/filter/FilterNode.java +++ b/app/src/main/java/com/discord/utilities/search/query/node/filter/FilterNode.java @@ -79,7 +79,7 @@ public final class FilterNode extends QueryNode { return hashCode + i; } - /* JADX DEBUG: TODO: convert one arg to string using `String.valueOf()`, args: [(wrap: java.lang.CharSequence : 0x0026: INVOKE (r2v0 java.lang.CharSequence) = (r3v0 'this' com.discord.utilities.search.query.node.filter.FilterNode A[IMMUTABLE_TYPE, THIS]) type: VIRTUAL call: com.discord.utilities.search.query.node.filter.FilterNode.getText():java.lang.CharSequence), (wrap: char : ?: SGET com.discord.widgets.chat.input.MentionUtilsKt.EMOJIS_AND_STICKERS_CHAR char)] */ + /* JADX DEBUG: TODO: convert one arg to string using `String.valueOf()`, args: [(wrap: java.lang.CharSequence : 0x0025: INVOKE (r2v0 java.lang.CharSequence) = (r3v0 'this' com.discord.utilities.search.query.node.filter.FilterNode A[IMMUTABLE_TYPE, THIS]) type: VIRTUAL call: com.discord.utilities.search.query.node.filter.FilterNode.getText():java.lang.CharSequence), (wrap: char : ?: SGET com.discord.widgets.chat.input.MentionUtilsKt.EMOJIS_AND_STICKERS_CHAR char)] */ public void render(SpannableStringBuilder spannableStringBuilder, Context context) { m.checkNotNullParameter(spannableStringBuilder, "builder"); m.checkNotNullParameter(context, "renderContext"); diff --git a/app/src/main/java/com/discord/widgets/chat/input/autocomplete/AutocompleteExtensionsKt.java b/app/src/main/java/com/discord/widgets/chat/input/autocomplete/AutocompleteExtensionsKt.java index c08f5e2f53..50e5d3c840 100644 --- a/app/src/main/java/com/discord/widgets/chat/input/autocomplete/AutocompleteExtensionsKt.java +++ b/app/src/main/java/com/discord/widgets/chat/input/autocomplete/AutocompleteExtensionsKt.java @@ -17,7 +17,7 @@ public final class AutocompleteExtensionsKt { for (IntRange intRange : u.sortedWith(map.keySet(), new AutocompleteExtensionsKt$replaceAutocompleteDataWithServerValues$$inlined$sortedByDescending$1())) { Autocompletable autocompletable = (Autocompletable) map.get(intRange); if (autocompletable != null) { - if (intRange.getFirst() > str2.length()) { + if (intRange.getFirst() > str2.length() || intRange.getLast() > str2.length()) { AppLog appLog = AppLog.g; StringBuilder O = a.O("Invalid mention position to insert "); O.append(autocompletable.getInputReplacement()); diff --git a/app/src/main/java/com/discord/widgets/chat/list/adapter/WidgetChatListAdapterItemGuildScheduledEventInvite$Model$Companion$observe$1.java b/app/src/main/java/com/discord/widgets/chat/list/adapter/WidgetChatListAdapterItemGuildScheduledEventInvite$Model$Companion$observe$1.java index d745bf4381..3d4f5a43d7 100644 --- a/app/src/main/java/com/discord/widgets/chat/list/adapter/WidgetChatListAdapterItemGuildScheduledEventInvite$Model$Companion$observe$1.java +++ b/app/src/main/java/com/discord/widgets/chat/list/adapter/WidgetChatListAdapterItemGuildScheduledEventInvite$Model$Companion$observe$1.java @@ -13,6 +13,7 @@ import com.discord.stores.StoreGuilds; import com.discord.stores.StorePermissions; import com.discord.stores.StoreUser; import com.discord.stores.StoreVoiceChannelSelected; +import com.discord.utilities.guildscheduledevent.GuildScheduledEventUtilities; import com.discord.utilities.permissions.PermissionUtils; import com.discord.widgets.chat.list.adapter.WidgetChatListAdapterItemGuildScheduledEventInvite; import com.discord.widgets.chat.list.entries.GuildScheduledEventInviteEntry; @@ -70,6 +71,6 @@ public final class WidgetChatListAdapterItemGuildScheduledEventInvite$Model$Comp } guild = guild2; } - return new WidgetChatListAdapterItemGuildScheduledEventInvite.Model(invite, z2, isRsvpedToEvent, guildScheduledEvent2, channel3, guild, Long.valueOf(this.$voiceChannelSelectedStore.getSelectedVoiceChannelId()), channel != null ? PermissionUtils.can(Permission.CONNECT, this.$permissionStore.getPermissionsByChannel().get(Long.valueOf(channel.h()))) : false); + return new WidgetChatListAdapterItemGuildScheduledEventInvite.Model(invite, z2, isRsvpedToEvent, guildScheduledEvent2, channel3, guild, Long.valueOf(this.$voiceChannelSelectedStore.getSelectedVoiceChannelId()), channel != null ? PermissionUtils.can(Permission.CONNECT, this.$permissionStore.getPermissionsByChannel().get(Long.valueOf(channel.h()))) : false, GuildScheduledEventUtilities.Companion.canShareEvent$default(GuildScheduledEventUtilities.Companion, this.$item.getGuildScheduledEvent().b(), this.$item.getGuildScheduledEvent().f(), this.$channelStore, this.$guildStore, null, null, 48, null)); } } diff --git a/app/src/main/java/com/discord/widgets/chat/list/adapter/WidgetChatListAdapterItemGuildScheduledEventInvite.java b/app/src/main/java/com/discord/widgets/chat/list/adapter/WidgetChatListAdapterItemGuildScheduledEventInvite.java index 0032bd2305..c31c9dbc34 100644 --- a/app/src/main/java/com/discord/widgets/chat/list/adapter/WidgetChatListAdapterItemGuildScheduledEventInvite.java +++ b/app/src/main/java/com/discord/widgets/chat/list/adapter/WidgetChatListAdapterItemGuildScheduledEventInvite.java @@ -41,6 +41,7 @@ public final class WidgetChatListAdapterItemGuildScheduledEventInvite extends Wi public static final class Model { public static final Companion Companion = new Companion(null); private final boolean canConnect; + private final boolean canShare; private final Channel channel; private final Guild guild; private final GuildScheduledEvent guildScheduledEvent; @@ -74,7 +75,7 @@ public final class WidgetChatListAdapterItemGuildScheduledEventInvite extends Wi } } - public Model(ModelInvite modelInvite, boolean z2, boolean z3, GuildScheduledEvent guildScheduledEvent, Channel channel, Guild guild, Long l, boolean z4) { + public Model(ModelInvite modelInvite, boolean z2, boolean z3, GuildScheduledEvent guildScheduledEvent, Channel channel, Guild guild, Long l, boolean z4, boolean z5) { m.checkNotNullParameter(modelInvite, "invite"); m.checkNotNullParameter(guildScheduledEvent, "guildScheduledEvent"); this.invite = modelInvite; @@ -85,10 +86,11 @@ public final class WidgetChatListAdapterItemGuildScheduledEventInvite extends Wi this.guild = guild; this.selectedVoiceChannelId = l; this.canConnect = z4; + this.canShare = z5; } - public static /* synthetic */ Model copy$default(Model model, ModelInvite modelInvite, boolean z2, boolean z3, GuildScheduledEvent guildScheduledEvent, Channel channel, Guild guild, Long l, boolean z4, int i, Object obj) { - return model.copy((i & 1) != 0 ? model.invite : modelInvite, (i & 2) != 0 ? model.isInGuild : z2, (i & 4) != 0 ? model.isRsvped : z3, (i & 8) != 0 ? model.guildScheduledEvent : guildScheduledEvent, (i & 16) != 0 ? model.channel : channel, (i & 32) != 0 ? model.guild : guild, (i & 64) != 0 ? model.selectedVoiceChannelId : l, (i & 128) != 0 ? model.canConnect : z4); + public static /* synthetic */ Model copy$default(Model model, ModelInvite modelInvite, boolean z2, boolean z3, GuildScheduledEvent guildScheduledEvent, Channel channel, Guild guild, Long l, boolean z4, boolean z5, int i, Object obj) { + return model.copy((i & 1) != 0 ? model.invite : modelInvite, (i & 2) != 0 ? model.isInGuild : z2, (i & 4) != 0 ? model.isRsvped : z3, (i & 8) != 0 ? model.guildScheduledEvent : guildScheduledEvent, (i & 16) != 0 ? model.channel : channel, (i & 32) != 0 ? model.guild : guild, (i & 64) != 0 ? model.selectedVoiceChannelId : l, (i & 128) != 0 ? model.canConnect : z4, (i & 256) != 0 ? model.canShare : z5); } public final ModelInvite component1() { @@ -123,10 +125,14 @@ public final class WidgetChatListAdapterItemGuildScheduledEventInvite extends Wi return this.canConnect; } - public final Model copy(ModelInvite modelInvite, boolean z2, boolean z3, GuildScheduledEvent guildScheduledEvent, Channel channel, Guild guild, Long l, boolean z4) { + public final boolean component9() { + return this.canShare; + } + + public final Model copy(ModelInvite modelInvite, boolean z2, boolean z3, GuildScheduledEvent guildScheduledEvent, Channel channel, Guild guild, Long l, boolean z4, boolean z5) { m.checkNotNullParameter(modelInvite, "invite"); m.checkNotNullParameter(guildScheduledEvent, "guildScheduledEvent"); - return new Model(modelInvite, z2, z3, guildScheduledEvent, channel, guild, l, z4); + return new Model(modelInvite, z2, z3, guildScheduledEvent, channel, guild, l, z4, z5); } public boolean equals(Object obj) { @@ -137,13 +143,17 @@ public final class WidgetChatListAdapterItemGuildScheduledEventInvite extends Wi return false; } Model model = (Model) obj; - return m.areEqual(this.invite, model.invite) && this.isInGuild == model.isInGuild && this.isRsvped == model.isRsvped && m.areEqual(this.guildScheduledEvent, model.guildScheduledEvent) && m.areEqual(this.channel, model.channel) && m.areEqual(this.guild, model.guild) && m.areEqual(this.selectedVoiceChannelId, model.selectedVoiceChannelId) && this.canConnect == model.canConnect; + return m.areEqual(this.invite, model.invite) && this.isInGuild == model.isInGuild && this.isRsvped == model.isRsvped && m.areEqual(this.guildScheduledEvent, model.guildScheduledEvent) && m.areEqual(this.channel, model.channel) && m.areEqual(this.guild, model.guild) && m.areEqual(this.selectedVoiceChannelId, model.selectedVoiceChannelId) && this.canConnect == model.canConnect && this.canShare == model.canShare; } public final boolean getCanConnect() { return this.canConnect; } + public final boolean getCanShare() { + return this.canShare; + } + public final Channel getChannel() { return this.channel; } @@ -197,10 +207,18 @@ public final class WidgetChatListAdapterItemGuildScheduledEventInvite extends Wi } int i11 = (hashCode4 + i) * 31; boolean z4 = this.canConnect; - if (!z4) { - i2 = z4 ? 1 : 0; + if (z4) { + z4 = true; } - return i11 + i2; + int i12 = z4 ? 1 : 0; + int i13 = z4 ? 1 : 0; + int i14 = z4 ? 1 : 0; + int i15 = (i11 + i12) * 31; + boolean z5 = this.canShare; + if (!z5) { + i2 = z5 ? 1 : 0; + } + return i15 + i2; } public final boolean isInGuild() { @@ -227,7 +245,9 @@ public final class WidgetChatListAdapterItemGuildScheduledEventInvite extends Wi O.append(", selectedVoiceChannelId="); O.append(this.selectedVoiceChannelId); O.append(", canConnect="); - return a.K(O, this.canConnect, ")"); + O.append(this.canConnect); + O.append(", canShare="); + return a.K(O, this.canShare, ")"); } } @@ -297,7 +317,7 @@ public final class WidgetChatListAdapterItemGuildScheduledEventInvite extends Wi z2 = true; } } - guildScheduledEventItemView2.configureInChatList(guildScheduledEvent, channel, guild, isInGuild, isRsvped, z2, model.getCanConnect(), new WidgetChatListAdapterItemGuildScheduledEventInvite$configureUI$2(this, model), new WidgetChatListAdapterItemGuildScheduledEventInvite$configureUI$3(this, model), new WidgetChatListAdapterItemGuildScheduledEventInvite$configureUI$4(this, model), new WidgetChatListAdapterItemGuildScheduledEventInvite$configureUI$5(this, model)); + guildScheduledEventItemView2.configureInChatList(guildScheduledEvent, channel, guild, isInGuild, isRsvped, z2, model.getCanConnect(), model.getCanShare(), new WidgetChatListAdapterItemGuildScheduledEventInvite$configureUI$2(this, model), new WidgetChatListAdapterItemGuildScheduledEventInvite$configureUI$3(this, model), new WidgetChatListAdapterItemGuildScheduledEventInvite$configureUI$4(this, model), new WidgetChatListAdapterItemGuildScheduledEventInvite$configureUI$5(this, model)); } @Override // com.discord.utilities.mg_recycler.MGRecyclerViewHolder diff --git a/app/src/main/java/com/discord/widgets/guildscheduledevent/GuildScheduledEventDetailsViewModel$Companion$observeStores$1.java b/app/src/main/java/com/discord/widgets/guildscheduledevent/GuildScheduledEventDetailsViewModel$Companion$observeStores$1.java index 567f98337d..1f238b30d3 100644 --- a/app/src/main/java/com/discord/widgets/guildscheduledevent/GuildScheduledEventDetailsViewModel$Companion$observeStores$1.java +++ b/app/src/main/java/com/discord/widgets/guildscheduledevent/GuildScheduledEventDetailsViewModel$Companion$observeStores$1.java @@ -57,7 +57,7 @@ public final class GuildScheduledEventDetailsViewModel$Companion$observeStores$1 Long valueOf = Long.valueOf(this.$selectedVoiceChannelStore.getSelectedVoiceChannelId()); boolean isRsvpedToEvent = this.$guildScheduledEventsStore.isRsvpedToEvent(findEventFromStore$default.f(), this.$guildScheduledEventId); GuildScheduledEventUtilities.Companion companion = GuildScheduledEventUtilities.Companion; - boolean canShareEvent$default = GuildScheduledEventUtilities.Companion.canShareEvent$default(companion, findEventFromStore$default.b(), this.$channelsStore, this.$guildsStore, null, 8, null); + boolean canShareEvent$default = GuildScheduledEventUtilities.Companion.canShareEvent$default(companion, findEventFromStore$default.b(), findEventFromStore$default.f(), this.$channelsStore, this.$guildsStore, null, null, 48, null); boolean canStartEvent = companion.canStartEvent(findEventFromStore$default.f(), findEventFromStore$default.b(), this.$channelsStore, this.$permissionsStore); Long b2 = findEventFromStore$default.b(); if (b2 != null) { diff --git a/app/src/main/java/com/discord/widgets/guildscheduledevent/GuildScheduledEventItemView.java b/app/src/main/java/com/discord/widgets/guildscheduledevent/GuildScheduledEventItemView.java index d20c321f5c..a1f5fb235b 100644 --- a/app/src/main/java/com/discord/widgets/guildscheduledevent/GuildScheduledEventItemView.java +++ b/app/src/main/java/com/discord/widgets/guildscheduledevent/GuildScheduledEventItemView.java @@ -133,8 +133,8 @@ public final class GuildScheduledEventItemView extends ConstraintLayout { getDescriptionParser().configureDescription(str); } - public static /* synthetic */ void configureInChatList$default(GuildScheduledEventItemView guildScheduledEventItemView, GuildScheduledEvent guildScheduledEvent, Channel channel, Guild guild, boolean z2, boolean z3, boolean z4, boolean z5, Function0 function0, Function0 function02, Function0 function03, Function0 function04, int i, Object obj) { - guildScheduledEventItemView.configureInChatList(guildScheduledEvent, channel, guild, z2, z3, z4, z5, function0, (i & 256) != 0 ? GuildScheduledEventItemView$configureInChatList$1.INSTANCE : function02, (i & 512) != 0 ? GuildScheduledEventItemView$configureInChatList$2.INSTANCE : function03, function04); + public static /* synthetic */ void configureInChatList$default(GuildScheduledEventItemView guildScheduledEventItemView, GuildScheduledEvent guildScheduledEvent, Channel channel, Guild guild, boolean z2, boolean z3, boolean z4, boolean z5, boolean z6, Function0 function0, Function0 function02, Function0 function03, Function0 function04, int i, Object obj) { + guildScheduledEventItemView.configureInChatList(guildScheduledEvent, channel, guild, z2, z3, z4, z5, z6, function0, (i & 512) != 0 ? GuildScheduledEventItemView$configureInChatList$1.INSTANCE : function02, (i & 1024) != 0 ? GuildScheduledEventItemView$configureInChatList$2.INSTANCE : function03, function04); } private final void configureInternal(GuildScheduledEvent guildScheduledEvent, GuildScheduledEventLocationInfo guildScheduledEventLocationInfo, Guild guild, boolean z2, boolean z3, boolean z4, boolean z5, boolean z6, boolean z7, Function0 function0, Function0 function02, Function0 function03, Function0 function04, Function0 function05) { @@ -285,12 +285,12 @@ public final class GuildScheduledEventItemView extends ConstraintLayout { configureLocation$default(this, GuildScheduledEventLocationInfo.Companion.buildLocationInfo(guildScheduledEventModel, channel), null, 2, null); } - public final void configureInChatList(GuildScheduledEvent guildScheduledEvent, Channel channel, Guild guild, boolean z2, boolean z3, boolean z4, boolean z5, Function0 function0, Function0 function02, Function0 function03, Function0 function04) { + public final void configureInChatList(GuildScheduledEvent guildScheduledEvent, Channel channel, Guild guild, boolean z2, boolean z3, boolean z4, boolean z5, boolean z6, Function0 function0, Function0 function02, Function0 function03, Function0 function04) { m.checkNotNullParameter(guildScheduledEvent, "guildScheduledEvent"); m.checkNotNullParameter(function02, "rsvpButtonClickListener"); m.checkNotNullParameter(function03, "joinServerButtonClickListener"); m.checkNotNullParameter(function04, "shareButtonClickListener"); - configureInternal(guildScheduledEvent, GuildScheduledEventLocationInfo.Companion.buildLocationInfo(guildScheduledEvent, channel), guild, z3, true, false, true, z4, z5, function0, function02, function03, function04, function03); + configureInternal(guildScheduledEvent, GuildScheduledEventLocationInfo.Companion.buildLocationInfo(guildScheduledEvent, channel), guild, z3, true, false, z6, z4, z5, function0, function02, function03, function04, function03); ConstraintLayout constraintLayout = this.binding.a; m.checkNotNullExpressionValue(constraintLayout, "binding.root"); constraintLayout.setBackground((!z4 || guildScheduledEvent.k() != GuildScheduledEventStatus.ACTIVE) ? ContextCompat.getDrawable(getContext(), R.drawable.bg_guild_scheduled_event_list_item_secondary) : ContextCompat.getDrawable(getContext(), R.drawable.bg_guild_scheduled_event_list_item_connected_secondary)); diff --git a/app/src/main/java/com/discord/widgets/guildscheduledevent/GuildScheduledEventListViewModel.java b/app/src/main/java/com/discord/widgets/guildscheduledevent/GuildScheduledEventListViewModel.java index 47c38d90b0..a9d1b26226 100644 --- a/app/src/main/java/com/discord/widgets/guildscheduledevent/GuildScheduledEventListViewModel.java +++ b/app/src/main/java/com/discord/widgets/guildscheduledevent/GuildScheduledEventListViewModel.java @@ -385,7 +385,7 @@ public final class GuildScheduledEventListViewModel extends AppViewModel + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable-anydpi-v24/img_nitro_pattern.xml b/app/src/main/res/drawable-anydpi-v24/img_nitro_pattern.xml index db00b91729..4da09d331d 100644 --- a/app/src/main/res/drawable-anydpi-v24/img_nitro_pattern.xml +++ b/app/src/main/res/drawable-anydpi-v24/img_nitro_pattern.xml @@ -2,11 +2,11 @@ - - - - - + + + + + diff --git a/app/src/main/res/drawable-anydpi-v24/img_plan_activated_dark.xml b/app/src/main/res/drawable-anydpi-v24/img_plan_activated_dark.xml index a319826efb..950f29d302 100644 --- a/app/src/main/res/drawable-anydpi-v24/img_plan_activated_dark.xml +++ b/app/src/main/res/drawable-anydpi-v24/img_plan_activated_dark.xml @@ -1,6 +1,6 @@ - + diff --git a/app/src/main/res/drawable-anydpi-v24/img_plan_activated_light.xml b/app/src/main/res/drawable-anydpi-v24/img_plan_activated_light.xml index 73bc6cd602..0be8f0e4f0 100644 --- a/app/src/main/res/drawable-anydpi-v24/img_plan_activated_light.xml +++ b/app/src/main/res/drawable-anydpi-v24/img_plan_activated_light.xml @@ -1,6 +1,6 @@ - + diff --git a/app/src/main/res/drawable-anydpi-v24/img_premium_activated_tier_1_dark.xml b/app/src/main/res/drawable-anydpi-v24/img_premium_activated_tier_1_dark.xml index 6efa610ccf..39da3ca299 100644 --- a/app/src/main/res/drawable-anydpi-v24/img_premium_activated_tier_1_dark.xml +++ b/app/src/main/res/drawable-anydpi-v24/img_premium_activated_tier_1_dark.xml @@ -1,5 +1,5 @@ - + diff --git a/app/src/main/res/drawable-anydpi-v24/img_premium_activated_tier_1_light.xml b/app/src/main/res/drawable-anydpi-v24/img_premium_activated_tier_1_light.xml index bca0844702..bce868b279 100644 --- a/app/src/main/res/drawable-anydpi-v24/img_premium_activated_tier_1_light.xml +++ b/app/src/main/res/drawable-anydpi-v24/img_premium_activated_tier_1_light.xml @@ -1,5 +1,5 @@ - + diff --git a/app/src/main/res/drawable-anydpi-v24/img_premium_activated_tier_2_dark.xml b/app/src/main/res/drawable-anydpi-v24/img_premium_activated_tier_2_dark.xml index 67bb7470f7..155c21b163 100644 --- a/app/src/main/res/drawable-anydpi-v24/img_premium_activated_tier_2_dark.xml +++ b/app/src/main/res/drawable-anydpi-v24/img_premium_activated_tier_2_dark.xml @@ -1,5 +1,5 @@ - + diff --git a/app/src/main/res/drawable-anydpi-v24/img_premium_activated_tier_2_light.xml b/app/src/main/res/drawable-anydpi-v24/img_premium_activated_tier_2_light.xml index 670b2062b8..884b3f9c53 100644 --- a/app/src/main/res/drawable-anydpi-v24/img_premium_activated_tier_2_light.xml +++ b/app/src/main/res/drawable-anydpi-v24/img_premium_activated_tier_2_light.xml @@ -1,5 +1,5 @@ - + diff --git a/app/src/main/res/drawable-anydpi-v24/img_remote_auth_loaded.xml b/app/src/main/res/drawable-anydpi-v24/img_remote_auth_loaded.xml index e2ee642be6..469637852b 100644 --- a/app/src/main/res/drawable-anydpi-v24/img_remote_auth_loaded.xml +++ b/app/src/main/res/drawable-anydpi-v24/img_remote_auth_loaded.xml @@ -16,7 +16,7 @@ - + diff --git a/app/src/main/res/drawable-anydpi-v24/img_wumpus_playing_with_friends.xml b/app/src/main/res/drawable-anydpi-v24/img_wumpus_playing_with_friends.xml index f8de38b44c..eb4b62d8c7 100644 --- a/app/src/main/res/drawable-anydpi-v24/img_wumpus_playing_with_friends.xml +++ b/app/src/main/res/drawable-anydpi-v24/img_wumpus_playing_with_friends.xml @@ -47,7 +47,7 @@ - + diff --git a/app/src/main/res/drawable-anydpi-v24/res_2131230790_img_landing_splash__0.xml b/app/src/main/res/drawable-anydpi-v24/res_2131230790_img_landing_splash__0.xml new file mode 100644 index 0000000000..b377ad8dee --- /dev/null +++ b/app/src/main/res/drawable-anydpi-v24/res_2131230790_img_landing_splash__0.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/app/src/main/res/drawable-anydpi-v24/res_2131230791_img_landing_splash__1.xml b/app/src/main/res/drawable-anydpi-v24/res_2131230791_img_landing_splash__1.xml new file mode 100644 index 0000000000..4f8405fb3a --- /dev/null +++ b/app/src/main/res/drawable-anydpi-v24/res_2131230791_img_landing_splash__1.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/app/src/main/res/drawable-anydpi-v24/res_2131230792_img_landing_splash__2.xml b/app/src/main/res/drawable-anydpi-v24/res_2131230792_img_landing_splash__2.xml new file mode 100644 index 0000000000..cd96f20824 --- /dev/null +++ b/app/src/main/res/drawable-anydpi-v24/res_2131230792_img_landing_splash__2.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/app/src/main/res/drawable-anydpi-v24/res_2131230790_img_nitro_pattern__0.xml b/app/src/main/res/drawable-anydpi-v24/res_2131230793_img_nitro_pattern__0.xml similarity index 100% rename from app/src/main/res/drawable-anydpi-v24/res_2131230790_img_nitro_pattern__0.xml rename to app/src/main/res/drawable-anydpi-v24/res_2131230793_img_nitro_pattern__0.xml diff --git a/app/src/main/res/drawable-anydpi-v24/res_2131230791_img_nitro_pattern__1.xml b/app/src/main/res/drawable-anydpi-v24/res_2131230794_img_nitro_pattern__1.xml similarity index 100% rename from app/src/main/res/drawable-anydpi-v24/res_2131230791_img_nitro_pattern__1.xml rename to app/src/main/res/drawable-anydpi-v24/res_2131230794_img_nitro_pattern__1.xml diff --git a/app/src/main/res/drawable-anydpi-v24/res_2131230792_img_nitro_pattern__2.xml b/app/src/main/res/drawable-anydpi-v24/res_2131230795_img_nitro_pattern__2.xml similarity index 100% rename from app/src/main/res/drawable-anydpi-v24/res_2131230792_img_nitro_pattern__2.xml rename to app/src/main/res/drawable-anydpi-v24/res_2131230795_img_nitro_pattern__2.xml diff --git a/app/src/main/res/drawable-anydpi-v24/res_2131230793_img_nitro_pattern__3.xml b/app/src/main/res/drawable-anydpi-v24/res_2131230796_img_nitro_pattern__3.xml similarity index 100% rename from app/src/main/res/drawable-anydpi-v24/res_2131230793_img_nitro_pattern__3.xml rename to app/src/main/res/drawable-anydpi-v24/res_2131230796_img_nitro_pattern__3.xml diff --git a/app/src/main/res/drawable-anydpi-v24/res_2131230794_img_nitro_pattern__4.xml b/app/src/main/res/drawable-anydpi-v24/res_2131230797_img_nitro_pattern__4.xml similarity index 100% rename from app/src/main/res/drawable-anydpi-v24/res_2131230794_img_nitro_pattern__4.xml rename to app/src/main/res/drawable-anydpi-v24/res_2131230797_img_nitro_pattern__4.xml diff --git a/app/src/main/res/drawable-anydpi-v24/res_2131230795_img_plan_activated_dark__0.xml b/app/src/main/res/drawable-anydpi-v24/res_2131230798_img_plan_activated_dark__0.xml similarity index 100% rename from app/src/main/res/drawable-anydpi-v24/res_2131230795_img_plan_activated_dark__0.xml rename to app/src/main/res/drawable-anydpi-v24/res_2131230798_img_plan_activated_dark__0.xml diff --git a/app/src/main/res/drawable-anydpi-v24/res_2131230796_img_plan_activated_light__0.xml b/app/src/main/res/drawable-anydpi-v24/res_2131230799_img_plan_activated_light__0.xml similarity index 100% rename from app/src/main/res/drawable-anydpi-v24/res_2131230796_img_plan_activated_light__0.xml rename to app/src/main/res/drawable-anydpi-v24/res_2131230799_img_plan_activated_light__0.xml diff --git a/app/src/main/res/drawable-anydpi-v24/res_2131230797_img_premium_activated_tier_1_dark__0.xml b/app/src/main/res/drawable-anydpi-v24/res_2131230800_img_premium_activated_tier_1_dark__0.xml similarity index 100% rename from app/src/main/res/drawable-anydpi-v24/res_2131230797_img_premium_activated_tier_1_dark__0.xml rename to app/src/main/res/drawable-anydpi-v24/res_2131230800_img_premium_activated_tier_1_dark__0.xml diff --git a/app/src/main/res/drawable-anydpi-v24/res_2131230798_img_premium_activated_tier_1_light__0.xml b/app/src/main/res/drawable-anydpi-v24/res_2131230801_img_premium_activated_tier_1_light__0.xml similarity index 100% rename from app/src/main/res/drawable-anydpi-v24/res_2131230798_img_premium_activated_tier_1_light__0.xml rename to app/src/main/res/drawable-anydpi-v24/res_2131230801_img_premium_activated_tier_1_light__0.xml diff --git a/app/src/main/res/drawable-anydpi-v24/res_2131230799_img_premium_activated_tier_2_dark__0.xml b/app/src/main/res/drawable-anydpi-v24/res_2131230802_img_premium_activated_tier_2_dark__0.xml similarity index 100% rename from app/src/main/res/drawable-anydpi-v24/res_2131230799_img_premium_activated_tier_2_dark__0.xml rename to app/src/main/res/drawable-anydpi-v24/res_2131230802_img_premium_activated_tier_2_dark__0.xml diff --git a/app/src/main/res/drawable-anydpi-v24/res_2131230800_img_premium_activated_tier_2_light__0.xml b/app/src/main/res/drawable-anydpi-v24/res_2131230803_img_premium_activated_tier_2_light__0.xml similarity index 100% rename from app/src/main/res/drawable-anydpi-v24/res_2131230800_img_premium_activated_tier_2_light__0.xml rename to app/src/main/res/drawable-anydpi-v24/res_2131230803_img_premium_activated_tier_2_light__0.xml diff --git a/app/src/main/res/drawable-anydpi-v24/res_2131230801_img_remote_auth_loaded__0.xml b/app/src/main/res/drawable-anydpi-v24/res_2131230804_img_remote_auth_loaded__0.xml similarity index 100% rename from app/src/main/res/drawable-anydpi-v24/res_2131230801_img_remote_auth_loaded__0.xml rename to app/src/main/res/drawable-anydpi-v24/res_2131230804_img_remote_auth_loaded__0.xml diff --git a/app/src/main/res/drawable-anydpi-v24/res_2131230802_img_wumpus_playing_with_friends__0.xml b/app/src/main/res/drawable-anydpi-v24/res_2131230805_img_wumpus_playing_with_friends__0.xml similarity index 100% rename from app/src/main/res/drawable-anydpi-v24/res_2131230802_img_wumpus_playing_with_friends__0.xml rename to app/src/main/res/drawable-anydpi-v24/res_2131230805_img_wumpus_playing_with_friends__0.xml diff --git a/app/src/main/res/drawable-anydpi-v24/res_2131230803_screen_share_nfx_illustration__0.xml b/app/src/main/res/drawable-anydpi-v24/res_2131230806_screen_share_nfx_illustration__0.xml similarity index 100% rename from app/src/main/res/drawable-anydpi-v24/res_2131230803_screen_share_nfx_illustration__0.xml rename to app/src/main/res/drawable-anydpi-v24/res_2131230806_screen_share_nfx_illustration__0.xml diff --git a/app/src/main/res/drawable-anydpi-v24/res_2131230804_screen_share_nfx_illustration__1.xml b/app/src/main/res/drawable-anydpi-v24/res_2131230807_screen_share_nfx_illustration__1.xml similarity index 100% rename from app/src/main/res/drawable-anydpi-v24/res_2131230804_screen_share_nfx_illustration__1.xml rename to app/src/main/res/drawable-anydpi-v24/res_2131230807_screen_share_nfx_illustration__1.xml diff --git a/app/src/main/res/drawable-anydpi-v24/res_2131230805_screen_share_nfx_illustration__2.xml b/app/src/main/res/drawable-anydpi-v24/res_2131230808_screen_share_nfx_illustration__2.xml similarity index 100% rename from app/src/main/res/drawable-anydpi-v24/res_2131230805_screen_share_nfx_illustration__2.xml rename to app/src/main/res/drawable-anydpi-v24/res_2131230808_screen_share_nfx_illustration__2.xml diff --git a/app/src/main/res/drawable-anydpi-v24/res_2131230812_video_call_illustration__0.xml b/app/src/main/res/drawable-anydpi-v24/res_2131230815_video_call_illustration__0.xml similarity index 100% rename from app/src/main/res/drawable-anydpi-v24/res_2131230812_video_call_illustration__0.xml rename to app/src/main/res/drawable-anydpi-v24/res_2131230815_video_call_illustration__0.xml diff --git a/app/src/main/res/drawable-anydpi-v24/screen_share_nfx_illustration.xml b/app/src/main/res/drawable-anydpi-v24/screen_share_nfx_illustration.xml index f6addeec48..9c18bd36f3 100644 --- a/app/src/main/res/drawable-anydpi-v24/screen_share_nfx_illustration.xml +++ b/app/src/main/res/drawable-anydpi-v24/screen_share_nfx_illustration.xml @@ -28,11 +28,11 @@ - - + + - + diff --git a/app/src/main/res/drawable-anydpi-v24/video_call_illustration.xml b/app/src/main/res/drawable-anydpi-v24/video_call_illustration.xml index ca2a05b324..9567d3f6d7 100644 --- a/app/src/main/res/drawable-anydpi-v24/video_call_illustration.xml +++ b/app/src/main/res/drawable-anydpi-v24/video_call_illustration.xml @@ -4,7 +4,7 @@ - + diff --git a/app/src/main/res/drawable-hdpi/img_landing_splash.png b/app/src/main/res/drawable-hdpi/img_landing_splash.png new file mode 100644 index 0000000000..9447914e77 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/img_landing_splash.png differ diff --git a/app/src/main/res/drawable-ldpi/img_landing_splash.png b/app/src/main/res/drawable-ldpi/img_landing_splash.png new file mode 100644 index 0000000000..89b7c177d6 Binary files /dev/null and b/app/src/main/res/drawable-ldpi/img_landing_splash.png differ diff --git a/app/src/main/res/drawable-mdpi/img_landing_splash.png b/app/src/main/res/drawable-mdpi/img_landing_splash.png new file mode 100644 index 0000000000..e2f34b2403 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/img_landing_splash.png differ diff --git a/app/src/main/res/drawable-xhdpi/img_landing_splash.png b/app/src/main/res/drawable-xhdpi/img_landing_splash.png new file mode 100644 index 0000000000..00359fec24 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/img_landing_splash.png differ diff --git a/app/src/main/res/drawable-xxhdpi/img_landing_splash.png b/app/src/main/res/drawable-xxhdpi/img_landing_splash.png new file mode 100644 index 0000000000..2f81fa3ab2 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/img_landing_splash.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/img_landing_splash.png b/app/src/main/res/drawable-xxxhdpi/img_landing_splash.png new file mode 100644 index 0000000000..d0429403cd Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/img_landing_splash.png differ diff --git a/app/src/main/res/drawable/img_landing_splash.png b/app/src/main/res/drawable/img_landing_splash.png deleted file mode 100644 index 8c98d1e0e4..0000000000 Binary files a/app/src/main/res/drawable/img_landing_splash.png and /dev/null differ diff --git a/app/src/main/res/drawable/res_2131230806_sparkle_animated_vector__0.xml b/app/src/main/res/drawable/res_2131230809_sparkle_animated_vector__0.xml similarity index 100% rename from app/src/main/res/drawable/res_2131230806_sparkle_animated_vector__0.xml rename to app/src/main/res/drawable/res_2131230809_sparkle_animated_vector__0.xml diff --git a/app/src/main/res/drawable/res_2131230807_sparkle_animated_vector__1.xml b/app/src/main/res/drawable/res_2131230810_sparkle_animated_vector__1.xml similarity index 100% rename from app/src/main/res/drawable/res_2131230807_sparkle_animated_vector__1.xml rename to app/src/main/res/drawable/res_2131230810_sparkle_animated_vector__1.xml diff --git a/app/src/main/res/drawable/res_2131230808_sparkle_animated_vector__2.xml b/app/src/main/res/drawable/res_2131230811_sparkle_animated_vector__2.xml similarity index 100% rename from app/src/main/res/drawable/res_2131230808_sparkle_animated_vector__2.xml rename to app/src/main/res/drawable/res_2131230811_sparkle_animated_vector__2.xml diff --git a/app/src/main/res/drawable/res_2131230809_sparkle_yellow_animated_vector__0.xml b/app/src/main/res/drawable/res_2131230812_sparkle_yellow_animated_vector__0.xml similarity index 100% rename from app/src/main/res/drawable/res_2131230809_sparkle_yellow_animated_vector__0.xml rename to app/src/main/res/drawable/res_2131230812_sparkle_yellow_animated_vector__0.xml diff --git a/app/src/main/res/drawable/res_2131230810_sparkle_yellow_animated_vector__1.xml b/app/src/main/res/drawable/res_2131230813_sparkle_yellow_animated_vector__1.xml similarity index 100% rename from app/src/main/res/drawable/res_2131230810_sparkle_yellow_animated_vector__1.xml rename to app/src/main/res/drawable/res_2131230813_sparkle_yellow_animated_vector__1.xml diff --git a/app/src/main/res/drawable/res_2131230811_sparkle_yellow_animated_vector__2.xml b/app/src/main/res/drawable/res_2131230814_sparkle_yellow_animated_vector__2.xml similarity index 100% rename from app/src/main/res/drawable/res_2131230811_sparkle_yellow_animated_vector__2.xml rename to app/src/main/res/drawable/res_2131230814_sparkle_yellow_animated_vector__2.xml diff --git a/app/src/main/res/drawable/sparkle_animated_vector.xml b/app/src/main/res/drawable/sparkle_animated_vector.xml index 0c497f0db3..ad8824d9e1 100644 --- a/app/src/main/res/drawable/sparkle_animated_vector.xml +++ b/app/src/main/res/drawable/sparkle_animated_vector.xml @@ -1,5 +1,5 @@ - - - + + + diff --git a/app/src/main/res/drawable/sparkle_yellow_animated_vector.xml b/app/src/main/res/drawable/sparkle_yellow_animated_vector.xml index 640bdc9657..07f79e412f 100644 --- a/app/src/main/res/drawable/sparkle_yellow_animated_vector.xml +++ b/app/src/main/res/drawable/sparkle_yellow_animated_vector.xml @@ -1,5 +1,5 @@ - - - + + + diff --git a/app/src/main/res/values-ar-rXB/plurals.xml b/app/src/main/res/values-ar-rXB/plurals.xml index 4bf947b71a..89c43e0e9e 100644 --- a/app/src/main/res/values-ar-rXB/plurals.xml +++ b/app/src/main/res/values-ar-rXB/plurals.xml @@ -1344,6 +1344,14 @@ ‏‮{numSubscriptionsApplied}‬‏ ‏‮Boost‬‏ ‏‮{numSubscriptionsApplied}‬‏ ‏‮Boosts‬‏ + + ‏‮{numSubscriptionsApplied}‬‏ ‏‮Boost‬‏ + ‏‮{numSubscriptionsApplied}‬‏ ‏‮Boosts‬‏ + + + ‏‮{numSubscriptionsRequiredForTier}‬‏ ‏‮Boost‬‏ + ‏‮{numSubscriptionsRequiredForTier}‬‏ ‏‮Boosts‬‏ + ‏‮{numSubscriptionsApplied}‬‏ ‏‮Boost‬‏ ‏‮{numSubscriptionsApplied}‬‏ ‏‮Boosts‬‏ diff --git a/app/src/main/res/values-ar-rXB/strings.xml b/app/src/main/res/values-ar-rXB/strings.xml index bcdab9b083..1d09100451 100644 --- a/app/src/main/res/values-ar-rXB/strings.xml +++ b/app/src/main/res/values-ar-rXB/strings.xml @@ -801,6 +801,8 @@ ‏‮You‬‏ ‏‮will‬‏ ‏‮automatically‬‏ ‏‮leave‬‏ ‏‮this‬‏ ‏‮group‬‏ ‏‮when‬‏ ‏‮you\'re‬‏ ‏‮done.‬‏ ‏‮This‬‏ ‏‮is‬‏ ‏‮the‬‏ ‏‮start‬‏ ‏‮of‬‏ ‏‮the‬‏ ‏‮!!‬‏‏‮{channelName}‬‏‏‮!!‬‏ ‏‮**private**‬‏ ‏‮channel.‬‏ ‏‮$[](topicHook)‬‏ ‏‮This‬‏ ‏‮thread‬‏ ‏‮will‬‏ ‏‮archive‬‏ ‏‮after‬‏ ‏‮$[](autoArchiveDurationHook)‬‏ ‏‮of‬‏ ‏‮inactivity.‬‏ + ‏‮Displaying‬‏ ‏‮messages‬‏ ‏‮since‬‏ ‏‮you‬‏ ‏‮joined.‬‏ + ‏‮You‬‏ ‏‮do‬‏ ‏‮not‬‏ ‏‮have‬‏ ‏‮permission‬‏ ‏‮to‬‏ ‏‮view‬‏ ‏‮message‬‏ ‏‮history.‬‏ ‏‮Beta‬‏ ‏‮Bulgarian‬‏ ‏‮Billing‬‏ @@ -1475,6 +1477,7 @@ ‏‮Type‬‏ ‏‮a‬‏ ‏‮name‬‏ ‏‮for‬‏ ‏‮your‬‏ ‏‮thread‬‏ ‏‮Use‬‏ ‏‮text-to-speech‬‏ ‏‮to‬‏ ‏‮read‬‏ ‏‮the‬‏ ‏‮message‬‏ ‏‮to‬‏ ‏‮all‬‏ ‏‮members‬‏ ‏‮currently‬‏ ‏‮viewing‬‏ ‏‮the‬‏ ‏‮channel.‬‏ ‏‮Your‬‏ ‏‮message‬‏ + ‏‮Not‬‏ ‏‮a‬‏ ‏‮valid‬‏ ‏‮attachment.‬‏ ‏‮Pick‬‏ ‏‮either‬‏ ‏‮true‬‏ ‏‮or‬‏ ‏‮false.‬‏ ‏‮Not‬‏ ‏‮a‬‏ ‏‮valid‬‏ ‏‮channel.‬‏ ‏‮Not‬‏ ‏‮a‬‏ ‏‮valid‬‏ ‏‮choice.‬‏ @@ -3385,8 +3388,8 @@ ‏‮Copy‬‏ ‏‮the‬‏ ‏‮event‬‏ ‏‮link‬‏ ‏‮below‬‏ ‏‮to‬‏ ‏‮invite‬‏ ‏‮people‬‏ ‏‮to‬‏ ‏‮your‬‏ ‏‮event.‬‏ ‏‮This‬‏ ‏‮also‬‏ ‏‮acts‬‏ ‏‮as‬‏ ‏‮a‬‏ ‏‮server‬‏ ‏‮invite‬‏ ‏‮link.‬‏ ‏‮All‬‏ ‏‮set.‬‏ ‏‮Now‬‏ ‏‮share‬‏ ‏‮your‬‏ ‏‮event!‬‏ ‏‮{date}‬‏ ‏‮at‬‏ ‏‮{time}‬‏ - ‏‮Are‬‏ ‏‮you‬‏ ‏‮sure‬‏ ‏‮you‬‏ ‏‮want‬‏ ‏‮to‬‏ ‏‮delete‬‏ ‏‮this‬‏ ‏‮event?‬‏ - ‏‮Delete‬‏ ‏‮Event?‬‏ + ‏‮Are‬‏ ‏‮you‬‏ ‏‮sure‬‏ ‏‮you‬‏ ‏‮want‬‏ ‏‮to‬‏ ‏‮cancel‬‏ ‏‮this‬‏ ‏‮event?‬‏ + ‏‮Cancel‬‏ ‏‮Event?‬‏ ‏‮Event‬‏ ‏‮Info‬‏ ‏‮No‬‏ ‏‮one\'s‬‏ ‏‮interested‬‏ ‏‮in‬‏ ‏‮this‬‏ ‏‮event‬‏ ‏‮yet.‬‏ ‏‮We‬‏ ‏‮are‬‏ ‏‮having‬‏ ‏‮problems‬‏ ‏‮looking‬‏ ‏‮up‬‏ ‏‮who‬‏ ‏‮is‬‏ ‏‮interested‬‏ ‏‮in‬‏ ‏‮this‬‏ ‏‮event.‬‏ ‏‮Please‬‏ ‏‮try‬‏ ‏‮again‬‏ ‏‮later.‬‏ @@ -3648,6 +3651,7 @@ ‏‮Step‬‏ ‏‮{number}‬‏ ‏‮of‬‏ ‏‮{total}‬‏ ‏‮Aliquet‬‏ ‏‮augue‬‏ ‏‮condimentum‬‏ ‏‮leo‬‏ ‏‮egestas.‬‏ ‏‮Justo,‬‏ ‏‮tellus‬‏ ‏‮mattis‬‏ ‏‮nibh‬‏ ‏‮donec‬‏ ‏‮velit.‬‏ ‏‮Vitae‬‏ ‏‮quis‬‏ ‏‮facilisi‬‏ ‏‮integer‬‏ ‏‮nec‬‏ ‏‮lobortis‬‏ ‏‮et‬‏ ‏‮purus.‬‏ ‏‮Sed‬‏ ‏‮arcu‬‏ ‏‮odio‬‏ ‏‮leo‬‏ ‏‮vel‬‏ ‏‮gravida‬‏ ‏‮faucibus‬‏ ‏‮aliquet.‬‏ ‏‮Dolor‬‏ ‏‮velit‬‏ ‏‮viverra‬‏ ‏‮mauris‬‏ ‏‮rhoncus‬‏ ‏‮tortor‬‏ ‏‮vulputate‬‏ ‏‮quam‬‏ ‏‮erat‬‏ ‏‮quis.‬‏ ‏‮Senectus‬‏ ‏‮morbi‬‏ ‏‮vitae‬‏ ‏‮ut‬‏ ‏‮justo‬‏ ‏‮ut‬‏ ‏‮ultrices.‬‏ + ‏‮Check‬‏ ‏‮back‬‏ ‏‮here‬‏ ‏‮for‬‏ ‏‮a‬‏ ‏‮history‬‏ ‏‮of‬‏ ‏‮your‬‏ ‏‮transactions‬‏ ‏‮once‬‏ ‏‮you’ve‬‏ ‏‮had‬‏ ‏‮Premium‬‏ ‏‮Memberships‬‏ ‏‮enabled‬‏ ‏‮on‬‏ ‏‮your‬‏ ‏‮server‬‏ ‏‮for‬‏ ‏‮a‬‏ ‏‮full‬‏ ‏‮month.‬‏ ‏‮Transaction‬‏ ‏‮History‬‏ ‏‮[Edit‬‏ ‏‮Payment‬‏ ‏‮Info](‬‏‏‮{url}‬‏‏‮)‬‏ ‏‮Payment‬‏ ‏‮Overview‬‏ @@ -3840,7 +3844,7 @@ ‏‮Delete‬‏ ‏‮Emoji‬‏ ‏‮Update‬‏ ‏‮Emoji‬‏ ‏‮Create‬‏ ‏‮Event‬‏ - ‏‮Delete‬‏ ‏‮Event‬‏ + ‏‮Cancel‬‏ ‏‮Event‬‏ ‏‮Update‬‏ ‏‮Event‬‏ ‏‮Update‬‏ ‏‮Server‬‏ ‏‮Create‬‏ ‏‮Integration‬‏ @@ -4024,7 +4028,7 @@ ‏‮Set‬‏ ‏‮the‬‏ ‏‮channel‬‏ ‏‮to‬‏ ‏‮**!!‬‏‏‮{newValue}‬‏‏‮!!**‬‏ ‏‮Removed‬‏ ‏‮the‬‏ ‏‮channel‬‏ ‏‮$[**!!‬‏‏‮{user}‬‏‏‮!!**](userHook)‬‏ ‏‮scheduled‬‏ ‏‮the‬‏ ‏‮event‬‏ ‏‮$[**!!‬‏‏‮{target}‬‏‏‮!!**](targetHook)‬‏ - ‏‮$[**!!‬‏‏‮{user}‬‏‏‮!!**](userHook)‬‏ ‏‮deleted‬‏ ‏‮the‬‏ ‏‮scheduled‬‏ ‏‮event‬‏ ‏‮$[**!!‬‏‏‮{target}‬‏‏‮!!**](targetHook)‬‏ + ‏‮$[**!!‬‏‏‮{user}‬‏‏‮!!**](userHook)‬‏ ‏‮canceled‬‏ ‏‮the‬‏ ‏‮scheduled‬‏ ‏‮event‬‏ ‏‮$[**!!‬‏‏‮{target}‬‏‏‮!!**](targetHook)‬‏ ‏‮Set‬‏ ‏‮the‬‏ ‏‮description‬‏ ‏‮to‬‏ ‏‮**!!‬‏‏‮{newValue}‬‏‏‮!!**‬‏ ‏‮Linked‬‏ ‏‮**externally**‬‏ ‏‮Linked‬‏ ‏‮to‬‏ ‏‮**Nothing**‬‏ @@ -4829,6 +4833,12 @@ ‏‮A‬‏ ‏‮student‬‏ ‏‮email‬‏ ‏‮address‬‏ ‏‮is‬‏ ‏‮required‬‏ ‏‮to‬‏ ‏‮join.‬‏ ‏‮New!‬‏ ‏‮Find‬‏ ‏‮study‬‏ ‏‮groups‬‏ ‏‮and‬‏ ‏‮clubs‬‏ ‏‮in‬‏ ‏‮the‬‏ ‏‮Student‬‏ ‏‮Hub‬‏ ‏‮for‬‏ ‏‮your‬‏ ‏‮school.‬‏ ‏‮We\'ve‬‏ ‏‮sent‬‏ ‏‮an‬‏ ‏‮email‬‏ ‏‮with‬‏ ‏‮your‬‏ ‏‮code.‬‏ ‏‮Didn\'t‬‏ ‏‮get‬‏ ‏‮the‬‏ ‏‮code?‬‏ ‏‮[Resend‬‏ ‏‮code](onClick)‬‏ ‏‮to‬‏ ‏‮!!‬‏‏‮{email}‬‏‏‮!!‬‏ + ‏‮Invite‬‏ ‏‮your‬‏ ‏‮classmates‬‏ + ‏‮Join‬‏ ‏‮your‬‏ ‏‮first‬‏ ‏‮server‬‏ + ‏‮Step‬‏ ‏‮{number}‬‏ ‏‮of‬‏ ‏‮{total}‬‏ + ‏‮Find‬‏ ‏‮your‬‏ ‏‮friends‬‏ + ‏‮Finish‬‏ ‏‮Student‬‏ ‏‮Hub‬‏ ‏‮orientation!‬‏ + ‏‮You\'re‬‏ ‏‮all‬‏ ‏‮set!‬‏ ‏‮Let\'s‬‏ ‏‮go!‬‏ ‏‮Full‬‏ ‏‮Name‬‏ ‏‮Real‬‏ ‏‮Name‬‏ @@ -5973,8 +5983,8 @@ ‏‮Members‬‏ ‏‮with‬‏ ‏‮this‬‏ ‏‮permission‬‏ ‏‮can‬‏ ‏‮drag‬‏ ‏‮other‬‏ ‏‮members‬‏ ‏‮out‬‏ ‏‮of‬‏ ‏‮this‬‏ ‏‮channel.‬‏ ‏‮They‬‏ ‏‮can‬‏ ‏‮only‬‏ ‏‮move‬‏ ‏‮members‬‏ ‏‮between‬‏ ‏‮channels‬‏ ‏‮both‬‏ ‏‮they‬‏ ‏‮and‬‏ ‏‮the‬‏ ‏‮member‬‏ ‏‮they‬‏ ‏‮are‬‏ ‏‮moving‬‏ ‏‮have‬‏ ‏‮access.‬‏ ‏‮Move‬‏ ‏‮To‬‏ ‏‮User‬‏ ‏‮has‬‏ ‏‮been‬‏ ‏‮moved‬‏ ‏‮to‬‏ ‏‮the‬‏ ‏‮selected‬‏ ‏‮channel.‬‏ - ‏‮Alert‬‏ ‏‮Cleared‬‏ - ‏‮No‬‏ ‏‮Alert‬‏ ‏‮Showing‬‏ + ‏‮Alert‬‏ ‏‮Cleared‬‏ + ‏‮No‬‏ ‏‮Alert‬‏ ‏‮Showing‬‏ ‏‮New‬‏ ‏‮notification‬‏ ‏‮Remove‬‏ ‏‮%1$s‬‏ ‏‮More‬‏ ‏‮than‬‏ %1$d ‏‮new‬‏ ‏‮notifications‬‏ @@ -6007,7 +6017,9 @@ ‏‮Tap‬‏ ‏‮to‬‏ ‏‮switch‬‏ ‏‮to‬‏ ‏‮selecting‬‏ ‏‮a‬‏ ‏‮day‬‏ ‏‮Switch‬‏ ‏‮to‬‏ ‏‮text‬‏ ‏‮input‬‏ ‏‮mode‬‏ ‏‮Tap‬‏ ‏‮to‬‏ ‏‮switch‬‏ ‏‮to‬‏ ‏‮selecting‬‏ ‏‮a‬‏ ‏‮year‬‏ + ‏‮Logging‬‏ ‏‮in‬‏ ‏‮to‬‏ ‏‮another‬‏ ‏‮account‬‏ ‏‮will‬‏ ‏‮let‬‏ ‏‮you‬‏ ‏‮easily‬‏ ‏‮swap‬‏ ‏‮between‬‏ ‏‮accounts‬‏ ‏‮on‬‏ ‏‮this‬‏ ‏‮device.‬‏ ‏‮Log‬‏ ‏‮in‬‏ + ‏‮Sorry,‬‏ ‏‮you‬‏ ‏‮can‬‏ ‏‮only‬‏ ‏‮add‬‏ ‏‮{maxNumAccounts}‬‏ ‏‮accounts.‬‏ ‏‮Mute‬‏ ‏‮Mute‬‏ ‏‮Category‬‏ ‏‮Mute‬‏ ‏‮**!!‬‏‏‮{name}‬‏‏‮!!**‬‏ @@ -7563,6 +7575,8 @@ ‏‮Present‬‏ ‏‮like‬‏ ‏‮a‬‏ ‏‮professional‬‏ ‏‮with‬‏ ‏‮**1080p/60fps‬‏ ‏‮video**,‬‏ ‏‮**high‬‏ ‏‮quality‬‏ ‏‮audio**,‬‏ ‏‮and‬‏ ‏‮**100MB‬‏ ‏‮uploads**‬‏ ‏‮Ready‬‏ ‏‮for‬‏ ‏‮the‬‏ ‏‮big‬‏ ‏‮time?‬‏ ‏‮Communities‬‏ ‏‮make‬‏ ‏‮your‬‏ ‏‮server‬‏ ‏‮stand‬‏ ‏‮out.‬‏ ‏‮Plan‬‏ ‏‮Unlocked!‬‏ + ‏‮Current‬‏ ‏‮Plan‬‏ + ‏‮{guildName}‬‏ ‏‮has‬‏ ‏‮{numSubscriptionsApplied}‬‏ ‏‮Something‬‏ ‏‮has‬‏ ‏‮gone‬‏ ‏‮horribly‬‏ ‏‮wrong!‬‏ ‏‮We\'re‬‏ ‏‮trying‬‏ ‏‮our‬‏ ‏‮best!‬‏ ‏‮See‬‏ ‏‮below‬‏ ‏‮for‬‏ ‏‮more‬‏ ‏‮information.‬‏ ‏‮View‬‏ ‏‮Plans‬‏ @@ -7570,6 +7584,7 @@ ‏‮Build‬‏ ‏‮the‬‏ ‏‮best‬‏ ‏‮server‬‏ ‏‮with‬‏ ‏‮Boosting‬‏ ‏‮Help‬‏ ‏‮your‬‏ ‏‮favorite‬‏ ‏‮servers‬‏ ‏‮unlock‬‏ ‏‮customization‬‏ ‏‮features‬‏ ‏‮and‬‏ ‏‮powerful‬‏ ‏‮upgrades‬‏ ‏‮for‬‏ ‏‮everyone‬‏ ‏‮to‬‏ ‏‮enjoy.‬‏ ‏‮Get‬‏ ‏‮more‬‏ ‏‮features‬‏ ‏‮your‬‏ ‏‮members‬‏ ‏‮will‬‏ ‏‮love.‬‏ ‏‮Members‬‏ ‏‮can‬‏ ‏‮add‬‏ ‏‮Boosts‬‏ ‏‮collectively‬‏ ‏‮to‬‏ ‏‮help‬‏ ‏‮unlock‬‏ ‏‮plans‬‏ ‏‮for‬‏ ‏‮the‬‏ ‏‮server‬‏ ‏‮or‬‏ ‏‮you‬‏ ‏‮can‬‏ ‏‮skip‬‏ ‏‮the‬‏ ‏‮wait.‬‏ + ‏‮{numSubscriptionsRequiredForTier}‬‏ ‏‮Animated‬‏ ‏‮Server‬‏ ‏‮Icon‬‏ ‏‮Custom‬‏ ‏‮Server‬‏ ‏‮Invite‬‏ ‏‮Background‬‏ ‏‮Custom‬‏ ‏‮Invite‬‏ ‏‮Link‬‏ @@ -7821,9 +7836,9 @@ ‏‮Allows‬‏ ‏‮members‬‏ ‏‮to‬‏ ‏‮create,‬‏ ‏‮edit,‬‏ ‏‮or‬‏ ‏‮delete‬‏ ‏‮channels.‬‏ ‏‮Allows‬‏ ‏‮members‬‏ ‏‮to‬‏ ‏‮add‬‏ ‏‮or‬‏ ‏‮remove‬‏ ‏‮custom‬‏ ‏‮emojis‬‏ ‏‮and‬‏ ‏‮stickers‬‏ ‏‮in‬‏ ‏‮this‬‏ ‏‮server.‬‏ ‏‮Allows‬‏ ‏‮members‬‏ ‏‮to‬‏ ‏‮add‬‏ ‏‮or‬‏ ‏‮remove‬‏ ‏‮custom‬‏ ‏‮emojis‬‏ ‏‮in‬‏ ‏‮this‬‏ ‏‮server.‬‏ - ‏‮Allows‬‏ ‏‮members‬‏ ‏‮to‬‏ ‏‮create,‬‏ ‏‮edit,‬‏ ‏‮and‬‏ ‏‮delete‬‏ ‏‮events.‬‏ - ‏‮Allows‬‏ ‏‮members‬‏ ‏‮to‬‏ ‏‮create,‬‏ ‏‮edit,‬‏ ‏‮and‬‏ ‏‮delete‬‏ ‏‮events‬‏ ‏‮in‬‏ ‏‮these‬‏ ‏‮channels.‬‏ - ‏‮Allows‬‏ ‏‮members‬‏ ‏‮to‬‏ ‏‮create,‬‏ ‏‮edit,‬‏ ‏‮and‬‏ ‏‮delete‬‏ ‏‮events‬‏ ‏‮in‬‏ ‏‮this‬‏ ‏‮channel.‬‏ + ‏‮Allows‬‏ ‏‮members‬‏ ‏‮to‬‏ ‏‮create,‬‏ ‏‮edit,‬‏ ‏‮and‬‏ ‏‮cancel‬‏ ‏‮events.‬‏ + ‏‮Allows‬‏ ‏‮members‬‏ ‏‮to‬‏ ‏‮create,‬‏ ‏‮edit,‬‏ ‏‮and‬‏ ‏‮cancel‬‏ ‏‮events‬‏ ‏‮in‬‏ ‏‮these‬‏ ‏‮channels.‬‏ + ‏‮Allows‬‏ ‏‮members‬‏ ‏‮to‬‏ ‏‮create,‬‏ ‏‮edit,‬‏ ‏‮and‬‏ ‏‮cancel‬‏ ‏‮events‬‏ ‏‮in‬‏ ‏‮this‬‏ ‏‮channel.‬‏ ‏‮Allows‬‏ ‏‮members‬‏ ‏‮to‬‏ ‏‮delete‬‏ ‏‮messages‬‏ ‏‮by‬‏ ‏‮other‬‏ ‏‮members‬‏ ‏‮or‬‏ ‏‮pin‬‏ ‏‮any‬‏ ‏‮message.‬‏ ‏‮Allows‬‏ ‏‮members‬‏ ‏‮to‬‏ ‏‮delete‬‏ ‏‮messages‬‏ ‏‮by‬‏ ‏‮other‬‏ ‏‮members‬‏ ‏‮or‬‏ ‏‮pin‬‏ ‏‮any‬‏ ‏‮message‬‏ ‏‮in‬‏ ‏‮this‬‏ ‏‮channel.‬‏ ‏‮They‬‏ ‏‮can‬‏ ‏‮also‬‏ ‏‮publish‬‏ ‏‮messages‬‏ ‏‮by‬‏ ‏‮other‬‏ ‏‮members‬‏ ‏‮to‬‏ ‏‮all‬‏ ‏‮servers‬‏ ‏‮that‬‏ ‏‮follow‬‏ ‏‮this‬‏ ‏‮[Announcement‬‏ ‏‮Channel](‬‏‏‮{articleURL}‬‏‏‮).‬‏ ‏‮Allows‬‏ ‏‮members‬‏ ‏‮to‬‏ ‏‮delete‬‏ ‏‮messages‬‏ ‏‮by‬‏ ‏‮other‬‏ ‏‮members‬‏ ‏‮or‬‏ ‏‮pin‬‏ ‏‮any‬‏ ‏‮message‬‏ ‏‮in‬‏ ‏‮these‬‏ ‏‮channels.‬‏ @@ -8425,6 +8440,7 @@ ‏‮Show‬‏ ‏‮{n}‬‏ ‏‮Muted‬‏ ‏‮Show‬‏ ‏‮Muted‬‏ ‏‮Channels‬‏ ‏‮Show‬‏ ‏‮New‬‏ ‏‮Message‬‏ ‏‮Previews‬‏ + ‏‮Show‬‏ ‏‮Previous‬‏ ‏‮Messages‬‏ ‏‮Always‬‏ ‏‮Show‬‏ ‏‮spoiler‬‏ ‏‮content‬‏ ‏‮This‬‏ ‏‮controls‬‏ ‏‮when‬‏ ‏‮spoiler‬‏ ‏‮content‬‏ ‏‮is‬‏ ‏‮displayed.‬‏ @@ -8917,10 +8933,18 @@ ‏‮Hello,‬‏ ‏‮anyone‬‏ ‏‮there?‬‏ ‏‮You‬‏ ‏‮do‬‏ ‏‮not‬‏ ‏‮have‬‏ ‏‮permission‬‏ ‏‮to‬‏ ‏‮speak‬‏ ‏‮in‬‏ ‏‮this‬‏ ‏‮channel.‬‏ ‏‮Swedish‬‏ + ‏‮Log‬‏ ‏‮in‬‏ + ‏‮Switch‬‏ + ‏‮Active‬‏ ‏‮account‬‏ ‏‮Add‬‏ ‏‮an‬‏ ‏‮account‬‏ + ‏‮Choose‬‏ ‏‮an‬‏ ‏‮account‬‏ + ‏‮Select‬‏ ‏‮an‬‏ ‏‮account‬‏ ‏‮to‬‏ ‏‮log‬‏ ‏‮in‬‏ ‏‮with‬‏ ‏‮or‬‏ ‏‮add‬‏ ‏‮a‬‏ ‏‮new‬‏ ‏‮one.‬‏ + ‏‮Please‬‏ ‏‮log‬‏ ‏‮in‬‏ ‏‮again.‬‏ + ‏‮Manage‬‏ ‏‮account‬‏ ‏‮Switch‬‏ ‏‮Accounts‬‏ ‏‮Manage‬‏ ‏‮Accounts‬‏ ‏‮Switch‬‏ ‏‮accounts,‬‏ ‏‮sign‬‏ ‏‮in,‬‏ ‏‮sign‬‏ ‏‮out,‬‏ ‏‮go‬‏ ‏‮wild.‬‏ + ‏‮Log‬‏ ‏‮out‬‏ ‏‮Change‬‏ ‏‮Audio‬‏ ‏‮Output‬‏ ‏‮Change‬‏ ‏‮Hardware‬‏ ‏‮Acceleration‬‏ ‏‮Changing‬‏ ‏‮the‬‏ ‏‮hardware‬‏ ‏‮acceleration‬‏ ‏‮setting‬‏ ‏‮will‬‏ ‏‮quit‬‏ ‏‮and‬‏ ‏‮re-launch‬‏ ‏‮Discord.‬‏ ‏‮Are‬‏ ‏‮you‬‏ ‏‮sure‬‏ ‏‮you‬‏ ‏‮want‬‏ ‏‮to‬‏ ‏‮do‬‏ ‏‮this?‬‏ diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index e55fe02f8d..6124e05f62 100644 --- a/app/src/main/res/values-bg/strings.xml +++ b/app/src/main/res/values-bg/strings.xml @@ -4829,7 +4829,6 @@ Позволи на разговорите в Discord да се появяват като предложения за споделяне и търсене в iOS. Деактивирането на тази опция ще скрие тези предложения и ще накара iOS да забрави кои приятели и сървъри са ти любими. Предложения за разговори в iOS Участниците без видео са скрити в момента. Искаш ли да ги покажеш? - Покажи участници без видео Виж всички IP адресът е защитен IP адресът е оторизиран @@ -6433,7 +6432,6 @@ Този сървър ще изгуби напредъка си, ако премахнеш твоето усилване. **Твоето усилване все още е на изчакване. Той ще бъде достъпен след {minutes}.** Премахни усилването на сървъра? Икона за списък с членове до името си - Бляскав бадж на профил, който се променя с времето Ексклузивна нова роля в този сървър Усили сървър и вземи: Включени в Nitro: diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 34f1083ac9..b6aa91674d 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -4833,7 +4833,6 @@ Umožní, aby se konverzace z Discordu objevovaly jako návrhy na sdílení a vyhledávání v systému iOS. Vypnutím této možnosti návrhy schováš a systém iOS si nebude pamatovat, kteří přátelé a servery patří mezi tvé oblíbené. Návrhy konverzací iOS Účastníci nevyužívající video jsou aktuálně skryti. Chceš je zobrazit? - Zobrazit účastníky bez videa Zobrazit vše IP adresa zajištěna IP adresa autorizována @@ -6437,7 +6436,6 @@ Tento server ztratí postup, pokud své vylepšení odebereš. **Tvůj vylepšovač ještě chladne. Vylepšení bude znovu dostupné za {minutes}.** Odstranit vylepšení serveru? Ikonu vedle tvého jména v seznamu členů - Nablýskaný odznak na tvůj profil, který se časem mění Novou exkluzivní roli na daném serveru Vylepši server a získej: Funkce, které jsou součástí Nitra: diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index e5a08485ef..d53d100b68 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -4834,7 +4834,6 @@ Tillad at Discord samtaler vises som forslag til deling samt i søgninger i iOS. Deaktiveres dette, vil forslag ikke blive vist, og samtidig vil iOS glemme hvilke venner og servere, der er dine favoritter. iOS samtaleforslag Deltagere der ikke deltager med videoopkald er pt. skjult.Vil du vise dem? - Vis deltagere uden video Se alt IP-adresse sikret IP-adresse autoriseret @@ -6438,7 +6437,6 @@ Denne server vil miste fremskridt, hvis du fjerne boost. **Dit boost er fortsat i cooldown periode. Den er tilgængelig om {minutes}.** Vil du fjerne Serverboost? Et medlemsliste-ikon ved siden af dit navn - Et skinnende profilbadge, der skifter med tiden En eksklusiv ny rolle på denne server Boost en server og få: Inkluderet i Nitro: diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index e667056993..76dc8de75e 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -4838,7 +4838,6 @@ Ermöglicht es, Unterhaltungsvorschläge für Discord in iOS anzuzeigen und sie zu teilen und zu suchen. Wenn du das deaktivierst, werden diese Vorschläge ausgeblendet und iOS vergisst, welche Freunde und Server zu deinen Favoriten zählen. Unterhaltungsvorschläge für iOS Teilnehmer ohne Video werden derzeit nicht angezeigt. Sollen sie angezeigt werden? - Teilnehmer ohne Video anzeigen Alles anzeigen IP-Adresse gesichert IP-Adresse autorisiert @@ -6442,7 +6441,6 @@ Dieser Server wird Levelfortschritt verlieren, wenn du deinen Boost zurückziehst. **Der Cooldown deines Boosts ist noch nicht abgelaufen. Er wird in {minutes} wieder verfügbar sein.** Server-Boost zurückziehen? Ein Mitgliederlisten-Icon neben deinem Namen - Ein funkelndes Profilabzeichen, das sich mit der Zeit verändert Eine exklusive neue Rolle auf diesem Server Booste einen Server und erhalte: Das gibt dir Nitro: diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index e6f6c79be5..9e981a08f4 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -4829,7 +4829,6 @@ Επίτρεψε τις συζητήσεις Discord να εμφανίζονται ως προτάσεις για κοινή χρήση και αναζήτηση σε iOS. Απενεργοποιώντας αυτή την επιλογή, οι προτάσεις θα σταματήσουν να εμφανίζονται και το iOS θα διαγράψει το ιστορικό με τους φίλους και τους αγαπημένους σου διακομιστές. Προτάσεις Συζήτησης iOS Δεν εμφανίζονται οι συμμετέχοντες χωρίς βίντεο. Θέλεις να τους εμφανίσεις; - Εμφάνιση συμμετεχόντων χωρίς βίντεο Προβολή όλων Η διεύθυνση IP ασφαλίστηκε Η διεύθυνση IP εξουσιοδοτήθηκε @@ -6433,7 +6432,6 @@ Αυτός ο διακομιστής θα χάσει την πρόοδό του εάν αφαιρέσετε την ενίσχυσή σας. **Η ενίσχυσή σας είναι ακόμα σε αντίστροφη μέτρηση. Θα είναι διαθέσιμη σε {minutes}.** Αφαίρεση ενίσχυσης διακομιστή; Ένα εικονίδιο λίστας μελών δίπλα στο όνομά σου - Ένα λαμπερό έμβλημα προφίλ που αλλάζει με την πάροδο του χρόνου Ένας αποκλειστικός νέος ρόλος σε εκείνον τον διακομιστή Ενίσχυσε έναν διακομιστή και απόκτησε: Περιλαμβάνονται στο Nitro: diff --git a/app/src/main/res/values-en-rXA/plurals.xml b/app/src/main/res/values-en-rXA/plurals.xml index 3ecffcdd6b..d9522a7c86 100644 --- a/app/src/main/res/values-en-rXA/plurals.xml +++ b/app/src/main/res/values-en-rXA/plurals.xml @@ -1344,6 +1344,14 @@ [»{numSubscriptionsApplied}« βööšţ one two] [»{numSubscriptionsApplied}« βööšţš one two] + + [»{numSubscriptionsApplied}« βööšţ one two] + [»{numSubscriptionsApplied}« βööšţš one two] + + + [»{numSubscriptionsRequiredForTier}« βööšţ one two] + [»{numSubscriptionsRequiredForTier}« βööšţš one two] + [»{numSubscriptionsApplied}« βööšţ one two] [»{numSubscriptionsApplied}« βööšţš one two] diff --git a/app/src/main/res/values-en-rXA/strings.xml b/app/src/main/res/values-en-rXA/strings.xml index 917357aa47..9e3ca068bd 100644 --- a/app/src/main/res/values-en-rXA/strings.xml +++ b/app/src/main/res/values-en-rXA/strings.xml @@ -801,6 +801,8 @@ [Ýöû ŵîļļ åûţöḿåţîçåļļý ļéåVé ţĥîš ĝŕöûþ ŵĥéñ ýöû\'ŕé ðöñé. one two three four five six seven] [Ţĥîš îš ţĥé šţåŕţ öƒ ţĥé ¡¡»{channelName}«¡¡ **þŕîVåţé** çĥåññéļ. €[](ţöþîçĤööķ) one two three four five six seven] [Ţĥîš ţĥŕéåð ŵîļļ åŕçĥîVé åƒţéŕ €[](åûţöÅŕçĥîVéÐûŕåţîöñĤööķ) öƒ îñåçţîVîţý. one two three four five six seven eight] + [Ðîšþļåýîñĝ ḿéššåĝéš šîñçé ýöû ĵöîñéð. one two three four five] + [Ýöû ðö ñöţ ĥåVé þéŕḿîššîöñ ţö Vîéŵ ḿéššåĝé ĥîšţöŕý. one two three four five six] [βéţå one] [βûļĝåŕîåñ one two] [βîļļîñĝ one two] @@ -1475,6 +1477,7 @@ [Ţýþé å ñåḿé ƒöŕ ýöûŕ ţĥŕéåð one two three four] [Ûšé ţéхţ-ţö-šþééçĥ ţö ŕéåð ţĥé ḿéššåĝé ţö åļļ ḿéḿɓéŕš çûŕŕéñţļý Vîéŵîñĝ ţĥé çĥåññéļ. one two three four five six seven eight nine] [Ýöûŕ ḿéššåĝé one two] + [Ñöţ å Våļîð åţţåçĥḿéñţ. one two three] [Þîçķ éîţĥéŕ ţŕûé öŕ ƒåļšé. one two three four] [Ñöţ å Våļîð çĥåññéļ. one two three] [Ñöţ å Våļîð çĥöîçé. one two three] @@ -3385,8 +3388,8 @@ [Çöþý ţĥé éVéñţ ļîñķ ɓéļöŵ ţö îñVîţé þéöþļé ţö ýöûŕ éVéñţ. Ţĥîš åļšö åçţš åš å šéŕVéŕ îñVîţé ļîñķ. one two three four five six seven eight nine ten eleven] [Åļļ šéţ. Ñöŵ šĥåŕé ýöûŕ éVéñţ¡ one two three four] [»{date}« åţ »{time}« one] - [Åŕé ýöû šûŕé ýöû ŵåñţ ţö ðéļéţé ţĥîš éVéñţ¿ one two three four five] - [Ðéļéţé ÉVéñţ¿ one two] + [Åŕé ýöû šûŕé ýöû ŵåñţ ţö çåñçéļ ţĥîš éVéñţ¿ one two three four five] + [Çåñçéļ ÉVéñţ¿ one two] [ÉVéñţ Îñƒö one two] [Ñö öñé\'š îñţéŕéšţéð îñ ţĥîš éVéñţ ýéţ. one two three four five] [Ŵé åŕé ĥåVîñĝ þŕöɓļéḿš ļööķîñĝ ûþ ŵĥö îš îñţéŕéšţéð îñ ţĥîš éVéñţ. Þļéåšé ţŕý åĝåîñ ļåţéŕ. one two three four five six seven eight nine ten] @@ -3648,6 +3651,7 @@ [Šţéþ »{number}« öƒ »{total}« one two] [ÅļîQûéţ åûĝûé çöñðîḿéñţûḿ ļéö éĝéšţåš. Ĵûšţö, ţéļļûš ḿåţţîš ñîɓĥ ðöñéç Véļîţ. one two three four five six seven eight] [νîţåé Qûîš ƒåçîļîšî îñţéĝéŕ ñéç ļöɓöŕţîš éţ þûŕûš. Šéð åŕçû öðîö ļéö Véļ ĝŕåVîðå ƒåûçîɓûš åļîQûéţ. Ðöļöŕ Véļîţ VîVéŕŕå ḿåûŕîš ŕĥöñçûš ţöŕţöŕ Vûļþûţåţé Qûåḿ éŕåţ Qûîš. Šéñéçţûš ḿöŕɓî Vîţåé ûţ ĵûšţö ûţ ûļţŕîçéš. one two three four five six seven eight nine ten eleven twelve thirteen fourteen fiveteen sixteen seventeen nineteen twenty one two three four five six seven eight nine ten eleven twelve thirteen fourteen fiveteen] + [Çĥéçķ ɓåçķ ĥéŕé ƒöŕ å ĥîšţöŕý öƒ ýöûŕ ţŕåñšåçţîöñš öñçé ýöû’Vé ĥåð Þŕéḿîûḿ Ḿéḿɓéŕšĥîþš éñåɓļéð öñ ýöûŕ šéŕVéŕ ƒöŕ å ƒûļļ ḿöñţĥ. one two three four five six seven eight nine ten eleven twelve thirteen] [Ţŕåñšåçţîöñ Ĥîšţöŕý one two three] [[Éðîţ Þåýḿéñţ Îñƒö](»{url}«) one two three] [Þåýḿéñţ ÖVéŕVîéŵ one two three] @@ -3840,7 +3844,7 @@ [Ðéļéţé Éḿöĵî one two] [Ûþðåţé Éḿöĵî one two] [Çŕéåţé ÉVéñţ one two] - [Ðéļéţé ÉVéñţ one two] + [Çåñçéļ ÉVéñţ one two] [Ûþðåţé ÉVéñţ one two] [Ûþðåţé ŠéŕVéŕ one two] [Çŕéåţé Îñţéĝŕåţîöñ one two three] @@ -4024,7 +4028,7 @@ [Šéţ ţĥé çĥåññéļ ţö **¡¡»{newValue}«¡¡** one two three four] [ŔéḿöVéð ţĥé çĥåññéļ one two three] [€[**¡¡»{user}«¡¡**](ûšéŕĤööķ) šçĥéðûļéð ţĥé éVéñţ €[**¡¡»{target}«¡¡**](ţåŕĝéţĤööķ) one two three four five six seven eight nine ten eleven twelve thirteen] - [€[**¡¡»{user}«¡¡**](ûšéŕĤööķ) ðéļéţéð ţĥé šçĥéðûļéð éVéñţ €[**¡¡»{target}«¡¡**](ţåŕĝéţĤööķ) one two three four five six seven eight nine ten eleven twelve thirteen fourteen] + [€[**¡¡»{user}«¡¡**](ûšéŕĤööķ) çåñçéļéð ţĥé šçĥéðûļéð éVéñţ €[**¡¡»{target}«¡¡**](ţåŕĝéţĤööķ) one two three four five six seven eight nine ten eleven twelve thirteen fourteen] [Šéţ ţĥé ðéšçŕîþţîöñ ţö **¡¡»{newValue}«¡¡** one two three four] [Ļîñķéð **éхţéŕñåļļý** one two three] [Ļîñķéð ţö **Ñöţĥîñĝ** one two three] @@ -4829,6 +4833,12 @@ [Å šţûðéñţ éḿåîļ åððŕéšš îš ŕéQûîŕéð ţö ĵöîñ. one two three four five] [Ñéŵ¡ Fîñð šţûðý ĝŕöûþš åñð çļûɓš îñ ţĥé Šţûðéñţ Ĥûɓ ƒöŕ ýöûŕ šçĥööļ. one two three four five six seven eight] [Ŵé\'Vé šéñţ åñ éḿåîļ ŵîţĥ ýöûŕ çöðé. Ðîðñ\'ţ ĝéţ ţĥé çöðé¿ [Ŕéšéñð çöðé](öñÇļîçķ) ţö ¡¡»{email}«¡¡ one two three four five six seven eight nine ten eleven twelve thirteen fourteen fiveteen] + [ÎñVîţé ýöûŕ çļåššḿåţéš one two three] + [Ĵöîñ ýöûŕ ƒîŕšţ šéŕVéŕ one two three] + [Šţéþ »{number}« öƒ »{total}« one two] + [Fîñð ýöûŕ ƒŕîéñðš one two three] + [Fîñîšĥ Šţûðéñţ Ĥûɓ öŕîéñţåţîöñ¡ one two three four] + [Ýöû\'ŕé åļļ šéţ¡ one two three] [Ļéţ\'š ĝö¡ one two] [Fûļļ Ñåḿé one two] [Ŕéåļ Ñåḿé one two] @@ -5973,8 +5983,8 @@ [Ḿéḿɓéŕš ŵîţĥ ţĥîš þéŕḿîššîöñ çåñ ðŕåĝ öţĥéŕ ḿéḿɓéŕš öûţ öƒ ţĥîš çĥåññéļ. Ţĥéý çåñ öñļý ḿöVé ḿéḿɓéŕš ɓéţŵééñ çĥåññéļš ɓöţĥ ţĥéý åñð ţĥé ḿéḿɓéŕ ţĥéý åŕé ḿöVîñĝ ĥåVé åççéšš. one two three four five six seven eight nine ten eleven twelve thirteen fourteen fiveteen] [ḾöVé Ţö one two] [Ûšéŕ ĥåš ɓééñ ḿöVéð ţö ţĥé šéļéçţéð çĥåññéļ. one two three four five] - [Åļéŕţ Çļéåŕéð one two] - [Ñö Åļéŕţ Šĥöŵîñĝ one two three] + [Åļéŕţ Çļéåŕéð one two] + [Ñö Åļéŕţ Šĥöŵîñĝ one two three] [Ñéŵ ñöţîƒîçåţîöñ one two three] [ŔéḿöVé »%1$s« one two] [Ḿöŕé ţĥåñ %1$d ñéŵ ñöţîƒîçåţîöñš one two three four] @@ -6007,7 +6017,9 @@ [Ţåþ ţö šŵîţçĥ ţö šéļéçţîñĝ å ðåý one two three four] [Šŵîţçĥ ţö ţéхţ îñþûţ ḿöðé one two three] [Ţåþ ţö šŵîţçĥ ţö šéļéçţîñĝ å ýéåŕ one two three four] + [Ļöĝĝîñĝ îñ ţö åñöţĥéŕ åççöûñţ ŵîļļ ļéţ ýöû éåšîļý šŵåþ ɓéţŵééñ åççöûñţš öñ ţĥîš ðéVîçé. one two three four five six seven eight nine] [Ļöĝ îñ one two] + [Šöŕŕý, ýöû çåñ öñļý åðð »{maxNumAccounts}« åççöûñţš. one two three four] [Ḿûţé one] [Ḿûţé Çåţéĝöŕý one two] [Ḿûţé **¡¡»{name}«¡¡** one two] @@ -7563,6 +7575,8 @@ [Þŕéšéñţ ļîķé å þŕöƒéššîöñåļ ŵîţĥ **1080þ/60ƒþš Vîðéö**, **ĥîĝĥ Qûåļîţý åûðîö**, åñð **100Ḿβ ûþļöåðš** one two three four five six seven eight nine ten eleven twelve thirteen fourteen fiveteen sixteen seventeen] [Ŕéåðý ƒöŕ ţĥé ɓîĝ ţîḿé¿ Çöḿḿûñîţîéš ḿåķé ýöûŕ šéŕVéŕ šţåñð öûţ. one two three four five six seven] [Þļåñ Ûñļöçķéð¡ one two three] + [Çûŕŕéñţ Þļåñ one two] + [»{guildName}« ĥåš »{numSubscriptionsApplied}« one] [Šöḿéţĥîñĝ ĥåš ĝöñé ĥöŕŕîɓļý ŵŕöñĝ¡ one two three four] [Ŵé\'ŕé ţŕýîñĝ öûŕ ɓéšţ¡ Šéé ɓéļöŵ ƒöŕ ḿöŕé îñƒöŕḿåţîöñ. one two three four five six seven] [νîéŵ Þļåñš one two] @@ -7570,6 +7584,7 @@ [βûîļð ţĥé ɓéšţ šéŕVéŕ ŵîţĥ βööšţîñĝ one two three four] [Ĥéļþ ýöûŕ ƒåVöŕîţé šéŕVéŕš ûñļöçķ çûšţöḿîžåţîöñ ƒéåţûŕéš åñð þöŵéŕƒûļ ûþĝŕåðéš ƒöŕ éVéŕýöñé ţö éñĵöý. one two three four five six seven eight nine ten eleven] [Ĝéţ ḿöŕé ƒéåţûŕéš ýöûŕ ḿéḿɓéŕš ŵîļļ ļöVé. Ḿéḿɓéŕš çåñ åðð βööšţš çöļļéçţîVéļý ţö ĥéļþ ûñļöçķ þļåñš ƒöŕ ţĥé šéŕVéŕ öŕ ýöû çåñ šķîþ ţĥé ŵåîţ. one two three four five six seven eight nine ten eleven twelve thirteen] + [»{numSubscriptionsRequiredForTier}«] [Åñîḿåţéð ŠéŕVéŕ Îçöñ one two three] [Çûšţöḿ ŠéŕVéŕ ÎñVîţé βåçķĝŕöûñð one two three four] [Çûšţöḿ ÎñVîţé Ļîñķ one two three] @@ -7821,9 +7836,9 @@ [Åļļöŵš ḿéḿɓéŕš ţö çŕéåţé, éðîţ, öŕ ðéļéţé çĥåññéļš. one two three four five six] [Åļļöŵš ḿéḿɓéŕš ţö åðð öŕ ŕéḿöVé çûšţöḿ éḿöĵîš åñð šţîçķéŕš îñ ţĥîš šéŕVéŕ. one two three four five six seven eight] [Åļļöŵš ḿéḿɓéŕš ţö åðð öŕ ŕéḿöVé çûšţöḿ éḿöĵîš îñ ţĥîš šéŕVéŕ. one two three four five six seven] - [Åļļöŵš ḿéḿɓéŕš ţö çŕéåţé, éðîţ, åñð ðéļéţé éVéñţš. one two three four five six] - [Åļļöŵš ḿéḿɓéŕš ţö çŕéåţé, éðîţ, åñð ðéļéţé éVéñţš îñ ţĥéšé çĥåññéļš. one two three four five six seven eight] - [Åļļöŵš ḿéḿɓéŕš ţö çŕéåţé, éðîţ, åñð ðéļéţé éVéñţš îñ ţĥîš çĥåññéļ. one two three four five six seven eight] + [Åļļöŵš ḿéḿɓéŕš ţö çŕéåţé, éðîţ, åñð çåñçéļ éVéñţš. one two three four five six] + [Åļļöŵš ḿéḿɓéŕš ţö çŕéåţé, éðîţ, åñð çåñçéļ éVéñţš îñ ţĥéšé çĥåññéļš. one two three four five six seven eight] + [Åļļöŵš ḿéḿɓéŕš ţö çŕéåţé, éðîţ, åñð çåñçéļ éVéñţš îñ ţĥîš çĥåññéļ. one two three four five six seven eight] [Åļļöŵš ḿéḿɓéŕš ţö ðéļéţé ḿéššåĝéš ɓý öţĥéŕ ḿéḿɓéŕš öŕ þîñ åñý ḿéššåĝé. one two three four five six seven eight] [Åļļöŵš ḿéḿɓéŕš ţö ðéļéţé ḿéššåĝéš ɓý öţĥéŕ ḿéḿɓéŕš öŕ þîñ åñý ḿéššåĝé îñ ţĥîš çĥåññéļ. Ţĥéý çåñ åļšö þûɓļîšĥ ḿéššåĝéš ɓý öţĥéŕ ḿéḿɓéŕš ţö åļļ šéŕVéŕš ţĥåţ ƒöļļöŵ ţĥîš [Åññöûñçéḿéñţ Çĥåññéļ](»{articleURL}«). 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] [Åļļöŵš ḿéḿɓéŕš ţö ðéļéţé ḿéššåĝéš ɓý öţĥéŕ ḿéḿɓéŕš öŕ þîñ åñý ḿéššåĝé îñ ţĥéšé çĥåññéļš. one two three four five six seven eight nine ten] @@ -8425,6 +8440,7 @@ [Šĥöŵ »{n}« Ḿûţéð one two] [Šĥöŵ Ḿûţéð Çĥåññéļš one two three] [Šĥöŵ Ñéŵ Ḿéššåĝé ÞŕéVîéŵš one two three] + [Šĥöŵ ÞŕéVîöûš Ḿéššåĝéš one two three] [Åļŵåýš one two] [Šĥöŵ šþöîļéŕ çöñţéñţ one two three] [Ţĥîš çöñţŕöļš ŵĥéñ šþöîļéŕ çöñţéñţ îš ðîšþļåýéð. one two three four five six] @@ -8917,10 +8933,18 @@ [Ĥéļļö, åñýöñé ţĥéŕé¿ one two three] [Ýöû ðö ñöţ ĥåVé þéŕḿîššîöñ ţö šþéåķ îñ ţĥîš çĥåññéļ. one two three four five six] [Šŵéðîšĥ one two] + [Ļöĝ îñ one two] + [Šŵîţçĥ one two] + [ÅçţîVé åççöûñţ one two three] [Åðð åñ åççöûñţ one two three] + [Çĥööšé åñ åççöûñţ one two three] + [Šéļéçţ åñ åççöûñţ ţö ļöĝ îñ ŵîţĥ öŕ åðð å ñéŵ öñé. one two three four five six] + [Þļéåšé ļöĝ îñ åĝåîñ. one two three] + [Ḿåñåĝé åççöûñţ one two three] [Šŵîţçĥ Åççöûñţš one two three] [Ḿåñåĝé Åççöûñţš one two three] [Šŵîţçĥ åççöûñţš, šîĝñ îñ, šîĝñ öûţ, ĝö ŵîļð. one two three four five six seven eight nine ten] + [Ļöĝ öûţ one two] [Çĥåñĝé Åûðîö Öûţþûţ one two three] [Çĥåñĝé Ĥåŕðŵåŕé Åççéļéŕåţîöñ one two three four] [Çĥåñĝîñĝ ţĥé ĥåŕðŵåŕé åççéļéŕåţîöñ šéţţîñĝ ŵîļļ Qûîţ åñð ŕé-ļåûñçĥ Ðîšçöŕð. Åŕé ýöû šûŕé ýöû ŵåñţ ţö ðö ţĥîš¿ one two three four five six seven eight nine ten eleven] diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml index 5f5544b721..825131fc72 100644 --- a/app/src/main/res/values-es-rES/strings.xml +++ b/app/src/main/res/values-es-rES/strings.xml @@ -4726,7 +4726,6 @@ Permite que las conversaciones de Discord aparezcan como sugerencias para compartir y buscar en iOS. Si lo desactivas, se ocultarán las sugerencias e iOS olvidará cuáles son tus amigos y servidores favoritos. Sugerencias de conversaciones de iOS Los participantes sin vídeo están ocultos. ¿Quieres mostrarlos? - Mostrar participantes sin vídeo Ver todo Dirección IP asegurada Dirección IP autorizada @@ -6280,7 +6279,6 @@ Este servidor perderá progreso si eliminas tu mejora. **Tu mejora aún está en tiempo de recuperación. Estará disponible en {minutes}.** ¿Eliminar mejora del servidor? Un icono de lista de miembros junto a tu nombre - Una flamante insignia de perfil que cambia con el tiempo Un nuevo rol exclusivo en ese servidor Mejora un servidor y recibe: Incluido con Nitro: diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index 59079bffb7..c272b9442e 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -4829,7 +4829,6 @@ Sallii jaettavaksi ja haettavaksi ehdotettujen Discord-keskustelujen näyttämisen iOS-laitteilla. Jos poistat tämän käytöstä, ehdotuksia ei näytetä ja iOS ei enää muista suosikkikavereitasi ja -palvelimiasi. iOS-keskusteluehdotukset Osallistujat, jotka eivät käytä videokuvaa, ovat parhaillaan piilotettuina. Haluatko tuoda heidät näkyviin? - Näytä videokuvattomat osallistujat Näytä kaikki IP-osoite suojattu IP-osoite valtuutettu @@ -6433,7 +6432,6 @@ Palvelin menettää tasonousuedistyksensä, jos poistat nostatuksesi. **Nostatuksesi odotusaika on yhä käynnissä. Voit tehdä uuden nostatuksen {minutes} kuluttua.** Poistetaanko palvelimen nostatus? Nimesi vieressä näkyvä jäsenluettelokuvake - Ajan kuluessa muuttuva säihkyvän tyylikäs profiilimerkki Eksklusiivinen uusi rooli kyseisellä palvelimella Nostata palvelinta, niin saat nämä edut: Nitroon sisältyvät: diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 551745de00..e02c20483c 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -4834,7 +4834,6 @@ Autorise les conversations Discord à apparaître dans les suggestions de recherche et de partage sur iOS. Désactiver cette option cachera ces suggestions et fera oublier à iOS vos amis et serveurs favoris. Suggestions de conversation iOS Les participants dont la vidéo est désactivée sont actuellement cachés. Veux-tu les afficher ? - Afficher les participants dont la vidéo est désactivée Afficher tout Adresse IP sécurisée Adresse IP autorisée @@ -6437,7 +6436,6 @@ Ce serveur perdra une part de sa progression si tu retires ton boost. **Ton boost a toujours un temps de récupération. Il sera de nouveau disponible dans {minutes}.** Supprimer le boost de serveur ? Une icône de liste des membres à côté de ton nom - Un badge de profil qui brille de mille feux et change au fil du temps Un nouveau rôle exclusif dans ce serveur Booste un serveur et obtiens : Inclus avec Nitro : diff --git a/app/src/main/res/values-hi/strings.xml b/app/src/main/res/values-hi/strings.xml index 1434fcb360..1dd6ca5d53 100644 --- a/app/src/main/res/values-hi/strings.xml +++ b/app/src/main/res/values-hi/strings.xml @@ -4829,7 +4829,6 @@ Discord कंवर्ज़ेशन को iOS में शेयर करने और सर्च करने के सजेशन के रूप में दिखने की अनुमति दें. इसे डिसेबल करने पर वो सजेशन छिप जाएंगे और iOS को याद नहीं रहेगा कि कौन से फ्रेंड्स और सर्वर आपके फ़ेवरेट हैं. iOS कंवर्ज़ेशन के सजेशन बिना वीडियो वाले पार्टिसिपेंट को फिलहाल छिपाया गया है.क्या आप उन्हें दिखाना चाहेंगे? - वीडियो बिना वाले पार्टिसिपंट दिखाएं सब देखें IP एड्रेस सुरक्षित है IP एड्रेस ऑथराइज़्ड हो गया @@ -6433,7 +6432,6 @@ अगर आपने अपना बूस्ट हटाया, तो यह सर्वर आगे नहीं बढ़ेगा. **आपका बूस्ट अभी भी कूलडाउन पर है. यह {minutes} में उपलब्ध होगा.** सर्वर बूस्ट हटाएं? अपने नाम के बगल में एक मेम्बर लिस्ट का आइकन - एक चमकदार प्रोफाइल बैज, जो समय के साथ बदलता रहता है उस सर्वर में एक नई खास रोल एक सर्वर बूस्ट करें और पाएं: Nitro में शामिल है: diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index 2c4ff8d019..9a718bb513 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -4829,7 +4829,6 @@ Omogućuje da se Discordovi razgovori prikažu kao prijedlozi za dijeljenje i pretraživanje u iOS-u. Ako se to onemogući, sakrit ćete te prijedloge i iOS će zaboraviti koji su vam prijatelji i serveri najdraži. Prijedlozi za iOS razgovore Sudionici bez videa trenutno su skriveni. Želiš li ih prikazati? - Pokaži sudionike bez videa Prikaži sve IP adresa osigurana IP adresa ovlaštena @@ -6433,7 +6432,6 @@ Ovaj server će izgubiti napredak ako ukloniš svoj boost. **Boost ti je još na rashlađivanju. Imat ćeš ga ponovo za {minutes}.** Ukloniti server boost? Ikonicu popisa članova uz svoje ime - Svjetlucavi badge za profil koji se vremenom mijenja Ekskluzivnu novu ulogu u tom serveru Boostaj neki server pa dobiješ: U Nitro je uključeno: diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 3644da53aa..c3d8963be2 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -4828,7 +4828,6 @@ Engedélyezi, hogy a Discord beszélgetések megosztási és keresési javaslatokként jelenjenek meg az iOS rendszerben. A letiltása elrejti ezeket a javaslatokat, és az iOS elfelejti, hogy mely barátok és szerverek a kedvenced. iOS beszélgetési javaslatok A videó nélküli résztvevők jelenleg el vannak rejtve. Megjeleníted őket? - Videó nélküli résztvevők megjelenítése Minden megtekintése IP-cím biztosítva Az IP-cím engedélyezve @@ -6432,7 +6431,6 @@ Ez a szerver elveszíti az előrehaladást, ha eltávolítod a gyorsításod. **A gyorsításod lehűtés alatt van. {minutes} múlva lesz elérhető.** Eltávolítod a szervergyorsítást? Egy taglista ikon a neved mellett - Egy ragyogó profiljelvény, mely az idővel változik Egy exkluzív új jogosultság ezen a szerveren Gyorsíts fel egy szervert és a következőket kapod: Megtalálható a Nitróban: @@ -8856,7 +8854,7 @@ Biztos, hogy kijelentkezel? Frissítsd a feloldáshoz Feloldás Nitróval - Sajt profil testreszabása + Saját profil testreszabása Profilkép törlése A funkció kikapcsolása segíthet abban az esetben, ha hangodat nem érzékeli az automatikus bemeneti érzékenység. A zajszűrés ki van kapcsolva, amíg a Zajcsökkentés aktív. diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index fa0ee2b6dc..de6ae4a654 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -4834,7 +4834,6 @@ Permetti alle conversazioni di Discord di apparire come suggerimenti per ricerca e condivisione su iOS. Se disabilitato, i suggerimenti saranno nascosti e iOS dimenticherà quali sono i tuoi server e amici preferiti. Suggerimenti conversazioni iOS Al momento i partecipanti senza video sono nascosti. Vuoi mostrarli? - Mostra i partecipanti senza video Mostra tutto Indirizzo IP protetto Indirizzo IP autorizzato @@ -6438,7 +6437,6 @@ Questo server perderà progressi se rimuovi il tuo potenziamento. **Ti trovi nel periodo di ricarica, potrai effettuare di nuovo potenziamenti tra {minutes}.** Rimuovere potenziamento server? Un\'icona per la lista dei membri vicino al tuo nome - Un nuovo scintillante badge del profilo che cambia nel tempo Un esclusivo nuovo ruolo in quel server Potenzia un server e ottieni: Incluso con Nitro: diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 108912b457..068f36bcf3 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -4839,7 +4839,6 @@ Discordの会話がiOSの共有・検索の提案として表示されます。無効化すると提案が非表示になり、iOSはお気に入りの友達やサーバーを表示しなくなります。 iOSでの会話の提案 現在、ビデオ不使用の参加者は非表示となっています。表示しますか? - ビデオ不使用の参加者を表示 全て表示 IPアドレスは保護されています IPアドレスが認証されました @@ -6443,7 +6442,6 @@ ブーストを削除すると、このサーバーの成長は止まります。 **ブーストはまだクールダウン中です。利用できるまで {minutes}かかります。** サーバーブーストを削除しますか? 名前の横にメンバーリストアイコン - 時間が経つと変化する輝くプロフィールバッジ そのサーバーでの限定の新しいロール サーバーをブーストすると、以下の特典があります。 Nitroに含まれるもの: diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 5ac5cb498d..66ed0a74db 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -4834,7 +4834,6 @@ Discord 대화가 iOS에서 공유 및 검색 시 추천 항목으로 표시되도록 허용해요. 이 옵션을 비활성화하면 이러한 추천에 표시되지 않으며 즐겨찾기한 친구와 서버를 iOS가 기억하지 않아요. iOS 대화 추천 영상이 없는 참여자가 현재 숨겨져 있어요. 표시할까요? - 영상이 없는 참여자 목록 보여주기 모두 보기 IP 주소 보호 중 IP 주소 승인됨 @@ -6438,7 +6437,6 @@ 부스트를 제거하면 서버의 진행 상황이 내려가요. **부스트가 아직 쿨다운 상태예요. {minutes} 후 다시 부스트할 수 있어요.** 서버 부스트를 취소할까요? 이름 옆에 멤버 목록 아이콘 추가 - 시간에 따라 변하는 빛나는 프로필 배지 해당 서버의 새로운 전용 역할 서버 부스트 시 혜택: Nitro에 포함되는 혜택: diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index 52f3128b2a..8dc9b8ca0a 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -4829,7 +4829,6 @@ Leidžia siūlyti bendrinti Discord pokalbius ir ieškoti jų iOS sistemoje. Išjungus šį nustatymą, tokie pasiūlymai bus paslėpti ir iOS bus priversta užmiršti, kurie draugai ir serveriai yra tavo mėgstamiausi. iOS pokalbių pasiūlymai Dalyviai, kurie negali naudoti vaizdo funkcijos, šiuo metu slepiami. Norite, kad jie būtų rodomi? - Rodyti dalyvius, negalinčius naudoti vaizdo funkcijos Peržiūrėti viską IP Adresas Apsaugotas IP Adresas Leidžiamas @@ -6433,7 +6432,6 @@ Pašalinus stiprinimą, šis serveris praras pažangą. **Stiprinimui vis dar nustatytas atvėsimas. Jis bus prieinamas {minutes}** Pašalinti serverio stiprinimą? Narių sąrašo piktograma šalia tavo vardo - Blizgantis profilio ženklelis, kuris keičiasi bėgant laikui Išskirtinis naujas vaidmuo tame serveryje Sustiprink serverį ir gauk toliau nurodytus dalykus. Įtraukta į Nitro: diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index a98c58a926..3b7e10863d 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -4833,7 +4833,6 @@ Staat toe dat Discord-gesprekken worden weergegeven als suggesties voor delen en zoeken in iOS. Als je dit uitschakelt, worden die suggesties verborgen en weet iOS niet welke vrienden en servers favoriet zijn. Configuratiesuggesties iOS Deelnemers zonder beeld zijn momenteel verborgen. Wil je ze tonen? - Toon deelnemers zonder beeld Alles bekijken IP-adres veilig gesteld IP-adres geautoriseerd @@ -6437,7 +6436,6 @@ Deze server verliest voortgang als je jouw boost verwijdert. **Je boost zit nog in de cooldown. Hij is beschikbaar over {minutes}.** Serverboost verwijderen? Een ledenlijst naast je naam - Een glimmende profielbadge die met de tijd verandert Een exclusieve nieuwe rol op die server Als je een server boost, krijg je: Inclusief met Nitro: diff --git a/app/src/main/res/values-no/strings.xml b/app/src/main/res/values-no/strings.xml index 68727fc5d6..42540c5a66 100644 --- a/app/src/main/res/values-no/strings.xml +++ b/app/src/main/res/values-no/strings.xml @@ -4721,7 +4721,6 @@ Lar Discord-samtaler vises som forslag for deling og søk i iOS. Hvis du deaktiverer dette, vil forslagene skjules og gjøre at iOS glemmer hvilke venner og servere som er favorittene dine. iOS-samtaleforslag Deltakere uten video er skjult. Vil du vise dem? - Vis deltakere uten video Vis alle IP-adressen er sikret IP-adressen er autorisert @@ -6276,7 +6275,6 @@ Denne serveren mister fremgangen hvis du fjerner boosten. **Boosten din er fremdeles under nedkjøling. Den blir tilgjengelig om {minutes}.** Vil du fjerne Server Boosten? Et medlemslisteikon ved siden av navnet ditt - Et skinnende profilmerke som endrer seg over tid En eksklusiv, ny rolle på den serveren Boost en server og få: Inkludert i Nitro: diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index a60c354804..69ccac0add 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -4838,7 +4838,6 @@ Zezwala, by rozmowy z Discorda pojawiały się jako propozycje udostępnień i wyszukiwań w iOS. Wyłączenie tej opcji ukryje te propozycje i sprawi, że system iOS zapomni, którzy znajomi i które serwery należą do ulubionych. Propozycje rozmów iOS Obecnie uczestnicy bez wideo są ukryci. Czy chcesz, by ich pokazywać? - Pokaż uczestników bez wideo Wyświetl wszystkie Adres IP zabezpieczony Adres IP zautoryzowany @@ -6442,7 +6441,6 @@ Ten serwer straci postępy, jeśli usuniesz ulepszenie. **Trwa czas odnowienia Twojego ulepszenia. Będzie znowu dostępne za {minutes}.** Usunąć ulepszenie serwera? Ikonę listy członków koło nazwy - Nową, błyszczącą odznakę profilową zmieniającą się w czasie Ekskluzywną nową rolę na tym serwerze Ulepsz serwer, a otrzymasz: Nitro obejmuje: diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 5c7b5aa3a6..55303a3c1d 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -4785,7 +4785,6 @@ Permitir que conversas do Discord apareçam como sugestões de busca e compartilhamento no iOS. Desativar isso ocultará essas sugestões e fará o iOS eesquecer-se de quais amigos e servidores são seus favoritos. Sugestões de conversas do iOS Os participantes sem vídeo estão ocultados. Deseja exibi-los? - Mostrar participantes sem vídeo Ver tudo Endereço IP protegido Endereço IP autorizado @@ -6388,7 +6387,6 @@ Esse servidor perderá progresso se você remover seu impulso. **Seu impulso ainda tem um intervalo. Ele ficará disponível em {minutes}.** Remover impulso de servidor? Um ícone da lista de membros ao lado do seu nome - Um emblema de perfil chiquérrimo que muda com o tempo Um cargo novo exclusivo no servidor Impulsione um servidor para receber: Inclusos no Nitro: diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml index 891934800e..b01317e057 100644 --- a/app/src/main/res/values-ro/strings.xml +++ b/app/src/main/res/values-ro/strings.xml @@ -4829,7 +4829,6 @@ Permite ca conversațiile Discord să apară ca sugestii de partajare și căutare pe iOS. Dacă dezactivezi funcția, sugestiile vor fi ascunse, iar iOS va uita care sunt prietenii și serverele tale preferate. Sugestii de conversații pe iOS Participanții fără video sunt momentan ascunși. Vrei să fie afișați? - Afișează participanții fără video Vezi toate Adresă IP securizată Adresă IP autorizată @@ -6433,7 +6432,6 @@ Acest server își va pierde progresul dacă îți retragi boost-ul. **Boost-ul tău este încă într-o perioadă de așteptare și va fi disponibil în {minutes}.** Retragi boost-ul pentru server? O pictogramă cu lista de membri alături de numele tău - O super insignă de profil care se schimbă în timp Un rol nou exclusiv pe server-ul respectiv Stimulează un server și primește: Incluse în Nitro: diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 6f01b69a08..703b6a3dfa 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -4061,7 +4061,7 @@ Допустимы файлы формата APNG или PNG (не более {fileSize}) В нашем справочном центре вы найдёте советы по созданию описаний для стикеров. Описание - Вы можете добавить описание к стикерам, чтобы ими могли пользоваться слабовидящие или незрячие люди. Будьте лаконичны, но чётко опишите содержание стикера, чтобы пользователь понимал его контекст. Описания необязательны, но должны содержать более 1 символа. + Вы можете добавить описание к стикерам, чтобы ими могли пользоваться слабовидящие или незрячие люди. Будьте лаконичны, но чётко опишите содержание стикера, чтобы пользователь понимал его контекст. Описания необязательны, но должны содержать более 1 символа. Просмотр Выберите файл Файл @@ -4839,7 +4839,6 @@ Позволяет беседам Discord появляться в качестве предложений для поиска и функции «Поделиться» на iOS. Отключите данную функцию, чтобы скрыть предложения и заставить iOS забыть ваших любимых друзей и серверы. Предложения беседы на iOS Участники без видео сейчас скрыты. Хотите показать их? - Показать участников без видео Посмотреть все IP-адрес защищён IP-адрес авторизован @@ -6443,7 +6442,6 @@ Если вы отмените буст, сервер потеряет прогресс. **Ваша способность бустить серверы ещё восстанавливается. Буст будет доступен через {minutes}.** Удалить буст сервера? Значок рядом с именем в списке участников. - Яркий значок в профиле, который меняется со временем. Эксклюзивную новую роль на сервере. Дайте буст серверу, чтобы получить: Nitro включает: diff --git a/app/src/main/res/values-sv-rSE/strings.xml b/app/src/main/res/values-sv-rSE/strings.xml index 6a5e7f3dbb..6ee455b0a2 100644 --- a/app/src/main/res/values-sv-rSE/strings.xml +++ b/app/src/main/res/values-sv-rSE/strings.xml @@ -4726,7 +4726,6 @@ Ger tillåtelse att visa Discord-konversationer som förslag på iOS. Om du stänger av detta, döljs dessa förslag och iOS glömmer vilka vänner och servrar som är dina favoriter. Konversationsförslag för iOS Deltagare utan video är för närvarande dolda. Vill du visa dem? - Visa deltagare utan video Visa allt IP-adress säkrad IP-adress godkänd @@ -6280,7 +6279,6 @@ Den här serverns framsteg kommer att bromsas om du tar bort din boost. **Den kommer att vara tillgänglig i {minutes}.** Ta bort serverboost? En medlemslistikon bredvid ditt namn - Ett blänkande profilmärke som förändras med tiden En exklusiv ny roll i den servern Boosta en server och få: Inkluderat i Nitro: diff --git a/app/src/main/res/values-th/strings.xml b/app/src/main/res/values-th/strings.xml index bc02e5fcb5..b8472836bb 100644 --- a/app/src/main/res/values-th/strings.xml +++ b/app/src/main/res/values-th/strings.xml @@ -4834,7 +4834,6 @@ เปิดให้การสนทนาบน Discord ปรากฏเป็นคำแนะนำสำหรับการแชร์และการค้นหาใน iOS การปิดฟังก์ชั่นดังกล่าวจะเป็นการซ่อนคำแนะนำต่างๆ และทำให้ iOS ลืมเเพื่อนๆ และเซิร์ฟเวอร์โปรดของคุณ คำแนะนำการสนทนาใน iOS ผู้เข้าร่วมที่ไม่มีวิดีโอถูกซ่อนอยู่ในขณะนี้ คุณต้องการแสดงหรือไม่ - แสดงผู้เข้าร่วมที่ไม่มีวิดีโอ ดูทั้งหมด IP Address เข้ารหัสแล้ว ที่อยู่ IP ได้รับอนุญาตแล้ว @@ -6438,7 +6437,6 @@ เซิร์ฟเวอร์นี้จะเสียการเพิ่มระดับหากคุณระงับการบูสต์ **การบูสต์ของคุณยังอยู่ระหว่างคูลดาวน์ จะพร้อมใน {minutes} ** ลบการบูสต์เซิร์ฟเวอร์หรือไม่ ไอค่อนรายชื่อสมาชิกถัดจากชื่อคุณ - ป้ายโปรไฟล์เงาวับจะเปลี่ยนเมื่อเวลาผ่านไป ตำแหน่งใหม่เฉพาะตัวในเซิร์ฟเวอร์นั้น บูสต์เซิร์ฟเวอร์และรับ: รวมอยู่ใน Nitro: diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 341c7dddbf..1b09bc1f42 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -4838,7 +4838,6 @@ Discord konuşmalarının iOS\'ta paylaşım ve arama için öneri olarak görünmesini sağlar. Bunu devre dışı bırakmak, bu önerileri gizler ve iOS\'un favorilediğin arkadaşlarını ve sunucuları unutmasını sağlar. iOS Konuşma Önerileri Görüntüsü olmayan katılımcılar şu anda gizli. Onları göstermek istiyor musun? - Görüntüsü olmayan katılımcıları göster Tümünü göster IP Adresi Güvenli IP adresi doğrulandı @@ -6442,7 +6441,6 @@ Takviyeni kaldırırsan bu sunucu ilerleme kaybedecek. **Takviyen hala bekleme süresinde. {minutes} içinde kullanılabilir olacak.** Sunucu Takviyesini kaldır? Adının yanında bir üye listesi simgesi - Zaman içinde değişen parlak bir profil rozeti O sunucuda ayrıcalıklı yeni bir rol Bir sunucuya takviye yap ve şunu kazan: Nitro\'da bulunanlar: diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 25b2dcbc54..8adaee22af 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -4829,7 +4829,6 @@ Дозволяє бесідам Discord з\'являтися як пропозиції для сумісного використання та пошуку в iOS. Якщо цей пункт вимкнути, пропозиції будуть приховані, а iOS забуде, які друзі та канали є твоїми улюбленими. сумісного використання бесід iOS Ми приховали учасників без відео. Показати їх? - Показати учасників без відео Дивитися все IP-адреса захищена IP-адресу авторизовано @@ -6433,7 +6432,6 @@ Якщо ти забереш свій буст, прогрес цього сервера буде втрачено. **Період очікування для твого бусту ще не сплив. Він буде доступний за {minutes}.** Забрати буст сервера? Значок списку учасників поряд із твоїм іменем. - Яскравий бейдж для профілю, який змінюється з часом. Ексклюзивна нова роль на сервері. Додай бусти до сервера та отримай: До Nitro входить: diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml index db59e69b7b..be2dcf12e7 100644 --- a/app/src/main/res/values-vi/strings.xml +++ b/app/src/main/res/values-vi/strings.xml @@ -4829,7 +4829,6 @@ Cho phép các cuộc trò chuyện Discord xuất hiện trong phần gợi ý khi chia sẻ và tìm kiếm trên iOS. Nếu tắt tính năng này, những gợi ý đó sẽ bị ẩn và khiến cho iOS không nhớ được đâu là bạn bè và máy chủ mà bạn ưa thích. Gợi Ý Cuộc Trò Chuyện trên iOS Các thành viên tham gia không có video hiện đang bị ẩn đi. Bạn có muốn hiển thị họ không? - Hiển thị thành viên tham gia không có video Xem tất cả Địa Chỉ IP Đã Được Bảo Mật Địa Chỉ IP Đã Được Cho Phép @@ -6433,7 +6432,6 @@ Máy chủ này sẽ mất tiến độ nếu bạn gỡ bỏ tăng cường. **Tăng Cường của bạn vẫn đang trong thời gian chờ. Nó sẽ có lại sau {minutes}.** Gỡ Nâng Cấp Máy Chủ? Một biểu tượng danh sách thành viên kế bên tên của bạn - Một huy hiệu hồ sơ sáng bóng thay đổi theo thời gian Một vai trò mới độc quyền trong máy chủ đó Nâng Cấp một máy chủ và nhận: Được bao gồm trong Nitro: diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 40ef003e95..06bbecb1df 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -4834,7 +4834,6 @@ 允许 Discord 会话作为分享与搜索的建议出现在iOS内。禁用此功能将会隐藏该类建议,也会让 iOS 忘记您的好友与服务器偏好。 iOS 会话建议 目前已隐藏没开视频的参与者。您想显示他们吗? - 显示未开启视频的参与者 查看所有 IP地址保护 IP地址授权 @@ -6437,7 +6436,6 @@ 如果您移除助力,该服务器会损失进度。 **您的助力尚在冷却中。助力将在 {minutes} 后可用。** 移除服务器助力? 在您的名称旁边显示一个成员名单图标 - 一个随时间不断变化的闪亮个人资料徽章 一个在对应服务器的专属身份组 助力一个服务器即可获得: Nitro 中包含: diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 711cfef5ba..d933cba62f 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -4834,7 +4834,6 @@ 在 iOS 中允許顯示 Discord 對話,當作分享及搜尋建議。若停用此功能,建議將會隱藏,iOS 也不會記得哪些好友及伺服器為您的最愛。 iOS 對話建議 目前已隱藏沒有視訊的參與者。您想顯示他們嗎? - 顯示沒有視訊的參與者 檢視全部 固定 IP 位址 IP 位址已授權 @@ -6437,7 +6436,6 @@ 若您移除加成,這個伺服器就會失去進度。**您的加成仍在冷卻時間。將在 {minutes}後才能再次使用。** 要移除伺服器加成嗎? 您的名稱旁邊會顯示成員名單圖示 - 會隨著時間改變的閃亮個人檔案徽章 在該伺服器的獨家新身分組 加成伺服器並獲得: Nitro 包含: diff --git a/app/src/main/res/values/plurals.xml b/app/src/main/res/values/plurals.xml index 2bc70c8ecf..e05e3ed757 100644 --- a/app/src/main/res/values/plurals.xml +++ b/app/src/main/res/values/plurals.xml @@ -1344,6 +1344,14 @@ {numSubscriptionsApplied} Boost {numSubscriptionsApplied} Boosts + + {numSubscriptionsApplied} Boost + {numSubscriptionsApplied} Boosts + + + {numSubscriptionsRequiredForTier} Boost + {numSubscriptionsRequiredForTier} Boosts + {numSubscriptionsApplied} Boost {numSubscriptionsApplied} Boosts diff --git a/app/src/main/res/values/public.xml b/app/src/main/res/values/public.xml index 67c6e9432e..e5ec992121 100644 --- a/app/src/main/res/values/public.xml +++ b/app/src/main/res/values/public.xml @@ -3452,1670 +3452,1673 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -10775,60 +10778,62 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -15184,9241 +15189,9265 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index ac382518c9..c5aa223159 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -802,6 +802,8 @@ You will automatically leave this group when you\'re done. This is the start of the !!{channelName}!! **private** channel. $[](topicHook) This thread will archive after $[](autoArchiveDurationHook) of inactivity. + Displaying messages since you joined. + You do not have permission to view message history. Beta Bulgarian Billing @@ -1446,7 +1448,7 @@ Select a color Transparency Use Default - 5fae544a2b9249598f0cd5d9aca1223b + 7d0dbea38de24d339852b4c8e481cf2d Coming Soon Slash command application {applicationName} {applicationName} application @@ -1479,6 +1481,7 @@ Type a name for your thread Use text-to-speech to read the message to all members currently viewing the channel. Your message + Not a valid attachment. Pick either true or false. Not a valid channel. Not a valid choice. @@ -3401,8 +3404,8 @@ Copy the event link below to invite people to your event. This also acts as a server invite link. All set. Now share your event! {date} at {time} - Are you sure you want to delete this event? - Delete Event? + Are you sure you want to cancel this event? + Cancel Event? Event Info No one\'s interested in this event yet. We are having problems looking up who is interested in this event. Please try again later. @@ -3664,6 +3667,7 @@ Step {number} of {total} Aliquet augue condimentum leo egestas. Justo, tellus mattis nibh donec velit. Vitae quis facilisi integer nec lobortis et purus. Sed arcu odio leo vel gravida faucibus aliquet. Dolor velit viverra mauris rhoncus tortor vulputate quam erat quis. Senectus morbi vitae ut justo ut ultrices. + Check back here for a history of your transactions once you’ve had Premium Memberships enabled on your server for a full month. Transaction History [Edit Payment Info]({url}) Payment Overview @@ -3856,7 +3860,7 @@ Delete Emoji Update Emoji Create Event - Delete Event + Cancel Event Update Event Update Server Create Integration @@ -4040,7 +4044,7 @@ Set the channel to **!!{newValue}!!** Removed the channel $[**!!{user}!!**](userHook) scheduled the event $[**!!{target}!!**](targetHook) - $[**!!{user}!!**](userHook) deleted the scheduled event $[**!!{target}!!**](targetHook) + $[**!!{user}!!**](userHook) canceled the scheduled event $[**!!{target}!!**](targetHook) Set the description to **!!{newValue}!!** Linked **externally** Linked to **Nothing** @@ -4846,6 +4850,12 @@ A student email address is required to join. New! Find study groups and clubs in the Student Hub for your school. We\'ve sent an email with your code. Didn\'t get the code? [Resend code](onClick) to !!{email}!! + Invite your classmates + Join your first server + Step {number} of {total} + Find your friends + Finish Student Hub orientation! + You\'re all set! Let\'s go! Full Name Real Name @@ -5992,8 +6002,8 @@ Members with this permission can drag other members out of this channel. They can only move members between channels both they and the member they are moving have access. Move To User has been moved to the selected channel. - Alert Cleared - No Alert Showing + Alert Cleared + No Alert Showing New notification Remove %1$s More than %1$d new notifications @@ -6029,7 +6039,9 @@ Tap to switch to selecting a day Switch to text input mode Tap to switch to selecting a year + Logging in to another account will let you easily swap between accounts on this device. Log in + Sorry, you can only add {maxNumAccounts} accounts. Mute Mute Category Mute **!!{name}!!** @@ -7590,6 +7602,8 @@ Present like a professional with **1080p/60fps video**, **high quality audio**, and **100MB uploads** Ready for the big time? Communities make your server stand out. Plan Unlocked! + Current Plan + {guildName} has {numSubscriptionsApplied} Something has gone horribly wrong! We\'re trying our best! See below for more information. View Plans @@ -7597,6 +7611,7 @@ Build the best server with Boosting Help your favorite servers unlock customization features and powerful upgrades for everyone to enjoy. Get more features your members will love. Members can add Boosts collectively to help unlock plans for the server or you can skip the wait. + {numSubscriptionsRequiredForTier} Animated Server Icon Custom Server Invite Background Custom Invite Link @@ -7848,9 +7863,9 @@ Allows members to create, edit, or delete channels. Allows members to add or remove custom emojis and stickers in this server. Allows members to add or remove custom emojis in this server. - Allows members to create, edit, and delete events. - Allows members to create, edit, and delete events in these channels. - Allows members to create, edit, and delete events in this channel. + Allows members to create, edit, and cancel events. + Allows members to create, edit, and cancel events in these channels. + Allows members to create, edit, and cancel events in this channel. Allows members to delete messages by other members or pin any message. Allows members to delete messages by other members or pin any message in this channel. They can also publish messages by other members to all servers that follow this [Announcement Channel]({articleURL}). Allows members to delete messages by other members or pin any message in these channels. @@ -8452,6 +8467,7 @@ Show {n} Muted Show Muted Channels Show New Message Previews + Show Previous Messages Always Show spoiler content This controls when spoiler content is displayed. @@ -8944,10 +8960,18 @@ Hello, anyone there? You do not have permission to speak in this channel. Swedish + Log in + Switch + Active account Add an account + Choose an account + Select an account to log in with or add a new one. + Please log in again. + Manage account Switch Accounts Manage Accounts Switch accounts, sign in, sign out, go wild. + Log out Change Audio Output Change Hardware Acceleration Changing the hardware acceleration setting will quit and re-launch Discord. Are you sure you want to do this?