From 530d784a3b77d93d17b7654c829fc2bedae7d127 Mon Sep 17 00:00:00 2001 From: Evgeny Date: Tue, 7 Oct 2025 12:03:55 +0100 Subject: [PATCH 01/12] ios: fix keyboard freeze (#6343) * ios: fix keyboard freeze * comment --- .../Chat/ComposeMessage/NativeTextEditor.swift | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/apps/ios/Shared/Views/Chat/ComposeMessage/NativeTextEditor.swift b/apps/ios/Shared/Views/Chat/ComposeMessage/NativeTextEditor.swift index 31d4ceecc6..c5fd8e39d0 100644 --- a/apps/ios/Shared/Views/Chat/ComposeMessage/NativeTextEditor.swift +++ b/apps/ios/Shared/Views/Chat/ComposeMessage/NativeTextEditor.swift @@ -71,13 +71,17 @@ struct NativeTextEditor: UIViewRepresentable { if field.selectedRange != selectedRange { field.selectedRange = selectedRange } - if focused && !field.isFocused { - DispatchQueue.main.async { - if !field.isFocused { - field.becomeFirstResponder() - } - } - } +// This block causes delays in closing keyboard when navigating from chat view to chat list. +// It is also a candidate for iOS 26.1 freeze. +// This was added in commit below to open keyboard programmatically via a passed binding but this approach is not reliable. +// https://github.com/simplex-chat/simplex-chat/pull/6003/commits/cb666de51375623451a5e80dcf59449adc7d2a5f +// if focused && !field.isFocused { +// DispatchQueue.main.async { +// if !field.isFocused { +// field.becomeFirstResponder() +// } +// } +// } } } From 61eae7670ba6957e499a8d130cdaad6fecf618f0 Mon Sep 17 00:00:00 2001 From: Evgeny Poberezkin Date: Tue, 7 Oct 2025 14:46:52 +0100 Subject: [PATCH 02/12] ios: 6.4.6 build 300 --- apps/ios/SimpleX.xcodeproj/project.pbxproj | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/apps/ios/SimpleX.xcodeproj/project.pbxproj b/apps/ios/SimpleX.xcodeproj/project.pbxproj index 4e34c05265..57788d4232 100644 --- a/apps/ios/SimpleX.xcodeproj/project.pbxproj +++ b/apps/ios/SimpleX.xcodeproj/project.pbxproj @@ -2003,7 +2003,7 @@ CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES; CODE_SIGN_ENTITLEMENTS = "SimpleX (iOS).entitlements"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 299; + CURRENT_PROJECT_VERSION = 300; DEAD_CODE_STRIPPING = YES; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_BITCODE = NO; @@ -2053,7 +2053,7 @@ CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES; CODE_SIGN_ENTITLEMENTS = "SimpleX (iOS).entitlements"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 299; + CURRENT_PROJECT_VERSION = 300; DEAD_CODE_STRIPPING = YES; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_BITCODE = NO; @@ -2095,7 +2095,7 @@ buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 299; + CURRENT_PROJECT_VERSION = 300; DEVELOPMENT_TEAM = 5NN7GUYB6T; GENERATE_INFOPLIST_FILE = YES; IPHONEOS_DEPLOYMENT_TARGET = 15.0; @@ -2115,7 +2115,7 @@ buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 299; + CURRENT_PROJECT_VERSION = 300; DEVELOPMENT_TEAM = 5NN7GUYB6T; GENERATE_INFOPLIST_FILE = YES; IPHONEOS_DEPLOYMENT_TARGET = 15.0; @@ -2140,7 +2140,7 @@ CODE_SIGN_ENTITLEMENTS = "SimpleX NSE/SimpleX NSE.entitlements"; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 299; + CURRENT_PROJECT_VERSION = 300; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_BITCODE = NO; GCC_OPTIMIZATION_LEVEL = s; @@ -2177,7 +2177,7 @@ CODE_SIGN_ENTITLEMENTS = "SimpleX NSE/SimpleX NSE.entitlements"; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 299; + CURRENT_PROJECT_VERSION = 300; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_BITCODE = NO; ENABLE_CODE_COVERAGE = NO; @@ -2214,7 +2214,7 @@ CLANG_TIDY_BUGPRONE_REDUNDANT_BRANCH_CONDITION = YES; CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 299; + CURRENT_PROJECT_VERSION = 300; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = 5NN7GUYB6T; DYLIB_COMPATIBILITY_VERSION = 1; @@ -2265,7 +2265,7 @@ CLANG_TIDY_BUGPRONE_REDUNDANT_BRANCH_CONDITION = YES; CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 299; + CURRENT_PROJECT_VERSION = 300; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = 5NN7GUYB6T; DYLIB_COMPATIBILITY_VERSION = 1; @@ -2316,7 +2316,7 @@ CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; CODE_SIGN_ENTITLEMENTS = "SimpleX SE/SimpleX SE.entitlements"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 299; + CURRENT_PROJECT_VERSION = 300; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_USER_SCRIPT_SANDBOXING = YES; GCC_C_LANGUAGE_STANDARD = gnu17; @@ -2350,7 +2350,7 @@ CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; CODE_SIGN_ENTITLEMENTS = "SimpleX SE/SimpleX SE.entitlements"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 299; + CURRENT_PROJECT_VERSION = 300; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_USER_SCRIPT_SANDBOXING = YES; GCC_C_LANGUAGE_STANDARD = gnu17; From 2ceee3368d7296a021169da5546193a56da44763 Mon Sep 17 00:00:00 2001 From: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com> Date: Sat, 18 Oct 2025 21:54:37 +0000 Subject: [PATCH 03/12] ui: fix repeating accepting conditions on onboarding view (#6373) * ui: fix repeating accepting conditions on onboarding view * remove unused * ios * android - fix deleting profile --- .../Views/Onboarding/ChooseServerOperators.swift | 6 +----- .../kotlin/chat/simplex/common/model/SimpleXAPI.kt | 2 +- .../common/views/onboarding/ChooseServerOperators.kt | 11 +++-------- 3 files changed, 5 insertions(+), 14 deletions(-) diff --git a/apps/ios/Shared/Views/Onboarding/ChooseServerOperators.swift b/apps/ios/Shared/Views/Onboarding/ChooseServerOperators.swift index 656cef4a04..33ffa04a50 100644 --- a/apps/ios/Shared/Views/Onboarding/ChooseServerOperators.swift +++ b/apps/ios/Shared/Views/Onboarding/ChooseServerOperators.swift @@ -63,8 +63,6 @@ struct OnboardingConditionsView: View { @State private var notificationsModeNavLinkActive = false @State private var justOpened = true - var selectedOperators: [ServerOperator] { serverOperators.filter { selectedOperatorIds.contains($0.operatorId) } } - var body: some View { GeometryReader { g in let v = ScrollView { @@ -169,9 +167,7 @@ struct OnboardingConditionsView: View { Task { do { let conditionsId = ChatModel.shared.conditions.currentConditions.conditionsId - let acceptForOperators = selectedOperators.filter { !$0.conditionsAcceptance.conditionsAccepted } - let operatorIds = acceptForOperators.map { $0.operatorId } - let r = try await acceptConditions(conditionsId: conditionsId, operatorIds: operatorIds) + let r = try await acceptConditions(conditionsId: conditionsId, operatorIds: Array(selectedOperatorIds)) await MainActor.run { ChatModel.shared.conditions = r } diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/SimpleXAPI.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/SimpleXAPI.kt index ea740f238b..09aae9a7d3 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/SimpleXAPI.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/SimpleXAPI.kt @@ -632,7 +632,7 @@ object ChatController { val chats = apiGetChats(rhId) chatModel.chatsContext.updateChats(chats, keepingChatId = keepingChatId) } - chatModel.userTags.value = apiGetChatTags(rhId).takeIf { hasUser } ?: emptyList() + chatModel.userTags.value = if (hasUser) apiGetChatTags(rhId) ?: emptyList() else emptyList() chatModel.activeChatTagFilter.value = null chatModel.updateChatTags(rhId) } diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/onboarding/ChooseServerOperators.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/onboarding/ChooseServerOperators.kt index a14f163a91..9c6c0fa635 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/onboarding/ChooseServerOperators.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/onboarding/ChooseServerOperators.kt @@ -15,8 +15,7 @@ import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.text.TextStyle -import androidx.compose.ui.text.font.FontWeight -import androidx.compose.ui.text.style.TextAlign + import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import chat.simplex.common.model.* @@ -38,7 +37,6 @@ fun ModalData.OnboardingConditionsView() { ModalView({}, showClose = false) { val serverOperators = remember { derivedStateOf { chatModel.conditions.value.serverOperators } } val selectedOperatorIds = remember { stateGetOrPut("selectedOperatorIds") { serverOperators.value.filter { it.enabled }.map { it.operatorId }.toSet() } } - val selectedOperators = remember { derivedStateOf { serverOperators.value.filter { selectedOperatorIds.value.contains(it.operatorId) } } } ColumnWithScrollBar( Modifier @@ -84,7 +82,7 @@ fun ModalData.OnboardingConditionsView() { Spacer(Modifier.weight(1f)) Column(Modifier.widthIn(max = if (appPlatform.isAndroid) 450.dp else 1000.dp).align(Alignment.CenterHorizontally), horizontalAlignment = Alignment.CenterHorizontally) { - AcceptConditionsButton(enabled = selectedOperatorIds.value.isNotEmpty(), selectedOperators, selectedOperatorIds) + AcceptConditionsButton(enabled = selectedOperatorIds.value.isNotEmpty(), selectedOperatorIds) TextButtonBelowOnboardingButton(stringResource(MR.strings.onboarding_conditions_configure_server_operators)) { ModalManager.fullscreen.showModalCloseable { close -> ChooseServerOperators(serverOperators, selectedOperatorIds, close) @@ -217,7 +215,6 @@ private fun SetOperatorsButton(enabled: Boolean, close: () -> Unit) { @Composable private fun AcceptConditionsButton( enabled: Boolean, - selectedOperators: State>, selectedOperatorIds: State> ) { fun continueOnAccept() { @@ -235,9 +232,7 @@ private fun AcceptConditionsButton( onclick = { withBGApi { val conditionsId = chatModel.conditions.value.currentConditions.conditionsId - val acceptForOperators = selectedOperators.value.filter { !it.conditionsAcceptance.conditionsAccepted } - val operatorIds = acceptForOperators.map { it.operatorId } - val r = chatController.acceptConditions(chatModel.remoteHostId(), conditionsId = conditionsId, operatorIds = operatorIds) + val r = chatController.acceptConditions(chatModel.remoteHostId(), conditionsId = conditionsId, operatorIds = selectedOperatorIds.value.toList()) if (r != null) { chatModel.conditions.value = r val enabledOperators = enabledOperators(r.serverOperators, selectedOperatorIds.value) From 46e657834e0d50d1913d63c6d812bec2ad22cf36 Mon Sep 17 00:00:00 2001 From: Evgeny Poberezkin Date: Sun, 19 Oct 2025 18:29:24 +0100 Subject: [PATCH 04/12] readme: update donation address --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 6ed444c7b5..1e80c14424 100644 --- a/README.md +++ b/README.md @@ -165,8 +165,7 @@ It is possible to donate via: - BTC: bc1q2gy6f02nn6vvcxs0pnu29tpnpyz0qf66505d4u - XMR: 8568eeVjaJ1RQ65ZUn9PRQ8ENtqeX9VVhcCYYhnVLxhV4JtBqw42so2VEUDQZNkFfsH5sXCuV7FN8VhRQ21DkNibTZP57Qt - BCH: bitcoincash:qq6c8vfvxqrk6rhdysgvkhqc24sggkfsx5nqvdlqcg -- ETH: 0xD9ee7Db0AD0dc1Dfa7eD53290199ED06beA04692 -- USDT (Ethereum): 0xD9ee7Db0AD0dc1Dfa7eD53290199ED06beA04692 +- ETH/USDT (Ethereum, Arbitrum One): 0xD7047Fe3Eecb2f2FF78d839dD927Be27Bc12c86a - ZEC: t1fwjQW5gpFhDqXNhxqDWyF9j9WeKvVS5Jg - ZEC shielded: u16rnvkflumf5uw9frngc2lymvmzgdr2mmc9unyu0l44unwfmdcpfm0axujd2w34ct3ye709azxsqge45705lpvvqu264ltzvfay55ygyq - DOGE: D99pV4n9TrPxBPCkQGx4w4SMSa6QjRBxPf From 2d917ffd54d0ae4e0f5e64e7675f1594d043d623 Mon Sep 17 00:00:00 2001 From: sh <37271604+shumvgolove@users.noreply.github.com> Date: Fri, 24 Oct 2025 15:05:24 +0000 Subject: [PATCH 05/12] nix: enable 16 KB page sizes (#6357) * nix: enable 16 KB page sizes * remove 16kb page from armv7a --------- Co-authored-by: Evgeny --- flake.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/flake.nix b/flake.nix index 1520fb2ee3..a68b42e2f1 100644 --- a/flake.nix +++ b/flake.nix @@ -309,6 +309,7 @@ aarch64-unknown-linux-android-ghc -shared -o libsupport.so \ -optl-Wl,-u,setLineBuffering \ -optl-Wl,-u,pipe_std_to_socket \ + -optl-Wl,-z,max-page-size=16384 \ dist/build/*.a ''; @@ -475,6 +476,7 @@ "-threaded" # "-debug" "-optl-lffi" + "-optl-Wl,-z,max-page-size=16384" ] # This is fairly idiotic. LLD will strip out foreign exported # symbols (a GHC bug? Codegen bug?). So we need to pass `-u ` From 622803e9d6cbfc8a0d2701d281dc07ff4d9e846f Mon Sep 17 00:00:00 2001 From: shum Date: Fri, 24 Oct 2025 15:17:50 +0000 Subject: [PATCH 06/12] apps/multiplatform: align androidx.camera and libapp to 16kb --- apps/multiplatform/common/build.gradle.kts | 3 ++- .../common/src/commonMain/cpp/android/CMakeLists.txt | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/apps/multiplatform/common/build.gradle.kts b/apps/multiplatform/common/build.gradle.kts index 2227766cfa..9fc2c7da52 100644 --- a/apps/multiplatform/common/build.gradle.kts +++ b/apps/multiplatform/common/build.gradle.kts @@ -95,7 +95,8 @@ kotlin { implementation("com.jakewharton:process-phoenix:3.0.0") - val cameraXVersion = "1.3.4" + // https://issuetracker.google.com/issues/351313880 + val cameraXVersion = "1.5.1" implementation("androidx.camera:camera-core:${cameraXVersion}") implementation("androidx.camera:camera-camera2:${cameraXVersion}") implementation("androidx.camera:camera-lifecycle:${cameraXVersion}") diff --git a/apps/multiplatform/common/src/commonMain/cpp/android/CMakeLists.txt b/apps/multiplatform/common/src/commonMain/cpp/android/CMakeLists.txt index 44cb31d424..49794a8ab5 100644 --- a/apps/multiplatform/common/src/commonMain/cpp/android/CMakeLists.txt +++ b/apps/multiplatform/common/src/commonMain/cpp/android/CMakeLists.txt @@ -57,6 +57,9 @@ set_target_properties( support PROPERTIES IMPORTED_LOCATION # can link multiple libraries, such as libraries you define in this # build script, prebuilt third-party libraries, or system libraries. +# https://developer.android.com/guide/practices/page-sizes#cmake +target_link_options(app-lib PRIVATE "-Wl,-z,max-page-size=16384") + target_link_libraries( # Specifies the target library. app-lib From 70035bd473d27ef6dd22f7c039335652a1cc2ec9 Mon Sep 17 00:00:00 2001 From: Evgeny Poberezkin Date: Thu, 30 Oct 2025 14:27:39 +0000 Subject: [PATCH 07/12] core: upgrade zip (fixes export when database file is larger than 4gb --- cabal.project | 2 +- scripts/nix/sha256map.nix | 2 +- simplex-chat.cabal | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cabal.project b/cabal.project index 426fe95930..894df6f186 100644 --- a/cabal.project +++ b/cabal.project @@ -48,7 +48,7 @@ source-repository-package source-repository-package type: git location: https://github.com/simplex-chat/zip.git - tag: bd421c6b19cc4c465cd7af1f6f26169fb8ee1ebc + tag: 809022d8f573cf41ce34b411b84101c279cc9f78 -- waiting for published warp-tls-3.4.7 source-repository-package diff --git a/scripts/nix/sha256map.nix b/scripts/nix/sha256map.nix index 75ae7a0d23..3417f20976 100644 --- a/scripts/nix/sha256map.nix +++ b/scripts/nix/sha256map.nix @@ -6,7 +6,7 @@ "https://github.com/simplex-chat/aeson.git"."aab7b5a14d6c5ea64c64dcaee418de1bb00dcc2b" = "0jz7kda8gai893vyvj96fy962ncv8dcsx71fbddyy8zrvc88jfrr"; "https://github.com/simplex-chat/haskell-terminal.git"."f708b00009b54890172068f168bf98508ffcd495" = "0zmq7lmfsk8m340g47g5963yba7i88n4afa6z93sg9px5jv1mijj"; "https://github.com/simplex-chat/android-support.git"."9aa09f148089d6752ce563b14c2df1895718d806" = "0pbf2pf13v2kjzi397nr13f1h3jv0imvsq8rpiyy2qyx5vd50pqn"; - "https://github.com/simplex-chat/zip.git"."bd421c6b19cc4c465cd7af1f6f26169fb8ee1ebc" = "1csqfjhvc8wb5h4kxxndmb6iw7b4ib9ff2n81hrizsmnf45a6gg0"; + "https://github.com/simplex-chat/zip.git"."809022d8f573cf41ce34b411b84101c279cc9f78" = "1x2fhhxzsjar7vvxfsa8jw8h4xa7q3d7vk91dgjvclsdglsclss5"; "https://github.com/yesodweb/wai.git"."ec5e017d896a78e787a5acea62b37a4e677dec2e" = "1ckcpmpjfy9jiqrb52q20lj7ln4hmq9v2jk6kpkf3m68c1m9c2bx"; "https://github.com/simplex-chat/wai.git"."2f6e5aa5f05ba9140ac99e195ee647b4f7d926b0" = "199g4rjdf1zp1fcw8nqdsyr1h36hmg424qqx03071jk7j00z7ay4"; } diff --git a/simplex-chat.cabal b/simplex-chat.cabal index f576674b1f..737bc2cb54 100644 --- a/simplex-chat.cabal +++ b/simplex-chat.cabal @@ -300,7 +300,7 @@ library , unliftio-core ==0.2.* , uri-bytestring >=0.3.3.1 && <0.4 , uuid ==1.3.* - , zip ==2.0.* + , zip ==2.2.* , zstd ==0.1.3.* default-language: Haskell2010 if flag(swift) From 9c3ec53d271edb1a9d4a77bcb5fd981d192c12db Mon Sep 17 00:00:00 2001 From: Evgeny Poberezkin Date: Thu, 30 Oct 2025 19:31:45 +0000 Subject: [PATCH 08/12] ios: update core library --- apps/ios/SimpleX.xcodeproj/project.pbxproj | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/apps/ios/SimpleX.xcodeproj/project.pbxproj b/apps/ios/SimpleX.xcodeproj/project.pbxproj index 57788d4232..703dec7ac3 100644 --- a/apps/ios/SimpleX.xcodeproj/project.pbxproj +++ b/apps/ios/SimpleX.xcodeproj/project.pbxproj @@ -178,8 +178,8 @@ 64C3B0212A0D359700E19930 /* CustomTimePicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64C3B0202A0D359700E19930 /* CustomTimePicker.swift */; }; 64C8299D2D54AEEE006B9E89 /* libgmp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C829982D54AEED006B9E89 /* libgmp.a */; }; 64C8299E2D54AEEE006B9E89 /* libffi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C829992D54AEEE006B9E89 /* libffi.a */; }; - 64C8299F2D54AEEE006B9E89 /* libHSsimplex-chat-6.4.6.0-1uYs2FKSnCtGti4vmlXmvH-ghc9.6.3.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-6.4.6.0-1uYs2FKSnCtGti4vmlXmvH-ghc9.6.3.a */; }; - 64C829A02D54AEEE006B9E89 /* libHSsimplex-chat-6.4.6.0-1uYs2FKSnCtGti4vmlXmvH.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-6.4.6.0-1uYs2FKSnCtGti4vmlXmvH.a */; }; + 64C8299F2D54AEEE006B9E89 /* libHSsimplex-chat-6.4.6.0-Gs96a039MbJJOyGdcAxH0M-ghc9.6.3.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-6.4.6.0-Gs96a039MbJJOyGdcAxH0M-ghc9.6.3.a */; }; + 64C829A02D54AEEE006B9E89 /* libHSsimplex-chat-6.4.6.0-Gs96a039MbJJOyGdcAxH0M.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-6.4.6.0-Gs96a039MbJJOyGdcAxH0M.a */; }; 64C829A12D54AEEE006B9E89 /* libgmpxx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C8299C2D54AEEE006B9E89 /* libgmpxx.a */; }; 64D0C2C029F9688300B38D5F /* UserAddressView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64D0C2BF29F9688300B38D5F /* UserAddressView.swift */; }; 64D0C2C229FA57AB00B38D5F /* UserAddressLearnMore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64D0C2C129FA57AB00B38D5F /* UserAddressLearnMore.swift */; }; @@ -545,8 +545,8 @@ 64C3B0202A0D359700E19930 /* CustomTimePicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomTimePicker.swift; sourceTree = ""; }; 64C829982D54AEED006B9E89 /* libgmp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmp.a; sourceTree = ""; }; 64C829992D54AEEE006B9E89 /* libffi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libffi.a; sourceTree = ""; }; - 64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-6.4.6.0-1uYs2FKSnCtGti4vmlXmvH-ghc9.6.3.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-6.4.6.0-1uYs2FKSnCtGti4vmlXmvH-ghc9.6.3.a"; sourceTree = ""; }; - 64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-6.4.6.0-1uYs2FKSnCtGti4vmlXmvH.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-6.4.6.0-1uYs2FKSnCtGti4vmlXmvH.a"; sourceTree = ""; }; + 64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-6.4.6.0-Gs96a039MbJJOyGdcAxH0M-ghc9.6.3.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-6.4.6.0-Gs96a039MbJJOyGdcAxH0M-ghc9.6.3.a"; sourceTree = ""; }; + 64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-6.4.6.0-Gs96a039MbJJOyGdcAxH0M.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-6.4.6.0-Gs96a039MbJJOyGdcAxH0M.a"; sourceTree = ""; }; 64C8299C2D54AEEE006B9E89 /* libgmpxx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmpxx.a; sourceTree = ""; }; 64D0C2BF29F9688300B38D5F /* UserAddressView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserAddressView.swift; sourceTree = ""; }; 64D0C2C129FA57AB00B38D5F /* UserAddressLearnMore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserAddressLearnMore.swift; sourceTree = ""; }; @@ -708,8 +708,8 @@ 64C8299D2D54AEEE006B9E89 /* libgmp.a in Frameworks */, 64C8299E2D54AEEE006B9E89 /* libffi.a in Frameworks */, 64C829A12D54AEEE006B9E89 /* libgmpxx.a in Frameworks */, - 64C8299F2D54AEEE006B9E89 /* libHSsimplex-chat-6.4.6.0-1uYs2FKSnCtGti4vmlXmvH-ghc9.6.3.a in Frameworks */, - 64C829A02D54AEEE006B9E89 /* libHSsimplex-chat-6.4.6.0-1uYs2FKSnCtGti4vmlXmvH.a in Frameworks */, + 64C8299F2D54AEEE006B9E89 /* libHSsimplex-chat-6.4.6.0-Gs96a039MbJJOyGdcAxH0M-ghc9.6.3.a in Frameworks */, + 64C829A02D54AEEE006B9E89 /* libHSsimplex-chat-6.4.6.0-Gs96a039MbJJOyGdcAxH0M.a in Frameworks */, CE38A29C2C3FCD72005ED185 /* SwiftyGif in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -795,8 +795,8 @@ 64C829992D54AEEE006B9E89 /* libffi.a */, 64C829982D54AEED006B9E89 /* libgmp.a */, 64C8299C2D54AEEE006B9E89 /* libgmpxx.a */, - 64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-6.4.6.0-1uYs2FKSnCtGti4vmlXmvH-ghc9.6.3.a */, - 64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-6.4.6.0-1uYs2FKSnCtGti4vmlXmvH.a */, + 64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-6.4.6.0-Gs96a039MbJJOyGdcAxH0M-ghc9.6.3.a */, + 64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-6.4.6.0-Gs96a039MbJJOyGdcAxH0M.a */, ); path = Libraries; sourceTree = ""; From 61f7a50d0a58c06f4f99fccf63239c5cfdc17187 Mon Sep 17 00:00:00 2001 From: Evgeny Poberezkin Date: Sat, 1 Nov 2025 12:22:33 +0000 Subject: [PATCH 09/12] core: 6.4.7.0 --- simplex-chat.cabal | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/simplex-chat.cabal b/simplex-chat.cabal index 737bc2cb54..c54095c5cc 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: 6.4.6.0 +version: 6.4.7.0 category: Web, System, Services, Cryptography homepage: https://github.com/simplex-chat/simplex-chat#readme author: simplex.chat From f3a34e87aeb880753e6e8e7075457056fb2bb913 Mon Sep 17 00:00:00 2001 From: Evgeny Date: Sat, 1 Nov 2025 17:17:29 +0000 Subject: [PATCH 10/12] ios: fix iOS 26 (#6419) * ios: fix iOS 26 list shading on scroll * revert to compatible design * revert scrolling modifier --- apps/ios/Shared/Theme/Theme.swift | 14 ++++++++------ apps/ios/SimpleX--iOS--Info.plist | 2 ++ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/apps/ios/Shared/Theme/Theme.swift b/apps/ios/Shared/Theme/Theme.swift index de67390026..3bd8f00c25 100644 --- a/apps/ios/Shared/Theme/Theme.swift +++ b/apps/ios/Shared/Theme/Theme.swift @@ -42,12 +42,14 @@ class AppTheme: ObservableObject, Equatable { } func updateFromCurrentColors() { - objectWillChange.send() - name = CurrentColors.name - base = CurrentColors.base - colors.updateColorsFrom(CurrentColors.colors) - appColors.updateColorsFrom(CurrentColors.appColors) - wallpaper.updateWallpaperFrom(CurrentColors.wallpaper) + DispatchQueue.main.async { + self.objectWillChange.send() + self.name = CurrentColors.name + self.base = CurrentColors.base + self.colors.updateColorsFrom(CurrentColors.colors) + self.appColors.updateColorsFrom(CurrentColors.appColors) + self.wallpaper.updateWallpaperFrom(CurrentColors.wallpaper) + } } } diff --git a/apps/ios/SimpleX--iOS--Info.plist b/apps/ios/SimpleX--iOS--Info.plist index 6f7d6c2395..72bd9b0dc3 100644 --- a/apps/ios/SimpleX--iOS--Info.plist +++ b/apps/ios/SimpleX--iOS--Info.plist @@ -56,5 +56,7 @@ remote-notification voip + UIDesignRequiresCompatibility + From 0c4f2343ae0a7db702d8e5aa15b178ab59aac46e Mon Sep 17 00:00:00 2001 From: Evgeny Poberezkin Date: Sat, 1 Nov 2025 20:51:26 +0000 Subject: [PATCH 11/12] core: update zip library to build in ghc8.10.7 --- cabal.project | 2 +- scripts/nix/sha256map.nix | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cabal.project b/cabal.project index 894df6f186..642b252b44 100644 --- a/cabal.project +++ b/cabal.project @@ -48,7 +48,7 @@ source-repository-package source-repository-package type: git location: https://github.com/simplex-chat/zip.git - tag: 809022d8f573cf41ce34b411b84101c279cc9f78 + tag: 2eff156c3aac389e35d38bf10a52733d7061640a -- waiting for published warp-tls-3.4.7 source-repository-package diff --git a/scripts/nix/sha256map.nix b/scripts/nix/sha256map.nix index 3417f20976..9bbc469869 100644 --- a/scripts/nix/sha256map.nix +++ b/scripts/nix/sha256map.nix @@ -6,7 +6,7 @@ "https://github.com/simplex-chat/aeson.git"."aab7b5a14d6c5ea64c64dcaee418de1bb00dcc2b" = "0jz7kda8gai893vyvj96fy962ncv8dcsx71fbddyy8zrvc88jfrr"; "https://github.com/simplex-chat/haskell-terminal.git"."f708b00009b54890172068f168bf98508ffcd495" = "0zmq7lmfsk8m340g47g5963yba7i88n4afa6z93sg9px5jv1mijj"; "https://github.com/simplex-chat/android-support.git"."9aa09f148089d6752ce563b14c2df1895718d806" = "0pbf2pf13v2kjzi397nr13f1h3jv0imvsq8rpiyy2qyx5vd50pqn"; - "https://github.com/simplex-chat/zip.git"."809022d8f573cf41ce34b411b84101c279cc9f78" = "1x2fhhxzsjar7vvxfsa8jw8h4xa7q3d7vk91dgjvclsdglsclss5"; + "https://github.com/simplex-chat/zip.git"."2eff156c3aac389e35d38bf10a52733d7061640a" = "052vahd5d4lxnazjrb6l60i261aycn2js7jhzafyb72n15ns4r6p"; "https://github.com/yesodweb/wai.git"."ec5e017d896a78e787a5acea62b37a4e677dec2e" = "1ckcpmpjfy9jiqrb52q20lj7ln4hmq9v2jk6kpkf3m68c1m9c2bx"; "https://github.com/simplex-chat/wai.git"."2f6e5aa5f05ba9140ac99e195ee647b4f7d926b0" = "199g4rjdf1zp1fcw8nqdsyr1h36hmg424qqx03071jk7j00z7ay4"; } From 753df3b14fe6d8452ce7b35b7191c3f4058a2707 Mon Sep 17 00:00:00 2001 From: Evgeny Poberezkin Date: Sat, 1 Nov 2025 22:01:57 +0000 Subject: [PATCH 12/12] core: 6.4.7.1 --- simplex-chat.cabal | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/simplex-chat.cabal b/simplex-chat.cabal index c54095c5cc..75ddceac5e 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: 6.4.7.0 +version: 6.4.7.1 category: Web, System, Services, Cryptography homepage: https://github.com/simplex-chat/simplex-chat#readme author: simplex.chat