Merge branch 'master-ghc8107' into master-android

This commit is contained in:
Evgeny Poberezkin 2023-12-27 14:09:42 +00:00
commit 2e337a753f
31 changed files with 72 additions and 72 deletions

View File

@ -104,7 +104,7 @@ struct ComposeState {
var sendEnabled: Bool { var sendEnabled: Bool {
switch preview { switch preview {
case .mediaPreviews: return true case let .mediaPreviews(media): return !media.isEmpty
case .voicePreview: return voiceMessageRecordingState == .finished case .voicePreview: return voiceMessageRecordingState == .finished
case .filePreview: return true case .filePreview: return true
default: return !message.isEmpty || liveMessage != nil default: return !message.isEmpty || liveMessage != nil
@ -384,7 +384,7 @@ struct ComposeView: View {
} }
} }
.sheet(isPresented: $showMediaPicker) { .sheet(isPresented: $showMediaPicker) {
LibraryMediaListPicker(addMedia: addMediaContent, selectionLimit: 10) { itemsSelected in LibraryMediaListPicker(addMedia: addMediaContent, selectionLimit: 10, finishedPreprocessing: finishedPreprocessingMediaContent) { itemsSelected in
await MainActor.run { await MainActor.run {
showMediaPicker = false showMediaPicker = false
if itemsSelected { if itemsSelected {
@ -503,6 +503,15 @@ struct ComposeView: View {
} }
} }
// When error occurs while converting video, remove media preview
private func finishedPreprocessingMediaContent() {
if case let .mediaPreviews(media) = composeState.preview, media.isEmpty {
DispatchQueue.main.async {
composeState = composeState.copy(preview: .noPreview)
}
}
}
private var maxFileSize: Int64 { private var maxFileSize: Int64 {
getMaxFileSize(.xftp) getMaxFileSize(.xftp)
} }

View File

@ -33,6 +33,7 @@ struct LibraryMediaListPicker: UIViewControllerRepresentable {
typealias UIViewControllerType = PHPickerViewController typealias UIViewControllerType = PHPickerViewController
var addMedia: (_ content: UploadContent) async -> Void var addMedia: (_ content: UploadContent) async -> Void
var selectionLimit: Int var selectionLimit: Int
var finishedPreprocessing: () -> Void = {}
var didFinishPicking: (_ didSelectItems: Bool) async -> Void var didFinishPicking: (_ didSelectItems: Bool) async -> Void
class Coordinator: PHPickerViewControllerDelegate { class Coordinator: PHPickerViewControllerDelegate {
@ -50,6 +51,7 @@ struct LibraryMediaListPicker: UIViewControllerRepresentable {
for r in results { for r in results {
await loadItem(r.itemProvider) await loadItem(r.itemProvider)
} }
parent.finishedPreprocessing()
} }
} }
@ -103,21 +105,27 @@ struct LibraryMediaListPicker: UIViewControllerRepresentable {
await withCheckedContinuation { cont in await withCheckedContinuation { cont in
loadFileURL(p, type: UTType.movie) { url in loadFileURL(p, type: UTType.movie) { url in
if let url = url { if let url = url {
let tempUrl = URL(fileURLWithPath: generateNewFileName(getTempFilesDirectory().path + "/" + "video", url.pathExtension, fullPath: true)) let tempUrl = URL(fileURLWithPath: generateNewFileName(getTempFilesDirectory().path + "/" + "rawvideo", url.pathExtension, fullPath: true))
let convertedVideoUrl = URL(fileURLWithPath: generateNewFileName(getTempFilesDirectory().path + "/" + "video", "mp4", fullPath: true))
do { do {
// logger.debug("LibraryMediaListPicker copyItem \(url) to \(tempUrl)") // logger.debug("LibraryMediaListPicker copyItem \(url) to \(tempUrl)")
try FileManager.default.copyItem(at: url, to: tempUrl) try FileManager.default.copyItem(at: url, to: tempUrl)
DispatchQueue.main.async {
_ = ChatModel.shared.filesToDelete.insert(tempUrl)
}
let video = UploadContent.loadVideoFromURL(url: tempUrl)
cont.resume(returning: video)
return
} catch let err { } catch let err {
logger.error("LibraryMediaListPicker copyItem error: \(err.localizedDescription)") logger.error("LibraryMediaListPicker copyItem error: \(err.localizedDescription)")
return cont.resume(returning: nil)
}
Task {
let success = await makeVideoQualityLower(tempUrl, outputUrl: convertedVideoUrl)
try? FileManager.default.removeItem(at: tempUrl)
if success {
_ = ChatModel.shared.filesToDelete.insert(convertedVideoUrl)
let video = UploadContent.loadVideoFromURL(url: convertedVideoUrl)
return cont.resume(returning: video)
}
try? FileManager.default.removeItem(at: convertedVideoUrl)
cont.resume(returning: nil)
} }
} }
cont.resume(returning: nil)
} }
} }
} }
@ -143,7 +151,7 @@ struct LibraryMediaListPicker: UIViewControllerRepresentable {
config.filter = .any(of: [.images, .videos]) config.filter = .any(of: [.images, .videos])
config.selectionLimit = selectionLimit config.selectionLimit = selectionLimit
config.selection = .ordered config.selection = .ordered
//config.preferredAssetRepresentationMode = .current config.preferredAssetRepresentationMode = .current
let controller = PHPickerViewController(configuration: config) let controller = PHPickerViewController(configuration: config)
controller.delegate = context.coordinator controller.delegate = context.coordinator
return controller return controller

View File

@ -0,0 +1,26 @@
//
// VideoUtils.swift
// SimpleX (iOS)
//
// Created by Avently on 25.12.2023.
// Copyright © 2023 SimpleX Chat. All rights reserved.
//
import AVFoundation
import Foundation
import SimpleXChat
func makeVideoQualityLower(_ input: URL, outputUrl: URL) async -> Bool {
let asset: AVURLAsset = AVURLAsset(url: input, options: nil)
if let s = AVAssetExportSession(asset: asset, presetName: AVAssetExportPreset640x480) {
s.outputURL = outputUrl
s.outputFileType = .mp4
s.metadataItemFilter = AVMetadataItemFilter.forSharing()
await s.export()
if let err = s.error {
logger.error("Failed to export video with error: \(err)")
}
return s.status == .completed
}
return false
}

View File

@ -81,11 +81,6 @@ struct CreateSimpleXAddress: View {
DispatchQueue.main.async { DispatchQueue.main.async {
m.userAddress = UserContactLink(connReqContact: connReqContact) m.userAddress = UserContactLink(connReqContact: connReqContact)
} }
if let u = try await apiSetProfileAddress(on: true) {
DispatchQueue.main.async {
m.updateUser(u)
}
}
await MainActor.run { progressIndicator = false } await MainActor.run { progressIndicator = false }
} catch let error { } catch let error {
logger.error("CreateSimpleXAddress create address: \(responseError(error))") logger.error("CreateSimpleXAddress create address: \(responseError(error))")
@ -100,7 +95,7 @@ struct CreateSimpleXAddress: View {
} label: { } label: {
Text("Create SimpleX address").font(.title) Text("Create SimpleX address").font(.title)
} }
Text("Your contacts in SimpleX will see it.\nYou can change it in Settings.") Text("You can make it visible to your SimpleX contacts via Settings.")
.multilineTextAlignment(.center) .multilineTextAlignment(.center)
.font(.footnote) .font(.footnote)
.padding(.horizontal, 32) .padding(.horizontal, 32)

View File

@ -193,6 +193,7 @@
64D0C2C629FAC1EC00B38D5F /* AddContactLearnMore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64D0C2C529FAC1EC00B38D5F /* AddContactLearnMore.swift */; }; 64D0C2C629FAC1EC00B38D5F /* AddContactLearnMore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64D0C2C529FAC1EC00B38D5F /* AddContactLearnMore.swift */; };
64E972072881BB22008DBC02 /* CIGroupInvitationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64E972062881BB22008DBC02 /* CIGroupInvitationView.swift */; }; 64E972072881BB22008DBC02 /* CIGroupInvitationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64E972062881BB22008DBC02 /* CIGroupInvitationView.swift */; };
64F1CC3B28B39D8600CD1FB1 /* IncognitoHelp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64F1CC3A28B39D8600CD1FB1 /* IncognitoHelp.swift */; }; 64F1CC3B28B39D8600CD1FB1 /* IncognitoHelp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64F1CC3A28B39D8600CD1FB1 /* IncognitoHelp.swift */; };
8C05382E2B39887E006436DC /* VideoUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C05382D2B39887E006436DC /* VideoUtils.swift */; };
D7197A1829AE89660055C05A /* WebRTC in Frameworks */ = {isa = PBXBuildFile; productRef = D7197A1729AE89660055C05A /* WebRTC */; }; D7197A1829AE89660055C05A /* WebRTC in Frameworks */ = {isa = PBXBuildFile; productRef = D7197A1729AE89660055C05A /* WebRTC */; };
D72A9088294BD7A70047C86D /* NativeTextEditor.swift in Sources */ = {isa = PBXBuildFile; fileRef = D72A9087294BD7A70047C86D /* NativeTextEditor.swift */; }; D72A9088294BD7A70047C86D /* NativeTextEditor.swift in Sources */ = {isa = PBXBuildFile; fileRef = D72A9087294BD7A70047C86D /* NativeTextEditor.swift */; };
D741547829AF89AF0022400A /* StoreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D741547729AF89AF0022400A /* StoreKit.framework */; }; D741547829AF89AF0022400A /* StoreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D741547729AF89AF0022400A /* StoreKit.framework */; };
@ -486,6 +487,7 @@
64DAE1502809D9F5000DA960 /* FileUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileUtils.swift; sourceTree = "<group>"; }; 64DAE1502809D9F5000DA960 /* FileUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileUtils.swift; sourceTree = "<group>"; };
64E972062881BB22008DBC02 /* CIGroupInvitationView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CIGroupInvitationView.swift; sourceTree = "<group>"; }; 64E972062881BB22008DBC02 /* CIGroupInvitationView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CIGroupInvitationView.swift; sourceTree = "<group>"; };
64F1CC3A28B39D8600CD1FB1 /* IncognitoHelp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IncognitoHelp.swift; sourceTree = "<group>"; }; 64F1CC3A28B39D8600CD1FB1 /* IncognitoHelp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IncognitoHelp.swift; sourceTree = "<group>"; };
8C05382D2B39887E006436DC /* VideoUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VideoUtils.swift; sourceTree = "<group>"; };
D72A9087294BD7A70047C86D /* NativeTextEditor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NativeTextEditor.swift; sourceTree = "<group>"; }; D72A9087294BD7A70047C86D /* NativeTextEditor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NativeTextEditor.swift; sourceTree = "<group>"; };
D741547729AF89AF0022400A /* StoreKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = StoreKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS16.1.sdk/System/Library/Frameworks/StoreKit.framework; sourceTree = DEVELOPER_DIR; }; D741547729AF89AF0022400A /* StoreKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = StoreKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS16.1.sdk/System/Library/Frameworks/StoreKit.framework; sourceTree = DEVELOPER_DIR; };
D741547929AF90B00022400A /* PushKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = PushKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS16.1.sdk/System/Library/Frameworks/PushKit.framework; sourceTree = DEVELOPER_DIR; }; D741547929AF90B00022400A /* PushKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = PushKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS16.1.sdk/System/Library/Frameworks/PushKit.framework; sourceTree = DEVELOPER_DIR; };
@ -652,6 +654,7 @@
64466DCB29FFE3E800E3D48D /* MailView.swift */, 64466DCB29FFE3E800E3D48D /* MailView.swift */,
64C3B0202A0D359700E19930 /* CustomTimePicker.swift */, 64C3B0202A0D359700E19930 /* CustomTimePicker.swift */,
5CEBD7452A5C0A8F00665FE2 /* KeyboardPadding.swift */, 5CEBD7452A5C0A8F00665FE2 /* KeyboardPadding.swift */,
8C05382D2B39887E006436DC /* VideoUtils.swift */,
); );
path = Helpers; path = Helpers;
sourceTree = "<group>"; sourceTree = "<group>";
@ -1222,6 +1225,7 @@
5CCD403727A5F9A200368C90 /* ScanToConnectView.swift in Sources */, 5CCD403727A5F9A200368C90 /* ScanToConnectView.swift in Sources */,
5CFA59D12864782E00863A68 /* ChatArchiveView.swift in Sources */, 5CFA59D12864782E00863A68 /* ChatArchiveView.swift in Sources */,
649BCDA22805D6EF00C3A862 /* CIImageView.swift in Sources */, 649BCDA22805D6EF00C3A862 /* CIImageView.swift in Sources */,
8C05382E2B39887E006436DC /* VideoUtils.swift in Sources */,
5CADE79C292131E900072E13 /* ContactPreferencesView.swift in Sources */, 5CADE79C292131E900072E13 /* ContactPreferencesView.swift in Sources */,
5CB346E52868AA7F001FD2EF /* SuspendChat.swift in Sources */, 5CB346E52868AA7F001FD2EF /* SuspendChat.swift in Sources */,
5C9C2DA52894777E00CC63B1 /* GroupProfileView.swift in Sources */, 5C9C2DA52894777E00CC63B1 /* GroupProfileView.swift in Sources */,

View File

@ -152,7 +152,12 @@ fun TerminalLog(terminalItems: List<TerminalItem>) {
.clickable { .clickable {
ModalManager.start.showModal(endButtons = { ShareButton { clipboard.shareText(item.details) } }) { ModalManager.start.showModal(endButtons = { ShareButton { clipboard.shareText(item.details) } }) {
SelectionContainer(modifier = Modifier.verticalScroll(rememberScrollState())) { SelectionContainer(modifier = Modifier.verticalScroll(rememberScrollState())) {
Text(item.details, modifier = Modifier.padding(horizontal = DEFAULT_PADDING).padding(bottom = DEFAULT_PADDING)) val details = item.details
.let {
if (it.length < 100_000) it
else it.substring(0, 100_000)
}
Text(details, modifier = Modifier.heightIn(max = 50_000.dp).padding(horizontal = DEFAULT_PADDING).padding(bottom = DEFAULT_PADDING))
} }
} }
}.padding(horizontal = 8.dp, vertical = 4.dp) }.padding(horizontal = 8.dp, vertical = 4.dp)

View File

@ -48,14 +48,6 @@ fun CreateSimpleXAddress(m: ChatModel, rhId: Long?) {
val connReqContact = m.controller.apiCreateUserAddress(rhId) val connReqContact = m.controller.apiCreateUserAddress(rhId)
if (connReqContact != null) { if (connReqContact != null) {
m.userAddress.value = UserContactLinkRec(connReqContact) m.userAddress.value = UserContactLinkRec(connReqContact)
try {
val u = m.controller.apiSetProfileAddress(rhId, true)
if (u != null) {
m.updateUser(u)
}
} catch (e: Exception) {
Log.e(TAG, "CreateSimpleXAddress apiSetProfileAddress: ${e.stackTraceToString()}")
}
progressIndicator = false progressIndicator = false
} }
} }
@ -100,7 +92,7 @@ private fun CreateSimpleXAddressLayout(
ContinueButton(nextStep) ContinueButton(nextStep)
} else { } else {
CreateAddressButton(createAddress) CreateAddressButton(createAddress)
TextBelowButton(stringResource(MR.strings.your_contacts_will_see_it)) TextBelowButton(stringResource(MR.strings.you_can_make_address_visible_via_settings))
Spacer(Modifier.weight(1f)) Spacer(Modifier.weight(1f))
SkipButton(nextStep) SkipButton(nextStep)
} }

View File

@ -1275,8 +1275,6 @@
<string name="gallery_video_button">فيديو</string> <string name="gallery_video_button">فيديو</string>
<string name="you_can_share_your_address">يمكنك مشاركة عنوانك كرابط أو رمز QR - يمكن لأي شخص الاتصال بك.</string> <string name="you_can_share_your_address">يمكنك مشاركة عنوانك كرابط أو رمز QR - يمكن لأي شخص الاتصال بك.</string>
<string name="you_can_create_it_later">يمكنك إنشاؤه لاحقًا</string> <string name="you_can_create_it_later">يمكنك إنشاؤه لاحقًا</string>
<string name="your_contacts_will_see_it">سوف تراها جهات اتصالك في whatsapp.
\nيمكنك تغييره في الإعدادات.</string>
<string name="invite_prohibited_description">أنت تحاول دعوة جهة اتصال قمت بمشاركة ملف تعريف متخفي معها إلى المجموعة التي تستخدم فيها ملفك الشخصي الرئيسي</string> <string name="invite_prohibited_description">أنت تحاول دعوة جهة اتصال قمت بمشاركة ملف تعريف متخفي معها إلى المجموعة التي تستخدم فيها ملفك الشخصي الرئيسي</string>
<string name="user_unmute">إلغاء الكتم</string> <string name="user_unmute">إلغاء الكتم</string>
<string name="unmute_chat">إلغاء الكتم</string> <string name="unmute_chat">إلغاء الكتم</string>

View File

@ -693,7 +693,7 @@
<string name="continue_to_next_step">Continue</string> <string name="continue_to_next_step">Continue</string>
<string name="dont_create_address">Don\'t create address</string> <string name="dont_create_address">Don\'t create address</string>
<string name="you_can_create_it_later">You can create it later</string> <string name="you_can_create_it_later">You can create it later</string>
<string name="your_contacts_will_see_it">Your contacts in SimpleX will see it.\nYou can change it in Settings.</string> <string name="you_can_make_address_visible_via_settings">You can make it visible to your SimpleX contacts via Settings.</string>
<!-- User profile details - UserProfileView.kt --> <!-- User profile details - UserProfileView.kt -->
<string name="display_name__field">Profile name:</string> <string name="display_name__field">Profile name:</string>

View File

@ -1236,8 +1236,6 @@
<string name="network_disable_socks">Използване на директна интернет връзка\?</string> <string name="network_disable_socks">Използване на директна интернет връзка\?</string>
<string name="network_use_onion_hosts">Използвай .onion хостове</string> <string name="network_use_onion_hosts">Използвай .onion хостове</string>
<string name="network_use_onion_hosts_prefer">Когато са налични</string> <string name="network_use_onion_hosts_prefer">Когато са налични</string>
<string name="your_contacts_will_see_it">Вашите контакти в SimpleX ще го видят.
\nМожете да го промените в Настройки.</string>
<string name="your_profile_is_stored_on_your_device">Вашият профил, контакти и доставени съобщения се съхраняват на вашето устройство.</string> <string name="your_profile_is_stored_on_your_device">Вашият профил, контакти и доставени съобщения се съхраняват на вашето устройство.</string>
<string name="you_can_use_markdown_to_format_messages__prompt">Можете да използвате markdown за форматиране на съобщенията:</string> <string name="you_can_use_markdown_to_format_messages__prompt">Можете да използвате markdown за форматиране на съобщенията:</string>
<string name="you_control_servers_to_receive_your_contacts_to_send"><![CDATA[Вие контролирате през кой сървър(и) <b>да получавате</b> съобщенията, вашите контакти сървърите, които използвате, за да им изпращате съобщения.]]></string> <string name="you_control_servers_to_receive_your_contacts_to_send"><![CDATA[Вие контролирате през кой сървър(и) <b>да получавате</b> съобщенията, вашите контакти сървърите, които използвате, за да им изпращате съобщения.]]></string>

View File

@ -1247,8 +1247,6 @@
<string name="only_your_contact_can_add_message_reactions">Reakce na zprávy může přidávat pouze váš kontakt.</string> <string name="only_your_contact_can_add_message_reactions">Reakce na zprávy může přidávat pouze váš kontakt.</string>
<string name="your_contacts_will_remain_connected">Vaše kontakty zůstanou připojeny.</string> <string name="your_contacts_will_remain_connected">Vaše kontakty zůstanou připojeny.</string>
<string name="you_can_share_this_address_with_your_contacts">Tuto adresu můžete sdílet se svými kontakty, aby se mohli připojit k %s.</string> <string name="you_can_share_this_address_with_your_contacts">Tuto adresu můžete sdílet se svými kontakty, aby se mohli připojit k %s.</string>
<string name="your_contacts_will_see_it">Vaše kontakty v SimpleX ji uvidí.
\nMůžete ji změnit v Nastavení.</string>
<string name="you_can_share_your_address">Svou adresu můžete sdílet jako odkaz nebo QR kód - kdokoli se k vám může připojit.</string> <string name="you_can_share_your_address">Svou adresu můžete sdílet jako odkaz nebo QR kód - kdokoli se k vám může připojit.</string>
<string name="you_wont_lose_your_contacts_if_delete_address">Pokud později adresu odstraníte, o kontakty nepřijdete.</string> <string name="you_wont_lose_your_contacts_if_delete_address">Pokud později adresu odstraníte, o kontakty nepřijdete.</string>
<string name="app_passcode_replaced_with_self_destruct">Přístupový kód aplikace je nahrazen sebedestrukčním přístupovým heslem.</string> <string name="app_passcode_replaced_with_self_destruct">Přístupový kód aplikace je nahrazen sebedestrukčním přístupovým heslem.</string>

View File

@ -1256,8 +1256,6 @@
<string name="import_theme_error_desc">Stellen Sie sicher, dass die Datei die korrekte YAML-Syntax hat. Exportieren Sie das Design, um ein Beispiel für die Dateistruktur des Designs zu erhalten.</string> <string name="import_theme_error_desc">Stellen Sie sicher, dass die Datei die korrekte YAML-Syntax hat. Exportieren Sie das Design, um ein Beispiel für die Dateistruktur des Designs zu erhalten.</string>
<string name="auth_open_chat_profiles">Offene Chat-Profile</string> <string name="auth_open_chat_profiles">Offene Chat-Profile</string>
<string name="you_can_share_your_address">Sie können Ihre Adresse als Link oder QR-Code teilen jede Person kann sich mit Ihnen verbinden.</string> <string name="you_can_share_your_address">Sie können Ihre Adresse als Link oder QR-Code teilen jede Person kann sich mit Ihnen verbinden.</string>
<string name="your_contacts_will_see_it">Ihre Kontakte in SimpleX werden es sehen.
\nSie können es in den Einstellungen ändern.</string>
<string name="all_app_data_will_be_cleared">Werden die App-Daten komplett gelöscht.</string> <string name="all_app_data_will_be_cleared">Werden die App-Daten komplett gelöscht.</string>
<string name="empty_chat_profile_is_created">Es wurde ein leeres Chat-Profil mit dem eingegebenen Namen erstellt und die App öffnet wie gewohnt.</string> <string name="empty_chat_profile_is_created">Es wurde ein leeres Chat-Profil mit dem eingegebenen Namen erstellt und die App öffnet wie gewohnt.</string>
<string name="if_you_enter_self_destruct_code">Wenn Sie Ihren Selbstzerstörungs-Zugangscode während des Öffnens der App eingeben:</string> <string name="if_you_enter_self_destruct_code">Wenn Sie Ihren Selbstzerstörungs-Zugangscode während des Öffnens der App eingeben:</string>

View File

@ -1174,8 +1174,6 @@
<string name="share_with_contacts">Compartir con contactos</string> <string name="share_with_contacts">Compartir con contactos</string>
<string name="color_title">Título</string> <string name="color_title">Título</string>
<string name="you_can_share_this_address_with_your_contacts">Puedes compartir esta dirección con tus contactos para que puedan conectar con %s.</string> <string name="you_can_share_this_address_with_your_contacts">Puedes compartir esta dirección con tus contactos para que puedan conectar con %s.</string>
<string name="your_contacts_will_see_it">Tus contactos en SimpleX lo verán.
\nPuedes cambiarlo en Configuración.</string>
<string name="your_contacts_will_remain_connected">Tus contactos permanecerán conectados.</string> <string name="your_contacts_will_remain_connected">Tus contactos permanecerán conectados.</string>
<string name="you_wont_lose_your_contacts_if_delete_address">Si más tarde decides eliminar tu dirección los contactos no se perderán.</string> <string name="you_wont_lose_your_contacts_if_delete_address">Si más tarde decides eliminar tu dirección los contactos no se perderán.</string>
<string name="all_app_data_will_be_cleared">Todos los datos de la aplicación se eliminarán.</string> <string name="all_app_data_will_be_cleared">Todos los datos de la aplicación se eliminarán.</string>

View File

@ -1140,8 +1140,6 @@
<string name="theme_colors_section_title">TEEMAN VÄRIT</string> <string name="theme_colors_section_title">TEEMAN VÄRIT</string>
<string name="update_network_session_mode_question">Päivitä kuljetuksen eristystila\?</string> <string name="update_network_session_mode_question">Päivitä kuljetuksen eristystila\?</string>
<string name="you_can_create_it_later">Voit luoda sen myöhemmin</string> <string name="you_can_create_it_later">Voit luoda sen myöhemmin</string>
<string name="your_contacts_will_see_it">Kontaktisi SimpleX:ssä näkevät sen.
\nVoit muuttaa sitä Asetuksista.</string>
<string name="to_reveal_profile_enter_password">Voit paljastaa piilotetun profiilisi kirjoittamalla koko salasanan Keskusteluprofiilit-sivun hakukenttään.</string> <string name="to_reveal_profile_enter_password">Voit paljastaa piilotetun profiilisi kirjoittamalla koko salasanan Keskusteluprofiilit-sivun hakukenttään.</string>
<string name="we_do_not_store_contacts_or_messages_on_servers">Emme tallenna mitään kontaktejasi tai viestejäsi (kun ne on toimitettu) palvelimille.</string> <string name="we_do_not_store_contacts_or_messages_on_servers">Emme tallenna mitään kontaktejasi tai viestejäsi (kun ne on toimitettu) palvelimille.</string>
<string name="to_protect_privacy_simplex_has_ids_for_queues">Yksityisyyden suojaamiseksi kaikkien muiden alustojen käyttämien käyttäjätunnusten sijaan SimpleX käyttää viestijonojen tunnisteita, jotka ovat kaikille kontakteille erillisiä.</string> <string name="to_protect_privacy_simplex_has_ids_for_queues">Yksityisyyden suojaamiseksi kaikkien muiden alustojen käyttämien käyttäjätunnusten sijaan SimpleX käyttää viestijonojen tunnisteita, jotka ovat kaikille kontakteille erillisiä.</string>

View File

@ -1175,8 +1175,6 @@
<string name="read_more_in_user_guide_with_link"><![CDATA[Pour en savoir plus, consultez le <font color="#0088ff">Guide de l\'utilisateur</font>.]]></string> <string name="read_more_in_user_guide_with_link"><![CDATA[Pour en savoir plus, consultez le <font color="#0088ff">Guide de l\'utilisateur</font>.]]></string>
<string name="save_auto_accept_settings">Sauvegarder les paramètres d\'acceptation automatique</string> <string name="save_auto_accept_settings">Sauvegarder les paramètres d\'acceptation automatique</string>
<string name="scan_qr_to_connect_to_contact">Pour se connecter, votre contact peut scanner le code QR ou utiliser le lien dans l\'application.</string> <string name="scan_qr_to_connect_to_contact">Pour se connecter, votre contact peut scanner le code QR ou utiliser le lien dans l\'application.</string>
<string name="your_contacts_will_see_it">Vos contacts dans SimpleX la verront.
\nVous pouvez modifier ce choix dans les Paramètres.</string>
<string name="app_passcode_replaced_with_self_destruct">Le code d\'accès de l\'application est remplacé par un code d\'autodestruction.</string> <string name="app_passcode_replaced_with_self_destruct">Le code d\'accès de l\'application est remplacé par un code d\'autodestruction.</string>
<string name="enable_self_destruct">Activer l\'autodestruction</string> <string name="enable_self_destruct">Activer l\'autodestruction</string>
<string name="empty_chat_profile_is_created">Un profil de chat vierge portant le nom fourni est créé et l\'application s\'ouvre normalement.</string> <string name="empty_chat_profile_is_created">Un profil de chat vierge portant le nom fourni est créé et l\'application s\'ouvre normalement.</string>

View File

@ -1140,8 +1140,6 @@
<string name="invite_friends">Invita amici</string> <string name="invite_friends">Invita amici</string>
<string name="save_auto_accept_settings">Salva le impostazioni di accettazione automatica</string> <string name="save_auto_accept_settings">Salva le impostazioni di accettazione automatica</string>
<string name="you_can_create_it_later">Puoi crearlo più tardi</string> <string name="you_can_create_it_later">Puoi crearlo più tardi</string>
<string name="your_contacts_will_see_it">I tuoi contatti in SimpleX lo vedranno.
\nPuoi modificarlo nelle impostazioni.</string>
<string name="share_address">Condividi indirizzo</string> <string name="share_address">Condividi indirizzo</string>
<string name="enter_welcome_message">Inserisci il messaggio di benvenuto…</string> <string name="enter_welcome_message">Inserisci il messaggio di benvenuto…</string>
<string name="group_welcome_preview">Anteprima</string> <string name="group_welcome_preview">Anteprima</string>

View File

@ -1222,8 +1222,6 @@
\nלא ניתן לבטל פעולה זו הפרופיל, אנשי הקשר, ההודעות והקבצים שלך ייאבדו באופן בלתי הפיך.</string> \nלא ניתן לבטל פעולה זו הפרופיל, אנשי הקשר, ההודעות והקבצים שלך ייאבדו באופן בלתי הפיך.</string>
<string name="your_current_profile">הפרופיל הנוכחי שלך</string> <string name="your_current_profile">הפרופיל הנוכחי שלך</string>
<string name="your_contacts_will_remain_connected">אנשי הקשר שלך יישארו מחוברים.</string> <string name="your_contacts_will_remain_connected">אנשי הקשר שלך יישארו מחוברים.</string>
<string name="your_contacts_will_see_it">אנשי הקשר שלך ב־SimpleX ייראו זאת.
\nניתן לשנות זאת בהגדרות.</string>
<string name="your_ice_servers">שרתי ה־ICE שלך</string> <string name="your_ice_servers">שרתי ה־ICE שלך</string>
<string name="you_will_be_connected_when_your_connection_request_is_accepted">אתם תהיו מחוברים כאשר בקשת החיבור תאושר, אנא חכו או בידקו מאוחר יותר!</string> <string name="you_will_be_connected_when_your_connection_request_is_accepted">אתם תהיו מחוברים כאשר בקשת החיבור תאושר, אנא חכו או בידקו מאוחר יותר!</string>
<string name="profile_will_be_sent_to_contact_sending_link">הפרופיל שלך יישלח לאיש הקשר ממנו קיבלת קישור זה.</string> <string name="profile_will_be_sent_to_contact_sending_link">הפרופיל שלך יישלח לאיש הקשר ממנו קיבלת קישור זה.</string>

View File

@ -1096,8 +1096,6 @@
\n何らかのバグが原因で、または接続に問題があった場合に発生する可能性があります。</string> \n何らかのバグが原因で、または接続に問題があった場合に発生する可能性があります。</string>
<string name="v5_0_polish_interface_descr">ユーザーに感謝します Weblate 経由で貢献してください!</string> <string name="v5_0_polish_interface_descr">ユーザーに感謝します Weblate 経由で貢献してください!</string>
<string name="you_can_accept_or_reject_connection">接続が要求されたら、それを受け入れるか拒否するかを選択できます。</string> <string name="you_can_accept_or_reject_connection">接続が要求されたら、それを受け入れるか拒否するかを選択できます。</string>
<string name="your_contacts_will_see_it">SimpleX の連絡先に表示されます。
\n設定で変更できます。</string>
<string name="icon_descr_video_snd_complete">ビデオが送信されました</string> <string name="icon_descr_video_snd_complete">ビデオが送信されました</string>
<string name="v4_6_group_moderation_descr">管理者は次のことができます。 <string name="v4_6_group_moderation_descr">管理者は次のことができます。
\n- メンバーのメッセージを削除します。 \n- メンバーのメッセージを削除します。

View File

@ -1173,8 +1173,6 @@
<string name="read_more_in_user_guide_with_link"><![CDATA[Lees meer in de <font color="#0088ff">Gebruikershandleiding</font>.]]></string> <string name="read_more_in_user_guide_with_link"><![CDATA[Lees meer in de <font color="#0088ff">Gebruikershandleiding</font>.]]></string>
<string name="theme_colors_section_title">THEMA KLEUREN</string> <string name="theme_colors_section_title">THEMA KLEUREN</string>
<string name="you_can_share_your_address">U kunt uw adres delen als een link of QR-code - iedereen kan verbinding met u maken.</string> <string name="you_can_share_your_address">U kunt uw adres delen als een link of QR-code - iedereen kan verbinding met u maken.</string>
<string name="your_contacts_will_see_it">Uw contacten in SimpleX kunnen het zien.
\nU kunt dit wijzigen in Instellingen.</string>
<string name="all_app_data_will_be_cleared">Alle app-gegevens worden verwijderd.</string> <string name="all_app_data_will_be_cleared">Alle app-gegevens worden verwijderd.</string>
<string name="empty_chat_profile_is_created">Er wordt een leeg chatprofiel met de opgegeven naam gemaakt en de app wordt zoals gewoonlijk geopend.</string> <string name="empty_chat_profile_is_created">Er wordt een leeg chatprofiel met de opgegeven naam gemaakt en de app wordt zoals gewoonlijk geopend.</string>
<string name="enabled_self_destruct_passcode">Zelfvernietigings wachtwoord inschakelen</string> <string name="enabled_self_destruct_passcode">Zelfvernietigings wachtwoord inschakelen</string>

View File

@ -1168,8 +1168,6 @@
<string name="save_auto_accept_settings">Zapisz ustawienia automatycznej akceptacji</string> <string name="save_auto_accept_settings">Zapisz ustawienia automatycznej akceptacji</string>
<string name="share_with_contacts">Udostępnij kontaktom</string> <string name="share_with_contacts">Udostępnij kontaktom</string>
<string name="you_can_create_it_later">Możesz go utworzyć później</string> <string name="you_can_create_it_later">Możesz go utworzyć później</string>
<string name="your_contacts_will_see_it">Twoje kontakty w SimpleX będą to widzieć.
\nMożesz to zmienić w Ustawieniach.</string>
<string name="address_section_title">Adres</string> <string name="address_section_title">Adres</string>
<string name="theme_simplex">SimpleX</string> <string name="theme_simplex">SimpleX</string>
<string name="color_secondary">Drugorzędny</string> <string name="color_secondary">Drugorzędny</string>

View File

@ -1170,8 +1170,6 @@
<string name="opening_database">Abrindo banco de dados…</string> <string name="opening_database">Abrindo banco de dados…</string>
<string name="auth_open_chat_profiles">Abrir perfis de bate-papo</string> <string name="auth_open_chat_profiles">Abrir perfis de bate-papo</string>
<string name="share_address_with_contacts_question">Compartilhar endereço com os contatos\?</string> <string name="share_address_with_contacts_question">Compartilhar endereço com os contatos\?</string>
<string name="your_contacts_will_see_it">Seus contatos no SimpleX o verão.
\nVocê pode alterá-la nas Configurações.</string>
<string name="your_contacts_will_remain_connected">Seus contatos continuarão conectados.</string> <string name="your_contacts_will_remain_connected">Seus contatos continuarão conectados.</string>
<string name="all_app_data_will_be_cleared">Todos os dados do aplicativo serão excluídos.</string> <string name="all_app_data_will_be_cleared">Todos os dados do aplicativo serão excluídos.</string>
<string name="app_passcode_replaced_with_self_destruct">A senha do aplicativo é substituída por uma senha de auto-destruição.</string> <string name="app_passcode_replaced_with_self_destruct">A senha do aplicativo é substituída por uma senha de auto-destruição.</string>

View File

@ -584,8 +584,6 @@
<string name="message_delivery_error_desc">Muito provavelmente este contato eliminou a conexão consigo.</string> <string name="message_delivery_error_desc">Muito provavelmente este contato eliminou a conexão consigo.</string>
<string name="this_text_is_available_in_settings">Este texto está disponível nas definições</string> <string name="this_text_is_available_in_settings">Este texto está disponível nas definições</string>
<string name="update_onion_hosts_settings_question">Atualizar definições de servidores .onion\?</string> <string name="update_onion_hosts_settings_question">Atualizar definições de servidores .onion\?</string>
<string name="your_contacts_will_see_it">Os seus contatos no SimpleX irão vê-lo.
\nVocê pode alterá-lo nas Definições.</string>
<string name="onboarding_notifications_mode_subtitle">Pode ser alterado mais tarde através das definições.</string> <string name="onboarding_notifications_mode_subtitle">Pode ser alterado mais tarde através das definições.</string>
<string name="settings_section_title_help">AJUDA</string> <string name="settings_section_title_help">AJUDA</string>
<string name="settings_section_title_support">SUPORTE SIMPLEX CHAT</string> <string name="settings_section_title_support">SUPORTE SIMPLEX CHAT</string>

View File

@ -1280,8 +1280,7 @@
<string name="continue_to_next_step">Продолжить</string> <string name="continue_to_next_step">Продолжить</string>
<string name="dont_create_address">Не создавать адрес</string> <string name="dont_create_address">Не создавать адрес</string>
<string name="you_can_create_it_later">Вы можете создать его позже</string> <string name="you_can_create_it_later">Вы можете создать его позже</string>
<string name="your_contacts_will_see_it">Ваши контакты в SimpleX получат этот адрес. <string name="you_can_make_address_visible_via_settings">Вы можете сделать его видимым для ваших контактов в SimpleX через Настройки.</string>
\nВы можете изменить это в Настройках.</string>
<string name="address_section_title">Адрес</string> <string name="address_section_title">Адрес</string>
<string name="enter_welcome_message">Введите приветственное сообщение…</string> <string name="enter_welcome_message">Введите приветственное сообщение…</string>
<string name="group_welcome_preview">Просмотр</string> <string name="group_welcome_preview">Просмотр</string>

View File

@ -1159,8 +1159,6 @@
<string name="theme_colors_section_title">สีของธีม</string> <string name="theme_colors_section_title">สีของธีม</string>
<string name="your_contacts_will_remain_connected">ผู้ติดต่อของคุณจะยังคงเชื่อมต่ออยู่</string> <string name="your_contacts_will_remain_connected">ผู้ติดต่อของคุณจะยังคงเชื่อมต่ออยู่</string>
<string name="you_can_create_it_later">คุณสามารถสร้างได้ในภายหลัง</string> <string name="you_can_create_it_later">คุณสามารถสร้างได้ในภายหลัง</string>
<string name="your_contacts_will_see_it">ผู้ติดต่อของคุณใน SimpleX จะเห็น
\nคุณสามารถเปลี่ยนได้ในการตั้งค่า</string>
<string name="you_control_your_chat">คุณเป็นผู้ควบคุมการแชทของคุณ!</string> <string name="you_control_your_chat">คุณเป็นผู้ควบคุมการแชทของคุณ!</string>
<string name="profile_is_only_shared_with_your_contacts">โปรไฟล์นี้แชร์กับผู้ติดต่อของคุณเท่านั้น</string> <string name="profile_is_only_shared_with_your_contacts">โปรไฟล์นี้แชร์กับผู้ติดต่อของคุณเท่านั้น</string>
<string name="we_do_not_store_contacts_or_messages_on_servers">เราไม่เก็บผู้ติดต่อหรือข้อความของคุณ (เมื่อส่งแล้ว) ไว้บนเซิร์ฟเวอร์</string> <string name="we_do_not_store_contacts_or_messages_on_servers">เราไม่เก็บผู้ติดต่อหรือข้อความของคุณ (เมื่อส่งแล้ว) ไว้บนเซิร์ฟเวอร์</string>

View File

@ -875,8 +875,6 @@
<string name="incognito_info_share">Biriyle gizli bir profil paylaştığınızda, bu profil sizi davet ettikleri gruplar için kullanılacaktır.</string> <string name="incognito_info_share">Biriyle gizli bir profil paylaştığınızda, bu profil sizi davet ettikleri gruplar için kullanılacaktır.</string>
<string name="v4_2_auto_accept_contact_requests_desc">İsteğe bağlı karşılama mesajı ile.</string> <string name="v4_2_auto_accept_contact_requests_desc">İsteğe bağlı karşılama mesajı ile.</string>
<string name="your_contacts_will_remain_connected">Kişileriniz bağlı kalacaktır.</string> <string name="your_contacts_will_remain_connected">Kişileriniz bağlı kalacaktır.</string>
<string name="your_contacts_will_see_it">SimpleX\'teki kişileriniz bunu görecektir.
\nBunu Ayarlardan değiştirebilirsiniz.</string>
<string name="you_can_create_it_later">Daha sonra oluşturabilirsiniz</string> <string name="you_can_create_it_later">Daha sonra oluşturabilirsiniz</string>
<string name="you_can_use_markdown_to_format_messages__prompt">Mesajları biçimlendirmek için markdown kullanabilirsiniz:</string> <string name="you_can_use_markdown_to_format_messages__prompt">Mesajları biçimlendirmek için markdown kullanabilirsiniz:</string>
<string name="your_chat_database">Mesaj veri tabanınız</string> <string name="your_chat_database">Mesaj veri tabanınız</string>

View File

@ -651,8 +651,6 @@
<string name="developer_options">Ідентифікатори бази даних та опція ізоляції транспорту.</string> <string name="developer_options">Ідентифікатори бази даних та опція ізоляції транспорту.</string>
<string name="shutdown_alert_desc">Сповіщення перестануть працювати, поки ви не перезапустите додаток</string> <string name="shutdown_alert_desc">Сповіщення перестануть працювати, поки ви не перезапустите додаток</string>
<string name="you_can_create_it_later">Ви можете створити його пізніше</string> <string name="you_can_create_it_later">Ви можете створити його пізніше</string>
<string name="your_contacts_will_see_it">Ваші контакти в SimpleX побачать це.
\nВи можете змінити його в Налаштуваннях.</string>
<string name="your_current_profile">Ваш поточний профіль</string> <string name="your_current_profile">Ваш поточний профіль</string>
<string name="delete_image">Видалити зображення</string> <string name="delete_image">Видалити зображення</string>
<string name="save_preferences_question">Зберегти налаштування\?</string> <string name="save_preferences_question">Зберегти налаштування\?</string>

View File

@ -1211,8 +1211,6 @@
<string name="email_invite_body">你好! <string name="email_invite_body">你好!
\n用 SimpleX Chat 与我联系:%s</string> \n用 SimpleX Chat 与我联系:%s</string>
<string name="email_invite_subject">让我们一起在 SimpleX Chat 里聊天</string> <string name="email_invite_subject">让我们一起在 SimpleX Chat 里聊天</string>
<string name="your_contacts_will_see_it">您的 SimpleX 的联系人会看到它。
\n您可以在设置中更改它。</string>
<string name="you_can_create_it_later">您可以以后创建它</string> <string name="you_can_create_it_later">您可以以后创建它</string>
<string name="share_address">分享地址</string> <string name="share_address">分享地址</string>
<string name="you_can_share_this_address_with_your_contacts">您可以与您的联系人分享该地址,让他们与 %s 联系。</string> <string name="you_can_share_this_address_with_your_contacts">您可以与您的联系人分享该地址,让他们与 %s 联系。</string>

View File

@ -1178,8 +1178,6 @@
<string name="all_app_data_will_be_cleared">已刪除所有的應用程式數據。</string> <string name="all_app_data_will_be_cleared">已刪除所有的應用程式數據。</string>
<string name="set_passcode">設定密碼</string> <string name="set_passcode">設定密碼</string>
<string name="you_can_share_this_address_with_your_contacts">你可以與聯絡人分享此地址,讓他們使用 %s 進行連接。</string> <string name="you_can_share_this_address_with_your_contacts">你可以與聯絡人分享此地址,讓他們使用 %s 進行連接。</string>
<string name="your_contacts_will_see_it">在 SimpleX ,你的聯絡人會看到此。
\n你可以在設定中修改。</string>
<string name="you_can_create_it_later">你可以在稍後建立它</string> <string name="you_can_create_it_later">你可以在稍後建立它</string>
<string name="scan_qr_to_connect_to_contact">為了連接,你的聯絡人可以掃描二維碼或使用此應用程式的連結。</string> <string name="scan_qr_to_connect_to_contact">為了連接,你的聯絡人可以掃描二維碼或使用此應用程式的連結。</string>
<string name="if_you_cant_meet_in_person">如果你不能面對面接觸此聯絡人,可於視訊通話中出示你的二維碼,或者分享連結。</string> <string name="if_you_cant_meet_in_person">如果你不能面對面接觸此聯絡人,可於視訊通話中出示你的二維碼,或者分享連結。</string>

View File

@ -14,7 +14,7 @@ constraints: zip +disable-bzip2 +disable-zstd
source-repository-package source-repository-package
type: git type: git
location: https://github.com/simplex-chat/simplexmq.git location: https://github.com/simplex-chat/simplexmq.git
tag: 577e3cf14d3c1e6cb6a45b987ca934ed793dac26 tag: 22e193237227ed4d243ec9cac8d8249f757d9601
source-repository-package source-repository-package
type: git type: git

View File

@ -1,5 +1,5 @@
{ {
"https://github.com/simplex-chat/simplexmq.git"."577e3cf14d3c1e6cb6a45b987ca934ed793dac26" = "1dgx4qb2ha3mp1jj5h7ff3pd4bzyjxm1jh36pnz0psp1z23m3s19"; "https://github.com/simplex-chat/simplexmq.git"."22e193237227ed4d243ec9cac8d8249f757d9601" = "01h16jc0g5pqdq56k1n0afl2248ln2d11l662ikl6hdn3p3zab0d";
"https://github.com/simplex-chat/hs-socks.git"."a30cc7a79a08d8108316094f8f2f82a0c5e1ac51" = "0yasvnr7g91k76mjkamvzab2kvlb1g5pspjyjn2fr6v83swjhj38"; "https://github.com/simplex-chat/hs-socks.git"."a30cc7a79a08d8108316094f8f2f82a0c5e1ac51" = "0yasvnr7g91k76mjkamvzab2kvlb1g5pspjyjn2fr6v83swjhj38";
"https://github.com/simplex-chat/direct-sqlcipher.git"."f814ee68b16a9447fbb467ccc8f29bdd3546bfd9" = "1ql13f4kfwkbaq7nygkxgw84213i0zm7c1a8hwvramayxl38dq5d"; "https://github.com/simplex-chat/direct-sqlcipher.git"."f814ee68b16a9447fbb467ccc8f29bdd3546bfd9" = "1ql13f4kfwkbaq7nygkxgw84213i0zm7c1a8hwvramayxl38dq5d";
"https://github.com/simplex-chat/sqlcipher-simple.git"."a46bd361a19376c5211f1058908fc0ae6bf42446" = "1z0r78d8f0812kxbgsm735qf6xx8lvaz27k1a0b4a2m0sshpd5gl"; "https://github.com/simplex-chat/sqlcipher-simple.git"."a46bd361a19376c5211f1058908fc0ae6bf42446" = "1z0r78d8f0812kxbgsm735qf6xx8lvaz27k1a0b4a2m0sshpd5gl";

View File

@ -118,7 +118,7 @@ cChatMigrateInitKey fp key keepKey conf background ctrl = do
setFileSystemEncoding utf8 setFileSystemEncoding utf8
setForeignEncoding utf8 setForeignEncoding utf8
dbPath <- peekCAString fp dbPath <- peekCString fp
dbKey <- BA.convert <$> B.packCString key dbKey <- BA.convert <$> B.packCString key
confirm <- peekCAString conf confirm <- peekCAString conf
r <- r <-