diff --git a/.github/workflows/ci-ui-tests.yml b/.github/workflows/ci-ui-tests.yml index 322323739e..9ad97d46bb 100644 --- a/.github/workflows/ci-ui-tests.yml +++ b/.github/workflows/ci-ui-tests.yml @@ -57,7 +57,7 @@ jobs: run: bundle exec fastlane uitest - name: Upload coverage to Codecov - uses: codecov/codecov-action@v3 + uses: codecov/codecov-action@v4 with: flags: uitests \ No newline at end of file diff --git a/CHANGES.md b/CHANGES.md index 907d69b54b..103e1d9d08 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,3 +1,22 @@ +## Changes in 1.11.18 (2024-09-17) + +๐Ÿ™Œ Improvements + +- Replaced deprecated OlmKit APIs from ContentScanner with ones from the CryptoSDK. + + +## Changes in 1.11.17 (2024-08-20) + +๐Ÿ™Œ Improvements + +- Check power level before starting live sharing location ([#7808](https://github.com/element-hq/element-ios/pull/7808)) + + +## Changes in 1.11.16 (2024-07-23) + +No significant changes. + + ## Changes in 1.11.15 (2024-06-18) No significant changes. diff --git a/Podfile.lock b/Podfile.lock index 3ea7cb1e53..6ac6ebb4a7 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -20,13 +20,13 @@ PODS: - Down (0.11.0) - DSBottomSheet (0.3.0) - DSWaveformImage (6.1.1) - - FLEX (4.5.0) + - FLEX (5.22.10) - FlowCommoniOS (1.12.2) - GBDeviceInfo (7.1.0): - GBDeviceInfo/Core (= 7.1.0) - GBDeviceInfo/Core (7.1.0) - GZIP (1.3.2) - - Introspect (0.11.0) + - Introspect (0.12.0) - JitsiMeetSDKLite (8.1.2-lite): - JitsiWebRTC (~> 111.0) - JitsiWebRTC (111.0.2) @@ -39,20 +39,20 @@ PODS: - LoggerAPI (1.9.200): - Logging (~> 1.1) - Logging (1.4.0) - - MatrixSDK (0.27.10): - - MatrixSDK/Core (= 0.27.10) - - MatrixSDK/Core (0.27.10): + - MatrixSDK (0.27.13): + - MatrixSDK/Core (= 0.27.13) + - MatrixSDK/Core (0.27.13): - AFNetworking (~> 4.0.0) - GZIP (~> 1.3.0) - libbase58 (~> 0.1.4) - - MatrixSDKCrypto (= 0.4.2) + - MatrixSDKCrypto (= 0.4.3) - OLMKit (~> 3.2.5) - Realm (= 10.27.0) - SwiftyBeaver (= 1.9.5) - - MatrixSDK/JingleCallStack (0.27.10): + - MatrixSDK/JingleCallStack (0.27.13): - JitsiMeetSDKLite (= 8.1.2-lite) - MatrixSDK/Core - - MatrixSDKCrypto (0.4.2) + - MatrixSDKCrypto (0.4.3) - OLMKit (3.2.12): - OLMKit/olmc (= 3.2.12) - OLMKit/olmcpp (= 3.2.12) @@ -74,15 +74,15 @@ PODS: - Sentry/Core (7.15.0) - SideMenu (6.5.0) - SwiftBase32 (0.9.0) - - SwiftFormat/CLI (0.54.0) - - SwiftGen (6.6.2) + - SwiftFormat/CLI (0.54.5) + - SwiftGen (6.6.3) - SwiftJWT (3.6.200): - BlueCryptor (~> 1.0) - BlueECC (~> 1.1) - BlueRSA (~> 1.0) - KituraContracts (~> 1.2) - LoggerAPI (~> 1.7) - - SwiftLint (0.49.1) + - SwiftLint (0.57.0) - SwiftyBeaver (1.9.5) - UICollectionViewLeftAlignedLayout (1.0.2) - UICollectionViewRightAlignedLayout (0.0.3) @@ -96,7 +96,7 @@ DEPENDENCIES: - Down (~> 0.11.0) - DSBottomSheet (~> 0.3) - DSWaveformImage (~> 6.1.1) - - FLEX (~> 4.5.0) + - FLEX (~> 5.22.10) - FlowCommoniOS (~> 1.12.0) - GBDeviceInfo (~> 7.1.0) - Introspect (~> 0.1) @@ -179,11 +179,11 @@ SPEC CHECKSUMS: Down: b6ba1bc985c9d2f4e15e3b293d2207766fa12612 DSBottomSheet: ca0ac37eb5af2dd54663f86b84382ed90a59be2a DSWaveformImage: 3c718a0cf99291887ee70d1d0c18d80101d3d9ce - FLEX: e51461dd6f0bfb00643c262acdfea5d5d12c596b + FLEX: f21ee4f498eed3f8a1eded66b21939fd3b7a22ce FlowCommoniOS: ca92071ab526dc89905495a37844fd7e78d1a7f2 GBDeviceInfo: 5d62fa85bdcce3ed288d83c28789adf1173e4376 GZIP: 3c0abf794bfce8c7cb34ea05a1837752416c8868 - Introspect: 4cc1e4c34dd016540c8d86a591c231c09dafbee3 + Introspect: b66b675de8a85d9ef832f3a710d8e3c7db186884 JitsiMeetSDKLite: 895213158cf62342069a10634a41d2f1c00057f7 JitsiWebRTC: 80f62908fcf2a1160e0d14b584323fb6e6be630b KeychainAccess: c0c4f7f38f6fc7bbe58f5702e25f7bd2f65abf51 @@ -193,8 +193,8 @@ SPEC CHECKSUMS: libPhoneNumber-iOS: 0a32a9525cf8744fe02c5206eb30d571e38f7d75 LoggerAPI: ad9c4a6f1e32f518fdb43a1347ac14d765ab5e3d Logging: beeb016c9c80cf77042d62e83495816847ef108b - MatrixSDK: c805f9306d60955215f4b15043ed0f96fd4867b3 - MatrixSDKCrypto: 736069ee0a5ec12852ab3498bf2242acecc443fc + MatrixSDK: 1dae186c839eb145974fc1fc127ec903de60a297 + MatrixSDKCrypto: 27bee960e0e8b3a3039f3f3e93dd2ec88299c77e OLMKit: da115f16582e47626616874e20f7bb92222c7a51 PostHog: 660ec6c9d80cec17b685e148f17f6785a88b597d ReadMoreTextView: 19147adf93abce6d7271e14031a00303fe28720d @@ -204,10 +204,10 @@ SPEC CHECKSUMS: Sentry: 63ca44f5e0c8cea0ee5a07686b02e56104f41ef7 SideMenu: f583187d21c5b1dd04c72002be544b555a2627a2 SwiftBase32: 9399c25a80666dc66b51e10076bf591e3bbb8f17 - SwiftFormat: 0e0b577434e6aa63bc82a8905b40d9597b8452d4 - SwiftGen: 1366a7f71aeef49954ca5a63ba4bef6b0f24138c + SwiftFormat: 543a7b1ab4a6ce2d88bd5616a17903446ca3dc5c + SwiftGen: 4993cbf71cbc4886f775e26f8d5c3a1188ec9f99 SwiftJWT: 88c412708f58c169d431d344c87bc79a87c830ae - SwiftLint: 32ee33ded0636d0905ef6911b2b67bbaeeedafa5 + SwiftLint: eb47480d47c982481592c195c221d11013a679cc SwiftyBeaver: 84069991dd5dca07d7069100985badaca7f0ce82 UICollectionViewLeftAlignedLayout: 830bf6fa5bab9f9b464f62e3384f9d2e00b3c0f6 UICollectionViewRightAlignedLayout: 823eef8c567eba4a44c21bc2ffcb0d0d5f361e2d @@ -215,6 +215,6 @@ SPEC CHECKSUMS: zxcvbn-ios: fef98b7c80f1512ff0eec47ac1fa399fc00f7e3c ZXingObjC: 8898711ab495761b2dbbdec76d90164a6d7e14c5 -PODFILE CHECKSUM: 971cd7529e2d127b237469afa2c18e6dced151ec +PODFILE CHECKSUM: fb3e1c62f9e35a9bdbafce743664bf4f620af028 -COCOAPODS: 1.14.3 +COCOAPODS: 1.15.2 diff --git a/README.md b/README.md index 9dfedfb17e..7606b93ddf 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,15 @@ ![GitHub release (latest by date)](https://img.shields.io/github/v/release/dinsic-pim/tchap-ios) ![badge-languages](https://img.shields.io/badge/languages-Swift%20%7C%20ObjC-orange.svg) [![Swift 5.x](https://img.shields.io/badge/Swift-5.x-orange)](https://developer.apple.com/swift) -![GitHub](https://img.shields.io/github/license/dinsic-pim/tchap-ios) +[![Build status](https://badge.buildkite.com/cc8f93e32da93fa7c1172398bd8af66254490567c7195a5f3f.svg?branch=develop)](https://buildkite.com/matrix-dot-org/element-ios/builds?branch=develop) +[![Weblate](https://translate.riot.im/widgets/riot-ios/-/svg-badge.svg)](https://translate.riot.im/engage/riot-ios/?utm_source=widget) +[![codecov](https://codecov.io/gh/element-hq/element-ios/branch/develop/graph/badge.svg?token=INNm5o6XWg)](https://codecov.io/gh/element-hq/element-ios) +[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=element-ios&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=element-ios) +[![Bugs](https://sonarcloud.io/api/project_badges/measure?project=element-ios&metric=bugs)](https://sonarcloud.io/summary/new_code?id=element-ios) +[![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=element-ios&metric=vulnerabilities)](https://sonarcloud.io/summary/new_code?id=element-ios) +[![Element iOS Matrix room #element-ios:matrix.org](https://img.shields.io/matrix/element-ios:matrix.org.svg?label=%23element-ios:matrix.org&logo=matrix&server_fqdn=matrix.org)](https://matrix.to/#/#element-ios:matrix.org) +![GitHub](https://img.shields.io/github/license/element-hq/element-ios) +[![Twitter URL](https://img.shields.io/twitter/url?label=Element&url=https%3A%2F%2Ftwitter.com%2Felement_hq)](https://twitter.com/element_hq) Tchap iOS is an iOS [Matrix](https://matrix.org/) client. It is based on [MatrixSDK](https://github.com/matrix-org/matrix-ios-sdk). diff --git a/Riot/Assets/et.lproj/Vector.strings b/Riot/Assets/et.lproj/Vector.strings index 22e9f34192..c21f0ba265 100644 --- a/Riot/Assets/et.lproj/Vector.strings +++ b/Riot/Assets/et.lproj/Vector.strings @@ -2719,3 +2719,10 @@ "settings_manage_account_description" = "Halda kasutajakontot koduserveris %@"; "manage_session_redirect" = "Jรคrgmiseks suuname sind sinu serveriteenuse autentijale ning seal saad sa vรคljalogimise lรตpuni viia."; "manage_session_redirect_error" = "See funktsionaalsus pole hetkel saadaval. Lisateavet saad oma koduserveri haldajalt"; +"room_action_report" = "Teata jututoast"; +"room_action_report_prompt_reason" = "Jututoast teatamise pรตhjus"; + + +// MARK: - WYSIWYG Composer +"wysiwyg_composer_action_minimise_action" = "Peida tekstitoimeti"; +"wysiwyg_composer_action_maximise_action" = "Ava tekstitoimeti"; diff --git a/Riot/Assets/hu.lproj/Vector.strings b/Riot/Assets/hu.lproj/Vector.strings index 216ab88fdb..8e324169f0 100644 --- a/Riot/Assets/hu.lproj/Vector.strings +++ b/Riot/Assets/hu.lproj/Vector.strings @@ -2478,9 +2478,9 @@ "user_sessions_settings" = "Munkamenetek kezelรฉse"; "invite_to" = "Meghรญvรณ ide: %@"; "device_name_unknown" = "Ismeretlen kliens"; -"device_name_mobile" = "%@ Mobil"; -"device_name_desktop" = "%@ Alkalmazรกs"; -"device_name_web" = "%@ Web"; +"device_name_mobile" = "Mobilos %@"; +"device_name_desktop" = "Asztali %@"; +"device_name_web" = "Webes %@"; "user_session_item_details" = "%1$@ ยท %2$@"; // First item is client name and second item is session display name @@ -2528,19 +2528,19 @@ "user_session_details_device_os" = "Operรกciรณs rendszer"; "user_session_details_device_browser" = "Bรถngรฉszล‘"; "user_session_details_device_model" = "Modell"; -"user_session_details_device_ip_location" = "Tartรณzkodรกsi helyem"; +"user_session_details_device_ip_location" = "Sajรกt tartรณzkodรกsi hely"; "user_session_details_device_ip_address" = "IP cรญm"; "user_session_details_last_activity" = "Utolsรณ tevรฉkenysรฉg"; -"user_session_details_session_section_footer" = "A mรกsolรกshoz koppints รฉs tartsd rajta az ujjad."; -"user_session_details_session_id" = "Kapcsolat azonosรญtรณ"; +"user_session_details_session_section_footer" = "A mรกsolรกshoz koppintson รฉs tartsa lenyomva."; +"user_session_details_session_id" = "Kapcsolatazonosรญtรณ"; "user_session_details_session_name" = "Munkamenet neve"; "user_session_details_device_section_header" = "Eszkรถz"; "user_session_details_application_section_header" = "Alkalmazรกs"; "user_session_details_session_section_header" = "Munkamenet"; -"user_session_details_title" = "Munkamenet informรกciรณk"; +"user_session_details_title" = "Munkamenet-informรกciรณk"; "device_type_name_unknown" = "Ismeretlen"; -"device_type_name_mobile" = "Mobil"; -"device_type_name_web" = "Web"; +"device_type_name_mobile" = "Mobilos"; +"device_type_name_web" = "Webes"; "device_type_name_desktop" = "Asztali"; "user_inactive_session_item_with_date" = "90+ napja inaktรญv (%@)"; "user_inactive_session_item" = "90+ napja inaktรญv"; @@ -2763,3 +2763,14 @@ "settings_manage_account_action" = "Fiรณk kezelรฉse"; "settings_manage_account_description" = "A fiรณkja kezelรฉse itt: %@"; "room_command_change_room_topic_description" = "Beรกllรญtja a szoba tรฉmรกjรกt"; +"room_action_report" = "Szoba jelentรฉse"; +"room_action_report_prompt_reason" = "A szoba jelentรฉsรฉnek oka"; + + +// MARK: - WYSIWYG Composer +"wysiwyg_composer_action_minimise_action" = "Szerkesztล‘ รถsszecsukรกsa"; +"wysiwyg_composer_action_maximise_action" = "Szerkesztล‘ kibontรกsa"; +"room_command_set_user_power_level_description" = "Meghatรกrozza a felhasznรกlรณ szintjรฉt"; +"room_command_reset_user_power_level_description" = "Elveszi az adott azonosรญtรณjรบ felhasznรกlรณ operรกtori jogosultsรกgรกt"; +"room_command_error_unknown_command" = "ร‰rvรฉnytelen vagy nem kezelt parancs"; +"room_command_discard_session_description" = "Kรฉnyszerรญti a titkosรญtott szobรกban lรฉvล‘ aktuรกlis kimenล‘ csoportmunkamenet elvetรฉsรฉt"; diff --git a/Riot/Assets/id.lproj/Vector.strings b/Riot/Assets/id.lproj/Vector.strings index 5e8e1c027e..a27d04098a 100644 --- a/Riot/Assets/id.lproj/Vector.strings +++ b/Riot/Assets/id.lproj/Vector.strings @@ -2974,3 +2974,10 @@ "settings_manage_account_description" = "Kelola akun Anda di %@"; "manage_session_redirect" = "Anda akan dialihkan ke penyedia autentikasi server Anda untuk menyelesaikan proses keluar."; "manage_session_redirect_error" = "Fungsi saat ini tidak tersedia. Silakan hubungi admin homeserver Anda"; +"room_action_report_prompt_reason" = "Alasan melaporkan ruangan ini"; + + +// MARK: - WYSIWYG Composer +"wysiwyg_composer_action_minimise_action" = "Kecilkan komposer"; +"wysiwyg_composer_action_maximise_action" = "Luaskan komposer"; +"room_action_report" = "Laporkan ruangan"; diff --git a/Riot/Assets/it.lproj/Vector.strings b/Riot/Assets/it.lproj/Vector.strings index 0e893b97cb..55551cc09e 100644 --- a/Riot/Assets/it.lproj/Vector.strings +++ b/Riot/Assets/it.lproj/Vector.strings @@ -2747,3 +2747,10 @@ "settings_manage_account_description" = "Gestisci il tuo account su %@"; "manage_session_redirect" = "Verrai reindirizzato al fornitore di autenticazione del tuo server per completare la disconnessione."; "manage_session_redirect_error" = "Funzionalitร  attualmente non disponibile. Contatta l'amministratore del tuo homeserver"; + + +// MARK: - WYSIWYG Composer +"wysiwyg_composer_action_minimise_action" = "Rimpicciolisci il compositore"; +"wysiwyg_composer_action_maximise_action" = "Espandi il compositore"; +"room_action_report" = "Segnala stanza"; +"room_action_report_prompt_reason" = "Motivo della segnalazione della stanza"; diff --git a/Riot/Assets/ko.lproj/InfoPlist.strings b/Riot/Assets/ko.lproj/InfoPlist.strings index 45ef46ab90..90c09e51ac 100644 --- a/Riot/Assets/ko.lproj/InfoPlist.strings +++ b/Riot/Assets/ko.lproj/InfoPlist.strings @@ -1,8 +1,9 @@ // Permissions usage explanations -"NSCameraUsageDescription" = "์นด๋ฉ”๋ผ๋Š” ์‚ฌ์ง„๊ณผ ์˜์ƒ ์ดฌ์˜, ์˜์ƒ ํ†ตํ™”๋ฅผ ํ•˜๋Š” ๋ฐ ์“ฐ์ž…๋‹ˆ๋‹ค."; -"NSPhotoLibraryUsageDescription" = "ํฌํ†  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์‚ฌ์ง„๊ณผ ์˜์ƒ์„ ๋ณด๋‚ด๋Š”๋ฐ ์“ฐ์ž…๋‹ˆ๋‹ค."; +"NSCameraUsageDescription" = "์นด๋ฉ”๋ผ๋Š” ์˜์ƒ ํ†ตํ™”๋ฅผ ํ•˜๊ฑฐ๋‚˜ ์‚ฌ์ง„๊ณผ ๋น„๋””์˜ค๋ฅผ ์ฐ๊ณ  ์—…๋กœ๋“œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค."; +"NSPhotoLibraryUsageDescription" = "์‚ฌ์ง„ ๋ฐ ๋™์˜์ƒ์„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์—…๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋„๋ก ์‚ฌ์ง„ ์ ‘๊ทผ์„ ํ—ˆ์šฉํ•˜์„ธ์š”."; "NSMicrophoneUsageDescription" = "Element๋Š” ํ†ตํ™”์™€ ๋™์˜์ƒ ์ดฌ์˜ ๋ฐ ์Œ์„ฑ ๋ฉ”์‹œ์ง€ ๋…น์Œ์„ ํ•˜๊ธฐ ์œ„ํ•ด ๋งˆ์ดํฌ์— ์•ก์„ธ์Šคํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค."; -"NSContactsUsageDescription" = "Element๋Š” ์ฑ„ํŒ…์— ์ดˆ๋Œ€ํ•  ์ˆ˜ ์žˆ๋„๋ก ์—ฐ๋ฝ์ฒ˜๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค."; +"NSContactsUsageDescription" = "๋‹ค๋ฅธ์‚ฌ๋žŒ์ด ๋งคํŠธ๋ฆญ์Šค์—์„œ ๋‹น์‹ ์˜ ์—ฐ๋ฝ์ฒ˜๋ฅผ ์ฐพ๋Š” ๋ฐ ๋„์›€์„ ์ฃผ๊ธฐ ์œ„ํ•ด ๋‹น์‹ ์˜ ์•„์ด๋”” ์„œ๋ฒ„์™€ ๊ณต์œ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค."; "NSCalendarsUsageDescription" = "์•ฑ์—์„œ ์˜ˆ์ •๋œ ํšŒ์˜๋ฅผ ๋ด…๋‹ˆ๋‹ค."; "NSLocationWhenInUseUsageDescription" = "์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์œ„์น˜ ์ •๋ณด๋ฅผ ๊ณต์œ ํ• ๋•Œ, Element์—์„œ ์ง€๋„๋ฅผ ํ‘œ์‹œ ํ•˜๊ธฐ ์œ„ํ•œ ๊ถŒํ•œ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค."; "NSFaceIDUsageDescription" = "Face ID ๊ถŒํ•œ์€ ์•ฑ์— ์•ก์„ธ์Šคํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค."; +"NSLocationAlwaysAndWhenInUseUsageDescription" = "๋‹น์‹ ์˜ ์œ„์น˜๋ฅผ ์‚ฌ๋žŒ๋“ค๊ณผ ๊ณต์œ ํ•  ๋•Œ, Element๋Š” ๊ทธ๋“ค์—๊ฒŒ ์ง€๋„๋ฅผ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด ์ ‘๊ทผ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค."; diff --git a/Riot/Assets/ko.lproj/Localizable.strings b/Riot/Assets/ko.lproj/Localizable.strings index f76cb7db09..b997fafea4 100644 --- a/Riot/Assets/ko.lproj/Localizable.strings +++ b/Riot/Assets/ko.lproj/Localizable.strings @@ -128,3 +128,6 @@ /** General **/ "Notification" = "์•Œ๋ฆผ"; + +/* New voice broadcast from a specific person, not referencing a room. */ +"VOICE_BROADCAST_FROM_USER" = "%@ ์Œ์„ฑ ๋ฐฉ์†ก์„ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค"; diff --git a/Riot/Assets/ko.lproj/Vector.strings b/Riot/Assets/ko.lproj/Vector.strings index dc0ce0d07e..785b13ee3b 100644 --- a/Riot/Assets/ko.lproj/Vector.strings +++ b/Riot/Assets/ko.lproj/Vector.strings @@ -24,7 +24,7 @@ "camera" = "์นด๋ฉ”๋ผ"; // String for App Store "store_short_description" = "์•ˆ์ „ํ•œ ๋ถ„์‚ฐ ๋Œ€ํ™”/VoIP"; -"store_full_description" = "Element๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ์ƒˆ๋กœ์šด ์œ ํ˜•์˜ ๋ฉ”์‹ ์ €์ž…๋‹ˆ๋‹ค.\n\n1. ํ”„๋ผ์ด๋ฒ„์‹œ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.\n2. Matrix ๋„คํŠธ์›Œํฌ์˜ ์‚ฌ์šฉ์ž์™€ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ์„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ Slack ๋“ฑ์˜ \n์•ฑ์„ ์—ฐ๊ณ„ํ•˜์—ฌ ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ์™€๋„ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.\n3. ๊ด‘๊ณ , ๋ฐ์ดํ„ฐ๋งˆ์ด๋‹, ๋ฐฑ๋„์–ด์™€ ํด๋กœ์ฆˆ ํ”Œ๋žซํผ์œผ๋กœ๋ถ€ํ„ฐ์˜ ์‚ฌ์šฉ์ž๋ฅผ ๋ณดํ˜ธํ•ฉ๋‹ˆ๋‹ค.\n4. ๊ต์ฐจ ๊ฒ€์ฆ๊ณผ ๊ฐ•๋ ฅํ•œ ์ข…๋‹จ๊ฐ„ ์•”ํ˜ธํ™”์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž๋ฅผ ๋ณดํ˜ธํ•ฉ๋‹ˆ๋‹ค.\n\nElement๋Š” ํƒˆ์ค‘์•™ํ™”์ด๋ฉฐ ์˜คํ”ˆ ์†Œ์Šค์ด๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ๋ฉ”์‹ ์ € ์•ฑ๊ณผ๋Š” ์™„์ „ํžˆ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.\n\nElement์—์„œ๋Š” ๋ฐ์ดํ„ฐ ๋ฐ ๋Œ€ํ™”์— ๋Œ€ํ•œ ์†Œ์œ ๊ถŒ ๋ฐ ์ œ์–ด ๊ถŒํ•œ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋„๋ก ์ž์ฒด ํ˜ธ์ŠคํŒ…์„ ํ†ตํ•ด \n์ง์ ‘ ๋ฉ”์‹ ์ € ์„œ๋ฒ„๋ฅผ ์šด์˜ํ•  ์ˆ˜ ์žˆ๊ณ , ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๊ฐ€ ์ œ๊ณตํ•˜๊ณ  ์žˆ๋Š” ์„œ๋ฒ„๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ฐœ๋ฐฉํ˜• ๋„คํŠธ์›Œํฌ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ Element ์ด์™ธ์˜ ์‚ฌ์šฉ์ž์™€๋„ ์ด์•ผ๊ธฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋งค์šฐ ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค.\n\nElement๋Š” ๊ฐœ๋ฐฉ-๋ถ„์‚ฐํ˜• ํ†ต์‹ ์˜ ํ‘œ์ค€์ธ Matrix์—์„œ ๋™์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ชจ๋“  ๊ฒƒ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.\n\nElement๋Š” ์–ด๋–ค ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ• ์ง€ ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ Element ์•ฑ์—์„œ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.\n\n1. matrix.org์˜ ๊ณต์‹ ์„œ๋ฒ„์—์„œ ๋ฌด๋ฃŒ ๊ณ„์ •์„ ์ƒ์„ฑํ•œ๋‹ค.\n2. ์ž์ฒด ํ˜ธ์ŠคํŒ…์„ ํ†ตํ•ด ์ง์ ‘ ์„œ๋ฒ„๋ฅผ ์šด์˜ํ•˜๊ณ  ๊ณ„์ •์„ ๊ด€๋ฆฌํ•œ๋‹ค.\n3. Element Matrix Services์˜ ํ˜ธ์ŠคํŒ… ํ”Œ๋žซํผ์— ๊ฐ€์ž…ํ•˜์—ฌ ์‚ฌ์šฉ์ž ์ปค์Šคํ…€ ์„œ๋ฒ„์—์„œ ๊ณ„์ •์„ ๋งŒ๋“ ๋‹ค.\n\n์™œ Element๋ฅผ ์„ ํƒํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ?\n\n๋‚ด ๋ฐ์ดํ„ฐ๋ฅผ ๋‚ด๊ฐ€ ์†Œ์œ ํ•จ: ๋ฐ์ดํ„ฐ๋‚˜ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๊ด€ํ•  ๊ณณ์„ ์Šค์Šค๋กœ ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜๊ฑฐ๋‚˜ ์ œ 3์ž์—๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฑฐ๋Œ€ IT ๊ธฐ์—…์ด ์•„๋‹Œ, ์‚ฌ์šฉ์ž๊ฐ€ ์Šค์Šค๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์†Œ์œ ํ•˜๊ณ  ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.\n\n๊ฐœ๋ฐฉ์ ์ธ ๋ฉ”์‹œ์ง• ๋ฐ ํ˜‘์—…: Element ๋˜๋Š” ๋‹ค๋ฅธ Matrix ์•ฑ์„ ์‚ฌ์šฉํ•˜๋“ , ์‹ฌ์ง€์–ด Slack, IRC, XMPP์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ๋ฉ”์‹œ์ง• ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๋˜ ์ƒ๊ด€์—†์ด Matrix ๋„คํŠธ์›Œํฌ ์ƒ์˜ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์™€ ์ฑ„ํŒ…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.\n\n๋งค์šฐ ์•ˆ์ „ํ•จ: ๊ฐ•๋ ฅํ•œ ์ข…๋‹จ๊ฐ„ ์•”ํ˜ธํ™”(๋Œ€ํ™”์— ์ฐธ์—ฌํ•˜๊ณ  ์žˆ๋Š” ์‚ฌ๋žŒ๋งŒ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณตํ˜ธํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค) ๋ฐ ๋Œ€ํ™” ์ฐธ๊ฐ€์ž์˜ ์žฅ์น˜๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ๊ต์ฐจ ๊ฒ€์ฆ์„ ์‹ค์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.\n\n์™„๋ฒฝํ•œ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜: ๋ฉ”์‹œ์ง•, ์Œ์„ฑ ๋ฐ ํ™”์ƒ ํ†ตํ™”, ํŒŒ์ผ ๊ณต์œ , ํ™”๋ฉด ๊ณต์œ  ๋ฐ ๋‹ค์–‘ํ•œ ํ†ตํ•ฉ, ๋ด‡, ์œ„์ ฏ ๋“ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋ฐฉ์ด๋‚˜ ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ๋งŒ๋“ค์–ด ์„œ๋กœ ์—ฐ๋ฝํ•˜๊ณ  ์ผ์„ ์›ํ™œํ•˜๊ฒŒ ํ•ด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.\n\n์–ธ์ œ ์–ด๋””์„œ๋‚˜: ๋ชจ๋“  ์žฅ์น˜ ๋ฐ ์›น(https://element.io/app)์—์„œ ๋ฉ”์‹œ์ง€๊ฐ€ ์™„์ „ํžˆ ๋™๊ธฐํ™”๋˜๋ฏ€๋กœ ์–ธ์ œ ์–ด๋””์„œ๋‚˜ ์—ฐ๋ฝ์„ ์ทจํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค."; +"store_full_description" = "Element๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ์ƒˆ๋กœ์šด ์œ ํ˜•์˜ ๋ฉ”์‹ ์ €์ž…๋‹ˆ๋‹ค.\n\n1. ํ”„๋ผ์ด๋ฒ„์‹œ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.\n2. Matrix ๋„คํŠธ์›Œํฌ์˜ ์‚ฌ์šฉ์ž์™€ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ์„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ Slack ๋“ฑ์˜ \n์•ฑ์„ ์—ฐ๊ณ„ํ•˜์—ฌ ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ์™€๋„ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.\n3. ๊ด‘๊ณ , ๋ฐ์ดํ„ฐ๋งˆ์ด๋‹, ๋ฐฑ๋„์–ด์™€ ํด๋กœ์ฆˆ ํ”Œ๋žซํผ์œผ๋กœ๋ถ€ํ„ฐ์˜ ์‚ฌ์šฉ์ž๋ฅผ ๋ณดํ˜ธํ•ฉ๋‹ˆ๋‹ค.\n4. ๊ต์ฐจ ๊ฒ€์ฆ๊ณผ ๊ฐ•๋ ฅํ•œ ์ข…๋‹จ๊ฐ„ ์•”ํ˜ธํ™”์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž๋ฅผ ๋ณดํ˜ธํ•ฉ๋‹ˆ๋‹ค.\n\nElement๋Š” ํƒˆ์ค‘์•™ํ™”์ด๋ฉฐ ์˜คํ”ˆ ์†Œ์Šค์ด๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ๋ฉ”์‹ ์ € ์•ฑ๊ณผ๋Š” ์™„์ „ํžˆ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.\n\nElement์—์„œ๋Š” ๋ฐ์ดํ„ฐ ๋ฐ ๋Œ€ํ™”์— ๋Œ€ํ•œ ์†Œ์œ ๊ถŒ ๋ฐ ์ œ์–ด ๊ถŒํ•œ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋„๋ก ์ž์ฒด ํ˜ธ์ŠคํŒ…์„ ํ†ตํ•ด \n์ง์ ‘ ๋ฉ”์‹ ์ € ์„œ๋ฒ„๋ฅผ ์šด์˜ํ•  ์ˆ˜ ์žˆ๊ณ , ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๊ฐ€ ์ œ๊ณตํ•˜๊ณ  ์žˆ๋Š” ์„œ๋ฒ„๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ฐœ๋ฐฉํ˜• ๋„คํŠธ์›Œํฌ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ Element ์ด์™ธ์˜ ์‚ฌ์šฉ์ž์™€๋„ ์ด์•ผ๊ธฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋งค์šฐ ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค.\n\nElement๋Š” ๊ฐœ๋ฐฉ-๋ถ„์‚ฐํ˜• ํ†ต์‹ ์˜ ํ‘œ์ค€์ธ Matrix์—์„œ ๋™์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ชจ๋“  ๊ฒƒ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.\n\nElement๋Š” ์–ด๋–ค ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ• ์ง€ ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ Element ์•ฑ์—์„œ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.\n\n1. matrix.org์˜ ๊ณต์‹ ์„œ๋ฒ„์—์„œ ๋ฌด๋ฃŒ ๊ณ„์ •์„ ์ƒ์„ฑํ•œ๋‹ค.\n2. ์ž์ฒด ํ˜ธ์ŠคํŒ…์„ ํ†ตํ•ด ์ง์ ‘ ์„œ๋ฒ„๋ฅผ ์šด์˜ํ•˜๊ณ  ๊ณ„์ •์„ ๊ด€๋ฆฌํ•œ๋‹ค.\n3. Element Matrix Services์˜ ํ˜ธ์ŠคํŒ… ํ”Œ๋žซํผ์— ๊ฐ€์ž…ํ•˜์—ฌ ์‚ฌ์šฉ์ž ์ปค์Šคํ…€ ์„œ๋ฒ„์—์„œ ๊ณ„์ •์„ ๋งŒ๋“ ๋‹ค.\n\n์™œ Element๋ฅผ ์„ ํƒํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ?\n\n๋‚ด ๋ฐ์ดํ„ฐ๋ฅผ ๋‚ด๊ฐ€ ์†Œ์œ ํ•จ: ๋ฐ์ดํ„ฐ๋‚˜ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๊ด€ํ•  ๊ณณ์„ ์Šค์Šค๋กœ ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜๊ฑฐ๋‚˜ ์ œ 3์ž์—๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฑฐ๋Œ€ IT ๊ธฐ์—…์ด ์•„๋‹Œ, ์‚ฌ์šฉ์ž๊ฐ€ ์Šค์Šค๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์†Œ์œ ํ•˜๊ณ  ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.\n\n๊ฐœ๋ฐฉ์ ์ธ ๋ฉ”์‹œ์ง• ๋ฐ ํ˜‘์—…: Element ๋˜๋Š” ๋‹ค๋ฅธ Matrix ์•ฑ์„ ์‚ฌ์šฉํ•˜๋“ , ์‹ฌ์ง€์–ด Slack, IRC, XMPP์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ๋ฉ”์‹œ์ง• ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๋˜ ์ƒ๊ด€์—†์ด Matrix ๋„คํŠธ์›Œํฌ ์ƒ์˜ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์™€ ์ฑ„ํŒ…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.\n\n๋งค์šฐ ์•ˆ์ „ํ•จ: ๊ฐ•๋ ฅํ•œ ์ข…๋‹จ๊ฐ„ ์•”ํ˜ธํ™”(๋Œ€ํ™”์— ์ฐธ์—ฌํ•˜๊ณ  ์žˆ๋Š” ์‚ฌ๋žŒ๋งŒ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณตํ˜ธํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค) ๋ฐ ๋Œ€ํ™” ์ฐธ๊ฐ€์ž์˜ ์žฅ์น˜๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ๊ต์ฐจ ๊ฒ€์ฆ์„ ์‹ค์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.\n\n์™„๋ฒฝํ•œ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜: ๋ฉ”์‹œ์ง•, ์Œ์„ฑ ๋ฐ ํ™”์ƒ ํ†ตํ™”, ํŒŒ์ผ ๊ณต์œ , ํ™”๋ฉด ๊ณต์œ  ๋ฐ ๋‹ค์–‘ํ•œ ํ†ตํ•ฉ, ๋ด‡, ์œ„์ ฏ ๋“ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋ฐฉ์ด๋‚˜ ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ๋งŒ๋“ค์–ด ์„œ๋กœ ์—ฐ๋ฝํ•˜๊ณ  ์ผ์„ ์›ํ™œํ•˜๊ฒŒ ํ•ด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.\n\n์–ธ์ œ ์–ด๋””์„œ๋‚˜: ๋ชจ๋“  ์žฅ์น˜ ๋ฐ ์›น(https://app.element.io/)์—์„œ ๋ฉ”์‹œ์ง€๊ฐ€ ์™„์ „ํžˆ ๋™๊ธฐํ™”๋˜๋ฏ€๋กœ ์–ธ์ œ ์–ด๋””์„œ๋‚˜ ์—ฐ๋ฝ์„ ์ทจํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค."; "join" = "์ฐธ๊ฐ€"; "decline" = "๋Š๊ธฐ"; "accept" = "์ˆ˜๋ฝ"; @@ -340,7 +340,7 @@ "settings_add_email_address" = "์ด๋ฉ”์ผ ์ฃผ์†Œ ์ถ”๊ฐ€"; "settings_phone_number" = "ํœด๋Œ€ ์ „ํ™”"; "settings_add_phone_number" = "์ „ํ™”๋ฒˆํ˜ธ ์ถ”๊ฐ€"; -"settings_change_password" = "Matrix ๊ณ„์ • ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ณ€๊ฒฝ"; +"settings_change_password" = "๋น„๋ฐ€๋ฒˆํ˜ธ ๋ณ€๊ฒฝ"; "settings_night_mode" = "์•ผ๊ฐ„ ๋ชจ๋“œ"; "settings_fail_to_update_profile" = "ํ”„๋กœํ•„ ์—…๋ฐ์ดํŠธ์— ์‹คํŒจํ•จ"; "settings_enable_push_notif" = "์ด ๊ธฐ๊ธฐ์—์„œ ์•Œ๋ฆผ"; @@ -388,7 +388,7 @@ "settings_crypto_device_key" = "\n์„ธ์…˜ ํ‚ค:\n"; "settings_crypto_export" = "ํ‚ค ๋‚ด๋ณด๋‚ด๊ธฐ"; "settings_crypto_blacklist_unverified_devices" = "๊ฒ€์ฆ๋œ ์„ธ์…˜๋งŒ ์•”ํ˜ธํ™”"; -"settings_deactivate_my_account" = "๋‚ด ๊ณ„์ • ๋น„ํ™œ์„ฑํ™”"; +"settings_deactivate_my_account" = "๊ณ„์ • ์˜๊ตฌ ๋น„ํ™œ์„ฑํ™”"; "settings_key_backup_info" = "์•”ํ˜ธํ™”๋œ ๋ฉ”์‹œ์ง€๋Š” ์ข…๋‹จ๊ฐ„ ์•”ํ˜ธํ™”๋กœ ๋ณดํ˜ธ๋ฉ๋‹ˆ๋‹ค. ์˜ค์ง ๋‹น์‹ ๊ณผ ์ฐธ๊ฐ€์ž๋งŒ ํ‚ค๋ฅผ ๊ฐ–๊ณ  ์žˆ์–ด์„œ ์ด ๋ฉ”์‹œ์ง€๋ฅผ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค."; "settings_key_backup_info_checking" = "ํ™•์ธ ์ค‘โ€ฆ"; "settings_key_backup_info_none" = "ํ‚ค๊ฐ€ ์ด ์„ธ์…˜์—์„œ ๋ฐฑ์—…๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค."; @@ -1525,14 +1525,14 @@ "settings_enable_room_message_bubbles" = "๋ฉ”์‹œ์ง€ ๋ฒ„๋ธ”"; "settings_labs_use_only_latest_user_avatar_and_name" = "๋Œ€ํ™” ๊ธฐ๋ก์—์„œ ์‚ฌ์šฉ์ž์˜ ์ตœ์‹  ํ”„๋กœํ•„ ์‚ฌ์ง„ ๋ฐ ์ด๋ฆ„ ํ‘œ์‹œ"; "settings_labs_enable_auto_report_decryption_errors" = "๋ณตํ˜ธํ™” ์˜ค๋ฅ˜ ์ž๋™ ๋ณด๊ณ "; -"settings_labs_enable_threads" = "์Šค๋ ˆ๋“œ ๋ฉ”์‹œ์ง•"; +"settings_labs_enable_threads" = "์Šค๋ ˆ๋“œ ๋ฉ”์‹œ์ง€"; "room_participants_invite_prompt_to_msg" = "%@์„(๋ฅผ) %@์— ์ดˆ๋Œ€ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?"; "rooms_empty_view_information" = "๋ฐฉ์€ ๋น„๊ณต๊ฐœ์™€ ๊ณต๊ฐœ ๋ชจ๋‘ ๊ทธ๋ฃน์ฑ„ํŒ…์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. +๋ฅผ ๋ˆŒ๋Ÿฌ ๊ธฐ์กด์— ๊ฐœ์„ค๋œ ๋ฐฉ์„ ์ฐพ๊ฑฐ๋‚˜, ์ƒˆ๋กœ ๊ฐœ์„คํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค."; "onboarding_celebration_button" = "์ถœ๋ฐœ"; -"onboarding_celebration_message" = "์„ค์ •์ด ์ €์žฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค."; -"onboarding_celebration_title" = "๋ชจ๋‘ ์„ค์ •ํ–ˆ์–ด์š”!"; +"onboarding_celebration_message" = "ํ”„๋กœํ•„์„ ์—…๋ฐ์ดํŠธํ•˜๋ ค๋ฉด ์„ค์ •์œผ๋กœ ๊ฐ€์„ธ์š”"; +"onboarding_celebration_title" = "๋ณด๊ธฐ ์ข‹๋„ค์š”!"; "onboarding_avatar_accessibility_label" = "ํ”„๋กœํ•„ ์‚ฌ์ง„"; -"onboarding_avatar_message" = "์–ธ์ œ๋“ ์ง€ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค."; +"onboarding_avatar_message" = "์–ธ์ œ๋“ ์ง€ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค"; "onboarding_avatar_title" = "ํ”„๋กœํ•„ ์‚ฌ์ง„ ์ถ”๊ฐ€"; "onboarding_display_name_max_length" = "ํ”„๋กœํ•„ ์ด๋ฆ„์€ 256์ž ๋ฏธ๋งŒ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค"; "onboarding_display_name_hint" = "๋‚˜์ค‘์— ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค"; @@ -1544,14 +1544,14 @@ "onboarding_congratulations_home_button" = "ํ™ˆ ํ™”๋ฉด์œผ๋กœ ์ด๋™"; "onboarding_congratulations_personalize_button" = "ํ”„๋กœํ•„ ์„ค์ •"; /* The placeholder string contains the user's matrix ID */ -"onboarding_congratulations_message" = "๊ณ„์ • %@์ด(๊ฐ€) ์ƒˆ๋กญ๊ฒŒ ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค."; +"onboarding_congratulations_message" = "๊ณ„์ • %@์ด(๊ฐ€) ์ƒˆ๋กญ๊ฒŒ ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค"; "onboarding_congratulations_title" = "์ถ•ํ•˜ํ•ฉ๋‹ˆ๋‹ค!"; "onboarding_use_case_existing_server_message" = "๊ธฐ์กด ์„œ๋ฒ„์— ๊ฐ€์ž…ํ•˜๋ ค๊ณ  ํ•˜์‹œ๋‚˜์š”?"; "onboarding_use_case_skip_button" = "์งˆ๋ฌธ ๋„˜๊ธฐ๊ธฐ"; /* The placeholder string contains onboarding_use_case_skip_button as a tappable action */ "onboarding_use_case_not_sure_yet" = "์•„์ง ํ™•์‹คํ•˜์ง€ ์•Š์œผ์‹ ๊ฐ€์š”? %@"; "onboarding_use_case_personal_messaging" = "์นœ๊ตฌ์™€ ๊ฐ€์กฑ"; -"onboarding_use_case_message" = "์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€๋“œ๋ฆด๊ฒŒ์š”."; +"onboarding_use_case_message" = "์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€๋“œ๋ฆด๊ฒŒ์š”"; "onboarding_use_case_title" = "๋ˆ„๊ตฌ์™€ ๊ฐ€์žฅ ๋งŽ์ด ๋Œ€ํ™”ํ•˜๋‚˜์š”?"; "onboarding_splash_page_2_message" = "๋ฐ์ดํ„ฐ ๋ฐ ๋Œ€ํ™”๊ฐ€ ์ €์žฅ๋  ์„œ๋ฒ„๋ฅผ ์„ ํƒํ•˜์—ฌ ๋‚ด ์ •๋ณด์— ๋Œ€ํ•œ ํ†ต์ œ๋ ฅ๊ณผ ๋…๋ฆฝ์„ฑ์„ ํ™•๋ณดํ•˜์„ธ์š”. Matrix๋ฅผ ํ†ตํ•ด ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค."; "onboarding_splash_page_1_title" = "๋Œ€ํ™” ๋‚ด์šฉ์„ ์†Œ์œ ํ•˜์„ธ์š”."; @@ -1586,7 +1586,7 @@ // Start "user_verification_start_verify_action" = "๊ฒ€์ฆ ์‹œ์ž‘ํ•˜๊ธฐ"; -"key_verification_user_title" = "๊ฒ€์ฆ"; +"key_verification_user_title" = "์ธ์ฆ"; "key_verification_tile_request_outgoing_title" = "๊ฒ€์ฆ ์ „์†ก๋จ"; "widget_picker_manage_integrations" = "ํ†ตํ•ฉ ๊ด€๋ฆฌํ•˜๊ธฐโ€ฆ"; "room_widget_permission_room_id_permission" = "๋ฐฉ ID"; @@ -1632,3 +1632,4 @@ "room_preview_decline_invitation_options" = "์ดˆ๋Œ€๋ฅผ ๊ฑฐ๋ถ€ํ•˜๊ฑฐ๋‚˜ ์นœ๊ตฌ๋ฅผ ์ฐจ๋‹จํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?"; "threads_beta_information_link" = "๋” ์•Œ์•„๋ณด๊ธฐ"; "threads_beta_title" = "์Šค๋ ˆ๋“œ"; +"room_access_settings_screen_upgrade_alert_message" = "%@์— ์žˆ๋Š” ์‚ฌ๋žŒ์€ ๋ˆ„๊ตฌ๋‚˜ ์ด ๋ฐฉ์„ ์ฐพ์•„ ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค - ๋ชจ๋‘๋ฅผ ์ˆ˜๋™์œผ๋กœ ์ดˆ๋Œ€ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์€ ์–ธ์ œ๋“ ์ง€ ๋ฐฉ ์„ค์ •์—์„œ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค."; diff --git a/Riot/Assets/sk.lproj/Vector.strings b/Riot/Assets/sk.lproj/Vector.strings index a18873e4d8..5ad14f43f2 100644 --- a/Riot/Assets/sk.lproj/Vector.strings +++ b/Riot/Assets/sk.lproj/Vector.strings @@ -2970,3 +2970,10 @@ "settings_manage_account_description" = "Spravujte svoj รบฤet na %@"; "manage_session_redirect" = "Budete presmerovanรญ na poskytovateฤพa overovania vรกลกho servera, aby ste dokonฤili odhlรกsenie."; "manage_session_redirect_error" = "Funkcia aktuรกlne nie je dostupnรก. Obrรกลฅte sa na sprรกvcu vรกลกho domovskรฉho servera"; +"room_action_report_prompt_reason" = "Dรดvod nahlรกsenia tejto miestnosti"; +"wysiwyg_composer_action_maximise_action" = "Rozลกรญriลฅ editor"; +"room_action_report" = "Nahlรกsiลฅ miestnosลฅ"; + + +// MARK: - WYSIWYG Composer +"wysiwyg_composer_action_minimise_action" = "Zmenลกiลฅ editor"; diff --git a/Riot/Assets/sq.lproj/Vector.strings b/Riot/Assets/sq.lproj/Vector.strings index cd338d626b..b1158c152d 100644 --- a/Riot/Assets/sq.lproj/Vector.strings +++ b/Riot/Assets/sq.lproj/Vector.strings @@ -14,7 +14,7 @@ "leave" = "Dilni"; "remove" = "Hiqe"; "invite" = "Ftoje"; -"retry" = "Riprovo"; +"retry" = "Riprovoni"; "off" = "Off"; "cancel" = "Anuloje"; "save" = "Ruaje"; @@ -2757,3 +2757,10 @@ "settings_manage_account_title" = "Llogari"; "settings_manage_account_action" = "Administroni llogari"; "manage_session_redirect" = "Do tรซ ridrejtoheni te shรซrbimi i mirรซfilltรซsimit tรซ shรซrbyesit tuaj, pรซr tรซ plotรซsuar daljen nga llogaria."; +"room_action_report" = "Raportojeni dhomรซn"; +"room_action_report_prompt_reason" = "Arsye pรซr raportimin e kรซsaj dhome"; + + +// MARK: - WYSIWYG Composer +"wysiwyg_composer_action_minimise_action" = "Tkurre hartuesin"; +"wysiwyg_composer_action_maximise_action" = "Zgjeroje hartuesin"; diff --git a/Riot/Assets/sv.lproj/Vector.strings b/Riot/Assets/sv.lproj/Vector.strings index 85662f0292..4ba032603a 100644 --- a/Riot/Assets/sv.lproj/Vector.strings +++ b/Riot/Assets/sv.lproj/Vector.strings @@ -2714,3 +2714,10 @@ "settings_manage_account_description" = "Hantera ditt konto pรฅ %@"; "manage_session_redirect" = "Du kommer att omdirigeras till din servers autentiseringsleverantรถr fรถr att fortsรคtta utloggning."; "manage_session_redirect_error" = "Funktion fรถr nรคrvarande otillgรคnglig. Vรคnligen kontakta din hemserveradministratรถr"; +"room_action_report" = "Rapportera rum"; +"room_action_report_prompt_reason" = "Anledning att rapportera det hรคr rummet"; +"wysiwyg_composer_action_maximise_action" = "Expandera redigerare"; + + +// MARK: - WYSIWYG Composer +"wysiwyg_composer_action_minimise_action" = "Krymp redigerare"; diff --git a/Riot/Assets/uk.lproj/Vector.strings b/Riot/Assets/uk.lproj/Vector.strings index 7c18d9f8b7..0119a6575d 100644 --- a/Riot/Assets/uk.lproj/Vector.strings +++ b/Riot/Assets/uk.lproj/Vector.strings @@ -2972,3 +2972,10 @@ "settings_manage_account_description" = "ะšะตั€ัƒะฒะฐั‚ะธ ะพะฑะปั–ะบะพะฒะธะผ ะทะฐะฟะธัะพะผ ัƒ %@"; "manage_session_redirect" = "ะ’ะฐั ะฑัƒะดะต ะฟะตั€ะตะฝะฐะฟั€ะฐะฒะปะตะฝะพ ะดะพ ะฟะพัั‚ะฐั‡ะฐะปัŒะฝะธะบะฐ ะฐะฒั‚ะตะฝั‚ะธั„ั–ะบะฐั†ั–ั— ะฒะฐัˆะพะณะพ ัะตั€ะฒะตั€ะฐ ะดะปั ะทะฐะฒะตั€ัˆะตะฝะฝั ะฒะธั…ะพะดัƒ."; "manage_session_redirect_error" = "ะคัƒะฝะบั†ั–ะพะฝะฐะปัŒะฝั–ัั‚ัŒ ะฝะฐั€ะฐะทั– ะฝะตะดะพัั‚ัƒะฟะฝะฐ. ะ—ะฒะตั€ะฝั–ั‚ัŒัั ะดะพ ะฐะดะผั–ะฝั–ัั‚ั€ะฐั‚ะพั€ะฐ ะฒะฐัˆะพะณะพ ะดะพะผะฐัˆะฝัŒะพะณะพ ัะตั€ะฒะตั€ะฐ"; +"wysiwyg_composer_action_maximise_action" = "ะ ะพะทะณะพั€ะฝัƒั‚ะธ ั€ะตะดะฐะบั‚ะพั€"; +"room_action_report" = "ะŸะพัะบะฐั€ะถะธั‚ะธัั ะฝะฐ ะบั–ะผะฝะฐั‚ัƒ"; +"room_action_report_prompt_reason" = "ะŸั€ะธั‡ะธะฝะฐ ัะบะฐั€ะณะธ ะฝะฐ ั†ัŽ ะบั–ะผะฝะฐั‚ัƒ"; + + +// MARK: - WYSIWYG Composer +"wysiwyg_composer_action_minimise_action" = "ะ—ะผะตะฝัˆะธั‚ะธ ั€ะตะดะฐะบั‚ะพั€"; diff --git a/Riot/Modules/Pills/PillAttachmentView.swift b/Riot/Modules/Pills/PillAttachmentView.swift index db90519667..fdd7701a11 100644 --- a/Riot/Modules/Pills/PillAttachmentView.swift +++ b/Riot/Modules/Pills/PillAttachmentView.swift @@ -17,7 +17,7 @@ import UIKit /// Base view class for mention Pills. -@available (iOS 15.0, *) +@available(iOS 15.0, *) @objcMembers class PillAttachmentView: UIView { // MARK: - Internal Structs diff --git a/Riot/Modules/Pills/PillProvider.swift b/Riot/Modules/Pills/PillProvider.swift index 1941f8af12..a98f97cba1 100644 --- a/Riot/Modules/Pills/PillProvider.swift +++ b/Riot/Modules/Pills/PillProvider.swift @@ -16,13 +16,13 @@ import Foundation -@available (iOS 15.0, *) +@available(iOS 15.0, *) private enum PillAttachmentKind { case attachment(PillTextAttachment) case string(NSAttributedString) } -@available (iOS 15.0, *) +@available(iOS 15.0, *) struct PillProvider { private let session: MXSession private let eventFormatter: MXKEventFormatter diff --git a/Riot/Modules/Pills/PillTextAttachment.swift b/Riot/Modules/Pills/PillTextAttachment.swift index c6771fa4a9..e9d0df853e 100644 --- a/Riot/Modules/Pills/PillTextAttachment.swift +++ b/Riot/Modules/Pills/PillTextAttachment.swift @@ -18,7 +18,7 @@ import UIKit import MatrixSDK /// Text attachment for pills display. -@available (iOS 15.0, *) +@available(iOS 15.0, *) @objcMembers class PillTextAttachment: NSTextAttachment { // MARK: - Properties @@ -133,7 +133,7 @@ class PillTextAttachment: NSTextAttachment { } // MARK: - Private -@available (iOS 15.0, *) +@available(iOS 15.0, *) private extension PillTextAttachment { func updateBounds() { diff --git a/Riot/Modules/Pills/PillTextAttachmentData.swift b/Riot/Modules/Pills/PillTextAttachmentData.swift index a119c941b5..7356a95f71 100644 --- a/Riot/Modules/Pills/PillTextAttachmentData.swift +++ b/Riot/Modules/Pills/PillTextAttachmentData.swift @@ -17,7 +17,7 @@ import Foundation import UIKit -@available (iOS 15.0, *) +@available(iOS 15.0, *) struct PillAssetColor: Codable { var red: CGFloat = 0.0, green: CGFloat = 0.0, blue: CGFloat = 0.0, alpha: CGFloat = 0.0 @@ -30,7 +30,7 @@ struct PillAssetColor: Codable { } } -@available (iOS 15.0, *) +@available(iOS 15.0, *) struct PillAssetParameter: Codable { var tintColor: PillAssetColor? var backgroundColor: PillAssetColor? @@ -38,7 +38,7 @@ struct PillAssetParameter: Codable { var padding: CGFloat = 2.0 } -@available (iOS 15.0, *) +@available(iOS 15.0, *) enum PillTextAttachmentItem: Codable { case text(String) case avatar(url: String?, string: String?, matrixId: String) @@ -46,7 +46,7 @@ enum PillTextAttachmentItem: Codable { case asset(named: String, parameters: PillAssetParameter) } -@available (iOS 15.0, *) +@available(iOS 15.0, *) extension PillTextAttachmentItem { var string: String? { switch self { @@ -59,7 +59,7 @@ extension PillTextAttachmentItem { } /// Data associated with a Pill text attachment. -@available (iOS 15.0, *) +@available(iOS 15.0, *) struct PillTextAttachmentData: Codable { // MARK: - Properties /// Pill type diff --git a/Riot/Modules/Pills/PillType.swift b/Riot/Modules/Pills/PillType.swift index 53b42e0e26..17aadbb1ed 100644 --- a/Riot/Modules/Pills/PillType.swift +++ b/Riot/Modules/Pills/PillType.swift @@ -16,14 +16,14 @@ import Foundation -@available (iOS 15.0, *) +@available(iOS 15.0, *) enum PillType: Codable { case user(userId: String) /// userId case room(roomId: String) /// roomId case message(roomId: String, eventId: String) // roomId, eventId } -@available (iOS 15.0, *) +@available(iOS 15.0, *) extension PillType { private static var regexPermalinkTarget: NSRegularExpression? = { let clientBaseUrl = BuildSettings.clientPermalinkBaseUrl ?? kMXMatrixDotToUrl diff --git a/Riot/Modules/Pills/PillsFormatter.swift b/Riot/Modules/Pills/PillsFormatter.swift index ecdfac5fed..2108c5fc37 100644 --- a/Riot/Modules/Pills/PillsFormatter.swift +++ b/Riot/Modules/Pills/PillsFormatter.swift @@ -18,7 +18,7 @@ import Foundation import UIKit /// Provides utilities funcs to handle Pills inside attributed strings. -@available (iOS 15.0, *) +@available(iOS 15.0, *) @objcMembers class PillsFormatter: NSObject { // MARK: - Internal Properties @@ -214,7 +214,7 @@ class PillsFormatter: NSObject { } // MARK: - Private Methods -@available (iOS 15.0, *) +@available(iOS 15.0, *) extension PillsFormatter { struct MarkdownLinkResult: Equatable { let url: URL diff --git a/Riot/Modules/Room/VoiceMessages/VoiceMessagePlaybackView.swift b/Riot/Modules/Room/VoiceMessages/VoiceMessagePlaybackView.swift index b5fae41d81..90d2b55c06 100644 --- a/Riot/Modules/Room/VoiceMessages/VoiceMessagePlaybackView.swift +++ b/Riot/Modules/Room/VoiceMessages/VoiceMessagePlaybackView.swift @@ -49,7 +49,7 @@ class VoiceMessagePlaybackView: UIView, NibLoadable, Themable { @IBOutlet private var playButton: UIButton! @IBOutlet private var elapsedTimeLabel: UILabel! @IBOutlet private var waveformContainerView: UIView! - @IBOutlet private (set)var stackViewTrailingContraint: NSLayoutConstraint! + @IBOutlet private(set) var stackViewTrailingContraint: NSLayoutConstraint! private var longPressGestureRecognizer: UILongPressGestureRecognizer! private var panGestureRecognizer: UIPanGestureRecognizer! diff --git a/Riot/Modules/Rooms/DirectoryPicker/Views/DirectoryServerTableViewCell.m b/Riot/Modules/Rooms/DirectoryPicker/Views/DirectoryServerTableViewCell.m index 6ec9484e66..3daadd924f 100644 --- a/Riot/Modules/Rooms/DirectoryPicker/Views/DirectoryServerTableViewCell.m +++ b/Riot/Modules/Rooms/DirectoryPicker/Views/DirectoryServerTableViewCell.m @@ -60,6 +60,16 @@ - (void)render:(id)cellData { iconURL = [NSString stringWithFormat:@"%@%@", kMXContentUriScheme, [iconURL substringFromIndex:range.location + range.length]]; } + // Check also if we are using the authenticated endpoint + else + { + mxMediaPrefix = [NSString stringWithFormat:@"/%@/download/", kMXAuthenticatedContentPrefixPath]; + range = [iconURL rangeOfString:mxMediaPrefix]; + if (range.location != NSNotFound) + { + iconURL = [NSString stringWithFormat:@"%@%@", kMXContentUriScheme, [iconURL substringFromIndex:range.location + range.length]]; + } + } [self.iconImageView setImageURI:iconURL withType:nil andImageOrientation:UIImageOrientationUp diff --git a/Riot/Modules/Settings/IdentityServer/SettingsIdentityServerViewModel.swift b/Riot/Modules/Settings/IdentityServer/SettingsIdentityServerViewModel.swift index 205d7c1744..25561e18a5 100644 --- a/Riot/Modules/Settings/IdentityServer/SettingsIdentityServerViewModel.swift +++ b/Riot/Modules/Settings/IdentityServer/SettingsIdentityServerViewModel.swift @@ -92,7 +92,7 @@ final class SettingsIdentityServerViewModel: SettingsIdentityServerViewModelType private func checkCanAddIdentityServer(newIdentityServer: String, viewStateUpdate: @escaping (SettingsIdentityServerViewState) -> Void, - canAddcompletion: @escaping(() -> Void)) { + canAddcompletion: @escaping (() -> Void)) { viewStateUpdate(.loading) self.checkIdentityServerValidity(identityServer: newIdentityServer) { (identityServerValidityResponse) in @@ -228,7 +228,7 @@ final class SettingsIdentityServerViewModel: SettingsIdentityServerViewModelType private func checkCanDisconnectIdentityServer(identityServer: String, viewStateUpdate: @escaping (SettingsIdentityServerViewState) -> Void, - canDisconnectCompletion: @escaping(() -> Void)) { + canDisconnectCompletion: @escaping (() -> Void)) { self.update(viewState: .loading) self.checkExistingDataOnIdentityServer { (response) in diff --git a/RiotNSE/BuildSettings.swift b/RiotNSE/BuildSettings.swift index 2b3b90bab5..392f5b92dc 100644 --- a/RiotNSE/BuildSettings.swift +++ b/RiotNSE/BuildSettings.swift @@ -203,10 +203,10 @@ final class BuildSettings: NSObject { #if DEBUG /// The configuration to use for analytics during development. Set `isEnabled` to false to disable analytics in debug builds. - static let analyticsConfiguration = AnalyticsConfiguration(isEnabled: false, - host: "", - apiKey: "", - termsURL: URL(string: "https://")!) + static let analyticsConfiguration = AnalyticsConfiguration(isEnabled: true, // Tchap: enable PostHog analytics on DEBUG + host: "https://us.i.posthog.com", // Tchap: dev posthog, + apiKey: "phc_eQOeaQiaIxdX9kaQmqYTD7RJLyFubYmGYKUI9czqqQD", // Tchap: dev posthog, + termsURL: URL(string: "https://tchap.beta.gouv.fr/politique-de-confidentialite")!) // Tchap: dev posthog, #else /// The configuration to use for analytics. Set `isEnabled` to false to disable analytics. static let analyticsConfiguration = AnalyticsConfiguration(isEnabled: false, @@ -292,10 +292,10 @@ final class BuildSettings: NSObject { "agent.dev-durable.tchap.gouv.fr", "agent.education.tchap.gouv.fr" ], - // No activation of video calls actually in Tchap Production. -// tchapFeatureVideoOverIP: [ -// "agent.dinum.tchap.gouv.fr" -// ], + tchapFeatureVideoOverIP: [ + "agent.dinum.tchap.gouv.fr", + "agent.education.tchap.gouv.fr" + ], tchapFeatureGeolocationSharing: [ tchapFeatureAnyHomeServer ] diff --git a/RiotShareExtension/BuildSettings.swift b/RiotShareExtension/BuildSettings.swift index 2911cd2259..392f5b92dc 100644 --- a/RiotShareExtension/BuildSettings.swift +++ b/RiotShareExtension/BuildSettings.swift @@ -203,10 +203,10 @@ final class BuildSettings: NSObject { #if DEBUG /// The configuration to use for analytics during development. Set `isEnabled` to false to disable analytics in debug builds. - static let analyticsConfiguration = AnalyticsConfiguration(isEnabled: false, - host: "", - apiKey: "", - termsURL: URL(string: "https://")!) + static let analyticsConfiguration = AnalyticsConfiguration(isEnabled: true, // Tchap: enable PostHog analytics on DEBUG + host: "https://us.i.posthog.com", // Tchap: dev posthog, + apiKey: "phc_eQOeaQiaIxdX9kaQmqYTD7RJLyFubYmGYKUI9czqqQD", // Tchap: dev posthog, + termsURL: URL(string: "https://tchap.beta.gouv.fr/politique-de-confidentialite")!) // Tchap: dev posthog, #else /// The configuration to use for analytics. Set `isEnabled` to false to disable analytics. static let analyticsConfiguration = AnalyticsConfiguration(isEnabled: false, @@ -272,7 +272,7 @@ final class BuildSettings: NSObject { tchapFeatureNotificationByEmail: [ tchapFeatureAnyHomeServer ], - // Audio calls for all except Finances in Tchap Production. + // Audio calls for all in Tchap Production. tchapFeatureVoiceOverIP: [ "agent.externe.tchap.gouv.fr", "agent.collectivites.tchap.gouv.fr", @@ -280,7 +280,7 @@ final class BuildSettings: NSObject { "agent.elysee.tchap.gouv.fr", "agent.pm.tchap.gouv.fr", "agent.ssi.tchap.gouv.fr", -// "agent.finances.tchap.gouv.fr", + "agent.finances.tchap.gouv.fr", "agent.social.tchap.gouv.fr", "agent.interieur.tchap.gouv.fr", "agent.agriculture.tchap.gouv.fr", @@ -292,10 +292,10 @@ final class BuildSettings: NSObject { "agent.dev-durable.tchap.gouv.fr", "agent.education.tchap.gouv.fr" ], - // No activation of video calls actually in Tchap Production. -// tchapFeatureVideoOverIP: [ -// "agent.dinum.tchap.gouv.fr" -// ], + tchapFeatureVideoOverIP: [ + "agent.dinum.tchap.gouv.fr", + "agent.education.tchap.gouv.fr" + ], tchapFeatureGeolocationSharing: [ tchapFeatureAnyHomeServer ] diff --git a/RiotSwiftUI/Modules/LocationSharing/StartLocationSharing/Coordinator/LocationSharingCoordinator.swift b/RiotSwiftUI/Modules/LocationSharing/StartLocationSharing/Coordinator/LocationSharingCoordinator.swift index 99cbddb916..c2494be129 100644 --- a/RiotSwiftUI/Modules/LocationSharing/StartLocationSharing/Coordinator/LocationSharingCoordinator.swift +++ b/RiotSwiftUI/Modules/LocationSharing/StartLocationSharing/Coordinator/LocationSharingCoordinator.swift @@ -166,34 +166,14 @@ final class LocationSharingCoordinator: Coordinator, Presentable { // Check if user can send beacon info state event private func canShareLiveLocation() -> Bool { - // Tchap: allow live sharing geolocation based on room power levels - // -// guard let myUserId = parameters.roomDataSource.mxSession.myUserId else { -// return false -// } -// -// let userPowerLevelRawValue = parameters.roomDataSource.roomState.powerLevels.powerLevelOfUser(withUserID: myUserId) -// -// guard let userPowerLevel = RoomPowerLevel(rawValue: userPowerLevelRawValue) else { -// return false -// } -// -// return userPowerLevel.rawValue >= RoomPowerLevel.moderator.rawValue - guard let myUserId = parameters.roomDataSource.mxSession.myUserId, let roomPowerLevels = parameters.roomDataSource.roomState.powerLevels, - let userPowerLevel = RoomPowerLevel(rawValue: parameters.roomDataSource.roomState.powerLevels.powerLevelOfUser(withUserID: myUserId)) else { + let userPowerLevel = RoomPowerLevel(rawValue: roomPowerLevels.powerLevelOfUser(withUserID: myUserId)) else { return false } - // Tchap: should call `minimumPowerLevelForSendingStateEvent(_ eventType: MXEventType) -> Int` from `MatrixSDK:MXRoomPowerLevels.swift` - // but can't because it is inaccessible due to 'internal' protection level - // - // let liveSharingPowerLevel = parameters.roomDataSource.roomState.powerLevels.minimumPowerLevelForSendingStateEvent(.beaconInfo) - // - - // Get live sharing power level from stable value, then unstable value and fallback on default value. - let liveSharingPowerLevel = (roomPowerLevels.events[kMXEventTypeStringBeaconInfo] ?? roomPowerLevels.events[kMXEventTypeStringBeaconInfoMSC3672]) as? Int ?? roomPowerLevels.stateDefault + // CHeck user power level in room against power level needed to post geolocation state event. + let liveSharingPowerLevel = roomPowerLevels.minimumPowerLevelForSendingStateEvent(.beaconInfo) return userPowerLevel.rawValue >= liveSharingPowerLevel } diff --git a/changelog.d/1096.change b/changelog.d/1096.change new file mode 100644 index 0000000000..2b1b3f31df --- /dev/null +++ b/changelog.d/1096.change @@ -0,0 +1 @@ +Rebase to Element 1.11.18 and Matrix 0.27.14 \ No newline at end of file diff --git a/matrix-ios-sdk b/matrix-ios-sdk index 04e422e1f7..36e2409322 160000 --- a/matrix-ios-sdk +++ b/matrix-ios-sdk @@ -1 +1 @@ -Subproject commit 04e422e1f70eb3c32b9d0067cf9721bdc295caa0 +Subproject commit 36e2409322d66ee7c7fb2f5b72a01065d6dedb9b