From 19881703e5810787b11ab5f6d83ae1978702dfe8 Mon Sep 17 00:00:00 2001 From: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com> Date: Tue, 17 Jan 2023 14:07:47 +0000 Subject: [PATCH 1/7] core: increase default internal queue max size to 1024 --- src/Simplex/Chat.hs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Simplex/Chat.hs b/src/Simplex/Chat.hs index 2fa8bb8d40..b290516703 100644 --- a/src/Simplex/Chat.hs +++ b/src/Simplex/Chat.hs @@ -89,7 +89,7 @@ defaultChatConfig = { agentConfig = defaultAgentConfig { tcpPort = undefined, -- agent does not listen to TCP - tbqSize = 64, + tbqSize = 1024, database = AgentDBFile {dbFile = "simplex_v1_agent", dbKey = ""}, yesToMigrations = False }, @@ -100,7 +100,7 @@ defaultChatConfig = ntf = _defaultNtfServers, netCfg = defaultNetworkConfig }, - tbqSize = 64, + tbqSize = 1024, fileChunkSize = 15780, -- do not change inlineFiles = defaultInlineFilesConfig, logLevel = CLLImportant, From 80e0bfb61f917d0ad9936c2d904d254c63b11543 Mon Sep 17 00:00:00 2001 From: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com> Date: Tue, 17 Jan 2023 18:10:47 +0000 Subject: [PATCH 2/7] core: v4.4.4 --- package.yaml | 2 +- simplex-chat.cabal | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.yaml b/package.yaml index 07cecaca95..f90fdd4d5a 100644 --- a/package.yaml +++ b/package.yaml @@ -1,5 +1,5 @@ name: simplex-chat -version: 4.4.2 +version: 4.4.4 #synopsis: #description: homepage: https://github.com/simplex-chat/simplex-chat#readme diff --git a/simplex-chat.cabal b/simplex-chat.cabal index ac6cd8fc8c..f07e6260a5 100644 --- a/simplex-chat.cabal +++ b/simplex-chat.cabal @@ -5,7 +5,7 @@ cabal-version: 1.12 -- see: https://github.com/sol/hpack name: simplex-chat -version: 4.4.2 +version: 4.4.4 category: Web, System, Services, Cryptography homepage: https://github.com/simplex-chat/simplex-chat#readme author: simplex.chat From 7c9c358ce249d2de77a2d701d5aa25439eef4f2c Mon Sep 17 00:00:00 2001 From: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com> Date: Wed, 18 Jan 2023 11:01:51 +0000 Subject: [PATCH 3/7] ios: update core library --- apps/ios/SimpleX.xcodeproj/project.pbxproj | 40 +++++++++++----------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/apps/ios/SimpleX.xcodeproj/project.pbxproj b/apps/ios/SimpleX.xcodeproj/project.pbxproj index 937782465d..21dcf635d1 100644 --- a/apps/ios/SimpleX.xcodeproj/project.pbxproj +++ b/apps/ios/SimpleX.xcodeproj/project.pbxproj @@ -84,6 +84,11 @@ 5CB0BA90282713D900B3292C /* SimpleXInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CB0BA8F282713D900B3292C /* SimpleXInfo.swift */; }; 5CB0BA92282713FD00B3292C /* CreateProfile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CB0BA91282713FD00B3292C /* CreateProfile.swift */; }; 5CB0BA9A2827FD8800B3292C /* HowItWorks.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CB0BA992827FD8800B3292C /* HowItWorks.swift */; }; + 5CB1C5D629772200001292C0 /* libgmp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CB1C5D129772200001292C0 /* libgmp.a */; }; + 5CB1C5D729772200001292C0 /* libgmpxx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CB1C5D229772200001292C0 /* libgmpxx.a */; }; + 5CB1C5D829772200001292C0 /* libffi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CB1C5D329772200001292C0 /* libffi.a */; }; + 5CB1C5D929772200001292C0 /* libHSsimplex-chat-4.4.4-CqznjuPsbqDLbaIrXhahLF.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CB1C5D429772200001292C0 /* libHSsimplex-chat-4.4.4-CqznjuPsbqDLbaIrXhahLF.a */; }; + 5CB1C5DA29772200001292C0 /* libHSsimplex-chat-4.4.4-CqznjuPsbqDLbaIrXhahLF-ghc8.10.7.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CB1C5D529772200001292C0 /* libHSsimplex-chat-4.4.4-CqznjuPsbqDLbaIrXhahLF-ghc8.10.7.a */; }; 5CB2084F28DA4B4800D024EC /* RTCServers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CB2084E28DA4B4800D024EC /* RTCServers.swift */; }; 5CB2085128DB64CA00D024EC /* CreateLinkView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CB2085028DB64CA00D024EC /* CreateLinkView.swift */; }; 5CB2085328DB7CAF00D024EC /* ConnectViaLinkView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CB2085228DB7CAF00D024EC /* ConnectViaLinkView.swift */; }; @@ -134,11 +139,6 @@ 5CFE0921282EEAF60002594B /* ZoomableScrollView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CFE0920282EEAF60002594B /* ZoomableScrollView.swift */; }; 5CFE0922282EEAF60002594B /* ZoomableScrollView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CFE0920282EEAF60002594B /* ZoomableScrollView.swift */; }; 6407BA83295DA85D0082BA18 /* CIInvalidJSONView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6407BA82295DA85D0082BA18 /* CIInvalidJSONView.swift */; }; - 6407BA8929704D910082BA18 /* libgmpxx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6407BA8429704D910082BA18 /* libgmpxx.a */; }; - 6407BA8A29704D910082BA18 /* libgmp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6407BA8529704D910082BA18 /* libgmp.a */; }; - 6407BA8B29704D910082BA18 /* libHSsimplex-chat-4.4.2-4Gu4VKBxHYB3XfShhkyX2x.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6407BA8629704D910082BA18 /* libHSsimplex-chat-4.4.2-4Gu4VKBxHYB3XfShhkyX2x.a */; }; - 6407BA8C29704D910082BA18 /* libHSsimplex-chat-4.4.2-4Gu4VKBxHYB3XfShhkyX2x-ghc8.10.7.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6407BA8729704D910082BA18 /* libHSsimplex-chat-4.4.2-4Gu4VKBxHYB3XfShhkyX2x-ghc8.10.7.a */; }; - 6407BA8D29704D910082BA18 /* libffi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6407BA8829704D910082BA18 /* libffi.a */; }; 6432857C2925443C00FBE5C8 /* GroupPreferencesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6432857B2925443C00FBE5C8 /* GroupPreferencesView.swift */; }; 6440CA00288857A10062C672 /* CIEventView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6440C9FF288857A10062C672 /* CIEventView.swift */; }; 6440CA03288AECA70062C672 /* AddGroupMembersView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6440CA02288AECA70062C672 /* AddGroupMembersView.swift */; }; @@ -308,6 +308,11 @@ 5CB0BA8F282713D900B3292C /* SimpleXInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SimpleXInfo.swift; sourceTree = ""; }; 5CB0BA91282713FD00B3292C /* CreateProfile.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateProfile.swift; sourceTree = ""; }; 5CB0BA992827FD8800B3292C /* HowItWorks.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HowItWorks.swift; sourceTree = ""; }; + 5CB1C5D129772200001292C0 /* libgmp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmp.a; sourceTree = ""; }; + 5CB1C5D229772200001292C0 /* libgmpxx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmpxx.a; sourceTree = ""; }; + 5CB1C5D329772200001292C0 /* libffi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libffi.a; sourceTree = ""; }; + 5CB1C5D429772200001292C0 /* libHSsimplex-chat-4.4.4-CqznjuPsbqDLbaIrXhahLF.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-4.4.4-CqznjuPsbqDLbaIrXhahLF.a"; sourceTree = ""; }; + 5CB1C5D529772200001292C0 /* libHSsimplex-chat-4.4.4-CqznjuPsbqDLbaIrXhahLF-ghc8.10.7.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-4.4.4-CqznjuPsbqDLbaIrXhahLF-ghc8.10.7.a"; sourceTree = ""; }; 5CB2084E28DA4B4800D024EC /* RTCServers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RTCServers.swift; sourceTree = ""; }; 5CB2085028DB64CA00D024EC /* CreateLinkView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateLinkView.swift; sourceTree = ""; }; 5CB2085228DB7CAF00D024EC /* ConnectViaLinkView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConnectViaLinkView.swift; sourceTree = ""; }; @@ -362,11 +367,6 @@ 5CFA59CF286477B400863A68 /* ChatArchiveView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatArchiveView.swift; sourceTree = ""; }; 5CFE0920282EEAF60002594B /* ZoomableScrollView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ZoomableScrollView.swift; path = Shared/Views/ZoomableScrollView.swift; sourceTree = SOURCE_ROOT; }; 6407BA82295DA85D0082BA18 /* CIInvalidJSONView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CIInvalidJSONView.swift; sourceTree = ""; }; - 6407BA8429704D910082BA18 /* libgmpxx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmpxx.a; sourceTree = ""; }; - 6407BA8529704D910082BA18 /* libgmp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmp.a; sourceTree = ""; }; - 6407BA8629704D910082BA18 /* libHSsimplex-chat-4.4.2-4Gu4VKBxHYB3XfShhkyX2x.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-4.4.2-4Gu4VKBxHYB3XfShhkyX2x.a"; sourceTree = ""; }; - 6407BA8729704D910082BA18 /* libHSsimplex-chat-4.4.2-4Gu4VKBxHYB3XfShhkyX2x-ghc8.10.7.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-4.4.2-4Gu4VKBxHYB3XfShhkyX2x-ghc8.10.7.a"; sourceTree = ""; }; - 6407BA8829704D910082BA18 /* libffi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libffi.a; sourceTree = ""; }; 6432857B2925443C00FBE5C8 /* GroupPreferencesView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GroupPreferencesView.swift; sourceTree = ""; }; 6440C9FF288857A10062C672 /* CIEventView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CIEventView.swift; sourceTree = ""; }; 6440CA02288AECA70062C672 /* AddGroupMembersView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddGroupMembersView.swift; sourceTree = ""; }; @@ -424,13 +424,13 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 6407BA8929704D910082BA18 /* libgmpxx.a in Frameworks */, + 5CB1C5D929772200001292C0 /* libHSsimplex-chat-4.4.4-CqznjuPsbqDLbaIrXhahLF.a in Frameworks */, + 5CB1C5D729772200001292C0 /* libgmpxx.a in Frameworks */, 5CE2BA93284534B000EC33A6 /* libiconv.tbd in Frameworks */, - 6407BA8B29704D910082BA18 /* libHSsimplex-chat-4.4.2-4Gu4VKBxHYB3XfShhkyX2x.a in Frameworks */, - 6407BA8A29704D910082BA18 /* libgmp.a in Frameworks */, - 6407BA8D29704D910082BA18 /* libffi.a in Frameworks */, + 5CB1C5D629772200001292C0 /* libgmp.a in Frameworks */, + 5CB1C5D829772200001292C0 /* libffi.a in Frameworks */, + 5CB1C5DA29772200001292C0 /* libHSsimplex-chat-4.4.4-CqznjuPsbqDLbaIrXhahLF-ghc8.10.7.a in Frameworks */, 5CE2BA94284534BB00EC33A6 /* libz.tbd in Frameworks */, - 6407BA8C29704D910082BA18 /* libHSsimplex-chat-4.4.2-4Gu4VKBxHYB3XfShhkyX2x-ghc8.10.7.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -488,11 +488,11 @@ 5C764E5C279C70B7000C6508 /* Libraries */ = { isa = PBXGroup; children = ( - 6407BA8829704D910082BA18 /* libffi.a */, - 6407BA8529704D910082BA18 /* libgmp.a */, - 6407BA8429704D910082BA18 /* libgmpxx.a */, - 6407BA8729704D910082BA18 /* libHSsimplex-chat-4.4.2-4Gu4VKBxHYB3XfShhkyX2x-ghc8.10.7.a */, - 6407BA8629704D910082BA18 /* libHSsimplex-chat-4.4.2-4Gu4VKBxHYB3XfShhkyX2x.a */, + 5CB1C5D329772200001292C0 /* libffi.a */, + 5CB1C5D129772200001292C0 /* libgmp.a */, + 5CB1C5D229772200001292C0 /* libgmpxx.a */, + 5CB1C5D529772200001292C0 /* libHSsimplex-chat-4.4.4-CqznjuPsbqDLbaIrXhahLF-ghc8.10.7.a */, + 5CB1C5D429772200001292C0 /* libHSsimplex-chat-4.4.4-CqznjuPsbqDLbaIrXhahLF.a */, ); path = Libraries; sourceTree = ""; From 69196084fccce0357f5965b0e292d9cd74adbbb3 Mon Sep 17 00:00:00 2001 From: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com> Date: Thu, 19 Jan 2023 19:17:32 +0000 Subject: [PATCH 4/7] core: update simplexmq --- cabal.project | 2 +- scripts/nix/sha256map.nix | 2 +- stack.yaml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cabal.project b/cabal.project index 44652958f2..e5fce6aaff 100644 --- a/cabal.project +++ b/cabal.project @@ -7,7 +7,7 @@ constraints: zip +disable-bzip2 +disable-zstd source-repository-package type: git location: https://github.com/simplex-chat/simplexmq.git - tag: 19feee881b9120b9632ca9341161266a7a53babf + tag: 56eea29ec36ba723fda6ae27a18e03a4e5aad6e8 source-repository-package type: git diff --git a/scripts/nix/sha256map.nix b/scripts/nix/sha256map.nix index 63db92be06..232bdb580a 100644 --- a/scripts/nix/sha256map.nix +++ b/scripts/nix/sha256map.nix @@ -1,5 +1,5 @@ { - "https://github.com/simplex-chat/simplexmq.git"."19feee881b9120b9632ca9341161266a7a53babf" = "0viwkiydz4ij2jxf19kh7gisc50x1y37cqlixx1bnlzfzzxsnchq"; + "https://github.com/simplex-chat/simplexmq.git"."56eea29ec36ba723fda6ae27a18e03a4e5aad6e8" = "107vy6147vf282w41kmm6jhhiykcg4jz9napav5m0kcfinzbkqpg"; "https://github.com/simplex-chat/direct-sqlcipher.git"."34309410eb2069b029b8fc1872deb1e0db123294" = "0kwkmhyfsn2lixdlgl15smgr1h5gjk7fky6abzh8rng2h5ymnffd"; "https://github.com/simplex-chat/sqlcipher-simple.git"."5e154a2aeccc33ead6c243ec07195ab673137221" = "1d1gc5wax4vqg0801ajsmx1sbwvd9y7p7b8mmskvqsmpbwgbh0m0"; "https://github.com/simplex-chat/aeson.git"."3eb66f9a68f103b5f1489382aad89f5712a64db7" = "0kilkx59fl6c3qy3kjczqvm8c3f4n3p0bdk9biyflf51ljnzp4yp"; diff --git a/stack.yaml b/stack.yaml index ff1ed11a9c..e4fcbd8de1 100644 --- a/stack.yaml +++ b/stack.yaml @@ -49,7 +49,7 @@ extra-deps: # - simplexmq-1.0.0@sha256:34b2004728ae396e3ae449cd090ba7410781e2b3cefc59259915f4ca5daa9ea8,8561 # - ../simplexmq - github: simplex-chat/simplexmq - commit: 19feee881b9120b9632ca9341161266a7a53babf + commit: 56eea29ec36ba723fda6ae27a18e03a4e5aad6e8 # - ../direct-sqlcipher - github: simplex-chat/direct-sqlcipher commit: 34309410eb2069b029b8fc1872deb1e0db123294 From 0a9aa8b3d299dd0c257442a19b739eca54e5580d Mon Sep 17 00:00:00 2001 From: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com> Date: Thu, 19 Jan 2023 19:27:38 +0000 Subject: [PATCH 5/7] translations: update French and Italian (#1799) * Translated using Weblate (French) Currently translated at 100.0% (907 of 907 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/fr/ * Translated using Weblate (French) Currently translated at 100.0% (853 of 853 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/fr/ * Translated using Weblate (Italian) Currently translated at 100.0% (907 of 907 strings) Translation: SimpleX Chat/SimpleX Chat Android Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/it/ * Translated using Weblate (Italian) Currently translated at 100.0% (853 of 853 strings) Translation: SimpleX Chat/SimpleX Chat iOS Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/it/ * import localizations * re-export localizations Co-authored-by: Ophiushi Co-authored-by: random r --- .../app/src/main/res/values-fr/strings.xml | 2 +- .../app/src/main/res/values-it/strings.xml | 38 ++++++------- .../fr.xcloc/Localized Contents/fr.xliff | 6 +-- .../it.xcloc/Localized Contents/it.xliff | 54 +++++++++---------- apps/ios/fr.lproj/Localizable.strings | 6 +-- apps/ios/it.lproj/Localizable.strings | 54 +++++++++---------- 6 files changed, 80 insertions(+), 80 deletions(-) diff --git a/apps/android/app/src/main/res/values-fr/strings.xml b/apps/android/app/src/main/res/values-fr/strings.xml index 3f2683008b..3d7207ea4b 100644 --- a/apps/android/app/src/main/res/values-fr/strings.xml +++ b/apps/android/app/src/main/res/values-fr/strings.xml @@ -786,7 +786,7 @@ Interdire l\'envoi de messages directs aux membres. Les membres du groupe peuvent supprimer de manière irréversible les messages envoyés. La suppression irréversible de messages est interdite dans ce groupe. - Envoyé via + Envoi via État du réseau Changer d\'adresse de réception Créer un groupe secret diff --git a/apps/android/app/src/main/res/values-it/strings.xml b/apps/android/app/src/main/res/values-it/strings.xml index a907e83e2e..d070c88947 100644 --- a/apps/android/app/src/main/res/values-it/strings.xml +++ b/apps/android/app/src/main/res/values-it/strings.xml @@ -3,7 +3,7 @@ Link di SimpleX Controlla la tua connessione di rete con %1$s e riprova. Le notifiche istantanee sono disattivate! - connessione… + in connessione… Allega Annulla anteprima immagine Possono essere inviate solo 10 immagini alla volta @@ -17,7 +17,7 @@ Connetti connesso errore - connessione + in connessione Sei connesso al server usato per ricevere messaggi da questo contatto. Tentativo di connessione al server usato per ricevere messaggi da questo contatto. eliminato @@ -32,7 +32,7 @@ dati non validi connessione stabilita invitato a connettersi - connessione… + in connessione… hai condiviso un link una tantum hai condiviso un link incognito una tantum via link di gruppo @@ -50,7 +50,7 @@ Assicurati che gli indirizzi dei server SMP siano nel formato giusto, uno per riga e non doppi. Errore di aggiornamento della configurazione di rete Caricamento conversazione fallito - Caricamento conversazioni fallito + Caricamento delle chat fallito Aggiorna l\'app e contatta gli sviluppatori. Connessione scaduta Errore di connessione @@ -104,7 +104,7 @@ Controlla messaggi nuovi ogni 10 minuti per massimo 1 minuto Testo del messaggio Nome del contatto - Nascosto + Nascosta Mostra contatto e messaggio Mostra solo il contatto Nascondi contatto e messaggio @@ -145,13 +145,13 @@ Benvenuto/a %1$s! Benvenuto/a! Questo testo è disponibile nelle impostazioni - Le tue conversazioni + Le tue chat sei stato invitato in un gruppo entra come %s - connessione… + in connessione… Tocca per iniziare una conversazione Scrivi agli sviluppatori - Non hai conversazioni + Non hai chat Condividi immagine… Condividi file… Icona contestuale @@ -265,7 +265,7 @@ 1 mese Errore nell\'importazione del database della chat Nome completo del gruppo: - Se non potete incontrarvi di persona, potete scansionare il codice QR nella videochiamata, oppure il tuo contatto può condividere un link di invito. + Se non potete incontrarvi di persona, puoi scansionare il codice QR nella videochiamata, oppure il tuo contatto può condividere un link di invito. Backup dei dati dell\'app Android Keystore è usato per memorizzare in modo sicuro la password; permette il funzionamento del servizio di notifica. Permetti ai tuoi contatti di inviare messaggi vocali. @@ -485,7 +485,7 @@ attivato per te Preferenze del gruppo Auto-accetta richieste di contatto - %dd + %dg %d giorno %d giorni Elimina dopo @@ -497,10 +497,10 @@ %d min %d mese %d mesi - %dmth + %dmese %ds %d sec - %dw + %dset %d settimana %d settimane Link del gruppo @@ -523,7 +523,7 @@ Eliminare i file e i multimediali\? "Elimina file e multimediali" Elimina messaggi - Elimina messaggio dopo + Elimina messaggi dopo %d file con dimensione totale di %s Attivare l\'eliminazione automatica dei messaggi\? Crittografare il database\? @@ -584,7 +584,7 @@ Indirizzo del server non valido! Aiuto sul markdown Markdown nei messaggi - Segna come verificato + Segna come verificato/a Link di invito una tantum Incolla Incolla il link che hai ricevuto nella casella sottostante per connetterti con il tuo contatto. @@ -600,8 +600,8 @@ Test del server fallito! Condividi link di invito SimpleX Lock - %s non è verificato - %s è verificato + %s non è verificato/a + %s è verificato/a Server SMP Alcuni server hanno fallito il test: Testa server @@ -663,7 +663,7 @@ in attesa di conferma… Non memorizziamo nessuno dei tuoi contatti o messaggi (una volta recapitati) sui server. MESSAGGIO DI BENVENUTO - Puoi utilizzare il markdown per formattare i messaggi: + Puoi usare il markdown per formattare i messaggi: Sei tu a controllare la tua chat! Il tuo profilo di chat Il tuo profilo, i contatti e i messaggi recapitati sono memorizzati sul tuo dispositivo. @@ -683,7 +683,7 @@ Incolla il link ricevuto Le persone possono connettersi a te solo tramite i link che condividi. Periodico - La privacy ridefinita + Privacy ridefinita Notifiche private Maggiori informazioni nel nostro repository GitHub. Maggiori informazioni nel nostro repository GitHub. @@ -880,7 +880,7 @@ Eliminazione irreversibile del messaggio L\'eliminazione irreversibile dei messaggi è vietata in questo gruppo. Max 40 secondi, ricevuto istantaneamente. - Novità in %s + Novità nella %s Solo tu puoi inviare messaggi vocali. Solo il tuo contatto può inviare messaggi vocali. Proibisci l\'eliminazione irreversibile dei messaggi. 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 4d7bbcf94c..bbc1873964 100644 --- a/apps/ios/SimpleX Localizations/fr.xcloc/Localized Contents/fr.xliff +++ b/apps/ios/SimpleX Localizations/fr.xcloc/Localized Contents/fr.xliff @@ -1970,7 +1970,7 @@ Nous allons ajouter une redondance des serveurs pour éviter la perte de message Many people asked: *if SimpleX has no user identifiers, how can it deliver messages?* - Beaucoup se demandent : *si SimpleX n'a pas d'identifiants d'utilisateur, comment peut-il délivrer des messages?* + Beaucoup se demandent : *si SimpleX n'a pas d'identifiants d'utilisateur, comment peut-il délivrer des messages ?* No comment provided by engineer. @@ -2730,7 +2730,7 @@ Nous allons ajouter une redondance des serveurs pour éviter la perte de message Sending via - Envoyé via + Envoi via No comment provided by engineer. @@ -2805,7 +2805,7 @@ Nous allons ajouter une redondance des serveurs pour éviter la perte de message Share one-time invitation link - Partager le lien d'invitation unique + Partager un lien d'invitation unique No comment provided by engineer. 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 087e545872..5c942b9c0a 100644 --- a/apps/ios/SimpleX Localizations/it.xcloc/Localized Contents/it.xliff +++ b/apps/ios/SimpleX Localizations/it.xcloc/Localized Contents/it.xliff @@ -69,12 +69,12 @@ %@ is not verified - %@ non è verificato + %@ non è verificato/a No comment provided by engineer. %@ is verified - %@ è verificato + %@ è verificato/a No comment provided by engineer. @@ -144,12 +144,12 @@ %lldd - %lldd + %lldg No comment provided by engineer. %lldh - %lldh + %lldo No comment provided by engineer. @@ -164,7 +164,7 @@ %lldmth - %lldmth + %lldmese No comment provided by engineer. @@ -174,7 +174,7 @@ %lldw - %lldw + %lldset No comment provided by engineer. @@ -635,7 +635,7 @@ Chats - Conversazioni + Chat No comment provided by engineer. @@ -1093,7 +1093,7 @@ Delete messages after - Elimina messaggio dopo + Elimina messaggi dopo No comment provided by engineer. @@ -1653,7 +1653,7 @@ Hidden - Nascosto + Nascosta No comment provided by engineer. @@ -1703,12 +1703,12 @@ If you can't meet in person, **show QR code in the video call**, or share the link. - Se non potete incontrarvi di persona, **mostratevi il codice QR durante la videochiamata** o condividete il link. + Se non potete incontrarvi di persona, **mostra il codice QR durante la videochiamata** o condividi il link. No comment provided by engineer. If you cannot meet in person, you can **scan QR code in the video call**, or your contact can share an invitation link. - Se non potete incontrarvi di persona, potete **scansionare il codice QR durante la videochiamata** oppure il tuo contatto può condividere un link di invito. + Se non potete incontrarvi di persona, puoi **scansionare il codice QR durante la videochiamata** oppure il tuo contatto può condividere un link di invito. No comment provided by engineer. @@ -1985,7 +1985,7 @@ Aggiungeremo la ridondanza del server per prevenire la perdita di messaggi. Mark verified - Segna come verificato + Segna come verificato/a No comment provided by engineer. @@ -2100,7 +2100,7 @@ Aggiungeremo la ridondanza del server per prevenire la perdita di messaggi. New in %@ - Novità in %@ + Novità nella %@ No comment provided by engineer. @@ -2375,7 +2375,7 @@ Aggiungeremo la ridondanza del server per prevenire la perdita di messaggi. Privacy redefined - La privacy ridefinita + Privacy ridefinita No comment provided by engineer. @@ -2820,7 +2820,7 @@ Aggiungeremo la ridondanza del server per prevenire la perdita di messaggi. SimpleX Chat security was [audited by Trail of Bits](https://simplex.chat/blog/20221108-simplex-chat-v4.2-security-audit-new-website.html). - La sicurezza di SimpleX Chat è stata [controllata da Trail of Bits](https://simplex.chat/blog/20221108-simplex-chat-v4.2-security-audit-new-website.html). + La sicurezza di SimpleX Chat è stata [verificata da Trail of Bits](https://simplex.chat/blog/20221108-simplex-chat-v4.2-security-audit-new-website.html). No comment provided by engineer. @@ -2965,7 +2965,7 @@ Aggiungeremo la ridondanza del server per prevenire la perdita di messaggi. Tap to start a new chat - Tocca per iniziare una conversazione + Tocca per iniziare una chat No comment provided by engineer. @@ -3439,7 +3439,7 @@ Per connetterti, chiedi al tuo contatto di creare un altro link di connessione e You can use markdown to format messages: - Puoi utilizzare il markdown per formattare i messaggi: + Puoi usare il markdown per formattare i messaggi: No comment provided by engineer. @@ -3454,7 +3454,7 @@ Per connetterti, chiedi al tuo contatto di creare un altro link di connessione e You have no chats - Non hai conversazioni + Non hai chat No comment provided by engineer. @@ -3584,7 +3584,7 @@ Per connetterti, chiedi al tuo contatto di creare un altro link di connessione e Your chats - Le tue conversazioni + Le tue chat No comment provided by engineer. @@ -3798,27 +3798,27 @@ I server di SimpleX non possono vedere il tuo profilo. connecting - connessione + in connessione No comment provided by engineer. connecting (accepted) - connessione (accettato) + in connessione (accettato) No comment provided by engineer. connecting (announced) - connessione (annunciato) + in connessione (annunciato) No comment provided by engineer. connecting (introduced) - connessione (presentato) + in connessione (presentato) No comment provided by engineer. connecting (introduction invitation) - connessione (invito di presentazione) + in connessione (invito di presentazione) No comment provided by engineer. @@ -3828,7 +3828,7 @@ I server di SimpleX non possono vedere il tuo profilo. connecting… - connessione… + in connessione… chat list item title @@ -3958,12 +3958,12 @@ I server di SimpleX non possono vedere il tuo profilo. invalid chat - conversazione non valida + chat non valida invalid chat data invalid chat data - dati della conversazione non validi + dati chat non validi No comment provided by engineer. diff --git a/apps/ios/fr.lproj/Localizable.strings b/apps/ios/fr.lproj/Localizable.strings index 7a217a65b2..a13832c50a 100644 --- a/apps/ios/fr.lproj/Localizable.strings +++ b/apps/ios/fr.lproj/Localizable.strings @@ -1374,7 +1374,7 @@ "Make sure WebRTC ICE server addresses are in correct format, line separated and are not duplicated." = "Assurez-vous que les adresses des serveurs WebRTC ICE sont au bon format et ne sont pas dupliquées, un par ligne."; /* No comment provided by engineer. */ -"Many people asked: *if SimpleX has no user identifiers, how can it deliver messages?*" = "Beaucoup se demandent : *si SimpleX n'a pas d'identifiants d'utilisateur, comment peut-il délivrer des messages?*"; +"Many people asked: *if SimpleX has no user identifiers, how can it deliver messages?*" = "Beaucoup se demandent : *si SimpleX n'a pas d'identifiants d'utilisateur, comment peut-il délivrer des messages ?*"; /* No comment provided by engineer. */ "Mark deleted for everyone" = "Marquer comme supprimé pour tout le monde"; @@ -1900,7 +1900,7 @@ "Sender may have deleted the connection request." = "L'expéditeur a peut-être supprimé la demande de connexion."; /* No comment provided by engineer. */ -"Sending via" = "Envoyé via"; +"Sending via" = "Envoi via"; /* notification */ "Sent file event" = "Événement de fichier envoyé"; @@ -1945,7 +1945,7 @@ "Share link" = "Partager le lien"; /* No comment provided by engineer. */ -"Share one-time invitation link" = "Partager le lien d'invitation unique"; +"Share one-time invitation link" = "Partager un lien d'invitation unique"; /* No comment provided by engineer. */ "Show preview" = "Montrer l'aperçu"; diff --git a/apps/ios/it.lproj/Localizable.strings b/apps/ios/it.lproj/Localizable.strings index 9ca94167db..b29e110258 100644 --- a/apps/ios/it.lproj/Localizable.strings +++ b/apps/ios/it.lproj/Localizable.strings @@ -98,10 +98,10 @@ "%@ is connected!" = "%@ è connesso!"; /* No comment provided by engineer. */ -"%@ is not verified" = "%@ non è verificato"; +"%@ is not verified" = "%@ non è verificato/a"; /* No comment provided by engineer. */ -"%@ is verified" = "%@ è verificato"; +"%@ is verified" = "%@ è verificato/a"; /* notification title */ "%@ wants to connect!" = "%@ si vuole connettere!"; @@ -143,10 +143,10 @@ "%lld second(s)" = "%lld secondo/i"; /* No comment provided by engineer. */ -"%lldd" = "%lldd"; +"%lldd" = "%lldg"; /* No comment provided by engineer. */ -"%lldh" = "%lldh"; +"%lldh" = "%lldo"; /* No comment provided by engineer. */ "%lldk" = "%lldk"; @@ -155,13 +155,13 @@ "%lldm" = "%lldm"; /* No comment provided by engineer. */ -"%lldmth" = "%lldmth"; +"%lldmth" = "%lldmese"; /* No comment provided by engineer. */ "%llds" = "%llds"; /* No comment provided by engineer. */ -"%lldw" = "%lldw"; +"%lldw" = "%lldset"; /* No comment provided by engineer. */ "`a + b`" = "\\`a + b`"; @@ -444,7 +444,7 @@ "Chat preferences" = "Preferenze della chat"; /* No comment provided by engineer. */ -"Chats" = "Conversazioni"; +"Chats" = "Chat"; /* No comment provided by engineer. */ "Check server address and try again." = "Controlla l'indirizzo del server e riprova."; @@ -516,19 +516,19 @@ "connected" = "connesso"; /* No comment provided by engineer. */ -"connecting" = "connessione"; +"connecting" = "in connessione"; /* No comment provided by engineer. */ -"connecting (accepted)" = "connessione (accettato)"; +"connecting (accepted)" = "in connessione (accettato)"; /* No comment provided by engineer. */ -"connecting (announced)" = "connessione (annunciato)"; +"connecting (announced)" = "in connessione (annunciato)"; /* No comment provided by engineer. */ -"connecting (introduced)" = "connessione (presentato)"; +"connecting (introduced)" = "in connessione (presentato)"; /* No comment provided by engineer. */ -"connecting (introduction invitation)" = "connessione (invito di presentazione)"; +"connecting (introduction invitation)" = "in connessione (invito di presentazione)"; /* call status */ "connecting call" = "connessione chiamata…"; @@ -540,7 +540,7 @@ "Connecting server… (error: %@)" = "Connessione al server… (errore: %@)"; /* chat list item title */ -"connecting…" = "connessione…"; +"connecting…" = "in connessione…"; /* No comment provided by engineer. */ "Connection" = "Connessione"; @@ -765,7 +765,7 @@ "Delete messages" = "Elimina messaggi"; /* No comment provided by engineer. */ -"Delete messages after" = "Elimina messaggio dopo"; +"Delete messages after" = "Elimina messaggi dopo"; /* No comment provided by engineer. */ "Delete old database" = "Elimina database vecchio"; @@ -1140,7 +1140,7 @@ "Help" = "Aiuto"; /* No comment provided by engineer. */ -"Hidden" = "Nascosto"; +"Hidden" = "Nascosta"; /* chat item action */ "Hide" = "Nascondi"; @@ -1170,10 +1170,10 @@ "If the video fails to connect, flip the camera to resolve it." = "Se il video non riesce a connettersi, cambia la fotocamera (frontale/posteriore) per risolvere."; /* No comment provided by engineer. */ -"If you can't meet in person, **show QR code in the video call**, or share the link." = "Se non potete incontrarvi di persona, **mostratevi il codice QR durante la videochiamata** o condividete il link."; +"If you can't meet in person, **show QR code in the video call**, or share the link." = "Se non potete incontrarvi di persona, **mostra il codice QR durante la videochiamata** o condividi il link."; /* No comment provided by engineer. */ -"If you cannot meet in person, you can **scan QR code in the video call**, or your contact can share an invitation link." = "Se non potete incontrarvi di persona, potete **scansionare il codice QR durante la videochiamata** oppure il tuo contatto può condividere un link di invito."; +"If you cannot meet in person, you can **scan QR code in the video call**, or your contact can share an invitation link." = "Se non potete incontrarvi di persona, puoi **scansionare il codice QR durante la videochiamata** oppure il tuo contatto può condividere un link di invito."; /* No comment provided by engineer. */ "If you need to use the chat now tap **Do it later** below (you will be offered to migrate the database when you restart the app)." = "Se devi usare la chat adesso, tocca **Fallo più tardi** qui sotto (ti verrà offerto di migrare il database quando riavvii l'app)."; @@ -1248,10 +1248,10 @@ "Instantly" = "Istantaneamente"; /* invalid chat data */ -"invalid chat" = "conversazione non valida"; +"invalid chat" = "chat non valida"; /* No comment provided by engineer. */ -"invalid chat data" = "dati della conversazione non validi"; +"invalid chat data" = "dati chat non validi"; /* No comment provided by engineer. */ "Invalid connection link" = "Link di connessione non valido"; @@ -1383,7 +1383,7 @@ "Mark read" = "Segna come già letto"; /* No comment provided by engineer. */ -"Mark verified" = "Segna come verificato"; +"Mark verified" = "Segna come verificato/a"; /* No comment provided by engineer. */ "Markdown in messages" = "Markdown nei messaggi"; @@ -1470,7 +1470,7 @@ "New database archive" = "Nuovo archivio database"; /* No comment provided by engineer. */ -"New in %@" = "Novità in %@"; +"New in %@" = "Novità nella %@"; /* No comment provided by engineer. */ "New member role" = "Nuovo ruolo del membro"; @@ -1666,7 +1666,7 @@ "Privacy & security" = "Privacy e sicurezza"; /* No comment provided by engineer. */ -"Privacy redefined" = "La privacy ridefinita"; +"Privacy redefined" = "Privacy ridefinita"; /* No comment provided by engineer. */ "Profile image" = "Immagine del profilo"; @@ -1954,7 +1954,7 @@ "Show QR code" = "Mostra codice QR"; /* No comment provided by engineer. */ -"SimpleX Chat security was [audited by Trail of Bits](https://simplex.chat/blog/20221108-simplex-chat-v4.2-security-audit-new-website.html)." = "La sicurezza di SimpleX Chat è stata [controllata da Trail of Bits](https://simplex.chat/blog/20221108-simplex-chat-v4.2-security-audit-new-website.html)."; +"SimpleX Chat security was [audited by Trail of Bits](https://simplex.chat/blog/20221108-simplex-chat-v4.2-security-audit-new-website.html)." = "La sicurezza di SimpleX Chat è stata [verificata da Trail of Bits](https://simplex.chat/blog/20221108-simplex-chat-v4.2-security-audit-new-website.html)."; /* simplex link type */ "SimpleX contact address" = "Indirizzo del contatto SimpleX"; @@ -2038,7 +2038,7 @@ "Tap to join incognito" = "Toccare per entrare in incognito"; /* No comment provided by engineer. */ -"Tap to start a new chat" = "Tocca per iniziare una conversazione"; +"Tap to start a new chat" = "Tocca per iniziare una chat"; /* No comment provided by engineer. */ "TCP connection timeout" = "Scadenza connessione TCP"; @@ -2374,7 +2374,7 @@ "You can start chat via app Settings / Database or by restarting the app" = "Puoi avviare la chat via Impostazioni / Database o riavviando l'app"; /* No comment provided by engineer. */ -"You can use markdown to format messages:" = "Puoi utilizzare il markdown per formattare i messaggi:"; +"You can use markdown to format messages:" = "Puoi usare il markdown per formattare i messaggi:"; /* chat item text */ "you changed address" = "hai cambiato indirizzo"; @@ -2395,7 +2395,7 @@ "You could not be verified; please try again." = "Non è stato possibile verificarti, riprova."; /* No comment provided by engineer. */ -"You have no chats" = "Non hai conversazioni"; +"You have no chats" = "Non hai chat"; /* No comment provided by engineer. */ "You have to enter passphrase every time the app starts - it is not stored on the device." = "Devi inserire la password ogni volta che si avvia l'app: non viene memorizzata sul dispositivo."; @@ -2479,7 +2479,7 @@ "Your chat profile will be sent to your contact" = "Il tuo profilo di chat verrà inviato al tuo contatto"; /* No comment provided by engineer. */ -"Your chats" = "Le tue conversazioni"; +"Your chats" = "Le tue chat"; /* No comment provided by engineer. */ "Your contact address" = "Il tuo indirizzo di contatto"; From c409f58067e5600488a92622d2ed7b3cd4c923c6 Mon Sep 17 00:00:00 2001 From: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com> Date: Fri, 20 Jan 2023 10:55:12 +0000 Subject: [PATCH 6/7] mobile: add PING count to network config, make advanced network config available without dev tools (#1805) * mobile: add PING count to network config, make advanced network config available without dev tools * export ios translations * add 120 sec PING interval back --- .../java/chat/simplex/app/model/SimpleXAPI.kt | 14 +++++-- .../usersettings/AdvancedNetworkSettings.kt | 27 ++++++++----- .../views/usersettings/NetworkAndServers.kt | 6 +-- .../app/src/main/res/values/strings.xml | 1 + .../AdvancedNetworkSettings.swift | 3 +- .../UserSettings/NetworkAndServers.swift | 12 +++--- .../de.xcloc/Localized Contents/de.xliff | 4 ++ .../en.xcloc/Localized Contents/en.xliff | 5 +++ .../fr.xcloc/Localized Contents/fr.xliff | 4 ++ .../it.xcloc/Localized Contents/it.xliff | 4 ++ .../ru.xcloc/Localized Contents/ru.xliff | 5 +++ apps/ios/SimpleX.xcodeproj/project.pbxproj | 40 +++++++++---------- apps/ios/SimpleXChat/APITypes.swift | 7 +++- apps/ios/SimpleXChat/AppGroup.swift | 5 +++ 14 files changed, 91 insertions(+), 46 deletions(-) diff --git a/apps/android/app/src/main/java/chat/simplex/app/model/SimpleXAPI.kt b/apps/android/app/src/main/java/chat/simplex/app/model/SimpleXAPI.kt index 661703d5a4..d65489149f 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/model/SimpleXAPI.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/model/SimpleXAPI.kt @@ -116,6 +116,7 @@ class AppPreferences(val context: Context) { val networkTCPConnectTimeout = mkTimeoutPreference(SHARED_PREFS_NETWORK_TCP_CONNECT_TIMEOUT, NetCfg.defaults.tcpConnectTimeout, NetCfg.proxyDefaults.tcpConnectTimeout) val networkTCPTimeout = mkTimeoutPreference(SHARED_PREFS_NETWORK_TCP_TIMEOUT, NetCfg.defaults.tcpTimeout, NetCfg.proxyDefaults.tcpTimeout) val networkSMPPingInterval = mkLongPreference(SHARED_PREFS_NETWORK_SMP_PING_INTERVAL, NetCfg.defaults.smpPingInterval) + val networkSMPPingCount = mkIntPreference(SHARED_PREFS_NETWORK_SMP_PING_COUNT, NetCfg.defaults.smpPingCount) val networkEnableKeepAlive = mkBoolPreference(SHARED_PREFS_NETWORK_ENABLE_KEEP_ALIVE, NetCfg.defaults.enableKeepAlive) val networkTCPKeepIdle = mkIntPreference(SHARED_PREFS_NETWORK_TCP_KEEP_IDLE, KeepAliveOpts.defaults.keepIdle) val networkTCPKeepIntvl = mkIntPreference(SHARED_PREFS_NETWORK_TCP_KEEP_INTVL, KeepAliveOpts.defaults.keepIntvl) @@ -212,6 +213,7 @@ class AppPreferences(val context: Context) { private const val SHARED_PREFS_NETWORK_TCP_CONNECT_TIMEOUT = "NetworkTCPConnectTimeout" private const val SHARED_PREFS_NETWORK_TCP_TIMEOUT = "NetworkTCPTimeout" private const val SHARED_PREFS_NETWORK_SMP_PING_INTERVAL = "NetworkSMPPingInterval" + private const val SHARED_PREFS_NETWORK_SMP_PING_COUNT = "NetworkSMPPingCount" private const val SHARED_PREFS_NETWORK_ENABLE_KEEP_ALIVE = "NetworkEnableKeepAlive" private const val SHARED_PREFS_NETWORK_TCP_KEEP_IDLE = "NetworkTCPKeepIdle" private const val SHARED_PREFS_NETWORK_TCP_KEEP_INTVL = "NetworkTCPKeepIntvl" @@ -1485,6 +1487,7 @@ open class ChatController(var ctrl: ChatCtrl?, val ntfManager: NtfManager, val a val tcpConnectTimeout = appPrefs.networkTCPConnectTimeout.get() val tcpTimeout = appPrefs.networkTCPTimeout.get() val smpPingInterval = appPrefs.networkSMPPingInterval.get() + val smpPingCount = appPrefs.networkSMPPingCount.get() val enableKeepAlive = appPrefs.networkEnableKeepAlive.get() val tcpKeepAlive = if (enableKeepAlive) { val keepIdle = appPrefs.networkTCPKeepIdle.get() @@ -1501,7 +1504,8 @@ open class ChatController(var ctrl: ChatCtrl?, val ntfManager: NtfManager, val a tcpConnectTimeout = tcpConnectTimeout, tcpTimeout = tcpTimeout, tcpKeepAlive = tcpKeepAlive, - smpPingInterval = smpPingInterval + smpPingInterval = smpPingInterval, + smpPingCount = smpPingCount ) } @@ -1512,6 +1516,7 @@ open class ChatController(var ctrl: ChatCtrl?, val ntfManager: NtfManager, val a appPrefs.networkTCPConnectTimeout.set(cfg.tcpConnectTimeout) appPrefs.networkTCPTimeout.set(cfg.tcpTimeout) appPrefs.networkSMPPingInterval.set(cfg.smpPingInterval) + appPrefs.networkSMPPingCount.set(cfg.smpPingCount) if (cfg.tcpKeepAlive != null) { appPrefs.networkEnableKeepAlive.set(true) appPrefs.networkTCPKeepIdle.set(cfg.tcpKeepAlive.keepIdle) @@ -1953,6 +1958,7 @@ data class NetCfg( val tcpTimeout: Long, // microseconds val tcpKeepAlive: KeepAliveOpts?, val smpPingInterval: Long, // microseconds + val smpPingCount: Int, val logTLSErrors: Boolean = false ) { val useSocksProxy: Boolean get() = socksProxy != null @@ -1965,7 +1971,8 @@ data class NetCfg( tcpConnectTimeout = 10_000_000, tcpTimeout = 7_000_000, tcpKeepAlive = KeepAliveOpts.defaults, - smpPingInterval = 600_000_000 + smpPingInterval = 1200_000_000, + smpPingCount = 3 ) val proxyDefaults: NetCfg = @@ -1974,7 +1981,8 @@ data class NetCfg( tcpConnectTimeout = 20_000_000, tcpTimeout = 15_000_000, tcpKeepAlive = KeepAliveOpts.defaults, - smpPingInterval = 600_000_000 + smpPingInterval = 1200_000_000, + smpPingCount = 3 ) } diff --git a/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/AdvancedNetworkSettings.kt b/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/AdvancedNetworkSettings.kt index f3478b6b43..8f3618e4e3 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/AdvancedNetworkSettings.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/AdvancedNetworkSettings.kt @@ -33,6 +33,7 @@ fun AdvancedNetworkSettingsView(chatModel: ChatModel) { val networkTCPConnectTimeout = remember { mutableStateOf(currentCfgVal.tcpConnectTimeout) } val networkTCPTimeout = remember { mutableStateOf(currentCfgVal.tcpTimeout) } val networkSMPPingInterval = remember { mutableStateOf(currentCfgVal.smpPingInterval) } + val networkSMPPingCount = remember { mutableStateOf(currentCfgVal.smpPingCount) } val networkEnableKeepAlive = remember { mutableStateOf(currentCfgVal.enableKeepAlive) } val networkTCPKeepIdle: MutableState val networkTCPKeepIntvl: MutableState @@ -48,10 +49,6 @@ fun AdvancedNetworkSettingsView(chatModel: ChatModel) { } fun buildCfg(): NetCfg { - val socksProxy = currentCfg.value.socksProxy - val tcpConnectTimeout = networkTCPConnectTimeout.value - val tcpTimeout = networkTCPTimeout.value - val smpPingInterval = networkSMPPingInterval.value val enableKeepAlive = networkEnableKeepAlive.value val tcpKeepAlive = if (enableKeepAlive) { val keepIdle = networkTCPKeepIdle.value @@ -62,11 +59,12 @@ fun AdvancedNetworkSettingsView(chatModel: ChatModel) { null } return NetCfg( - socksProxy = socksProxy, - tcpConnectTimeout = tcpConnectTimeout, - tcpTimeout = tcpTimeout, + socksProxy = currentCfg.value.socksProxy, + tcpConnectTimeout = networkTCPConnectTimeout.value, + tcpTimeout = networkTCPTimeout.value, tcpKeepAlive = tcpKeepAlive, - smpPingInterval = smpPingInterval + smpPingInterval = networkSMPPingInterval.value, + smpPingCount = networkSMPPingCount.value ) } @@ -74,6 +72,7 @@ fun AdvancedNetworkSettingsView(chatModel: ChatModel) { networkTCPConnectTimeout.value = cfg.tcpConnectTimeout networkTCPTimeout.value = cfg.tcpTimeout networkSMPPingInterval.value = cfg.smpPingInterval + networkSMPPingCount.value = cfg.smpPingCount networkEnableKeepAlive.value = cfg.enableKeepAlive if (cfg.tcpKeepAlive != null) { networkTCPKeepIdle.value = cfg.tcpKeepAlive.keepIdle @@ -113,6 +112,7 @@ fun AdvancedNetworkSettingsView(chatModel: ChatModel) { networkTCPConnectTimeout, networkTCPTimeout, networkSMPPingInterval, + networkSMPPingCount, networkEnableKeepAlive, networkTCPKeepIdle, networkTCPKeepIntvl, @@ -129,6 +129,7 @@ fun AdvancedNetworkSettingsView(chatModel: ChatModel) { networkTCPConnectTimeout: MutableState, networkTCPTimeout: MutableState, networkSMPPingInterval: MutableState, + networkSMPPingCount: MutableState, networkEnableKeepAlive: MutableState, networkTCPKeepIdle: MutableState, networkTCPKeepIntvl: MutableState, @@ -170,7 +171,14 @@ fun AdvancedNetworkSettingsView(chatModel: ChatModel) { SectionItemView { TimeoutSettingRow( stringResource(R.string.network_option_ping_interval), networkSMPPingInterval, - listOf(120_000000, 300_000000, 600_000000, 1200_000000, 2400_000000), secondsLabel + listOf(120_000000, 300_000000, 600_000000, 1200_000000, 2400_000000, 3600_000000), secondsLabel + ) + } + SectionDivider() + SectionItemView { + IntSettingRow( + stringResource(R.string.network_option_ping_count), networkSMPPingCount, + listOf(1, 2, 3, 5, 8), "" ) } SectionDivider() @@ -412,6 +420,7 @@ fun PreviewAdvancedNetworkSettingsLayout() { networkTCPConnectTimeout = remember { mutableStateOf(10_000000) }, networkTCPTimeout = remember { mutableStateOf(10_000000) }, networkSMPPingInterval = remember { mutableStateOf(10_000000) }, + networkSMPPingCount = remember { mutableStateOf(3) }, networkEnableKeepAlive = remember { mutableStateOf(true) }, networkTCPKeepIdle = remember { mutableStateOf(10) }, networkTCPKeepIntvl = remember { mutableStateOf(10) }, diff --git a/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/NetworkAndServers.kt b/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/NetworkAndServers.kt index d950981682..cc0a6de7f2 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/NetworkAndServers.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/NetworkAndServers.kt @@ -123,10 +123,8 @@ fun NetworkAndServersView( } SectionDivider() UseOnionHosts(onionHosts, networkUseSocksProxy, showSettingsModal, useOnion) - if (developerTools) { - SectionDivider() - SettingsActionItem(Icons.Outlined.Cable, stringResource(R.string.network_settings), showSettingsModal { AdvancedNetworkSettingsView(it) }) - } + SectionDivider() + SettingsActionItem(Icons.Outlined.Cable, stringResource(R.string.network_settings), showSettingsModal { AdvancedNetworkSettingsView(it) }) } Spacer(Modifier.height(8.dp)) SectionView(generalGetString(R.string.settings_section_title_calls)) { diff --git a/apps/android/app/src/main/res/values/strings.xml b/apps/android/app/src/main/res/values/strings.xml index e40198c80a..cc79c17e71 100644 --- a/apps/android/app/src/main/res/values/strings.xml +++ b/apps/android/app/src/main/res/values/strings.xml @@ -952,6 +952,7 @@ TCP connection timeout Protocol timeout PING interval + PING count Enable TCP keep-alive Revert Save diff --git a/apps/ios/Shared/Views/UserSettings/AdvancedNetworkSettings.swift b/apps/ios/Shared/Views/UserSettings/AdvancedNetworkSettings.swift index 5504870ded..8b47f20ba8 100644 --- a/apps/ios/Shared/Views/UserSettings/AdvancedNetworkSettings.swift +++ b/apps/ios/Shared/Views/UserSettings/AdvancedNetworkSettings.swift @@ -53,7 +53,8 @@ struct AdvancedNetworkSettings: View { timeoutSettingPicker("TCP connection timeout", selection: $netCfg.tcpConnectTimeout, values: [2_500000, 5_000000, 7_500000, 10_000000, 15_000000, 20_000000], label: secondsLabel) timeoutSettingPicker("Protocol timeout", selection: $netCfg.tcpTimeout, values: [1_500000, 3_000000, 5_000000, 7_000000, 10_000000, 15_000000], label: secondsLabel) - timeoutSettingPicker("PING interval", selection: $netCfg.smpPingInterval, values: [120_000000, 300_000000, 600_000000, 1200_000000, 2400_000000], label: secondsLabel) + timeoutSettingPicker("PING interval", selection: $netCfg.smpPingInterval, values: [120_000000, 300_000000, 600_000000, 1200_000000, 2400_000000, 3600_000000], label: secondsLabel) + intSettingPicker("PING count", selection: $netCfg.smpPingCount, values: [1, 2, 3, 5, 8], label: "") Toggle("Enable TCP keep-alive", isOn: $enableKeepAlive) if enableKeepAlive { diff --git a/apps/ios/Shared/Views/UserSettings/NetworkAndServers.swift b/apps/ios/Shared/Views/UserSettings/NetworkAndServers.swift index 16d3c9cd0c..b88a18e170 100644 --- a/apps/ios/Shared/Views/UserSettings/NetworkAndServers.swift +++ b/apps/ios/Shared/Views/UserSettings/NetworkAndServers.swift @@ -45,13 +45,11 @@ struct NetworkAndServers: View { } .frame(height: 36) - if developerTools { - NavigationLink { - AdvancedNetworkSettings() - .navigationTitle("Network settings") - } label: { - Text("Advanced network settings") - } + NavigationLink { + AdvancedNetworkSettings() + .navigationTitle("Network settings") + } label: { + Text("Advanced network settings") } } header: { Text("Messages") 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 6b38d66b19..f359101580 100644 --- a/apps/ios/SimpleX Localizations/de.xcloc/Localized Contents/de.xliff +++ b/apps/ios/SimpleX Localizations/de.xcloc/Localized Contents/de.xliff @@ -2273,6 +2273,10 @@ Wir werden Serverredundanzen hinzufügen, um verloren gegangene Nachrichten zu v Das Öffnen des Links über den Browser kann die Privatsphäre und Sicherheit der Verbindung reduzieren. SimpleX-Links, denen nicht vertraut wird, werden Rot sein. No comment provided by engineer. + + PING count + No comment provided by engineer. + PING interval PING-Intervall 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 a4aa59906a..847b3e2878 100644 --- a/apps/ios/SimpleX Localizations/en.xcloc/Localized Contents/en.xliff +++ b/apps/ios/SimpleX Localizations/en.xcloc/Localized Contents/en.xliff @@ -2273,6 +2273,11 @@ We will be adding server redundancy to prevent lost messages. Opening the link in the browser may reduce connection privacy and security. Untrusted SimpleX links will be red. No comment provided by engineer. + + PING count + PING count + No comment provided by engineer. + PING interval PING interval 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 bbc1873964..f35a16ed3a 100644 --- a/apps/ios/SimpleX Localizations/fr.xcloc/Localized Contents/fr.xliff +++ b/apps/ios/SimpleX Localizations/fr.xcloc/Localized Contents/fr.xliff @@ -2273,6 +2273,10 @@ Nous allons ajouter une redondance des serveurs pour éviter la perte de message Ouvrir le lien dans le navigateur peut réduire la confidentialité et la sécurité de la connexion. Les liens SimpleX non fiables seront en rouge. No comment provided by engineer. + + PING count + No comment provided by engineer. + PING interval Intervalle de PING 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 5c942b9c0a..5841619864 100644 --- a/apps/ios/SimpleX Localizations/it.xcloc/Localized Contents/it.xliff +++ b/apps/ios/SimpleX Localizations/it.xcloc/Localized Contents/it.xliff @@ -2273,6 +2273,10 @@ Aggiungeremo la ridondanza del server per prevenire la perdita di messaggi.Aprire il link nel browser può ridurre la privacy e la sicurezza della connessione. I link SimpleX non fidati saranno in rosso. No comment provided by engineer. + + PING count + No comment provided by engineer. + PING interval Intervallo PING 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 4b7af896f7..af7aa75f75 100644 --- a/apps/ios/SimpleX Localizations/ru.xcloc/Localized Contents/ru.xliff +++ b/apps/ios/SimpleX Localizations/ru.xcloc/Localized Contents/ru.xliff @@ -2273,6 +2273,11 @@ We will be adding server redundancy to prevent lost messages. Использование ссылки в браузере может уменьшить конфиденциальность и безопасность соединения. Ссылки на неизвестные сайты будут красными. No comment provided by engineer. + + PING count + Количество PING + No comment provided by engineer. + PING interval Интервал PING diff --git a/apps/ios/SimpleX.xcodeproj/project.pbxproj b/apps/ios/SimpleX.xcodeproj/project.pbxproj index 21dcf635d1..9aacdc4fa3 100644 --- a/apps/ios/SimpleX.xcodeproj/project.pbxproj +++ b/apps/ios/SimpleX.xcodeproj/project.pbxproj @@ -84,11 +84,6 @@ 5CB0BA90282713D900B3292C /* SimpleXInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CB0BA8F282713D900B3292C /* SimpleXInfo.swift */; }; 5CB0BA92282713FD00B3292C /* CreateProfile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CB0BA91282713FD00B3292C /* CreateProfile.swift */; }; 5CB0BA9A2827FD8800B3292C /* HowItWorks.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CB0BA992827FD8800B3292C /* HowItWorks.swift */; }; - 5CB1C5D629772200001292C0 /* libgmp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CB1C5D129772200001292C0 /* libgmp.a */; }; - 5CB1C5D729772200001292C0 /* libgmpxx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CB1C5D229772200001292C0 /* libgmpxx.a */; }; - 5CB1C5D829772200001292C0 /* libffi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CB1C5D329772200001292C0 /* libffi.a */; }; - 5CB1C5D929772200001292C0 /* libHSsimplex-chat-4.4.4-CqznjuPsbqDLbaIrXhahLF.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CB1C5D429772200001292C0 /* libHSsimplex-chat-4.4.4-CqznjuPsbqDLbaIrXhahLF.a */; }; - 5CB1C5DA29772200001292C0 /* libHSsimplex-chat-4.4.4-CqznjuPsbqDLbaIrXhahLF-ghc8.10.7.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CB1C5D529772200001292C0 /* libHSsimplex-chat-4.4.4-CqznjuPsbqDLbaIrXhahLF-ghc8.10.7.a */; }; 5CB2084F28DA4B4800D024EC /* RTCServers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CB2084E28DA4B4800D024EC /* RTCServers.swift */; }; 5CB2085128DB64CA00D024EC /* CreateLinkView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CB2085028DB64CA00D024EC /* CreateLinkView.swift */; }; 5CB2085328DB7CAF00D024EC /* ConnectViaLinkView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CB2085228DB7CAF00D024EC /* ConnectViaLinkView.swift */; }; @@ -102,6 +97,11 @@ 5CB9250D27A9432000ACCCDD /* ChatListNavLink.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CB9250C27A9432000ACCCDD /* ChatListNavLink.swift */; }; 5CBD285A295711D700EC2CF4 /* ImageUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CBD2859295711D700EC2CF4 /* ImageUtils.swift */; }; 5CBD285C29575B8E00EC2CF4 /* WhatsNewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CBD285B29575B8E00EC2CF4 /* WhatsNewView.swift */; }; + 5CBDFB57297A883C00E723C8 /* libHSsimplex-chat-4.4.4-GH5mduSQmlJ14EbWq6Ljca.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CBDFB52297A883C00E723C8 /* libHSsimplex-chat-4.4.4-GH5mduSQmlJ14EbWq6Ljca.a */; }; + 5CBDFB58297A883C00E723C8 /* libgmpxx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CBDFB53297A883C00E723C8 /* libgmpxx.a */; }; + 5CBDFB59297A883C00E723C8 /* libHSsimplex-chat-4.4.4-GH5mduSQmlJ14EbWq6Ljca-ghc8.10.7.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CBDFB54297A883C00E723C8 /* libHSsimplex-chat-4.4.4-GH5mduSQmlJ14EbWq6Ljca-ghc8.10.7.a */; }; + 5CBDFB5A297A883C00E723C8 /* libffi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CBDFB55297A883C00E723C8 /* libffi.a */; }; + 5CBDFB5B297A883C00E723C8 /* libgmp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CBDFB56297A883C00E723C8 /* libgmp.a */; }; 5CBE6C12294487F7002D9531 /* VerifyCodeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CBE6C11294487F7002D9531 /* VerifyCodeView.swift */; }; 5CBE6C142944CC12002D9531 /* ScanCodeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CBE6C132944CC12002D9531 /* ScanCodeView.swift */; }; 5CC1C99227A6C7F5000D9FF6 /* QRCode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CC1C99127A6C7F5000D9FF6 /* QRCode.swift */; }; @@ -308,11 +308,6 @@ 5CB0BA8F282713D900B3292C /* SimpleXInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SimpleXInfo.swift; sourceTree = ""; }; 5CB0BA91282713FD00B3292C /* CreateProfile.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateProfile.swift; sourceTree = ""; }; 5CB0BA992827FD8800B3292C /* HowItWorks.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HowItWorks.swift; sourceTree = ""; }; - 5CB1C5D129772200001292C0 /* libgmp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmp.a; sourceTree = ""; }; - 5CB1C5D229772200001292C0 /* libgmpxx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmpxx.a; sourceTree = ""; }; - 5CB1C5D329772200001292C0 /* libffi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libffi.a; sourceTree = ""; }; - 5CB1C5D429772200001292C0 /* libHSsimplex-chat-4.4.4-CqznjuPsbqDLbaIrXhahLF.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-4.4.4-CqznjuPsbqDLbaIrXhahLF.a"; sourceTree = ""; }; - 5CB1C5D529772200001292C0 /* libHSsimplex-chat-4.4.4-CqznjuPsbqDLbaIrXhahLF-ghc8.10.7.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-4.4.4-CqznjuPsbqDLbaIrXhahLF-ghc8.10.7.a"; sourceTree = ""; }; 5CB2084E28DA4B4800D024EC /* RTCServers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RTCServers.swift; sourceTree = ""; }; 5CB2085028DB64CA00D024EC /* CreateLinkView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateLinkView.swift; sourceTree = ""; }; 5CB2085228DB7CAF00D024EC /* ConnectViaLinkView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConnectViaLinkView.swift; sourceTree = ""; }; @@ -332,6 +327,11 @@ 5CBD285829565D2600EC2CF4 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/InfoPlist.strings; sourceTree = ""; }; 5CBD2859295711D700EC2CF4 /* ImageUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImageUtils.swift; sourceTree = ""; }; 5CBD285B29575B8E00EC2CF4 /* WhatsNewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WhatsNewView.swift; sourceTree = ""; }; + 5CBDFB52297A883C00E723C8 /* libHSsimplex-chat-4.4.4-GH5mduSQmlJ14EbWq6Ljca.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-4.4.4-GH5mduSQmlJ14EbWq6Ljca.a"; sourceTree = ""; }; + 5CBDFB53297A883C00E723C8 /* libgmpxx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmpxx.a; sourceTree = ""; }; + 5CBDFB54297A883C00E723C8 /* libHSsimplex-chat-4.4.4-GH5mduSQmlJ14EbWq6Ljca-ghc8.10.7.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-4.4.4-GH5mduSQmlJ14EbWq6Ljca-ghc8.10.7.a"; sourceTree = ""; }; + 5CBDFB55297A883C00E723C8 /* libffi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libffi.a; sourceTree = ""; }; + 5CBDFB56297A883C00E723C8 /* libgmp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmp.a; sourceTree = ""; }; 5CBE6C11294487F7002D9531 /* VerifyCodeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VerifyCodeView.swift; sourceTree = ""; }; 5CBE6C132944CC12002D9531 /* ScanCodeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScanCodeView.swift; sourceTree = ""; }; 5CC1C99127A6C7F5000D9FF6 /* QRCode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QRCode.swift; sourceTree = ""; }; @@ -424,12 +424,12 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 5CB1C5D929772200001292C0 /* libHSsimplex-chat-4.4.4-CqznjuPsbqDLbaIrXhahLF.a in Frameworks */, - 5CB1C5D729772200001292C0 /* libgmpxx.a in Frameworks */, + 5CBDFB58297A883C00E723C8 /* libgmpxx.a in Frameworks */, + 5CBDFB5B297A883C00E723C8 /* libgmp.a in Frameworks */, + 5CBDFB5A297A883C00E723C8 /* libffi.a in Frameworks */, 5CE2BA93284534B000EC33A6 /* libiconv.tbd in Frameworks */, - 5CB1C5D629772200001292C0 /* libgmp.a in Frameworks */, - 5CB1C5D829772200001292C0 /* libffi.a in Frameworks */, - 5CB1C5DA29772200001292C0 /* libHSsimplex-chat-4.4.4-CqznjuPsbqDLbaIrXhahLF-ghc8.10.7.a in Frameworks */, + 5CBDFB59297A883C00E723C8 /* libHSsimplex-chat-4.4.4-GH5mduSQmlJ14EbWq6Ljca-ghc8.10.7.a in Frameworks */, + 5CBDFB57297A883C00E723C8 /* libHSsimplex-chat-4.4.4-GH5mduSQmlJ14EbWq6Ljca.a in Frameworks */, 5CE2BA94284534BB00EC33A6 /* libz.tbd in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -488,11 +488,11 @@ 5C764E5C279C70B7000C6508 /* Libraries */ = { isa = PBXGroup; children = ( - 5CB1C5D329772200001292C0 /* libffi.a */, - 5CB1C5D129772200001292C0 /* libgmp.a */, - 5CB1C5D229772200001292C0 /* libgmpxx.a */, - 5CB1C5D529772200001292C0 /* libHSsimplex-chat-4.4.4-CqznjuPsbqDLbaIrXhahLF-ghc8.10.7.a */, - 5CB1C5D429772200001292C0 /* libHSsimplex-chat-4.4.4-CqznjuPsbqDLbaIrXhahLF.a */, + 5CBDFB55297A883C00E723C8 /* libffi.a */, + 5CBDFB56297A883C00E723C8 /* libgmp.a */, + 5CBDFB53297A883C00E723C8 /* libgmpxx.a */, + 5CBDFB54297A883C00E723C8 /* libHSsimplex-chat-4.4.4-GH5mduSQmlJ14EbWq6Ljca-ghc8.10.7.a */, + 5CBDFB52297A883C00E723C8 /* libHSsimplex-chat-4.4.4-GH5mduSQmlJ14EbWq6Ljca.a */, ); path = Libraries; sourceTree = ""; diff --git a/apps/ios/SimpleXChat/APITypes.swift b/apps/ios/SimpleXChat/APITypes.swift index 1c9f99185c..fc1576dec5 100644 --- a/apps/ios/SimpleXChat/APITypes.swift +++ b/apps/ios/SimpleXChat/APITypes.swift @@ -809,6 +809,7 @@ public struct NetCfg: Codable, Equatable { public var tcpTimeout: Int // microseconds public var tcpKeepAlive: KeepAliveOpts? public var smpPingInterval: Int // microseconds + public var smpPingCount: Int // times public var logTLSErrors: Bool public static let defaults: NetCfg = NetCfg( @@ -816,7 +817,8 @@ public struct NetCfg: Codable, Equatable { tcpConnectTimeout: 10_000_000, tcpTimeout: 7_000_000, tcpKeepAlive: KeepAliveOpts.defaults, - smpPingInterval: 600_000_000, + smpPingInterval: 1200_000_000, + smpPingCount: 3, logTLSErrors: false ) @@ -825,7 +827,8 @@ public struct NetCfg: Codable, Equatable { tcpConnectTimeout: 20_000_000, tcpTimeout: 15_000_000, tcpKeepAlive: KeepAliveOpts.defaults, - smpPingInterval: 600_000_000, + smpPingInterval: 1200_000_000, + smpPingCount: 3, logTLSErrors: false ) diff --git a/apps/ios/SimpleXChat/AppGroup.swift b/apps/ios/SimpleXChat/AppGroup.swift index 6ccf51471c..0dd43a2fca 100644 --- a/apps/ios/SimpleXChat/AppGroup.swift +++ b/apps/ios/SimpleXChat/AppGroup.swift @@ -20,6 +20,7 @@ let GROUP_DEFAULT_NETWORK_USE_ONION_HOSTS = "networkUseOnionHosts" let GROUP_DEFAULT_NETWORK_TCP_CONNECT_TIMEOUT = "networkTCPConnectTimeout" let GROUP_DEFAULT_NETWORK_TCP_TIMEOUT = "networkTCPTimeout" let GROUP_DEFAULT_NETWORK_SMP_PING_INTERVAL = "networkSMPPingInterval" +let GROUP_DEFAULT_NETWORK_SMP_PING_COUNT = "networkSMPPingCount" let GROUP_DEFAULT_NETWORK_ENABLE_KEEP_ALIVE = "networkEnableKeepAlive" let GROUP_DEFAULT_NETWORK_TCP_KEEP_IDLE = "networkTCPKeepIdle" let GROUP_DEFAULT_NETWORK_TCP_KEEP_INTVL = "networkTCPKeepIntvl" @@ -38,6 +39,7 @@ public func registerGroupDefaults() { GROUP_DEFAULT_NETWORK_TCP_CONNECT_TIMEOUT: NetCfg.defaults.tcpConnectTimeout, GROUP_DEFAULT_NETWORK_TCP_TIMEOUT: NetCfg.defaults.tcpTimeout, GROUP_DEFAULT_NETWORK_SMP_PING_INTERVAL: NetCfg.defaults.smpPingInterval, + GROUP_DEFAULT_NETWORK_SMP_PING_COUNT: NetCfg.defaults.smpPingCount, GROUP_DEFAULT_NETWORK_ENABLE_KEEP_ALIVE: NetCfg.defaults.enableKeepAlive, GROUP_DEFAULT_NETWORK_TCP_KEEP_IDLE: KeepAliveOpts.defaults.keepIdle, GROUP_DEFAULT_NETWORK_TCP_KEEP_INTVL: KeepAliveOpts.defaults.keepIntvl, @@ -187,6 +189,7 @@ public func getNetCfg() -> NetCfg { let tcpConnectTimeout = groupDefaults.integer(forKey: GROUP_DEFAULT_NETWORK_TCP_CONNECT_TIMEOUT) let tcpTimeout = groupDefaults.integer(forKey: GROUP_DEFAULT_NETWORK_TCP_TIMEOUT) let smpPingInterval = groupDefaults.integer(forKey: GROUP_DEFAULT_NETWORK_SMP_PING_INTERVAL) + let smpPingCount = groupDefaults.integer(forKey: GROUP_DEFAULT_NETWORK_SMP_PING_COUNT) let enableKeepAlive = groupDefaults.bool(forKey: GROUP_DEFAULT_NETWORK_ENABLE_KEEP_ALIVE) var tcpKeepAlive: KeepAliveOpts? if enableKeepAlive { @@ -204,6 +207,7 @@ public func getNetCfg() -> NetCfg { tcpTimeout: tcpTimeout, tcpKeepAlive: tcpKeepAlive, smpPingInterval: smpPingInterval, + smpPingCount: smpPingCount, logTLSErrors: false ) } @@ -213,6 +217,7 @@ public func setNetCfg(_ cfg: NetCfg) { groupDefaults.set(cfg.tcpConnectTimeout, forKey: GROUP_DEFAULT_NETWORK_TCP_CONNECT_TIMEOUT) groupDefaults.set(cfg.tcpTimeout, forKey: GROUP_DEFAULT_NETWORK_TCP_TIMEOUT) groupDefaults.set(cfg.smpPingInterval, forKey: GROUP_DEFAULT_NETWORK_SMP_PING_INTERVAL) + groupDefaults.set(cfg.smpPingCount, forKey: GROUP_DEFAULT_NETWORK_SMP_PING_COUNT) if let tcpKeepAlive = cfg.tcpKeepAlive { groupDefaults.set(true, forKey: GROUP_DEFAULT_NETWORK_ENABLE_KEEP_ALIVE) groupDefaults.set(tcpKeepAlive.keepIdle, forKey: GROUP_DEFAULT_NETWORK_TCP_KEEP_IDLE) From f4ffa5237c95bcda797ef7ccea7f011edb2b0497 Mon Sep 17 00:00:00 2001 From: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com> Date: Fri, 20 Jan 2023 12:02:24 +0000 Subject: [PATCH 7/7] 4.4.4-beta.1: Android 90, iOS 116 --- apps/android/app/build.gradle | 4 ++-- apps/ios/SimpleX.xcodeproj/project.pbxproj | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/apps/android/app/build.gradle b/apps/android/app/build.gradle index e808c3c7f4..b68ca2fb50 100644 --- a/apps/android/app/build.gradle +++ b/apps/android/app/build.gradle @@ -11,8 +11,8 @@ android { applicationId "chat.simplex.app" minSdk 29 targetSdk 32 - versionCode 89 - versionName "4.4.3" + versionCode 90 + versionName "4.4.4-beta.1" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" ndk { diff --git a/apps/ios/SimpleX.xcodeproj/project.pbxproj b/apps/ios/SimpleX.xcodeproj/project.pbxproj index 9aacdc4fa3..4f000ced74 100644 --- a/apps/ios/SimpleX.xcodeproj/project.pbxproj +++ b/apps/ios/SimpleX.xcodeproj/project.pbxproj @@ -1314,7 +1314,7 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = "SimpleX (iOS).entitlements"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 115; + CURRENT_PROJECT_VERSION = 116; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_BITCODE = NO; ENABLE_PREVIEWS = YES; @@ -1335,7 +1335,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 4.4.3; + MARKETING_VERSION = 4.4.4; PRODUCT_BUNDLE_IDENTIFIER = chat.simplex.app; PRODUCT_NAME = SimpleX; SDKROOT = iphoneos; @@ -1356,7 +1356,7 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = "SimpleX (iOS).entitlements"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 115; + CURRENT_PROJECT_VERSION = 116; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_BITCODE = NO; ENABLE_PREVIEWS = YES; @@ -1377,7 +1377,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 4.4.3; + MARKETING_VERSION = 4.4.4; PRODUCT_BUNDLE_IDENTIFIER = chat.simplex.app; PRODUCT_NAME = SimpleX; SDKROOT = iphoneos; @@ -1435,7 +1435,7 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = "SimpleX NSE/SimpleX NSE.entitlements"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 115; + CURRENT_PROJECT_VERSION = 116; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_BITCODE = NO; GENERATE_INFOPLIST_FILE = YES; @@ -1448,7 +1448,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 4.4.3; + MARKETING_VERSION = 4.4.4; PRODUCT_BUNDLE_IDENTIFIER = "chat.simplex.app.SimpleX-NSE"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = iphoneos; @@ -1465,7 +1465,7 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = "SimpleX NSE/SimpleX NSE.entitlements"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 115; + CURRENT_PROJECT_VERSION = 116; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_BITCODE = NO; GENERATE_INFOPLIST_FILE = YES; @@ -1478,7 +1478,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 4.4.3; + MARKETING_VERSION = 4.4.4; PRODUCT_BUNDLE_IDENTIFIER = "chat.simplex.app.SimpleX-NSE"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = iphoneos;