mirror of
https://gitlab.opencode.de/bwi/bundesmessenger/clients/bundesmessenger-ios.git
synced 2026-04-17 15:09:31 +02:00
chore: Update from FOSS 1.18.0 (MESSENGER-6440)
This commit is contained in:
3
.github/workflows/ci-tests.yml
vendored
3
.github/workflows/ci-tests.yml
vendored
@@ -62,6 +62,7 @@ jobs:
|
||||
run: bundle exec fastlane test
|
||||
|
||||
- name: Upload coverage to Codecov
|
||||
uses: codecov/codecov-action@v3
|
||||
uses: codecov/codecov-action@v4
|
||||
with:
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
flags: unittests
|
||||
|
||||
4
.github/workflows/ci-ui-tests.yml
vendored
4
.github/workflows/ci-ui-tests.yml
vendored
@@ -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:
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
flags: uitests
|
||||
|
||||
4
.github/workflows/sonarcloud.yml
vendored
4
.github/workflows/sonarcloud.yml
vendored
@@ -25,7 +25,7 @@ jobs:
|
||||
with:
|
||||
# Additional arguments for the sonarcloud scanner
|
||||
args:
|
||||
-Dsonar.projectKey=vector-im_element-ios
|
||||
-Dsonar.organization=new_vector_ltd_organization
|
||||
-Dsonar.projectKey=element-ios
|
||||
-Dsonar.organization=element-hq
|
||||
-Dsonar.inclusions=RiotSwiftUI/**
|
||||
# For more info about the parameters, please refer to https://docs.sonarcloud.io/advanced-setup/analysis-parameters/
|
||||
14
CHANGES.md
14
CHANGES.md
@@ -1,3 +1,17 @@
|
||||
## 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.
|
||||
|
||||
@@ -18,4 +18,3 @@
|
||||
// Version
|
||||
MARKETING_VERSION = 2.22.0
|
||||
CURRENT_PROJECT_VERSION = 20220714163152
|
||||
|
||||
|
||||
5
Podfile
5
Podfile
@@ -92,8 +92,9 @@ abstract_target 'RiotPods' do
|
||||
pod 'ReadMoreTextView', '~> 3.0.1'
|
||||
pod 'SideMenu', '~> 6.5'
|
||||
pod 'DSWaveformImage', '~> 6.1.1'
|
||||
|
||||
target 'RiotTests' do
|
||||
pod 'FLEX', '~> 5.22.10', :configurations => ['Debug'], :inhibit_warnings => true
|
||||
|
||||
target 'RiotTests' do
|
||||
inherit! :search_paths
|
||||
end
|
||||
|
||||
|
||||
126
Podfile.lock
126
Podfile.lock
@@ -14,51 +14,45 @@ PODS:
|
||||
- AFNetworking/Serialization (4.0.1)
|
||||
- AFNetworking/UIKit (4.0.1):
|
||||
- AFNetworking/NSURLSession
|
||||
- BlueCryptor (1.0.32)
|
||||
- BlueECC (1.2.5)
|
||||
- BlueRSA (1.0.200)
|
||||
- Down (0.11.0)
|
||||
- DSBottomSheet (0.3.0)
|
||||
- DSWaveformImage (6.1.1)
|
||||
- DTCoreText (1.6.26):
|
||||
- DTCoreText/Core (= 1.6.26)
|
||||
- DTFoundation/Core (~> 1.7.5)
|
||||
- DTFoundation/DTAnimatedGIF (~> 1.7.5)
|
||||
- DTFoundation/DTHTMLParser (~> 1.7.5)
|
||||
- DTFoundation/UIKit (~> 1.7.5)
|
||||
- DTCoreText/Core (1.6.26):
|
||||
- DTFoundation/Core (~> 1.7.5)
|
||||
- DTFoundation/DTAnimatedGIF (~> 1.7.5)
|
||||
- DTFoundation/DTHTMLParser (~> 1.7.5)
|
||||
- DTFoundation/UIKit (~> 1.7.5)
|
||||
- DTFoundation/Core (1.7.18)
|
||||
- DTFoundation/DTAnimatedGIF (1.7.18)
|
||||
- DTFoundation/DTHTMLParser (1.7.18):
|
||||
- DTFoundation/Core
|
||||
- DTFoundation/UIKit (1.7.18):
|
||||
- DTFoundation/Core
|
||||
- DTTJailbreakDetection (0.4.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.12.0)
|
||||
- JitsiMeetSDKLite (8.1.2-lite):
|
||||
- JitsiWebRTC (~> 111.0)
|
||||
- JitsiWebRTC (111.0.2)
|
||||
- KeychainAccess (4.2.2)
|
||||
- KituraContracts (1.2.1):
|
||||
- LoggerAPI (~> 1.7)
|
||||
- KTCenterFlowLayout (1.3.1)
|
||||
- libbase58 (0.1.4)
|
||||
- libPhoneNumber-iOS (0.9.15)
|
||||
- MatomoTracker (7.5.2):
|
||||
- MatomoTracker/Core (= 7.5.2)
|
||||
- MatomoTracker/Core (7.5.2)
|
||||
- MatrixSDK (0.27.5):
|
||||
- MatrixSDK/Core (= 0.27.5)
|
||||
- MatrixSDK/Core (0.27.5):
|
||||
- LoggerAPI (1.9.200):
|
||||
- Logging (~> 1.1)
|
||||
- Logging (1.4.0)
|
||||
- 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.3.13)
|
||||
- MatrixSDKCrypto (= 0.4.3)
|
||||
- OLMKit (~> 3.2.5)
|
||||
- Realm (= 10.27.0)
|
||||
- SwiftyBeaver (= 1.9.5)
|
||||
- MatrixSDKCrypto (0.3.13)
|
||||
- MatrixSDK/JingleCallStack (0.27.13):
|
||||
- JitsiMeetSDKLite (= 8.1.2-lite)
|
||||
- MatrixSDK/Core
|
||||
- MatrixSDKCrypto (0.4.3)
|
||||
- OLMKit (3.2.12):
|
||||
- OLMKit/olmc (= 3.2.12)
|
||||
- OLMKit/olmcpp (= 3.2.12)
|
||||
@@ -73,10 +67,20 @@ PODS:
|
||||
- Reusable/View (= 4.1.2)
|
||||
- Reusable/Storyboard (4.1.2)
|
||||
- Reusable/View (4.1.2)
|
||||
- Sentry (7.15.0):
|
||||
- Sentry/Core (= 7.15.0)
|
||||
- Sentry/Core (7.15.0)
|
||||
- SideMenu (6.5.0)
|
||||
- SwiftFormat/CLI (0.54.0)
|
||||
- SwiftBase32 (0.9.0)
|
||||
- SwiftFormat/CLI (0.54.5)
|
||||
- SwiftGen (6.6.3)
|
||||
- SwiftLint (0.55.1)
|
||||
- SwiftJWT (3.6.200):
|
||||
- BlueCryptor (~> 1.0)
|
||||
- BlueECC (~> 1.1)
|
||||
- BlueRSA (~> 1.0)
|
||||
- KituraContracts (~> 1.2)
|
||||
- LoggerAPI (~> 1.7)
|
||||
- SwiftLint (0.57.0)
|
||||
- SwiftyBeaver (1.9.5)
|
||||
- UICollectionViewLeftAlignedLayout (1.0.2)
|
||||
- UICollectionViewRightAlignedLayout (0.0.3)
|
||||
@@ -90,22 +94,24 @@ DEPENDENCIES:
|
||||
- Down (~> 0.11.0)
|
||||
- DSBottomSheet (~> 0.3)
|
||||
- DSWaveformImage (~> 6.1.1)
|
||||
- DTCoreText (= 1.6.26)
|
||||
- DTTJailbreakDetection (~> 0.4.0)
|
||||
- FLEX (~> 5.22.10)
|
||||
- FlowCommoniOS (~> 1.12.0)
|
||||
- GBDeviceInfo (~> 7.1.0)
|
||||
- Introspect (~> 0.1)
|
||||
- KeychainAccess (~> 4.2.2)
|
||||
- KTCenterFlowLayout (~> 1.3.1)
|
||||
- libPhoneNumber-iOS (~> 0.9.13)
|
||||
- MatomoTracker (~> 7.5.2)
|
||||
- MatrixSDK (from `https://dl-gitlab.example.com/bwmessenger/bundesmessenger/bundesmessenger-ios-sdk`, tag `v2.17.0`)
|
||||
- MatrixSDK (from `matrix-ios-sdk/MatrixSDK.podspec`)
|
||||
- MatrixSDK/JingleCallStack (from `matrix-ios-sdk/MatrixSDK.podspec`)
|
||||
- OLMKit
|
||||
- ReadMoreTextView (~> 3.0.1)
|
||||
- Reusable (~> 4.1)
|
||||
- Sentry (~> 7.15.0)
|
||||
- SideMenu (~> 6.5)
|
||||
- SwiftBase32 (~> 0.9.0)
|
||||
- SwiftFormat/CLI
|
||||
- SwiftGen
|
||||
- SwiftJWT (~> 3.6.200)
|
||||
- SwiftLint
|
||||
- UICollectionViewLeftAlignedLayout (~> 1.0.2)
|
||||
- UICollectionViewRightAlignedLayout (~> 0.0.3)
|
||||
@@ -114,31 +120,39 @@ DEPENDENCIES:
|
||||
- ZXingObjC (~> 3.6.9)
|
||||
|
||||
SPEC REPOS:
|
||||
https://github.com/CocoaPods/Specs.git:
|
||||
trunk:
|
||||
- AFNetworking
|
||||
- BlueCryptor
|
||||
- BlueECC
|
||||
- BlueRSA
|
||||
- Down
|
||||
- DSBottomSheet
|
||||
- DSWaveformImage
|
||||
- DTCoreText
|
||||
- DTFoundation
|
||||
- DTTJailbreakDetection
|
||||
- FLEX
|
||||
- FlowCommoniOS
|
||||
- GBDeviceInfo
|
||||
- GZIP
|
||||
- Introspect
|
||||
- JitsiMeetSDKLite
|
||||
- JitsiWebRTC
|
||||
- KeychainAccess
|
||||
- KituraContracts
|
||||
- KTCenterFlowLayout
|
||||
- libbase58
|
||||
- libPhoneNumber-iOS
|
||||
- MatomoTracker
|
||||
- LoggerAPI
|
||||
- Logging
|
||||
- MatrixSDKCrypto
|
||||
- OLMKit
|
||||
- ReadMoreTextView
|
||||
- Realm
|
||||
- Reusable
|
||||
- Sentry
|
||||
- SideMenu
|
||||
- SwiftBase32
|
||||
- SwiftFormat
|
||||
- SwiftGen
|
||||
- SwiftJWT
|
||||
- SwiftLint
|
||||
- SwiftyBeaver
|
||||
- UICollectionViewLeftAlignedLayout
|
||||
@@ -149,41 +163,43 @@ SPEC REPOS:
|
||||
|
||||
EXTERNAL SOURCES:
|
||||
MatrixSDK:
|
||||
:git: https://dl-gitlab.example.com/bwmessenger/bundesmessenger/bundesmessenger-ios-sdk
|
||||
:tag: v2.17.0
|
||||
|
||||
CHECKOUT OPTIONS:
|
||||
MatrixSDK:
|
||||
:git: https://dl-gitlab.example.com/bwmessenger/bundesmessenger/bundesmessenger-ios-sdk
|
||||
:tag: v2.17.0
|
||||
:path: matrix-ios-sdk/MatrixSDK.podspec
|
||||
|
||||
SPEC CHECKSUMS:
|
||||
AFNetworking: 3bd23d814e976cd148d7d44c3ab78017b744cd58
|
||||
BlueCryptor: b0aee3d9b8f367b49b30de11cda90e1735571c24
|
||||
BlueECC: 0d18e93347d3ec6d41416de21c1ffa4d4cd3c2cc
|
||||
BlueRSA: dfeef51db96bcc4edec654956c1581adbda4e6a3
|
||||
Down: b6ba1bc985c9d2f4e15e3b293d2207766fa12612
|
||||
DSBottomSheet: ca0ac37eb5af2dd54663f86b84382ed90a59be2a
|
||||
DSWaveformImage: 3c718a0cf99291887ee70d1d0c18d80101d3d9ce
|
||||
DTCoreText: ec749e013f2e1f76de5e7c7634642e600a7467ce
|
||||
DTFoundation: a53f8cda2489208cbc71c648be177f902ee17536
|
||||
DTTJailbreakDetection: 5e356c5badc17995f65a83ed9483f787a0057b71
|
||||
FLEX: f21ee4f498eed3f8a1eded66b21939fd3b7a22ce
|
||||
FlowCommoniOS: ca92071ab526dc89905495a37844fd7e78d1a7f2
|
||||
GBDeviceInfo: 5d62fa85bdcce3ed288d83c28789adf1173e4376
|
||||
GZIP: 3c0abf794bfce8c7cb34ea05a1837752416c8868
|
||||
Introspect: b66b675de8a85d9ef832f3a710d8e3c7db186884
|
||||
JitsiMeetSDKLite: 895213158cf62342069a10634a41d2f1c00057f7
|
||||
JitsiWebRTC: 80f62908fcf2a1160e0d14b584323fb6e6be630b
|
||||
KeychainAccess: c0c4f7f38f6fc7bbe58f5702e25f7bd2f65abf51
|
||||
KituraContracts: e845e60dc8627ad0a76fa55ef20a45451d8f830b
|
||||
KTCenterFlowLayout: 6e02b50ab2bd865025ae82fe266ed13b6d9eaf97
|
||||
libbase58: 8abc2a53ac38cd37720c0acbc53ef3660e9016c2
|
||||
libbase58: 7c040313537b8c44b6e2d15586af8e21f7354efd
|
||||
libPhoneNumber-iOS: 0a32a9525cf8744fe02c5206eb30d571e38f7d75
|
||||
MatomoTracker: 1d98ddc58322fd9d65e1a6886b8e41363047bd13
|
||||
MatrixSDK: f92ffead50eda83c99786afefed9be739987f338
|
||||
MatrixSDKCrypto: bf08b72f2cd015d8749420a2b8b92fc0536bedf4
|
||||
LoggerAPI: ad9c4a6f1e32f518fdb43a1347ac14d765ab5e3d
|
||||
Logging: beeb016c9c80cf77042d62e83495816847ef108b
|
||||
MatrixSDK: 1dae186c839eb145974fc1fc127ec903de60a297
|
||||
MatrixSDKCrypto: 27bee960e0e8b3a3039f3f3e93dd2ec88299c77e
|
||||
OLMKit: da115f16582e47626616874e20f7bb92222c7a51
|
||||
ReadMoreTextView: 19147adf93abce6d7271e14031a00303fe28720d
|
||||
Realm: 9ca328bd7e700cc19703799785e37f77d1a130f2
|
||||
Reusable: 6bae6a5e8aa793c9c441db0213c863a64bce9136
|
||||
Sentry: 63ca44f5e0c8cea0ee5a07686b02e56104f41ef7
|
||||
SideMenu: f583187d21c5b1dd04c72002be544b555a2627a2
|
||||
SwiftFormat: 0e0b577434e6aa63bc82a8905b40d9597b8452d4
|
||||
SwiftBase32: 9399c25a80666dc66b51e10076bf591e3bbb8f17
|
||||
SwiftFormat: 543a7b1ab4a6ce2d88bd5616a17903446ca3dc5c
|
||||
SwiftGen: 4993cbf71cbc4886f775e26f8d5c3a1188ec9f99
|
||||
SwiftLint: 3fe909719babe5537c552ee8181c0031392be933
|
||||
SwiftJWT: 88c412708f58c169d431d344c87bc79a87c830ae
|
||||
SwiftLint: eb47480d47c982481592c195c221d11013a679cc
|
||||
SwiftyBeaver: 84069991dd5dca07d7069100985badaca7f0ce82
|
||||
UICollectionViewLeftAlignedLayout: 830bf6fa5bab9f9b464f62e3384f9d2e00b3c0f6
|
||||
UICollectionViewRightAlignedLayout: 823eef8c567eba4a44c21bc2ffcb0d0d5f361e2d
|
||||
@@ -191,6 +207,6 @@ SPEC CHECKSUMS:
|
||||
zxcvbn-ios: fef98b7c80f1512ff0eec47ac1fa399fc00f7e3c
|
||||
ZXingObjC: 8898711ab495761b2dbbdec76d90164a6d7e14c5
|
||||
|
||||
PODFILE CHECKSUM: 3c3cad2e80e90b989d5bfc929c8cf68d8b656d04
|
||||
PODFILE CHECKSUM: fb3e1c62f9e35a9bdbafce743664bf4f620af028
|
||||
|
||||
COCOAPODS: 1.14.3
|
||||
COCOAPODS: 1.15.2
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
// Permissions usage explanations
|
||||
"NSCameraUsageDescription" = "카메라는 사진과 영상 촬영, 영상 통화를 하는 데 쓰입니다.";
|
||||
"NSPhotoLibraryUsageDescription" = "포토 라이브러리는 사진과 영상을 보내는데 쓰입니다.";
|
||||
"NSCameraUsageDescription" = "카메라는 영상 통화를 하거나 사진과 비디오를 찍고 업로드하는 데 사용됩니다.";
|
||||
"NSPhotoLibraryUsageDescription" = "사진 및 동영상을 라이브러리에서 업로드할 수 있도록 사진 접근을 허용하세요.";
|
||||
"NSMicrophoneUsageDescription" = "Element는 통화와 동영상 촬영 및 음성 메시지 녹음을 하기 위해 마이크에 액세스해야 합니다.";
|
||||
"NSContactsUsageDescription" = "Element는 채팅에 초대할 수 있도록 연락처를 표시합니다.";
|
||||
"NSContactsUsageDescription" = "다른사람이 매트릭스에서 당신의 연락처를 찾는 데 도움을 주기 위해 당신의 아이디 서버와 공유될 것입니다.";
|
||||
"NSCalendarsUsageDescription" = "앱에서 예정된 회의를 봅니다.";
|
||||
"NSLocationWhenInUseUsageDescription" = "사람들에게 위치 정보를 공유할때, Element에서 지도를 표시 하기 위한 권한이 필요합니다.";
|
||||
"NSFaceIDUsageDescription" = "Face ID 권한은 앱에 액세스하는 데 사용됩니다.";
|
||||
"NSLocationAlwaysAndWhenInUseUsageDescription" = "당신의 위치를 사람들과 공유할 때, Element는 그들에게 지도를 보여주기 위해 접근이 필요합니다.";
|
||||
|
||||
@@ -128,3 +128,6 @@
|
||||
/** General **/
|
||||
|
||||
"Notification" = "알림";
|
||||
|
||||
/* New voice broadcast from a specific person, not referencing a room. */
|
||||
"VOICE_BROADCAST_FROM_USER" = "%@ 음성 방송을 시작했습니다";
|
||||
|
||||
@@ -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" = "%@에 있는 사람은 누구나 이 방을 찾아 참여할 수 있습니다 - 모두를 수동으로 초대할 필요가 없습니다. 당신은 언제든지 방 설정에서 변경할 수 있습니다.";
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 = AppConfigService.shared.permalinkUrl() ?? BWIBuildSettings.shared.clientPermalinkBaseUrl
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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!
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -167,17 +167,16 @@ final class LocationSharingCoordinator: Coordinator, Presentable {
|
||||
|
||||
// Check if user can send beacon info state event
|
||||
private func canShareLiveLocation() -> Bool {
|
||||
guard let myUserId = parameters.roomDataSource.mxSession.myUserId else {
|
||||
guard let myUserId = parameters.roomDataSource.mxSession.myUserId,
|
||||
let roomPowerLevels = parameters.roomDataSource.roomState.powerLevels,
|
||||
let userPowerLevel = RoomPowerLevel(rawValue: roomPowerLevels.powerLevelOfUser(withUserID: 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
|
||||
// CHeck user power level in room against power level needed to post geolocation state event.
|
||||
let liveSharingPowerLevel = roomPowerLevels.minimumPowerLevelForSendingStateEvent(.beaconInfo)
|
||||
|
||||
return userPowerLevel.rawValue >= liveSharingPowerLevel
|
||||
}
|
||||
|
||||
private func showLabFlagPromotionIfNeeded(completion: @escaping ((Bool) -> Void)) {
|
||||
|
||||
Submodule matrix-ios-sdk updated: 1c4b3f5c32...8a65ea10ef
Reference in New Issue
Block a user