ios: show inactive and forwarded group message status; show inactive members (#4423)

* ios: differentiate inactive and forwarded group snd statuses; show member connection disabled/inactive

* lazy

* simplify

* Update apps/ios/SimpleXChat/ChatTypes.swift

* export localizations, update strings

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
This commit is contained in:
spaced4ndy
2024-07-09 21:52:33 +01:00
committed by GitHub
co-authored by Evgeny Poberezkin
parent 93a4c0854e
commit c4f8a50f0d
22 changed files with 441 additions and 31 deletions
@@ -415,7 +415,7 @@ struct ChatItemInfoView: View {
}
@ViewBuilder private func memberDeliveryStatusesView(_ memberDeliveryStatuses: [MemberDeliveryStatus]) -> some View {
VStack(alignment: .leading, spacing: 12) {
LazyVStack(alignment: .leading, spacing: 12) {
let mss = membersStatuses(memberDeliveryStatuses)
if !mss.isEmpty {
ForEach(mss, id: \.0.groupMemberId) { memberStatus in
@@ -428,7 +428,7 @@ struct ChatItemInfoView: View {
}
}
private func membersStatuses(_ memberDeliveryStatuses: [MemberDeliveryStatus]) -> [(GroupMember, CIStatus, Bool?)] {
private func membersStatuses(_ memberDeliveryStatuses: [MemberDeliveryStatus]) -> [(GroupMember, GroupSndStatus, Bool?)] {
memberDeliveryStatuses.compactMap({ mds in
if let mem = chatModel.getGroupMember(mds.groupMemberId) {
return (mem.wrapped, mds.memberDeliveryStatus, mds.sentViaProxy)
@@ -438,7 +438,7 @@ struct ChatItemInfoView: View {
})
}
private func memberDeliveryStatusView(_ member: GroupMember, _ status: CIStatus, _ sentViaProxy: Bool?) -> some View {
private func memberDeliveryStatusView(_ member: GroupMember, _ status: GroupSndStatus, _ sentViaProxy: Bool?) -> some View {
HStack{
ProfileImage(imageStr: member.image, size: 30)
.padding(.trailing, 2)
@@ -450,23 +450,19 @@ struct ChatItemInfoView: View {
.foregroundColor(theme.colors.secondary).opacity(0.67)
}
let v = Group {
if let (icon, statusColor) = status.statusIcon(theme.colors.secondary, theme.colors.primary) {
switch status {
case .sndRcvd:
ZStack(alignment: .trailing) {
Image(systemName: icon)
.foregroundColor(statusColor.opacity(0.67))
.padding(.trailing, 6)
Image(systemName: icon)
.foregroundColor(statusColor.opacity(0.67))
}
default:
let (icon, statusColor) = status.statusIcon(theme.colors.secondary, theme.colors.primary)
switch status {
case .rcvd:
ZStack(alignment: .trailing) {
Image(systemName: icon)
.foregroundColor(statusColor)
.foregroundColor(statusColor.opacity(0.67))
.padding(.trailing, 6)
Image(systemName: icon)
.foregroundColor(statusColor.opacity(0.67))
}
} else {
Image(systemName: "ellipsis")
.foregroundColor(Color.secondary)
default:
Image(systemName: icon)
.foregroundColor(statusColor)
}
}
@@ -232,8 +232,7 @@ struct GroupChatInfoView: View {
let t = Text(member.chatViewName).foregroundColor(member.memberIncognito ? .indigo : theme.colors.onBackground)
(member.verified ? memberVerifiedShield + t : t)
.lineLimit(1)
let s = Text(member.memberStatus.shortText)
(user ? Text ("you: ") + s : s)
(user ? Text ("you: ") + Text(member.memberStatus.shortText) : Text(memberConnStatus(member)))
.lineLimit(1)
.font(.caption)
.foregroundColor(theme.colors.secondary)
@@ -266,6 +265,16 @@ struct GroupChatInfoView: View {
}
}
private func memberConnStatus(_ member: GroupMember) -> LocalizedStringKey {
if member.activeConn?.connDisabled ?? false {
return "disabled"
} else if member.activeConn?.connInactive ?? false {
return "inactive"
} else {
return member.memberStatus.shortText
}
}
@ViewBuilder private func memberInfo(_ member: GroupMember) -> some View {
if member.blocked {
Text("blocked")
@@ -141,12 +141,6 @@ struct GroupMemberInfoView: View {
} else {
infoRow("Role", member.memberRole.text)
}
// TODO invited by - need to get contact by contact id
if let conn = member.activeConn {
let connLevelDesc = conn.connLevel == 0 ? NSLocalizedString("direct", comment: "connection level description") : String.localizedStringWithFormat(NSLocalizedString("indirect (%d)", comment: "connection level description"), conn.connLevel)
infoRow("Connection", connLevelDesc)
}
}
if let connStats = connectionStats {
@@ -183,6 +177,10 @@ struct GroupMemberInfoView: View {
Section(header: Text("For console").foregroundColor(theme.colors.secondary)) {
infoRow("Local name", member.localDisplayName)
infoRow("Database ID", "\(member.groupMemberId)")
if let conn = member.activeConn {
let connLevelDesc = conn.connLevel == 0 ? NSLocalizedString("direct", comment: "connection level description") : String.localizedStringWithFormat(NSLocalizedString("indirect (%d)", comment: "connection level description"), conn.connLevel)
infoRow("Connection", connLevelDesc)
}
Button ("Debug delivery") {
Task {
do {
@@ -3857,6 +3857,10 @@ This is your link for group %@!</source>
<target>Член</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Member inactive" xml:space="preserve">
<source>Member inactive</source>
<note>item status text</note>
</trans-unit>
<trans-unit id="Member role will be changed to &quot;%@&quot;. All group members will be notified." xml:space="preserve">
<source>Member role will be changed to "%@". All group members will be notified.</source>
<target>Ролята на члена ще бъде променена на "%@". Всички членове на групата ще бъдат уведомени.</target>
@@ -3895,6 +3899,14 @@ This is your link for group %@!</source>
<target>Чернова на съобщение</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Message forwarded" xml:space="preserve">
<source>Message forwarded</source>
<note>item status text</note>
</trans-unit>
<trans-unit id="Message may be delivered later if member becomes active." xml:space="preserve">
<source>Message may be delivered later if member becomes active.</source>
<note>item status description</note>
</trans-unit>
<trans-unit id="Message queue info" xml:space="preserve">
<source>Message queue info</source>
<note>No comment provided by engineer.</note>
@@ -4206,6 +4218,10 @@ This is your link for group %@!</source>
<target>Няма токен за устройство!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="No direct connection yet, message is forwarded by admin." xml:space="preserve">
<source>No direct connection yet, message is forwarded by admin.</source>
<note>item status description</note>
</trans-unit>
<trans-unit id="No filtered chats" xml:space="preserve">
<source>No filtered chats</source>
<target>Няма филтрирани чатове</target>
@@ -7762,6 +7778,10 @@ SimpleX сървърите не могат да видят вашия профи
<target>iOS Keychain ще се използва за сигурно съхраняване на паролата, след като рестартирате приложението или промените паролата - това ще позволи получаването на push известия.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="inactive" xml:space="preserve">
<source>inactive</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="incognito via contact address link" xml:space="preserve">
<source>incognito via contact address link</source>
<target>инкогнито чрез линк с адрес за контакт</target>
@@ -3714,6 +3714,10 @@ This is your link for group %@!</source>
<target>Člen</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Member inactive" xml:space="preserve">
<source>Member inactive</source>
<note>item status text</note>
</trans-unit>
<trans-unit id="Member role will be changed to &quot;%@&quot;. All group members will be notified." xml:space="preserve">
<source>Member role will be changed to "%@". All group members will be notified.</source>
<target>Role člena se změní na "%@". Všichni členové skupiny budou upozorněni.</target>
@@ -3752,6 +3756,14 @@ This is your link for group %@!</source>
<target>Návrh zprávy</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Message forwarded" xml:space="preserve">
<source>Message forwarded</source>
<note>item status text</note>
</trans-unit>
<trans-unit id="Message may be delivered later if member becomes active." xml:space="preserve">
<source>Message may be delivered later if member becomes active.</source>
<note>item status description</note>
</trans-unit>
<trans-unit id="Message queue info" xml:space="preserve">
<source>Message queue info</source>
<note>No comment provided by engineer.</note>
@@ -4047,6 +4059,10 @@ This is your link for group %@!</source>
<target>Žádný token zařízení!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="No direct connection yet, message is forwarded by admin." xml:space="preserve">
<source>No direct connection yet, message is forwarded by admin.</source>
<note>item status description</note>
</trans-unit>
<trans-unit id="No filtered chats" xml:space="preserve">
<source>No filtered chats</source>
<target>Žádné filtrované chaty</target>
@@ -7477,6 +7493,10 @@ Servery SimpleX nevidí váš profil.</target>
<target>Klíčenka pro iOS bude použita k bezpečnému uložení přístupové fráze po restartování aplikace nebo změně přístupové fráze umožní příjem oznámení push.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="inactive" xml:space="preserve">
<source>inactive</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="incognito via contact address link" xml:space="preserve">
<source>incognito via contact address link</source>
<target>inkognito přes odkaz na kontaktní adresu</target>
@@ -3869,6 +3869,10 @@ Das ist Ihr Link für die Gruppe %@!</target>
<target>Mitglied</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Member inactive" xml:space="preserve">
<source>Member inactive</source>
<note>item status text</note>
</trans-unit>
<trans-unit id="Member role will be changed to &quot;%@&quot;. All group members will be notified." xml:space="preserve">
<source>Member role will be changed to "%@". All group members will be notified.</source>
<target>Die Mitgliederrolle wird auf "%@" geändert. Alle Mitglieder der Gruppe werden benachrichtigt.</target>
@@ -3908,6 +3912,14 @@ Das ist Ihr Link für die Gruppe %@!</target>
<target>Nachrichtenentwurf</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Message forwarded" xml:space="preserve">
<source>Message forwarded</source>
<note>item status text</note>
</trans-unit>
<trans-unit id="Message may be delivered later if member becomes active." xml:space="preserve">
<source>Message may be delivered later if member becomes active.</source>
<note>item status description</note>
</trans-unit>
<trans-unit id="Message queue info" xml:space="preserve">
<source>Message queue info</source>
<note>No comment provided by engineer.</note>
@@ -4222,6 +4234,10 @@ Das ist Ihr Link für die Gruppe %@!</target>
<target>Kein Geräte-Token!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="No direct connection yet, message is forwarded by admin." xml:space="preserve">
<source>No direct connection yet, message is forwarded by admin.</source>
<note>item status description</note>
</trans-unit>
<trans-unit id="No filtered chats" xml:space="preserve">
<source>No filtered chats</source>
<target>Keine gefilterten Chats</target>
@@ -7799,6 +7815,10 @@ SimpleX-Server können Ihr Profil nicht einsehen.</target>
<target>Für die sichere Speicherung des Passworts nach dem Neustart der App und dem Wechsel des Passworts wird der iOS Schlüsselbund verwendet - dies erlaubt den Empfang von Push-Benachrichtigungen.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="inactive" xml:space="preserve">
<source>inactive</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="incognito via contact address link" xml:space="preserve">
<source>incognito via contact address link</source>
<target>Inkognito über einen Kontaktadressen-Link</target>
@@ -3923,6 +3923,11 @@ This is your link for group %@!</target>
<target>Member</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Member inactive" xml:space="preserve">
<source>Member inactive</source>
<target>Member inactive</target>
<note>item status text</note>
</trans-unit>
<trans-unit id="Member role will be changed to &quot;%@&quot;. All group members will be notified." xml:space="preserve">
<source>Member role will be changed to "%@". All group members will be notified.</source>
<target>Member role will be changed to "%@". All group members will be notified.</target>
@@ -3963,6 +3968,16 @@ This is your link for group %@!</target>
<target>Message draft</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Message forwarded" xml:space="preserve">
<source>Message forwarded</source>
<target>Message forwarded</target>
<note>item status text</note>
</trans-unit>
<trans-unit id="Message may be delivered later if member becomes active." xml:space="preserve">
<source>Message may be delivered later if member becomes active.</source>
<target>Message may be delivered later if member becomes active.</target>
<note>item status description</note>
</trans-unit>
<trans-unit id="Message queue info" xml:space="preserve">
<source>Message queue info</source>
<target>Message queue info</target>
@@ -4283,6 +4298,11 @@ This is your link for group %@!</target>
<target>No device token!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="No direct connection yet, message is forwarded by admin." xml:space="preserve">
<source>No direct connection yet, message is forwarded by admin.</source>
<target>No direct connection yet, message is forwarded by admin.</target>
<note>item status description</note>
</trans-unit>
<trans-unit id="No filtered chats" xml:space="preserve">
<source>No filtered chats</source>
<target>No filtered chats</target>
@@ -7927,6 +7947,11 @@ SimpleX servers cannot see your profile.</target>
<target>iOS Keychain will be used to securely store passphrase after you restart the app or change passphrase - it will allow receiving push notifications.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="inactive" xml:space="preserve">
<source>inactive</source>
<target>inactive</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="incognito via contact address link" xml:space="preserve">
<source>incognito via contact address link</source>
<target>incognito via contact address link</target>
@@ -3869,6 +3869,10 @@ This is your link for group %@!</source>
<target>Miembro</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Member inactive" xml:space="preserve">
<source>Member inactive</source>
<note>item status text</note>
</trans-unit>
<trans-unit id="Member role will be changed to &quot;%@&quot;. All group members will be notified." xml:space="preserve">
<source>Member role will be changed to "%@". All group members will be notified.</source>
<target>El rol del miembro cambiará a "%@" y se notificará al grupo.</target>
@@ -3908,6 +3912,14 @@ This is your link for group %@!</source>
<target>Borrador de mensaje</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Message forwarded" xml:space="preserve">
<source>Message forwarded</source>
<note>item status text</note>
</trans-unit>
<trans-unit id="Message may be delivered later if member becomes active." xml:space="preserve">
<source>Message may be delivered later if member becomes active.</source>
<note>item status description</note>
</trans-unit>
<trans-unit id="Message queue info" xml:space="preserve">
<source>Message queue info</source>
<note>No comment provided by engineer.</note>
@@ -4222,6 +4234,10 @@ This is your link for group %@!</source>
<target>¡Sin dispositivo token!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="No direct connection yet, message is forwarded by admin." xml:space="preserve">
<source>No direct connection yet, message is forwarded by admin.</source>
<note>item status description</note>
</trans-unit>
<trans-unit id="No filtered chats" xml:space="preserve">
<source>No filtered chats</source>
<target>Sin chats filtrados</target>
@@ -7800,6 +7816,10 @@ Los servidores de SimpleX no pueden ver tu perfil.</target>
<target>iOS Keychain se usará para almacenar la contraseña de forma segura después de reiniciar la aplicación o cambiar la contraseña. Esto permitirá recibir notificaciones automáticas.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="inactive" xml:space="preserve">
<source>inactive</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="incognito via contact address link" xml:space="preserve">
<source>incognito via contact address link</source>
<target>en modo incógnito mediante enlace de dirección del contacto</target>
@@ -3704,6 +3704,10 @@ This is your link for group %@!</source>
<target>Jäsen</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Member inactive" xml:space="preserve">
<source>Member inactive</source>
<note>item status text</note>
</trans-unit>
<trans-unit id="Member role will be changed to &quot;%@&quot;. All group members will be notified." xml:space="preserve">
<source>Member role will be changed to "%@". All group members will be notified.</source>
<target>Jäsenen rooli muuttuu muotoon "%@". Kaikille ryhmän jäsenille ilmoitetaan asiasta.</target>
@@ -3742,6 +3746,14 @@ This is your link for group %@!</source>
<target>Viestiluonnos</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Message forwarded" xml:space="preserve">
<source>Message forwarded</source>
<note>item status text</note>
</trans-unit>
<trans-unit id="Message may be delivered later if member becomes active." xml:space="preserve">
<source>Message may be delivered later if member becomes active.</source>
<note>item status description</note>
</trans-unit>
<trans-unit id="Message queue info" xml:space="preserve">
<source>Message queue info</source>
<note>No comment provided by engineer.</note>
@@ -4036,6 +4048,10 @@ This is your link for group %@!</source>
<target>Ei laitetunnusta!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="No direct connection yet, message is forwarded by admin." xml:space="preserve">
<source>No direct connection yet, message is forwarded by admin.</source>
<note>item status description</note>
</trans-unit>
<trans-unit id="No filtered chats" xml:space="preserve">
<source>No filtered chats</source>
<target>Ei suodatettuja keskusteluja</target>
@@ -7462,6 +7478,10 @@ SimpleX-palvelimet eivät näe profiiliasi.</target>
<target>iOS-Avainnippua käytetään tunnuslauseen turvalliseen tallentamiseen sen muuttamisen tai sovelluksen uudelleen käynnistämisen jälkeen - se mahdollistaa push-ilmoitusten vastaanottamisen.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="inactive" xml:space="preserve">
<source>inactive</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="incognito via contact address link" xml:space="preserve">
<source>incognito via contact address link</source>
<target>incognito kontaktilinkin kautta</target>
@@ -3869,6 +3869,10 @@ Voici votre lien pour le groupe %@ !</target>
<target>Membre</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Member inactive" xml:space="preserve">
<source>Member inactive</source>
<note>item status text</note>
</trans-unit>
<trans-unit id="Member role will be changed to &quot;%@&quot;. All group members will be notified." xml:space="preserve">
<source>Member role will be changed to "%@". All group members will be notified.</source>
<target>Le rôle du membre sera changé pour "%@". Tous les membres du groupe en seront informés.</target>
@@ -3908,6 +3912,14 @@ Voici votre lien pour le groupe %@ !</target>
<target>Brouillon de message</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Message forwarded" xml:space="preserve">
<source>Message forwarded</source>
<note>item status text</note>
</trans-unit>
<trans-unit id="Message may be delivered later if member becomes active." xml:space="preserve">
<source>Message may be delivered later if member becomes active.</source>
<note>item status description</note>
</trans-unit>
<trans-unit id="Message queue info" xml:space="preserve">
<source>Message queue info</source>
<note>No comment provided by engineer.</note>
@@ -4222,6 +4234,10 @@ Voici votre lien pour le groupe %@ !</target>
<target>Pas de token d'appareil!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="No direct connection yet, message is forwarded by admin." xml:space="preserve">
<source>No direct connection yet, message is forwarded by admin.</source>
<note>item status description</note>
</trans-unit>
<trans-unit id="No filtered chats" xml:space="preserve">
<source>No filtered chats</source>
<target>Aucune discussion filtrés</target>
@@ -7799,6 +7815,10 @@ Les serveurs SimpleX ne peuvent pas voir votre profil.</target>
<target>La keychain d'iOS sera utilisée pour stocker en toute sécurité la phrase secrète après le redémarrage de l'app ou la modification de la phrase secrète - il permettra de recevoir les notifications push.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="inactive" xml:space="preserve">
<source>inactive</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="incognito via contact address link" xml:space="preserve">
<source>incognito via contact address link</source>
<target>mode incognito via le lien d'adresse du contact</target>
@@ -3869,6 +3869,10 @@ Ez az ön hivatkozása a(z) %@ csoporthoz!</target>
<target>Tag</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Member inactive" xml:space="preserve">
<source>Member inactive</source>
<note>item status text</note>
</trans-unit>
<trans-unit id="Member role will be changed to &quot;%@&quot;. All group members will be notified." xml:space="preserve">
<source>Member role will be changed to "%@". All group members will be notified.</source>
<target>A tag szerepköre meg fog változni erre: "%@". A csoport minden tagja értesítést kap róla.</target>
@@ -3908,6 +3912,14 @@ Ez az ön hivatkozása a(z) %@ csoporthoz!</target>
<target>Üzenetvázlat</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Message forwarded" xml:space="preserve">
<source>Message forwarded</source>
<note>item status text</note>
</trans-unit>
<trans-unit id="Message may be delivered later if member becomes active." xml:space="preserve">
<source>Message may be delivered later if member becomes active.</source>
<note>item status description</note>
</trans-unit>
<trans-unit id="Message queue info" xml:space="preserve">
<source>Message queue info</source>
<note>No comment provided by engineer.</note>
@@ -4222,6 +4234,10 @@ Ez az ön hivatkozása a(z) %@ csoporthoz!</target>
<target>Nincs eszköztoken!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="No direct connection yet, message is forwarded by admin." xml:space="preserve">
<source>No direct connection yet, message is forwarded by admin.</source>
<note>item status description</note>
</trans-unit>
<trans-unit id="No filtered chats" xml:space="preserve">
<source>No filtered chats</source>
<target>Nincsenek szűrt csevegések</target>
@@ -7799,6 +7815,10 @@ A SimpleX kiszolgálók nem látjhatják profilját.</target>
<target>Az iOS kulcstár az alkalmazás újraindítása, vagy a jelmondat módosítása után a jelmondat biztonságos tárolására szolgál - lehetővé teszi a push-értesítések fogadását.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="inactive" xml:space="preserve">
<source>inactive</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="incognito via contact address link" xml:space="preserve">
<source>incognito via contact address link</source>
<target>inkognitó a kapcsolattartási hivatkozáson keresztül</target>
@@ -3869,6 +3869,10 @@ Questo è il tuo link per il gruppo %@!</target>
<target>Membro</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Member inactive" xml:space="preserve">
<source>Member inactive</source>
<note>item status text</note>
</trans-unit>
<trans-unit id="Member role will be changed to &quot;%@&quot;. All group members will be notified." xml:space="preserve">
<source>Member role will be changed to "%@". All group members will be notified.</source>
<target>Il ruolo del membro verrà cambiato in "%@". Tutti i membri del gruppo verranno avvisati.</target>
@@ -3908,6 +3912,14 @@ Questo è il tuo link per il gruppo %@!</target>
<target>Bozza dei messaggi</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Message forwarded" xml:space="preserve">
<source>Message forwarded</source>
<note>item status text</note>
</trans-unit>
<trans-unit id="Message may be delivered later if member becomes active." xml:space="preserve">
<source>Message may be delivered later if member becomes active.</source>
<note>item status description</note>
</trans-unit>
<trans-unit id="Message queue info" xml:space="preserve">
<source>Message queue info</source>
<note>No comment provided by engineer.</note>
@@ -4222,6 +4234,10 @@ Questo è il tuo link per il gruppo %@!</target>
<target>Nessun token del dispositivo!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="No direct connection yet, message is forwarded by admin." xml:space="preserve">
<source>No direct connection yet, message is forwarded by admin.</source>
<note>item status description</note>
</trans-unit>
<trans-unit id="No filtered chats" xml:space="preserve">
<source>No filtered chats</source>
<target>Nessuna chat filtrata</target>
@@ -7799,6 +7815,10 @@ I server di SimpleX non possono vedere il tuo profilo.</target>
<target>Il portachiavi di iOS verrà usato per archiviare in modo sicuro la password dopo il riavvio dell'app o la modifica della password; consentirà di ricevere notifiche push.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="inactive" xml:space="preserve">
<source>inactive</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="incognito via contact address link" xml:space="preserve">
<source>incognito via contact address link</source>
<target>incognito via link indirizzo del contatto</target>
@@ -3729,6 +3729,10 @@ This is your link for group %@!</source>
<target>メンバー</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Member inactive" xml:space="preserve">
<source>Member inactive</source>
<note>item status text</note>
</trans-unit>
<trans-unit id="Member role will be changed to &quot;%@&quot;. All group members will be notified." xml:space="preserve">
<source>Member role will be changed to "%@". All group members will be notified.</source>
<target>メンバーの役割が "%@" に変更されます。 グループメンバー全員に通知されます。</target>
@@ -3766,6 +3770,14 @@ This is your link for group %@!</source>
<target>メッセージの下書き</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Message forwarded" xml:space="preserve">
<source>Message forwarded</source>
<note>item status text</note>
</trans-unit>
<trans-unit id="Message may be delivered later if member becomes active." xml:space="preserve">
<source>Message may be delivered later if member becomes active.</source>
<note>item status description</note>
</trans-unit>
<trans-unit id="Message queue info" xml:space="preserve">
<source>Message queue info</source>
<note>No comment provided by engineer.</note>
@@ -4061,6 +4073,10 @@ This is your link for group %@!</source>
<target>デバイストークンがありません!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="No direct connection yet, message is forwarded by admin." xml:space="preserve">
<source>No direct connection yet, message is forwarded by admin.</source>
<note>item status description</note>
</trans-unit>
<trans-unit id="No filtered chats" xml:space="preserve">
<source>No filtered chats</source>
<target>フィルタされたチャットはありません</target>
@@ -7480,6 +7496,10 @@ SimpleX サーバーはあなたのプロファイルを参照できません。
<target>iOS キーチェーンは、アプリを再起動するかパスフレーズを変更した後にパスフレーズを安全に保存するために使用され、プッシュ通知を受信できるようになります。</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="inactive" xml:space="preserve">
<source>inactive</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="incognito via contact address link" xml:space="preserve">
<source>incognito via contact address link</source>
<target>連絡先リンク経由でシークレットモード</target>
@@ -3869,6 +3869,10 @@ Dit is jouw link voor groep %@!</target>
<target>Lid</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Member inactive" xml:space="preserve">
<source>Member inactive</source>
<note>item status text</note>
</trans-unit>
<trans-unit id="Member role will be changed to &quot;%@&quot;. All group members will be notified." xml:space="preserve">
<source>Member role will be changed to "%@". All group members will be notified.</source>
<target>De rol van lid wordt gewijzigd in "%@". Alle groepsleden worden op de hoogte gebracht.</target>
@@ -3908,6 +3912,14 @@ Dit is jouw link voor groep %@!</target>
<target>Concept bericht</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Message forwarded" xml:space="preserve">
<source>Message forwarded</source>
<note>item status text</note>
</trans-unit>
<trans-unit id="Message may be delivered later if member becomes active." xml:space="preserve">
<source>Message may be delivered later if member becomes active.</source>
<note>item status description</note>
</trans-unit>
<trans-unit id="Message queue info" xml:space="preserve">
<source>Message queue info</source>
<note>No comment provided by engineer.</note>
@@ -4222,6 +4234,10 @@ Dit is jouw link voor groep %@!</target>
<target>Geen apparaattoken!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="No direct connection yet, message is forwarded by admin." xml:space="preserve">
<source>No direct connection yet, message is forwarded by admin.</source>
<note>item status description</note>
</trans-unit>
<trans-unit id="No filtered chats" xml:space="preserve">
<source>No filtered chats</source>
<target>Geen gefilterde gesprekken</target>
@@ -7799,6 +7815,10 @@ SimpleX servers kunnen uw profiel niet zien.</target>
<target>iOS-keychain wordt gebruikt om het wachtwoord veilig op te slaan nadat u de app opnieuw hebt opgestart of het wachtwoord hebt gewijzigd, hiermee kunt u push meldingen ontvangen.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="inactive" xml:space="preserve">
<source>inactive</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="incognito via contact address link" xml:space="preserve">
<source>incognito via contact address link</source>
<target>incognito via contact adres link</target>
@@ -3869,6 +3869,10 @@ To jest twój link do grupy %@!</target>
<target>Członek</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Member inactive" xml:space="preserve">
<source>Member inactive</source>
<note>item status text</note>
</trans-unit>
<trans-unit id="Member role will be changed to &quot;%@&quot;. All group members will be notified." xml:space="preserve">
<source>Member role will be changed to "%@". All group members will be notified.</source>
<target>Rola członka grupy zostanie zmieniona na "%@". Wszyscy członkowie grupy zostaną powiadomieni.</target>
@@ -3908,6 +3912,14 @@ To jest twój link do grupy %@!</target>
<target>Wersja robocza wiadomości</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Message forwarded" xml:space="preserve">
<source>Message forwarded</source>
<note>item status text</note>
</trans-unit>
<trans-unit id="Message may be delivered later if member becomes active." xml:space="preserve">
<source>Message may be delivered later if member becomes active.</source>
<note>item status description</note>
</trans-unit>
<trans-unit id="Message queue info" xml:space="preserve">
<source>Message queue info</source>
<note>No comment provided by engineer.</note>
@@ -4222,6 +4234,10 @@ To jest twój link do grupy %@!</target>
<target>Brak tokenu urządzenia!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="No direct connection yet, message is forwarded by admin." xml:space="preserve">
<source>No direct connection yet, message is forwarded by admin.</source>
<note>item status description</note>
</trans-unit>
<trans-unit id="No filtered chats" xml:space="preserve">
<source>No filtered chats</source>
<target>Brak filtrowanych czatów</target>
@@ -7799,6 +7815,10 @@ Serwery SimpleX nie mogą zobaczyć Twojego profilu.</target>
<target>iOS Keychain będzie używany do bezpiecznego przechowywania hasła po ponownym uruchomieniu aplikacji lub zmianie hasła - pozwoli to na otrzymywanie powiadomień push.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="inactive" xml:space="preserve">
<source>inactive</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="incognito via contact address link" xml:space="preserve">
<source>incognito via contact address link</source>
<target>incognito poprzez link adresu kontaktowego</target>
@@ -3869,6 +3869,10 @@ This is your link for group %@!</source>
<target>Член группы</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Member inactive" xml:space="preserve">
<source>Member inactive</source>
<note>item status text</note>
</trans-unit>
<trans-unit id="Member role will be changed to &quot;%@&quot;. All group members will be notified." xml:space="preserve">
<source>Member role will be changed to "%@". All group members will be notified.</source>
<target>Роль члена группы будет изменена на "%@". Все члены группы получат сообщение.</target>
@@ -3908,6 +3912,14 @@ This is your link for group %@!</source>
<target>Черновик сообщения</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Message forwarded" xml:space="preserve">
<source>Message forwarded</source>
<note>item status text</note>
</trans-unit>
<trans-unit id="Message may be delivered later if member becomes active." xml:space="preserve">
<source>Message may be delivered later if member becomes active.</source>
<note>item status description</note>
</trans-unit>
<trans-unit id="Message queue info" xml:space="preserve">
<source>Message queue info</source>
<note>No comment provided by engineer.</note>
@@ -4222,6 +4234,10 @@ This is your link for group %@!</source>
<target>Отсутствует токен устройства!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="No direct connection yet, message is forwarded by admin." xml:space="preserve">
<source>No direct connection yet, message is forwarded by admin.</source>
<note>item status description</note>
</trans-unit>
<trans-unit id="No filtered chats" xml:space="preserve">
<source>No filtered chats</source>
<target>Нет отфильтрованных разговоров</target>
@@ -7799,6 +7815,10 @@ SimpleX серверы не могут получить доступ к Ваше
<target>Пароль базы данных будет безопасно сохранен в iOS Keychain после запуска чата или изменения пароля - это позволит получать мгновенные уведомления.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="inactive" xml:space="preserve">
<source>inactive</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="incognito via contact address link" xml:space="preserve">
<source>incognito via contact address link</source>
<target>инкогнито через ссылку-контакт</target>
@@ -3687,6 +3687,10 @@ This is your link for group %@!</source>
<target>สมาชิก</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Member inactive" xml:space="preserve">
<source>Member inactive</source>
<note>item status text</note>
</trans-unit>
<trans-unit id="Member role will be changed to &quot;%@&quot;. All group members will be notified." xml:space="preserve">
<source>Member role will be changed to "%@". All group members will be notified.</source>
<target>บทบาทของสมาชิกจะถูกเปลี่ยนเป็น "%@" สมาชิกกลุ่มทั้งหมดจะได้รับแจ้ง</target>
@@ -3725,6 +3729,14 @@ This is your link for group %@!</source>
<target>ร่างข้อความ</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Message forwarded" xml:space="preserve">
<source>Message forwarded</source>
<note>item status text</note>
</trans-unit>
<trans-unit id="Message may be delivered later if member becomes active." xml:space="preserve">
<source>Message may be delivered later if member becomes active.</source>
<note>item status description</note>
</trans-unit>
<trans-unit id="Message queue info" xml:space="preserve">
<source>Message queue info</source>
<note>No comment provided by engineer.</note>
@@ -4017,6 +4029,10 @@ This is your link for group %@!</source>
<target>ไม่มีโทเค็นอุปกรณ์!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="No direct connection yet, message is forwarded by admin." xml:space="preserve">
<source>No direct connection yet, message is forwarded by admin.</source>
<note>item status description</note>
</trans-unit>
<trans-unit id="No filtered chats" xml:space="preserve">
<source>No filtered chats</source>
<target>ไม่มีการกรองการแชท</target>
@@ -7430,6 +7446,10 @@ SimpleX servers cannot see your profile.</source>
<target>iOS Keychain จะใช้เพื่อจัดเก็บรหัสผ่านอย่างปลอดภัยหลังจากที่คุณรีสตาร์ทแอปหรือเปลี่ยนรหัสผ่าน ซึ่งจะช่วยให้รับการแจ้งเตือนแบบทันทีได้</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="inactive" xml:space="preserve">
<source>inactive</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="incognito via contact address link" xml:space="preserve">
<source>incognito via contact address link</source>
<target>ไม่ระบุตัวตนผ่านลิงค์ที่อยู่ติดต่อ</target>
@@ -3869,6 +3869,10 @@ Bu senin grup için bağlantın %@!</target>
<target>Kişi</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Member inactive" xml:space="preserve">
<source>Member inactive</source>
<note>item status text</note>
</trans-unit>
<trans-unit id="Member role will be changed to &quot;%@&quot;. All group members will be notified." xml:space="preserve">
<source>Member role will be changed to "%@". All group members will be notified.</source>
<target>Üye rolü "%@" olarak değiştirilecektir. Ve tüm grup üyeleri bilgilendirilecektir.</target>
@@ -3908,6 +3912,14 @@ Bu senin grup için bağlantın %@!</target>
<target>Mesaj taslağı</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Message forwarded" xml:space="preserve">
<source>Message forwarded</source>
<note>item status text</note>
</trans-unit>
<trans-unit id="Message may be delivered later if member becomes active." xml:space="preserve">
<source>Message may be delivered later if member becomes active.</source>
<note>item status description</note>
</trans-unit>
<trans-unit id="Message queue info" xml:space="preserve">
<source>Message queue info</source>
<note>No comment provided by engineer.</note>
@@ -4222,6 +4234,10 @@ Bu senin grup için bağlantın %@!</target>
<target>Cihaz tokeni yok!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="No direct connection yet, message is forwarded by admin." xml:space="preserve">
<source>No direct connection yet, message is forwarded by admin.</source>
<note>item status description</note>
</trans-unit>
<trans-unit id="No filtered chats" xml:space="preserve">
<source>No filtered chats</source>
<target>Filtrelenmiş sohbetler yok</target>
@@ -7799,6 +7815,10 @@ SimpleX sunucuları profilinizi göremez.</target>
<target>iOS Anahtar Zinciri, uygulamayı yeniden başlattıktan veya parolayı değiştirdikten sonra parolayı güvenli bir şekilde saklamak için kullanılacaktır - anlık bildirimlerin alınmasına izin verecektir.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="inactive" xml:space="preserve">
<source>inactive</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="incognito via contact address link" xml:space="preserve">
<source>incognito via contact address link</source>
<target>kişi bağlantı linki aracılığıyla gizli</target>
@@ -3869,6 +3869,10 @@ This is your link for group %@!</source>
<target>Учасник</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Member inactive" xml:space="preserve">
<source>Member inactive</source>
<note>item status text</note>
</trans-unit>
<trans-unit id="Member role will be changed to &quot;%@&quot;. All group members will be notified." xml:space="preserve">
<source>Member role will be changed to "%@". All group members will be notified.</source>
<target>Роль учасника буде змінено на "%@". Всі учасники групи будуть повідомлені про це.</target>
@@ -3908,6 +3912,14 @@ This is your link for group %@!</source>
<target>Чернетка повідомлення</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Message forwarded" xml:space="preserve">
<source>Message forwarded</source>
<note>item status text</note>
</trans-unit>
<trans-unit id="Message may be delivered later if member becomes active." xml:space="preserve">
<source>Message may be delivered later if member becomes active.</source>
<note>item status description</note>
</trans-unit>
<trans-unit id="Message queue info" xml:space="preserve">
<source>Message queue info</source>
<note>No comment provided by engineer.</note>
@@ -4222,6 +4234,10 @@ This is your link for group %@!</source>
<target>Токен пристрою відсутній!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="No direct connection yet, message is forwarded by admin." xml:space="preserve">
<source>No direct connection yet, message is forwarded by admin.</source>
<note>item status description</note>
</trans-unit>
<trans-unit id="No filtered chats" xml:space="preserve">
<source>No filtered chats</source>
<target>Немає фільтрованих чатів</target>
@@ -7799,6 +7815,10 @@ SimpleX servers cannot see your profile.</source>
<target>Пароль бази даних буде безпечно збережено в iOS Keychain після запуску чату або зміни пароля - це дасть змогу отримувати миттєві повідомлення.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="inactive" xml:space="preserve">
<source>inactive</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="incognito via contact address link" xml:space="preserve">
<source>incognito via contact address link</source>
<target>інкогніто за посиланням на контактну адресу</target>
@@ -3819,6 +3819,10 @@ This is your link for group %@!</source>
<target>成员</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Member inactive" xml:space="preserve">
<source>Member inactive</source>
<note>item status text</note>
</trans-unit>
<trans-unit id="Member role will be changed to &quot;%@&quot;. All group members will be notified." xml:space="preserve">
<source>Member role will be changed to "%@". All group members will be notified.</source>
<target>成员角色将更改为 "%@"。所有群成员将收到通知。</target>
@@ -3857,6 +3861,14 @@ This is your link for group %@!</source>
<target>消息草稿</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Message forwarded" xml:space="preserve">
<source>Message forwarded</source>
<note>item status text</note>
</trans-unit>
<trans-unit id="Message may be delivered later if member becomes active." xml:space="preserve">
<source>Message may be delivered later if member becomes active.</source>
<note>item status description</note>
</trans-unit>
<trans-unit id="Message queue info" xml:space="preserve">
<source>Message queue info</source>
<note>No comment provided by engineer.</note>
@@ -4165,6 +4177,10 @@ This is your link for group %@!</source>
<target>无设备令牌!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="No direct connection yet, message is forwarded by admin." xml:space="preserve">
<source>No direct connection yet, message is forwarded by admin.</source>
<note>item status description</note>
</trans-unit>
<trans-unit id="No filtered chats" xml:space="preserve">
<source>No filtered chats</source>
<target>无过滤聊天</target>
@@ -7696,6 +7712,10 @@ SimpleX 服务器无法看到您的资料。</target>
<target>在您重启应用或改变密码后,iOS钥匙串将被用来安全地存储密码——它将允许接收推送通知。</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="inactive" xml:space="preserve">
<source>inactive</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="incognito via contact address link" xml:space="preserve">
<source>incognito via contact address link</source>
<target>通过联系人地址链接隐身聊天</target>
+65 -3
View File
@@ -1611,11 +1611,12 @@ public struct Connection: Decodable, Hashable {
public var pqSndEnabled: Bool?
public var pqRcvEnabled: Bool?
public var authErrCounter: Int
public var quotaErrCounter: Int
public var connectionStats: ConnectionStats? = nil
private enum CodingKeys: String, CodingKey {
case connId, agentConnId, peerChatVRange, connStatus, connLevel, viaGroupLink, customUserProfileId, connectionCode, pqSupport, pqEncryption, pqSndEnabled, pqRcvEnabled, authErrCounter
case connId, agentConnId, peerChatVRange, connStatus, connLevel, viaGroupLink, customUserProfileId, connectionCode, pqSupport, pqEncryption, pqSndEnabled, pqRcvEnabled, authErrCounter, quotaErrCounter
}
public var id: ChatId { get { ":\(connId)" } }
@@ -1624,6 +1625,10 @@ public struct Connection: Decodable, Hashable {
authErrCounter >= 10 // authErrDisableCount in core
}
public var connInactive: Bool {
quotaErrCounter >= 5 // quotaErrInactiveCount in core
}
public var connPQEnabled: Bool {
pqSndEnabled == true && pqRcvEnabled == true
}
@@ -1637,7 +1642,8 @@ public struct Connection: Decodable, Hashable {
viaGroupLink: false,
pqSupport: false,
pqEncryption: false,
authErrCounter: 0
authErrCounter: 0,
quotaErrCounter: 0
)
}
@@ -2846,6 +2852,62 @@ public enum SndCIStatusProgress: String, Decodable, Hashable {
case complete
}
public enum GroupSndStatus: Decodable, Hashable {
case new
case forwarded
case inactive
case sent
case rcvd(msgRcptStatus: MsgReceiptStatus)
case error(agentError: SndError)
case warning(agentError: SndError)
case invalid(text: String)
public func statusIcon(_ metaColor: Color/* = .secondary*/, _ primaryColor: Color = .accentColor) -> (String, Color) {
switch self {
case .new: return ("ellipsis", metaColor)
case .forwarded: return ("chevron.forward.2", metaColor)
case .inactive: return ("person.badge.minus", metaColor)
case .sent: return ("checkmark", metaColor)
case let .rcvd(msgRcptStatus):
switch msgRcptStatus {
case .ok: return ("checkmark", metaColor)
case .badMsgHash: return ("checkmark", .red)
}
case .error: return ("multiply", .red)
case .warning: return ("exclamationmark.triangle.fill", .orange)
case .invalid: return ("questionmark", metaColor)
}
}
public var statusInfo: (String, String)? {
switch self {
case .new: return nil
case .forwarded: return (
NSLocalizedString("Message forwarded", comment: "item status text"),
NSLocalizedString("No direct connection yet, message is forwarded by admin.", comment: "item status description")
)
case .inactive: return (
NSLocalizedString("Member inactive", comment: "item status text"),
NSLocalizedString("Message may be delivered later if member becomes active.", comment: "item status description")
)
case .sent: return nil
case .rcvd: return nil
case let .error(agentError): return (
NSLocalizedString("Message delivery error", comment: "item status text"),
agentError.errorInfo
)
case let .warning(agentError): return (
NSLocalizedString("Message delivery warning", comment: "item status text"),
agentError.errorInfo
)
case let .invalid(text): return (
NSLocalizedString("Invalid status", comment: "item status text"),
text
)
}
}
}
public enum CIDeleted: Decodable, Hashable {
case deleted(deletedTs: Date?)
case blocked(deletedTs: Date?)
@@ -4012,6 +4074,6 @@ public struct ChatItemVersion: Decodable, Hashable {
public struct MemberDeliveryStatus: Decodable, Hashable {
public var groupMemberId: Int64
public var memberDeliveryStatus: CIStatus
public var memberDeliveryStatus: GroupSndStatus
public var sentViaProxy: Bool?
}
@@ -325,9 +325,9 @@
<string name="download_file">Download</string>
<string name="message_forwarded_title">Message forwarded</string>
<string name="message_forwarded_desc">Connection is not established yet, message is forwarded by group admin.</string>
<string name="message_forwarded_desc">No direct connection yet, message is forwarded by admin.</string>
<string name="member_inactive_title">Member inactive</string>
<string name="member_inactive_desc">Message is pending delivery when member becomes active.</string>
<string name="member_inactive_desc">Message may be delivered later if member becomes active.</string>
<!-- CIMetaView.kt -->
<string name="icon_descr_edited">edited</string>