diff --git a/apps/ios/Shared/Views/Chat/ChatItemInfoView.swift b/apps/ios/Shared/Views/Chat/ChatItemInfoView.swift
index 3312833ccc..a46cf03bdf 100644
--- a/apps/ios/Shared/Views/Chat/ChatItemInfoView.swift
+++ b/apps/ios/Shared/Views/Chat/ChatItemInfoView.swift
@@ -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)
}
}
diff --git a/apps/ios/Shared/Views/Chat/Group/GroupChatInfoView.swift b/apps/ios/Shared/Views/Chat/Group/GroupChatInfoView.swift
index 8fff94871e..eabf7ad8c9 100644
--- a/apps/ios/Shared/Views/Chat/Group/GroupChatInfoView.swift
+++ b/apps/ios/Shared/Views/Chat/Group/GroupChatInfoView.swift
@@ -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")
diff --git a/apps/ios/Shared/Views/Chat/Group/GroupMemberInfoView.swift b/apps/ios/Shared/Views/Chat/Group/GroupMemberInfoView.swift
index deabf1137e..c04ac6ead9 100644
--- a/apps/ios/Shared/Views/Chat/Group/GroupMemberInfoView.swift
+++ b/apps/ios/Shared/Views/Chat/Group/GroupMemberInfoView.swift
@@ -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 {
diff --git a/apps/ios/SimpleX Localizations/bg.xcloc/Localized Contents/bg.xliff b/apps/ios/SimpleX Localizations/bg.xcloc/Localized Contents/bg.xliff
index 3d2a5ffb59..7ac1db1557 100644
--- a/apps/ios/SimpleX Localizations/bg.xcloc/Localized Contents/bg.xliff
+++ b/apps/ios/SimpleX Localizations/bg.xcloc/Localized Contents/bg.xliff
@@ -3857,6 +3857,10 @@ This is your link for group %@!
ЧленNo comment provided by engineer.
+
+ Member inactive
+ item status text
+ Member role will be changed to "%@". All group members will be notified.Ролята на члена ще бъде променена на "%@". Всички членове на групата ще бъдат уведомени.
@@ -3895,6 +3899,14 @@ This is your link for group %@!
Чернова на съобщениеNo comment provided by engineer.
+
+ Message forwarded
+ item status text
+
+
+ Message may be delivered later if member becomes active.
+ item status description
+ Message queue infoNo comment provided by engineer.
@@ -4206,6 +4218,10 @@ This is your link for group %@!
Няма токен за устройство!No comment provided by engineer.
+
+ No direct connection yet, message is forwarded by admin.
+ item status description
+ No filtered chatsНяма филтрирани чатове
@@ -7762,6 +7778,10 @@ SimpleX сървърите не могат да видят вашия профи
iOS Keychain ще се използва за сигурно съхраняване на паролата, след като рестартирате приложението или промените паролата - това ще позволи получаването на push известия.No comment provided by engineer.
+
+ inactive
+ No comment provided by engineer.
+ incognito via contact address linkинкогнито чрез линк с адрес за контакт
diff --git a/apps/ios/SimpleX Localizations/cs.xcloc/Localized Contents/cs.xliff b/apps/ios/SimpleX Localizations/cs.xcloc/Localized Contents/cs.xliff
index 7feb1a7b27..392b9cf70d 100644
--- a/apps/ios/SimpleX Localizations/cs.xcloc/Localized Contents/cs.xliff
+++ b/apps/ios/SimpleX Localizations/cs.xcloc/Localized Contents/cs.xliff
@@ -3714,6 +3714,10 @@ This is your link for group %@!
ČlenNo comment provided by engineer.
+
+ Member inactive
+ item status text
+ Member role will be changed to "%@". All group members will be notified.Role člena se změní na "%@". Všichni členové skupiny budou upozorněni.
@@ -3752,6 +3756,14 @@ This is your link for group %@!
Návrh zprávyNo comment provided by engineer.
+
+ Message forwarded
+ item status text
+
+
+ Message may be delivered later if member becomes active.
+ item status description
+ Message queue infoNo comment provided by engineer.
@@ -4047,6 +4059,10 @@ This is your link for group %@!
Žádný token zařízení!No comment provided by engineer.
+
+ No direct connection yet, message is forwarded by admin.
+ item status description
+ No filtered chatsŽádné filtrované chaty
@@ -7477,6 +7493,10 @@ Servery SimpleX nevidí váš profil.
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.No comment provided by engineer.
+
+ inactive
+ No comment provided by engineer.
+ incognito via contact address linkinkognito přes odkaz na kontaktní adresu
diff --git a/apps/ios/SimpleX Localizations/de.xcloc/Localized Contents/de.xliff b/apps/ios/SimpleX Localizations/de.xcloc/Localized Contents/de.xliff
index a33fb400c7..cc2773d5e4 100644
--- a/apps/ios/SimpleX Localizations/de.xcloc/Localized Contents/de.xliff
+++ b/apps/ios/SimpleX Localizations/de.xcloc/Localized Contents/de.xliff
@@ -3869,6 +3869,10 @@ Das ist Ihr Link für die Gruppe %@!
MitgliedNo comment provided by engineer.
+
+ Member inactive
+ item status text
+ Member role will be changed to "%@". All group members will be notified.Die Mitgliederrolle wird auf "%@" geändert. Alle Mitglieder der Gruppe werden benachrichtigt.
@@ -3908,6 +3912,14 @@ Das ist Ihr Link für die Gruppe %@!
NachrichtenentwurfNo comment provided by engineer.
+
+ Message forwarded
+ item status text
+
+
+ Message may be delivered later if member becomes active.
+ item status description
+ Message queue infoNo comment provided by engineer.
@@ -4222,6 +4234,10 @@ Das ist Ihr Link für die Gruppe %@!
Kein Geräte-Token!No comment provided by engineer.
+
+ No direct connection yet, message is forwarded by admin.
+ item status description
+ No filtered chatsKeine gefilterten Chats
@@ -7799,6 +7815,10 @@ SimpleX-Server können Ihr Profil nicht einsehen.
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.No comment provided by engineer.
+
+ inactive
+ No comment provided by engineer.
+ incognito via contact address linkInkognito über einen Kontaktadressen-Link
diff --git a/apps/ios/SimpleX Localizations/en.xcloc/Localized Contents/en.xliff b/apps/ios/SimpleX Localizations/en.xcloc/Localized Contents/en.xliff
index 30ee4a179a..08e1255199 100644
--- a/apps/ios/SimpleX Localizations/en.xcloc/Localized Contents/en.xliff
+++ b/apps/ios/SimpleX Localizations/en.xcloc/Localized Contents/en.xliff
@@ -3923,6 +3923,11 @@ This is your link for group %@!
MemberNo comment provided by engineer.
+
+ Member inactive
+ Member inactive
+ item status text
+ Member role will be changed to "%@". All group members will be notified.Member role will be changed to "%@". All group members will be notified.
@@ -3963,6 +3968,16 @@ This is your link for group %@!
Message draftNo comment provided by engineer.
+
+ Message forwarded
+ Message forwarded
+ item status text
+
+
+ Message may be delivered later if member becomes active.
+ Message may be delivered later if member becomes active.
+ item status description
+ Message queue infoMessage queue info
@@ -4283,6 +4298,11 @@ This is your link for group %@!
No device token!No comment provided by engineer.
+
+ No direct connection yet, message is forwarded by admin.
+ No direct connection yet, message is forwarded by admin.
+ item status description
+ No filtered chatsNo filtered chats
@@ -7927,6 +7947,11 @@ SimpleX servers cannot see your profile.
iOS Keychain will be used to securely store passphrase after you restart the app or change passphrase - it will allow receiving push notifications.No comment provided by engineer.
+
+ inactive
+ inactive
+ No comment provided by engineer.
+ incognito via contact address linkincognito via contact address link
diff --git a/apps/ios/SimpleX Localizations/es.xcloc/Localized Contents/es.xliff b/apps/ios/SimpleX Localizations/es.xcloc/Localized Contents/es.xliff
index 7a2e73ae39..3e37e6c6d5 100644
--- a/apps/ios/SimpleX Localizations/es.xcloc/Localized Contents/es.xliff
+++ b/apps/ios/SimpleX Localizations/es.xcloc/Localized Contents/es.xliff
@@ -3869,6 +3869,10 @@ This is your link for group %@!
MiembroNo comment provided by engineer.
+
+ Member inactive
+ item status text
+ Member role will be changed to "%@". All group members will be notified.El rol del miembro cambiará a "%@" y se notificará al grupo.
@@ -3908,6 +3912,14 @@ This is your link for group %@!
Borrador de mensajeNo comment provided by engineer.
+
+ Message forwarded
+ item status text
+
+
+ Message may be delivered later if member becomes active.
+ item status description
+ Message queue infoNo comment provided by engineer.
@@ -4222,6 +4234,10 @@ This is your link for group %@!
¡Sin dispositivo token!No comment provided by engineer.
+
+ No direct connection yet, message is forwarded by admin.
+ item status description
+ No filtered chatsSin chats filtrados
@@ -7800,6 +7816,10 @@ Los servidores de SimpleX no pueden ver tu perfil.
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.No comment provided by engineer.
+
+ inactive
+ No comment provided by engineer.
+ incognito via contact address linken modo incógnito mediante enlace de dirección del contacto
diff --git a/apps/ios/SimpleX Localizations/fi.xcloc/Localized Contents/fi.xliff b/apps/ios/SimpleX Localizations/fi.xcloc/Localized Contents/fi.xliff
index 552af207a7..71e0f0796a 100644
--- a/apps/ios/SimpleX Localizations/fi.xcloc/Localized Contents/fi.xliff
+++ b/apps/ios/SimpleX Localizations/fi.xcloc/Localized Contents/fi.xliff
@@ -3704,6 +3704,10 @@ This is your link for group %@!
JäsenNo comment provided by engineer.
+
+ Member inactive
+ item status text
+ Member role will be changed to "%@". All group members will be notified.Jäsenen rooli muuttuu muotoon "%@". Kaikille ryhmän jäsenille ilmoitetaan asiasta.
@@ -3742,6 +3746,14 @@ This is your link for group %@!
ViestiluonnosNo comment provided by engineer.
+
+ Message forwarded
+ item status text
+
+
+ Message may be delivered later if member becomes active.
+ item status description
+ Message queue infoNo comment provided by engineer.
@@ -4036,6 +4048,10 @@ This is your link for group %@!
Ei laitetunnusta!No comment provided by engineer.
+
+ No direct connection yet, message is forwarded by admin.
+ item status description
+ No filtered chatsEi suodatettuja keskusteluja
@@ -7462,6 +7478,10 @@ SimpleX-palvelimet eivät näe profiiliasi.
iOS-Avainnippua käytetään tunnuslauseen turvalliseen tallentamiseen sen muuttamisen tai sovelluksen uudelleen käynnistämisen jälkeen - se mahdollistaa push-ilmoitusten vastaanottamisen.No comment provided by engineer.
+
+ inactive
+ No comment provided by engineer.
+ incognito via contact address linkincognito kontaktilinkin kautta
diff --git a/apps/ios/SimpleX Localizations/fr.xcloc/Localized Contents/fr.xliff b/apps/ios/SimpleX Localizations/fr.xcloc/Localized Contents/fr.xliff
index 39bb04a814..4f618f26b0 100644
--- a/apps/ios/SimpleX Localizations/fr.xcloc/Localized Contents/fr.xliff
+++ b/apps/ios/SimpleX Localizations/fr.xcloc/Localized Contents/fr.xliff
@@ -3869,6 +3869,10 @@ Voici votre lien pour le groupe %@ !
MembreNo comment provided by engineer.
+
+ Member inactive
+ item status text
+ Member role will be changed to "%@". All group members will be notified.Le rôle du membre sera changé pour "%@". Tous les membres du groupe en seront informés.
@@ -3908,6 +3912,14 @@ Voici votre lien pour le groupe %@ !
Brouillon de messageNo comment provided by engineer.
+
+ Message forwarded
+ item status text
+
+
+ Message may be delivered later if member becomes active.
+ item status description
+ Message queue infoNo comment provided by engineer.
@@ -4222,6 +4234,10 @@ Voici votre lien pour le groupe %@ !
Pas de token d'appareil !No comment provided by engineer.
+
+ No direct connection yet, message is forwarded by admin.
+ item status description
+ No filtered chatsAucune discussion filtrés
@@ -7799,6 +7815,10 @@ Les serveurs SimpleX ne peuvent pas voir votre profil.
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.No comment provided by engineer.
+
+ inactive
+ No comment provided by engineer.
+ incognito via contact address linkmode incognito via le lien d'adresse du contact
diff --git a/apps/ios/SimpleX Localizations/hu.xcloc/Localized Contents/hu.xliff b/apps/ios/SimpleX Localizations/hu.xcloc/Localized Contents/hu.xliff
index f3374f2efb..ecc0610115 100644
--- a/apps/ios/SimpleX Localizations/hu.xcloc/Localized Contents/hu.xliff
+++ b/apps/ios/SimpleX Localizations/hu.xcloc/Localized Contents/hu.xliff
@@ -3869,6 +3869,10 @@ Ez az ön hivatkozása a(z) %@ csoporthoz!
TagNo comment provided by engineer.
+
+ Member inactive
+ item status text
+ Member role will be changed to "%@". All group members will be notified.A tag szerepköre meg fog változni erre: "%@". A csoport minden tagja értesítést kap róla.
@@ -3908,6 +3912,14 @@ Ez az ön hivatkozása a(z) %@ csoporthoz!
ÜzenetvázlatNo comment provided by engineer.
+
+ Message forwarded
+ item status text
+
+
+ Message may be delivered later if member becomes active.
+ item status description
+ Message queue infoNo comment provided by engineer.
@@ -4222,6 +4234,10 @@ Ez az ön hivatkozása a(z) %@ csoporthoz!
Nincs eszköztoken!No comment provided by engineer.
+
+ No direct connection yet, message is forwarded by admin.
+ item status description
+ No filtered chatsNincsenek szűrt csevegések
@@ -7799,6 +7815,10 @@ A SimpleX kiszolgálók nem látjhatják profilját.
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.No comment provided by engineer.
+
+ inactive
+ No comment provided by engineer.
+ incognito via contact address linkinkognitó a kapcsolattartási hivatkozáson keresztül
diff --git a/apps/ios/SimpleX Localizations/it.xcloc/Localized Contents/it.xliff b/apps/ios/SimpleX Localizations/it.xcloc/Localized Contents/it.xliff
index 2929cc41dc..8d311a803c 100644
--- a/apps/ios/SimpleX Localizations/it.xcloc/Localized Contents/it.xliff
+++ b/apps/ios/SimpleX Localizations/it.xcloc/Localized Contents/it.xliff
@@ -3869,6 +3869,10 @@ Questo è il tuo link per il gruppo %@!
MembroNo comment provided by engineer.
+
+ Member inactive
+ item status text
+ Member role will be changed to "%@". All group members will be notified.Il ruolo del membro verrà cambiato in "%@". Tutti i membri del gruppo verranno avvisati.
@@ -3908,6 +3912,14 @@ Questo è il tuo link per il gruppo %@!
Bozza dei messaggiNo comment provided by engineer.
+
+ Message forwarded
+ item status text
+
+
+ Message may be delivered later if member becomes active.
+ item status description
+ Message queue infoNo comment provided by engineer.
@@ -4222,6 +4234,10 @@ Questo è il tuo link per il gruppo %@!
Nessun token del dispositivo!No comment provided by engineer.
+
+ No direct connection yet, message is forwarded by admin.
+ item status description
+ No filtered chatsNessuna chat filtrata
@@ -7799,6 +7815,10 @@ I server di SimpleX non possono vedere il tuo profilo.
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.No comment provided by engineer.
+
+ inactive
+ No comment provided by engineer.
+ incognito via contact address linkincognito via link indirizzo del contatto
diff --git a/apps/ios/SimpleX Localizations/ja.xcloc/Localized Contents/ja.xliff b/apps/ios/SimpleX Localizations/ja.xcloc/Localized Contents/ja.xliff
index 929a6692bc..43f0f8f6cd 100644
--- a/apps/ios/SimpleX Localizations/ja.xcloc/Localized Contents/ja.xliff
+++ b/apps/ios/SimpleX Localizations/ja.xcloc/Localized Contents/ja.xliff
@@ -3729,6 +3729,10 @@ This is your link for group %@!
メンバーNo comment provided by engineer.
+
+ Member inactive
+ item status text
+ Member role will be changed to "%@". All group members will be notified.メンバーの役割が "%@" に変更されます。 グループメンバー全員に通知されます。
@@ -3766,6 +3770,14 @@ This is your link for group %@!
メッセージの下書きNo comment provided by engineer.
+
+ Message forwarded
+ item status text
+
+
+ Message may be delivered later if member becomes active.
+ item status description
+ Message queue infoNo comment provided by engineer.
@@ -4061,6 +4073,10 @@ This is your link for group %@!
デバイストークンがありません!No comment provided by engineer.
+
+ No direct connection yet, message is forwarded by admin.
+ item status description
+ No filtered chatsフィルタされたチャットはありません
@@ -7480,6 +7496,10 @@ SimpleX サーバーはあなたのプロファイルを参照できません。
iOS キーチェーンは、アプリを再起動するかパスフレーズを変更した後にパスフレーズを安全に保存するために使用され、プッシュ通知を受信できるようになります。No comment provided by engineer.
+
+ inactive
+ No comment provided by engineer.
+ incognito via contact address link連絡先リンク経由でシークレットモード
diff --git a/apps/ios/SimpleX Localizations/nl.xcloc/Localized Contents/nl.xliff b/apps/ios/SimpleX Localizations/nl.xcloc/Localized Contents/nl.xliff
index 129dda6187..fdfd49c3d3 100644
--- a/apps/ios/SimpleX Localizations/nl.xcloc/Localized Contents/nl.xliff
+++ b/apps/ios/SimpleX Localizations/nl.xcloc/Localized Contents/nl.xliff
@@ -3869,6 +3869,10 @@ Dit is jouw link voor groep %@!
LidNo comment provided by engineer.
+
+ Member inactive
+ item status text
+ Member role will be changed to "%@". All group members will be notified.De rol van lid wordt gewijzigd in "%@". Alle groepsleden worden op de hoogte gebracht.
@@ -3908,6 +3912,14 @@ Dit is jouw link voor groep %@!
Concept berichtNo comment provided by engineer.
+
+ Message forwarded
+ item status text
+
+
+ Message may be delivered later if member becomes active.
+ item status description
+ Message queue infoNo comment provided by engineer.
@@ -4222,6 +4234,10 @@ Dit is jouw link voor groep %@!
Geen apparaattoken!No comment provided by engineer.
+
+ No direct connection yet, message is forwarded by admin.
+ item status description
+ No filtered chatsGeen gefilterde gesprekken
@@ -7799,6 +7815,10 @@ SimpleX servers kunnen uw profiel niet zien.
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.No comment provided by engineer.
+
+ inactive
+ No comment provided by engineer.
+ incognito via contact address linkincognito via contact adres link
diff --git a/apps/ios/SimpleX Localizations/pl.xcloc/Localized Contents/pl.xliff b/apps/ios/SimpleX Localizations/pl.xcloc/Localized Contents/pl.xliff
index 31a6874e77..9da2b6bd82 100644
--- a/apps/ios/SimpleX Localizations/pl.xcloc/Localized Contents/pl.xliff
+++ b/apps/ios/SimpleX Localizations/pl.xcloc/Localized Contents/pl.xliff
@@ -3869,6 +3869,10 @@ To jest twój link do grupy %@!
CzłonekNo comment provided by engineer.
+
+ Member inactive
+ item status text
+ Member role will be changed to "%@". All group members will be notified.Rola członka grupy zostanie zmieniona na "%@". Wszyscy członkowie grupy zostaną powiadomieni.
@@ -3908,6 +3912,14 @@ To jest twój link do grupy %@!
Wersja robocza wiadomościNo comment provided by engineer.
+
+ Message forwarded
+ item status text
+
+
+ Message may be delivered later if member becomes active.
+ item status description
+ Message queue infoNo comment provided by engineer.
@@ -4222,6 +4234,10 @@ To jest twój link do grupy %@!
Brak tokenu urządzenia!No comment provided by engineer.
+
+ No direct connection yet, message is forwarded by admin.
+ item status description
+ No filtered chatsBrak filtrowanych czatów
@@ -7799,6 +7815,10 @@ Serwery SimpleX nie mogą zobaczyć Twojego profilu.
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.No comment provided by engineer.
+
+ inactive
+ No comment provided by engineer.
+ incognito via contact address linkincognito poprzez link adresu kontaktowego
diff --git a/apps/ios/SimpleX Localizations/ru.xcloc/Localized Contents/ru.xliff b/apps/ios/SimpleX Localizations/ru.xcloc/Localized Contents/ru.xliff
index 0ae6e7ae24..db7f5bfb9e 100644
--- a/apps/ios/SimpleX Localizations/ru.xcloc/Localized Contents/ru.xliff
+++ b/apps/ios/SimpleX Localizations/ru.xcloc/Localized Contents/ru.xliff
@@ -3869,6 +3869,10 @@ This is your link for group %@!
Член группыNo comment provided by engineer.
+
+ Member inactive
+ item status text
+ Member role will be changed to "%@". All group members will be notified.Роль члена группы будет изменена на "%@". Все члены группы получат сообщение.
@@ -3908,6 +3912,14 @@ This is your link for group %@!
Черновик сообщенияNo comment provided by engineer.
+
+ Message forwarded
+ item status text
+
+
+ Message may be delivered later if member becomes active.
+ item status description
+ Message queue infoNo comment provided by engineer.
@@ -4222,6 +4234,10 @@ This is your link for group %@!
Отсутствует токен устройства!No comment provided by engineer.
+
+ No direct connection yet, message is forwarded by admin.
+ item status description
+ No filtered chatsНет отфильтрованных разговоров
@@ -7799,6 +7815,10 @@ SimpleX серверы не могут получить доступ к Ваше
Пароль базы данных будет безопасно сохранен в iOS Keychain после запуска чата или изменения пароля - это позволит получать мгновенные уведомления.No comment provided by engineer.
+
+ inactive
+ No comment provided by engineer.
+ incognito via contact address linkинкогнито через ссылку-контакт
diff --git a/apps/ios/SimpleX Localizations/th.xcloc/Localized Contents/th.xliff b/apps/ios/SimpleX Localizations/th.xcloc/Localized Contents/th.xliff
index bf2d6b8bed..a71061d578 100644
--- a/apps/ios/SimpleX Localizations/th.xcloc/Localized Contents/th.xliff
+++ b/apps/ios/SimpleX Localizations/th.xcloc/Localized Contents/th.xliff
@@ -3687,6 +3687,10 @@ This is your link for group %@!
สมาชิกNo comment provided by engineer.
+
+ Member inactive
+ item status text
+ Member role will be changed to "%@". All group members will be notified.บทบาทของสมาชิกจะถูกเปลี่ยนเป็น "%@" สมาชิกกลุ่มทั้งหมดจะได้รับแจ้ง
@@ -3725,6 +3729,14 @@ This is your link for group %@!
ร่างข้อความNo comment provided by engineer.
+
+ Message forwarded
+ item status text
+
+
+ Message may be delivered later if member becomes active.
+ item status description
+ Message queue infoNo comment provided by engineer.
@@ -4017,6 +4029,10 @@ This is your link for group %@!
ไม่มีโทเค็นอุปกรณ์!No comment provided by engineer.
+
+ No direct connection yet, message is forwarded by admin.
+ item status description
+ No filtered chatsไม่มีการกรองการแชท
@@ -7430,6 +7446,10 @@ SimpleX servers cannot see your profile.
iOS Keychain จะใช้เพื่อจัดเก็บรหัสผ่านอย่างปลอดภัยหลังจากที่คุณรีสตาร์ทแอปหรือเปลี่ยนรหัสผ่าน ซึ่งจะช่วยให้รับการแจ้งเตือนแบบทันทีได้No comment provided by engineer.
+
+ inactive
+ No comment provided by engineer.
+ incognito via contact address linkไม่ระบุตัวตนผ่านลิงค์ที่อยู่ติดต่อ
diff --git a/apps/ios/SimpleX Localizations/tr.xcloc/Localized Contents/tr.xliff b/apps/ios/SimpleX Localizations/tr.xcloc/Localized Contents/tr.xliff
index 482c3a038f..66f24d5bb7 100644
--- a/apps/ios/SimpleX Localizations/tr.xcloc/Localized Contents/tr.xliff
+++ b/apps/ios/SimpleX Localizations/tr.xcloc/Localized Contents/tr.xliff
@@ -3869,6 +3869,10 @@ Bu senin grup için bağlantın %@!
KişiNo comment provided by engineer.
+
+ Member inactive
+ item status text
+ Member role will be changed to "%@". All group members will be notified.Üye rolü "%@" olarak değiştirilecektir. Ve tüm grup üyeleri bilgilendirilecektir.
@@ -3908,6 +3912,14 @@ Bu senin grup için bağlantın %@!
Mesaj taslağıNo comment provided by engineer.
+
+ Message forwarded
+ item status text
+
+
+ Message may be delivered later if member becomes active.
+ item status description
+ Message queue infoNo comment provided by engineer.
@@ -4222,6 +4234,10 @@ Bu senin grup için bağlantın %@!
Cihaz tokeni yok!No comment provided by engineer.
+
+ No direct connection yet, message is forwarded by admin.
+ item status description
+ No filtered chatsFiltrelenmiş sohbetler yok
@@ -7799,6 +7815,10 @@ SimpleX sunucuları profilinizi göremez.
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.No comment provided by engineer.
+
+ inactive
+ No comment provided by engineer.
+ incognito via contact address linkkişi bağlantı linki aracılığıyla gizli
diff --git a/apps/ios/SimpleX Localizations/uk.xcloc/Localized Contents/uk.xliff b/apps/ios/SimpleX Localizations/uk.xcloc/Localized Contents/uk.xliff
index 7e19da7cbd..bf0b5718f7 100644
--- a/apps/ios/SimpleX Localizations/uk.xcloc/Localized Contents/uk.xliff
+++ b/apps/ios/SimpleX Localizations/uk.xcloc/Localized Contents/uk.xliff
@@ -3869,6 +3869,10 @@ This is your link for group %@!
УчасникNo comment provided by engineer.
+
+ Member inactive
+ item status text
+ Member role will be changed to "%@". All group members will be notified.Роль учасника буде змінено на "%@". Всі учасники групи будуть повідомлені про це.
@@ -3908,6 +3912,14 @@ This is your link for group %@!
Чернетка повідомленняNo comment provided by engineer.
+
+ Message forwarded
+ item status text
+
+
+ Message may be delivered later if member becomes active.
+ item status description
+ Message queue infoNo comment provided by engineer.
@@ -4222,6 +4234,10 @@ This is your link for group %@!
Токен пристрою відсутній!No comment provided by engineer.
+
+ No direct connection yet, message is forwarded by admin.
+ item status description
+ No filtered chatsНемає фільтрованих чатів
@@ -7799,6 +7815,10 @@ SimpleX servers cannot see your profile.
Пароль бази даних буде безпечно збережено в iOS Keychain після запуску чату або зміни пароля - це дасть змогу отримувати миттєві повідомлення.No comment provided by engineer.
+
+ inactive
+ No comment provided by engineer.
+ incognito via contact address linkінкогніто за посиланням на контактну адресу
diff --git a/apps/ios/SimpleX Localizations/zh-Hans.xcloc/Localized Contents/zh-Hans.xliff b/apps/ios/SimpleX Localizations/zh-Hans.xcloc/Localized Contents/zh-Hans.xliff
index 2ba735b08d..5d1852b0b4 100644
--- a/apps/ios/SimpleX Localizations/zh-Hans.xcloc/Localized Contents/zh-Hans.xliff
+++ b/apps/ios/SimpleX Localizations/zh-Hans.xcloc/Localized Contents/zh-Hans.xliff
@@ -3819,6 +3819,10 @@ This is your link for group %@!
成员No comment provided by engineer.
+
+ Member inactive
+ item status text
+ Member role will be changed to "%@". All group members will be notified.成员角色将更改为 "%@"。所有群成员将收到通知。
@@ -3857,6 +3861,14 @@ This is your link for group %@!
消息草稿No comment provided by engineer.
+
+ Message forwarded
+ item status text
+
+
+ Message may be delivered later if member becomes active.
+ item status description
+ Message queue infoNo comment provided by engineer.
@@ -4165,6 +4177,10 @@ This is your link for group %@!
无设备令牌!No comment provided by engineer.
+
+ No direct connection yet, message is forwarded by admin.
+ item status description
+ No filtered chats无过滤聊天
@@ -7696,6 +7712,10 @@ SimpleX 服务器无法看到您的资料。
在您重启应用或改变密码后,iOS钥匙串将被用来安全地存储密码——它将允许接收推送通知。No comment provided by engineer.
+
+ inactive
+ No comment provided by engineer.
+ incognito via contact address link通过联系人地址链接隐身聊天
diff --git a/apps/ios/SimpleXChat/ChatTypes.swift b/apps/ios/SimpleXChat/ChatTypes.swift
index eb92deb4e9..b84e4bb3a0 100644
--- a/apps/ios/SimpleXChat/ChatTypes.swift
+++ b/apps/ios/SimpleXChat/ChatTypes.swift
@@ -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?
}
diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml
index f3d78eef20..e2d10ae5ae 100644
--- a/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml
+++ b/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml
@@ -325,9 +325,9 @@
DownloadMessage forwarded
- Connection is not established yet, message is forwarded by group admin.
+ No direct connection yet, message is forwarded by admin.Member inactive
- Message is pending delivery when member becomes active.
+ Message may be delivered later if member becomes active.edited