mirror of
https://gitlab.opencode.de/bwi/bundesmessenger/clients/bundesmessenger-ios.git
synced 2026-04-25 19:10:49 +02:00
ea2700f622
* Renamed sign out to logout * Renamed sign out to logout * Renamed sign out to logout * Sign out of all other sessions * Fix typo in issue automation * Fixed unit tests * Translations update from Weblate (#7017) * Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (2311 of 2311 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/pt_BR/ * Translated using Weblate (Estonian) Currently translated at 100.0% (2311 of 2311 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/et/ * Translated using Weblate (German) Currently translated at 100.0% (2311 of 2311 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/de/ * Translated using Weblate (German) Currently translated at 100.0% (2311 of 2311 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/de/ * Translated using Weblate (Dutch) Currently translated at 100.0% (2311 of 2311 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/nl/ Co-authored-by: lvre <7uu3qrbvm@relay.firefox.com> Co-authored-by: Priit Jõerüüt <riot@joeruut.com> Co-authored-by: Vri <element@vrifox.cc> Co-authored-by: Johan Smits <johan@smitsmail.net> * Prepare for new sprint * Prepare for new sprint * Threads: added support to read receipts (MSC3771) - Update after review * Threads: added support to notifications count (MSC3773) * Update RiotSwiftUI/Modules/UserSessions/UserOtherSessions/Test/UI/UserOtherSessionsUITests.swift Co-authored-by: aringenbach <80891108+aringenbach@users.noreply.github.com> * Update RiotSwiftUI/Modules/UserSessions/UserOtherSessions/Test/UI/UserOtherSessionsUITests.swift Co-authored-by: aringenbach <80891108+aringenbach@users.noreply.github.com> * Comment fix * the test may fail on CI without blocking the task/check * tests may fail on CI * test improvement * test may fail on CI * Hide push toggles for http pushers when there is no server support * changelog * Code review fixes * Threads: added support to read receipts (MSC3771) - Update after review * Synchronise composer and toolbar resizing animation duration * Add kResizeComposerAnimationDuration constant description * fix for 6946 * Threads: add support to labs flag for read receipts * Cleanup * Code review fixes, created DestructiveButton * Update issue automation Stop using deprecated ProjectNext API in favour of the new ProjectV2 one * Update PR automation Stop using deprecated ProjectNext API in favour of the new ProjectV2 one * Code review fixes * Map location info * Map location info * Add location feature in UserSessionsOverview * Add “show location” feature in other sessions list * Add “show location“ feature in session overview * Fix Package.resolved * Cleanup merge leftovers * Cleanup code * Cleanup * Add show/hide ip persistency * Add location info in UserOtherSessions * Refine settings logic * Mock settings in UserSessionsOverviewViewModel * Add settings service in UserOtherSessionsViewModel * Inject setting service in UserSessionOverviewViewModel * Add changelog.d file * Fix UTs * Cleanup merge leftovers * Add animations * Fix failing test * another possible impl * this solution looks promising * Amend title font * fixed the positioning * Amend copies * trick without using the window but the nav controller * Device Manager: Session list item is not tappable everywhere * changelog * Threads notification count in main timeline including un participated threads * Changed title and body * Removed "Do not ask again" button * Remove indication about plain text mode coming soon * Prevent `Unable to activate constraint with anchors .. because they have no common ancestor.` crashes. Only link toasts to the top safe area instead of the navigation controller * Revert "Replace attributed string height calculation with a more reliable implementation" This reverts commit 81773cd1e515cc391c1f21b499f61141cb03c810. * Revert "Fix timeline items text height calculation" This reverts commit 8f9eddee501702de84192316bd5b2ff9512d681a. * Revert "Fixes vector-im/element-ios/issues/6441 - Incorrect timeline item text height calculation (#6679)" This reverts commit 405c2d8e324c08c1a40e037aeb3c54e93f30bc9f. * Fixes vector-im/element-ios/issues/6441 - Incorrect timeline item text height calculation * Prepare for new sprint * fullscreen mode with navigation controller superview * full screen improvements * Refine bottom sheet layout * fix for iPad * fix for iPad * updated pod * changelog * Switch to using an API key for interactions with AppStoreConnect while on CI; update fastlane and dependencies * Rich-text editor: Fix text formatting enabled inconsistent state * Labs: Rich-text editor - Fix text formatting switch losing the current content of the composer * Re-order View computed properties and move to private mark * Add intrinsic sized bottom sheet * Snooze controller * Changelog * pan gesture * Fix composer view model tests * some pr suggestions * Rich-text editor: enable translations between Markdown and HTML when toggling text formatting * improved the pan animation to be as the designs * Force a layout on the room bubble cell messageTextView to get a correct frame * Move Move UserAgentParserTests * Add UserSessionDetailsUITests * Improve UserSessionNameUITests * Cleanup tests * Improve UserSessionNameViewModelTests * Test empty state for UserOtherSessions * Fix typo * Cleanup unused code * Add changelog.d file * Threads: removed "unread_thread_notifications" from sync filters for server that doesn't support MSC3773 * keyboard dismissal issue fixed * this works but we need to expose also the maxCompressed height and the minHeight * code improvements * Remove 10s wait on failed initial sync * updated to the latest version of the swiftpm * swipe animation improvements * Threads: removed "unread_thread_notifications" from sync filters for server that doesn't support MSC3773 - Update after review * Revert "Device Manager: Session list item is not tappable everywhere" This reverts commit e6367cba4c8f0cb2cdfe5e3381dcbb7bc0f94c52. * Fixup session list item is not tappable everywhere * improving animations * animation improvement with and without keyboard * Fix accessibility id in UserOtherSessions * fullscreen mode implemented * fixing a bad indentation * Poll not usable after logging out and back in * Changelog * Removed init * voice dictation now works * changelog * plain text * Add voice broadcast slider (#7010) * Display number of unread messages above threads button * Import progress for room keys * Translations update from Weblate (#7080) * Translated using Weblate (Dutch) Currently translated at 100.0% (2311 of 2311 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/nl/ * Translated using Weblate (German) Currently translated at 100.0% (2311 of 2311 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/de/ * Translated using Weblate (Dutch) Currently translated at 100.0% (2312 of 2312 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/nl/ * Translated using Weblate (German) Currently translated at 100.0% (2312 of 2312 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/de/ * Translated using Weblate (Albanian) Currently translated at 99.6% (2303 of 2312 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/sq/ * Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (2312 of 2312 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/pt_BR/ * Translated using Weblate (Ukrainian) Currently translated at 100.0% (2312 of 2312 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/uk/ * Translated using Weblate (Estonian) Currently translated at 100.0% (2312 of 2312 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/et/ * Translated using Weblate (Indonesian) Currently translated at 100.0% (2312 of 2312 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/id/ * Translated using Weblate (Slovak) Currently translated at 100.0% (2312 of 2312 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/sk/ * Translated using Weblate (Italian) Currently translated at 100.0% (2312 of 2312 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/it/ * Translated using Weblate (German) Currently translated at 100.0% (2313 of 2313 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/de/ * Translated using Weblate (Ukrainian) Currently translated at 100.0% (2313 of 2313 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/uk/ * Translated using Weblate (Indonesian) Currently translated at 100.0% (2313 of 2313 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/id/ * Translated using Weblate (Dutch) Currently translated at 100.0% (2315 of 2315 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/nl/ * Translated using Weblate (German) Currently translated at 100.0% (2315 of 2315 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/de/ * Translated using Weblate (Hungarian) Currently translated at 100.0% (2315 of 2315 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/hu/ * Translated using Weblate (Italian) Currently translated at 100.0% (2315 of 2315 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/it/ * Translated using Weblate (Ukrainian) Currently translated at 100.0% (2315 of 2315 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/uk/ * Translated using Weblate (Estonian) Currently translated at 100.0% (2315 of 2315 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/et/ * Translated using Weblate (Indonesian) Currently translated at 100.0% (2315 of 2315 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/id/ * Translated using Weblate (Slovak) Currently translated at 100.0% (2315 of 2315 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/sk/ * Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (2315 of 2315 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/pt_BR/ * Translated using Weblate (Albanian) Currently translated at 99.5% (2305 of 2315 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/sq/ * Translated using Weblate (German) Currently translated at 100.0% (2317 of 2317 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/de/ * Translated using Weblate (Japanese) Currently translated at 66.2% (1534 of 2317 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/ja/ * Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (2317 of 2317 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/pt_BR/ * Translated using Weblate (Ukrainian) Currently translated at 100.0% (2317 of 2317 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/uk/ * Translated using Weblate (Estonian) Currently translated at 100.0% (2317 of 2317 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/et/ * Translated using Weblate (Indonesian) Currently translated at 100.0% (2317 of 2317 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/id/ * Translated using Weblate (Slovak) Currently translated at 100.0% (2317 of 2317 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/sk/ * Translated using Weblate (Japanese) Currently translated at 66.2% (1534 of 2317 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/ja/ * Translated using Weblate (German) Currently translated at 100.0% (2326 of 2326 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/de/ * Translated using Weblate (Ukrainian) Currently translated at 100.0% (2326 of 2326 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/uk/ * Translated using Weblate (Estonian) Currently translated at 100.0% (2326 of 2326 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/et/ * Translated using Weblate (Ukrainian) Currently translated at 100.0% (2326 of 2326 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/uk/ * Translated using Weblate (Estonian) Currently translated at 100.0% (2326 of 2326 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/et/ * Translated using Weblate (German) Currently translated at 100.0% (2326 of 2326 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/de/ * Translated using Weblate (Ukrainian) Currently translated at 100.0% (2326 of 2326 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/uk/ * Translated using Weblate (Estonian) Currently translated at 100.0% (2326 of 2326 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/et/ * Translated using Weblate (Slovak) Currently translated at 100.0% (2326 of 2326 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/sk/ * Translated using Weblate (Italian) Currently translated at 100.0% (2326 of 2326 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/it/ * Translated using Weblate (Hungarian) Currently translated at 100.0% (2326 of 2326 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/hu/ * Translated using Weblate (Indonesian) Currently translated at 100.0% (2326 of 2326 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/id/ * Translated using Weblate (French) Currently translated at 97.6% (2272 of 2326 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/fr/ * Translated using Weblate (Russian) Currently translated at 80.5% (1873 of 2326 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/ru/ * Translated using Weblate (Russian) Currently translated at 80.7% (1879 of 2326 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/ru/ Co-authored-by: Roel ter Maat <roel.termaat@nedap.com> Co-authored-by: Vri <element@vrifox.cc> Co-authored-by: Besnik Bleta <besnik@programeshqip.org> Co-authored-by: lvre <7uu3qrbvm@relay.firefox.com> Co-authored-by: Ihor Hordiichuk <igor_ck@outlook.com> Co-authored-by: Priit Jõerüüt <riot@joeruut.com> Co-authored-by: Linerly <linerly@protonmail.com> Co-authored-by: Jozef Gaal <preklady@mayday.sk> Co-authored-by: random <dictionary@tutamail.com> Co-authored-by: Szimszon <github@oregpreshaz.eu> Co-authored-by: Suguru Hirahara <ovestekona@protonmail.com> Co-authored-by: Thibault Martin <mail@thibaultmart.in> Co-authored-by: Platon Terekhov <ockenfels_vevent@aleeas.com> * Prepare for new sprint * first type of fix * Fix Weblate conflict * dismiss fullscreen when sending a message * improvements * full screen improvements * improving the dismiss of the keyboard * improved code and stability * Fix verification state algorithm * Add localisation for UserSessionCardViewData * Add tests * Improve unit tests * Add changelog.d file * scrollable bottom sheet, with custom size on iOS 16 * changelog * Add VerificationState.isUnverified * some more documentation on how to use the custom detent * Update Rich text editor library version * Fix a crash when a voice message finishes. * hide button and revert state when rotating on an iPhone, also fixed the positioning of the strikethrough and underline, and the maxCompressed size in landscape mode is always adapted to be visible. * changelog * fix to make the function run on RiotSwiftUI * removed a reference to a constraint that was not needed but only created a constraint issue when restored during the animation for dismissal * Add Voice Broadcast left time countdown * Display sync progress on the loading screen * Allow alpha builds to run, if tagged accordingly, when pushing new commits * suggest PR changes * better naming * Update on VoiceBroadcast currentRecordingState creation * fixing tests * Fix scroll issues with VoiceBroadcastPlayback cells (by fixing SizableBaseRoomCell) * Refactor InfoSheet presentation * Add changelog.d file * Add Towncrier file * Add Towncrier file * Update Voice Broadcast Time left asset * Support live playback * update comments * Fix PR comments * Fix the live icon must be displayed (in grey) if the record is paused - It is hidden currently * Update live indicator * Display the playback duration in the default state * Remove useless check condition * Add VBAggregatorLaunchState in Aggregator * Remove useless error states * Add missing buffering state * Support voice broadcast live playback (#7094) * Fix build after automatic rebase from GH * Add Towncrier file * Fix PR comments * Update from latest PR changes requests * Debounce poll messages more * Add changelog.d file * fix * changelog * better changelog * VoiceBroadcast: Fix chunk processing (#7113) * Translated using Weblate (Dutch) (#7119) Currently translated at 100.0% (49 of 49 strings) Translation: Element iOS/Element iOS (Push) Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios-push/nl/ Co-authored-by: Roel ter Maat <roel.termaat@nedap.com> * Translations update from Weblate (#7120) * Translated using Weblate (Dutch) Currently translated at 100.0% (8 of 8 strings) Translation: Element iOS/Element iOS (Dialogs) Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios-dialogs/nl/ * Translated using Weblate (Albanian) Currently translated at 100.0% (8 of 8 strings) Translation: Element iOS/Element iOS (Dialogs) Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios-dialogs/sq/ * Translated using Weblate (Russian) Currently translated at 100.0% (8 of 8 strings) Translation: Element iOS/Element iOS (Dialogs) Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios-dialogs/ru/ * Translated using Weblate (Spanish) Currently translated at 100.0% (8 of 8 strings) Translation: Element iOS/Element iOS (Dialogs) Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios-dialogs/es/ Co-authored-by: Roel ter Maat <roel.termaat@nedap.com> Co-authored-by: Besnik Bleta <besnik@programeshqip.org> Co-authored-by: Platon Terekhov <ockenfels_vevent@aleeas.com> Co-authored-by: iaiz <git@iapellaniz.com> * Translations update from Weblate (#7121) * Translated using Weblate (Dutch) Currently translated at 100.0% (2311 of 2311 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/nl/ * Translated using Weblate (German) Currently translated at 100.0% (2311 of 2311 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/de/ * Translated using Weblate (Dutch) Currently translated at 100.0% (2312 of 2312 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/nl/ * Translated using Weblate (German) Currently translated at 100.0% (2312 of 2312 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/de/ * Translated using Weblate (Albanian) Currently translated at 99.6% (2303 of 2312 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/sq/ * Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (2312 of 2312 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/pt_BR/ * Translated using Weblate (Ukrainian) Currently translated at 100.0% (2312 of 2312 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/uk/ * Translated using Weblate (Estonian) Currently translated at 100.0% (2312 of 2312 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/et/ * Translated using Weblate (Indonesian) Currently translated at 100.0% (2312 of 2312 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/id/ * Translated using Weblate (Slovak) Currently translated at 100.0% (2312 of 2312 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/sk/ * Translated using Weblate (Italian) Currently translated at 100.0% (2312 of 2312 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/it/ * Translated using Weblate (German) Currently translated at 100.0% (2313 of 2313 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/de/ * Translated using Weblate (Ukrainian) Currently translated at 100.0% (2313 of 2313 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/uk/ * Translated using Weblate (Indonesian) Currently translated at 100.0% (2313 of 2313 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/id/ * Translated using Weblate (Dutch) Currently translated at 100.0% (2315 of 2315 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/nl/ * Translated using Weblate (German) Currently translated at 100.0% (2315 of 2315 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/de/ * Translated using Weblate (Hungarian) Currently translated at 100.0% (2315 of 2315 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/hu/ * Translated using Weblate (Italian) Currently translated at 100.0% (2315 of 2315 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/it/ * Translated using Weblate (Ukrainian) Currently translated at 100.0% (2315 of 2315 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/uk/ * Translated using Weblate (Estonian) Currently translated at 100.0% (2315 of 2315 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/et/ * Translated using Weblate (Indonesian) Currently translated at 100.0% (2315 of 2315 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/id/ * Translated using Weblate (Slovak) Currently translated at 100.0% (2315 of 2315 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/sk/ * Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (2315 of 2315 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/pt_BR/ * Translated using Weblate (Albanian) Currently translated at 99.5% (2305 of 2315 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/sq/ * Translated using Weblate (German) Currently translated at 100.0% (2317 of 2317 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/de/ * Translated using Weblate (Japanese) Currently translated at 66.2% (1534 of 2317 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/ja/ * Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (2317 of 2317 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/pt_BR/ * Translated using Weblate (Ukrainian) Currently translated at 100.0% (2317 of 2317 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/uk/ * Translated using Weblate (Estonian) Currently translated at 100.0% (2317 of 2317 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/et/ * Translated using Weblate (Indonesian) Currently translated at 100.0% (2317 of 2317 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/id/ * Translated using Weblate (Slovak) Currently translated at 100.0% (2317 of 2317 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/sk/ * Translated using Weblate (Japanese) Currently translated at 66.2% (1534 of 2317 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/ja/ * Translated using Weblate (German) Currently translated at 100.0% (2326 of 2326 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/de/ * Translated using Weblate (Ukrainian) Currently translated at 100.0% (2326 of 2326 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/uk/ * Translated using Weblate (Estonian) Currently translated at 100.0% (2326 of 2326 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/et/ * Translated using Weblate (Ukrainian) Currently translated at 100.0% (2326 of 2326 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/uk/ * Translated using Weblate (Estonian) Currently translated at 100.0% (2326 of 2326 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/et/ * Translated using Weblate (German) Currently translated at 100.0% (2326 of 2326 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/de/ * Translated using Weblate (Ukrainian) Currently translated at 100.0% (2326 of 2326 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/uk/ * Translated using Weblate (Estonian) Currently translated at 100.0% (2326 of 2326 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/et/ * Translated using Weblate (Slovak) Currently translated at 100.0% (2326 of 2326 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/sk/ * Translated using Weblate (Italian) Currently translated at 100.0% (2326 of 2326 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/it/ * Translated using Weblate (Hungarian) Currently translated at 100.0% (2326 of 2326 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/hu/ * Translated using Weblate (Indonesian) Currently translated at 100.0% (2326 of 2326 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/id/ * Translated using Weblate (French) Currently translated at 97.6% (2272 of 2326 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/fr/ * Translated using Weblate (Russian) Currently translated at 80.5% (1873 of 2326 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/ru/ * Translated using Weblate (Russian) Currently translated at 80.7% (1879 of 2326 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/ru/ * Translated using Weblate (Albanian) Currently translated at 98.9% (2302 of 2326 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/sq/ Co-authored-by: Roel ter Maat <roel.termaat@nedap.com> Co-authored-by: Vri <element@vrifox.cc> Co-authored-by: Besnik Bleta <besnik@programeshqip.org> Co-authored-by: lvre <7uu3qrbvm@relay.firefox.com> Co-authored-by: Ihor Hordiichuk <igor_ck@outlook.com> Co-authored-by: Priit Jõerüüt <riot@joeruut.com> Co-authored-by: Linerly <linerly@protonmail.com> Co-authored-by: Jozef Gaal <preklady@mayday.sk> Co-authored-by: random <dictionary@tutamail.com> Co-authored-by: Szimszon <github@oregpreshaz.eu> Co-authored-by: Suguru Hirahara <ovestekona@protonmail.com> Co-authored-by: Thibault Martin <mail@thibaultmart.in> Co-authored-by: Platon Terekhov <ockenfels_vevent@aleeas.com> Co-authored-by: Ismail Gulek <ismailg@matrix.org> Co-authored-by: Weblate <noreply@weblate.org> * Translations update from Weblate (#7122) * Translated using Weblate (Dutch) Currently translated at 100.0% (2311 of 2311 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/nl/ * Translated using Weblate (German) Currently translated at 100.0% (2311 of 2311 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/de/ * Translated using Weblate (Dutch) Currently translated at 100.0% (2312 of 2312 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/nl/ * Translated using Weblate (German) Currently translated at 100.0% (2312 of 2312 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/de/ * Translated using Weblate (Albanian) Currently translated at 99.6% (2303 of 2312 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/sq/ * Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (2312 of 2312 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/pt_BR/ * Translated using Weblate (Ukrainian) Currently translated at 100.0% (2312 of 2312 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/uk/ * Translated using Weblate (Estonian) Currently translated at 100.0% (2312 of 2312 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/et/ * Translated using Weblate (Indonesian) Currently translated at 100.0% (2312 of 2312 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/id/ * Translated using Weblate (Slovak) Currently translated at 100.0% (2312 of 2312 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/sk/ * Translated using Weblate (Italian) Currently translated at 100.0% (2312 of 2312 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/it/ * Translated using Weblate (German) Currently translated at 100.0% (2313 of 2313 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/de/ * Translated using Weblate (Ukrainian) Currently translated at 100.0% (2313 of 2313 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/uk/ * Translated using Weblate (Indonesian) Currently translated at 100.0% (2313 of 2313 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/id/ * Translated using Weblate (Dutch) Currently translated at 100.0% (2315 of 2315 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/nl/ * Translated using Weblate (German) Currently translated at 100.0% (2315 of 2315 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/de/ * Translated using Weblate (Hungarian) Currently translated at 100.0% (2315 of 2315 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/hu/ * Translated using Weblate (Italian) Currently translated at 100.0% (2315 of 2315 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/it/ * Translated using Weblate (Ukrainian) Currently translated at 100.0% (2315 of 2315 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/uk/ * Translated using Weblate (Estonian) Currently translated at 100.0% (2315 of 2315 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/et/ * Translated using Weblate (Indonesian) Currently translated at 100.0% (2315 of 2315 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/id/ * Translated using Weblate (Slovak) Currently translated at 100.0% (2315 of 2315 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/sk/ * Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (2315 of 2315 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/pt_BR/ * Translated using Weblate (Albanian) Currently translated at 99.5% (2305 of 2315 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/sq/ * Translated using Weblate (German) Currently translated at 100.0% (2317 of 2317 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/de/ * Translated using Weblate (Japanese) Currently translated at 66.2% (1534 of 2317 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/ja/ * Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (2317 of 2317 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/pt_BR/ * Translated using Weblate (Ukrainian) Currently translated at 100.0% (2317 of 2317 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/uk/ * Translated using Weblate (Estonian) Currently translated at 100.0% (2317 of 2317 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/et/ * Translated using Weblate (Indonesian) Currently translated at 100.0% (2317 of 2317 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/id/ * Translated using Weblate (Slovak) Currently translated at 100.0% (2317 of 2317 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/sk/ * Translated using Weblate (Japanese) Currently translated at 66.2% (1534 of 2317 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/ja/ * Translated using Weblate (German) Currently translated at 100.0% (2326 of 2326 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/de/ * Translated using Weblate (Ukrainian) Currently translated at 100.0% (2326 of 2326 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/uk/ * Translated using Weblate (Estonian) Currently translated at 100.0% (2326 of 2326 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/et/ * Translated using Weblate (Ukrainian) Currently translated at 100.0% (2326 of 2326 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/uk/ * Translated using Weblate (Estonian) Currently translated at 100.0% (2326 of 2326 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/et/ * Translated using Weblate (German) Currently translated at 100.0% (2326 of 2326 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/de/ * Translated using Weblate (Ukrainian) Currently translated at 100.0% (2326 of 2326 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/uk/ * Translated using Weblate (Estonian) Currently translated at 100.0% (2326 of 2326 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/et/ * Translated using Weblate (Slovak) Currently translated at 100.0% (2326 of 2326 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/sk/ * Translated using Weblate (Italian) Currently translated at 100.0% (2326 of 2326 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/it/ * Translated using Weblate (Hungarian) Currently translated at 100.0% (2326 of 2326 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/hu/ * Translated using Weblate (Indonesian) Currently translated at 100.0% (2326 of 2326 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/id/ * Translated using Weblate (French) Currently translated at 97.6% (2272 of 2326 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/fr/ * Translated using Weblate (Russian) Currently translated at 80.5% (1873 of 2326 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/ru/ * Translated using Weblate (Russian) Currently translated at 80.7% (1879 of 2326 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/ru/ * Translated using Weblate (Albanian) Currently translated at 98.9% (2302 of 2326 strings) Translation: Element iOS/Element iOS Translate-URL: https://translate.element.io/projects/riot-ios/riot-ios/sq/ Co-authored-by: Roel ter Maat <roel.termaat@nedap.com> Co-authored-by: Vri <element@vrifox.cc> Co-authored-by: Besnik Bleta <besnik@programeshqip.org> Co-authored-by: lvre <7uu3qrbvm@relay.firefox.com> Co-authored-by: Ihor Hordiichuk <igor_ck@outlook.com> Co-authored-by: Priit Jõerüüt <riot@joeruut.com> Co-authored-by: Linerly <linerly@protonmail.com> Co-authored-by: Jozef Gaal <preklady@mayday.sk> Co-authored-by: random <dictionary@tutamail.com> Co-authored-by: Szimszon <github@oregpreshaz.eu> Co-authored-by: Suguru Hirahara <ovestekona@protonmail.com> Co-authored-by: Thibault Martin <mail@thibaultmart.in> Co-authored-by: Platon Terekhov <ockenfels_vevent@aleeas.com> Co-authored-by: Ismail Gulek <ismailg@matrix.org> Co-authored-by: Weblate <noreply@weblate.org> * changelog.d: Upgrade MatrixSDK version ([v0.24.5](https://github.com/matrix-org/matrix-ios-sdk/releases/tag/v0.24.5)). * version++ Co-authored-by: paleksandrs <paleksandrs@gmail.com> Co-authored-by: Kat Gerasimova <ekaterinag@element.io> Co-authored-by: Anderas <andyuhnak@gmail.com> Co-authored-by: Element Translate Bot <admin@riot.im> Co-authored-by: lvre <7uu3qrbvm@relay.firefox.com> Co-authored-by: Priit Jõerüüt <riot@joeruut.com> Co-authored-by: Vri <element@vrifox.cc> Co-authored-by: Johan Smits <johan@smitsmail.net> Co-authored-by: gulekismail <ismailgulek0@gmail.com> Co-authored-by: Gil Eluard <gile@element.io> Co-authored-by: Aleksandrs Proskurins <aleksandrsp@element.io> Co-authored-by: aringenbach <80891108+aringenbach@users.noreply.github.com> Co-authored-by: Mauro Romito <mauro.romito@element.io> Co-authored-by: Alfonso Grillo <alfogrillo@element.io> Co-authored-by: Velin92 <34335419+Velin92@users.noreply.github.com> Co-authored-by: aringenbach <arnaudr@element.io> Co-authored-by: Alfonso Grillo <alfogrillo@gmail.com> Co-authored-by: Stefan Ceriu <stefanc@matrix.org> Co-authored-by: Stefan Ceriu <stefan.ceriu@gmail.com> Co-authored-by: Yoan Pintas <y.pintas@gmail.com> Co-authored-by: Roel ter Maat <roel.termaat@nedap.com> Co-authored-by: Besnik Bleta <besnik@programeshqip.org> Co-authored-by: Ihor Hordiichuk <igor_ck@outlook.com> Co-authored-by: Linerly <linerly@protonmail.com> Co-authored-by: Jozef Gaal <preklady@mayday.sk> Co-authored-by: random <dictionary@tutamail.com> Co-authored-by: Szimszon <github@oregpreshaz.eu> Co-authored-by: Suguru Hirahara <ovestekona@protonmail.com> Co-authored-by: Thibault Martin <mail@thibaultmart.in> Co-authored-by: Platon Terekhov <ockenfels_vevent@aleeas.com> Co-authored-by: Doug <douglase@element.io> Co-authored-by: Philippe Loriaux <philippel@element.io> Co-authored-by: Phl-Pro <philippe.loriaux@niji.fr> Co-authored-by: Giom Foret <giom@matrix.org> Co-authored-by: iaiz <git@iapellaniz.com> Co-authored-by: Weblate <noreply@weblate.org>
444 lines
18 KiB
Swift
444 lines
18 KiB
Swift
//
|
|
// Copyright 2020 Vector Creations Ltd
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
/// BuildSettings provides settings computed at build time.
|
|
/// In future, it may be automatically generated from xcconfig files
|
|
@objcMembers
|
|
final class BuildSettings: NSObject {
|
|
|
|
// MARK: - Bundle Settings
|
|
static var applicationGroupIdentifier: String {
|
|
guard let applicationGroupIdentifier = Bundle.app.object(forInfoDictionaryKey: "applicationGroupIdentifier") as? String else {
|
|
fatalError("applicationGroupIdentifier should be defined")
|
|
}
|
|
return applicationGroupIdentifier
|
|
}
|
|
|
|
static var baseBundleIdentifier: String {
|
|
guard let baseBundleIdentifier = Bundle.app.object(forInfoDictionaryKey: "baseBundleIdentifier") as? String else {
|
|
fatalError("baseBundleIdentifier should be defined")
|
|
}
|
|
return baseBundleIdentifier
|
|
}
|
|
|
|
static var keychainAccessGroup: String {
|
|
guard let keychainAccessGroup = Bundle.app.object(forInfoDictionaryKey: "keychainAccessGroup") as? String else {
|
|
fatalError("keychainAccessGroup should be defined")
|
|
}
|
|
return keychainAccessGroup
|
|
}
|
|
|
|
static var applicationURLScheme: String? {
|
|
guard let urlTypes = Bundle.app.object(forInfoDictionaryKey: "CFBundleURLTypes") as? [AnyObject],
|
|
let urlTypeDictionary = urlTypes.first as? [String: AnyObject],
|
|
let urlSchemes = urlTypeDictionary["CFBundleURLSchemes"] as? [AnyObject],
|
|
let externalURLScheme = urlSchemes.first as? String else {
|
|
return nil
|
|
}
|
|
|
|
return externalURLScheme
|
|
}
|
|
|
|
static var pushKitAppIdProd: String {
|
|
return baseBundleIdentifier + ".ios.voip.prod"
|
|
}
|
|
|
|
static var pushKitAppIdDev: String {
|
|
return baseBundleIdentifier + ".ios.voip.dev"
|
|
}
|
|
|
|
static var pusherAppIdProd: String {
|
|
return baseBundleIdentifier + ".ios.prod"
|
|
}
|
|
|
|
static var pusherAppIdDev: String {
|
|
return baseBundleIdentifier + ".ios.dev"
|
|
}
|
|
|
|
static var pushKitAppId: String {
|
|
#if DEBUG
|
|
return pushKitAppIdDev
|
|
#else
|
|
return pushKitAppIdProd
|
|
#endif
|
|
}
|
|
|
|
static var pusherAppId: String {
|
|
#if DEBUG
|
|
return pusherAppIdDev
|
|
#else
|
|
return pusherAppIdProd
|
|
#endif
|
|
}
|
|
|
|
// Element-Web instance for the app
|
|
static let applicationWebAppUrlString = "https://app.element.io"
|
|
|
|
|
|
// MARK: - Localization
|
|
|
|
/// Whether to allow the app to use a right to left layout or force left to right for all languages
|
|
static let disableRightToLeftLayout = true
|
|
|
|
|
|
// MARK: - Server configuration
|
|
|
|
// Default servers proposed on the authentication screen
|
|
static let serverConfigDefaultHomeserverUrlString = "https://matrix.org"
|
|
static let serverConfigDefaultIdentityServerUrlString = "https://vector.im"
|
|
|
|
static let serverConfigSygnalAPIUrlString = "https://matrix.org/_matrix/push/v1/notify"
|
|
|
|
|
|
// MARK: - Legal URLs
|
|
|
|
// Note: Set empty strings to hide the related entry in application settings
|
|
static let applicationCopyrightUrlString = "https://element.io/copyright"
|
|
static let applicationPrivacyPolicyUrlString = "https://element.io/privacy"
|
|
static let applicationTermsConditionsUrlString = "https://element.io/terms-of-service"
|
|
static let applicationHelpUrlString =
|
|
"https://element.io/help"
|
|
|
|
|
|
// MARK: - Permalinks
|
|
// Hosts/Paths for URLs that will considered as valid permalinks. Those permalinks are opened within the app.
|
|
static let permalinkSupportedHosts: [String: [String]] = [
|
|
"app.element.io": [],
|
|
"staging.element.io": [],
|
|
"develop.element.io": [],
|
|
"mobile.element.io": [""],
|
|
// Historical ones
|
|
"riot.im": ["/app", "/staging", "/develop"],
|
|
"www.riot.im": ["/app", "/staging", "/develop"],
|
|
"vector.im": ["/app", "/staging", "/develop"],
|
|
"www.vector.im": ["/app", "/staging", "/develop"],
|
|
// Official Matrix ones
|
|
"matrix.to": ["/"],
|
|
"www.matrix.to": ["/"],
|
|
// Client Permalinks (for use with `BuildSettings.clientPermalinkBaseUrl`)
|
|
// "example.com": ["/"],
|
|
// "www.example.com": ["/"],
|
|
]
|
|
|
|
// For use in clients that use a custom base url for permalinks rather than matrix.to.
|
|
// This baseURL is used to generate permalinks within the app (E.g. timeline message permalinks).
|
|
// Optional String that when set is used as permalink base, when nil matrix.to format is used.
|
|
// Example value would be "https://www.example.com", note there is no trailing '/'.
|
|
static let clientPermalinkBaseUrl: String? = nil
|
|
|
|
// MARK: - VoIP
|
|
static var allowVoIPUsage: Bool {
|
|
#if canImport(JitsiMeetSDK)
|
|
return true
|
|
#else
|
|
return false
|
|
#endif
|
|
}
|
|
static let stunServerFallbackUrlString: String? = "stun:turn.matrix.org"
|
|
|
|
// MARK: - Public rooms Directory
|
|
// List of homeservers for the public rooms directory
|
|
static let publicRoomsDirectoryServers = [
|
|
"matrix.org",
|
|
"gitter.im"
|
|
]
|
|
|
|
// MARK: - Rooms Screen
|
|
static let roomsAllowToJoinPublicRooms: Bool = true
|
|
|
|
// MARK: - Analytics
|
|
|
|
/// A type that represents how to set up the analytics module in the app.
|
|
///
|
|
/// **Note:** Analytics are disabled by default for forks.
|
|
/// If you are maintaining a fork, set custom configurations.
|
|
struct AnalyticsConfiguration {
|
|
/// Whether or not analytics should be enabled.
|
|
let isEnabled: Bool
|
|
/// The host to use for PostHog analytics.
|
|
let host: String
|
|
/// The public key for submitting analytics.
|
|
let apiKey: String
|
|
/// The URL to open with more information about analytics terms.
|
|
let termsURL: URL
|
|
}
|
|
|
|
#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: BuildSettings.baseBundleIdentifier.starts(with: "im.vector.app"),
|
|
host: "https://posthog.element.dev",
|
|
apiKey: "phc_VtA1L35nw3aeAtHIx1ayrGdzGkss7k1xINeXcoIQzXN",
|
|
termsURL: URL(string: "https://element.io/cookie-policy")!)
|
|
#else
|
|
/// The configuration to use for analytics. Set `isEnabled` to false to disable analytics.
|
|
static let analyticsConfiguration = AnalyticsConfiguration(isEnabled: BuildSettings.baseBundleIdentifier.starts(with: "im.vector.app"),
|
|
host: "https://posthog.hss.element.io",
|
|
apiKey: "phc_Jzsm6DTm6V2705zeU5dcNvQDlonOR68XvX2sh1sEOHO",
|
|
termsURL: URL(string: "https://element.io/cookie-policy")!)
|
|
#endif
|
|
|
|
|
|
// MARK: - Bug report
|
|
static let bugReportEndpointUrlString = "https://riot.im/bugreports"
|
|
// Use the name allocated by the bug report server
|
|
static let bugReportApplicationId = "riot-ios"
|
|
static let bugReportUISIId = "element-auto-uisi"
|
|
|
|
|
|
// MARK: - Integrations
|
|
static let integrationsUiUrlString = "https://scalar.vector.im/"
|
|
static let integrationsRestApiUrlString = "https://scalar.vector.im/api"
|
|
// Widgets in those paths require a scalar token
|
|
static let integrationsScalarWidgetsPaths = [
|
|
"https://scalar.vector.im/_matrix/integrations/v1",
|
|
"https://scalar.vector.im/api",
|
|
"https://scalar-staging.vector.im/_matrix/integrations/v1",
|
|
"https://scalar-staging.vector.im/api",
|
|
"https://scalar-staging.riot.im/scalar/api",
|
|
]
|
|
// Jitsi server used outside integrations to create conference calls from the call button in the timeline.
|
|
// Setting this to nil effectively disables Jitsi conference calls (given that there is no wellknown override).
|
|
// Note: this will not remove the conference call button, use roomScreenAllowVoIPForNonDirectRoom setting.
|
|
static let jitsiServerUrl: URL? = URL(string: "https://jitsi.riot.im")
|
|
|
|
|
|
// MARK: - Features
|
|
|
|
/// Setting to force protection by pin code
|
|
static let forcePinProtection: Bool = false
|
|
|
|
/// Max allowed time to continue using the app without prompting PIN
|
|
static let pinCodeGraceTimeInSeconds: TimeInterval = 0
|
|
|
|
/// Force non-jailbroken app usage
|
|
static let forceNonJailbrokenUsage: Bool = true
|
|
|
|
static let allowSendingStickers: Bool = true
|
|
|
|
static let allowLocalContactsAccess: Bool = true
|
|
|
|
static let allowInviteExernalUsers: Bool = true
|
|
|
|
static let allowBackgroundAudioMessagePlayback: Bool = true
|
|
|
|
// MARK: - Side Menu
|
|
static let enableSideMenu: Bool = true && !newAppLayoutEnabled
|
|
static let sideMenuShowInviteFriends: Bool = true
|
|
|
|
/// Whether to read the `io.element.functional_members` state event and exclude any service members when computing a room's name and avatar.
|
|
static let supportFunctionalMembers: Bool = true
|
|
|
|
// MARK: - Feature Specifics
|
|
|
|
/// Not allowed pin codes. User won't be able to select one of the pin in the list.
|
|
static let notAllowedPINs: [String] = []
|
|
|
|
/// Maximum number of allowed pin failures when unlocking, before force logging out the user. Defaults to `3`
|
|
static let maxAllowedNumberOfPinFailures: Int = 3
|
|
|
|
/// Maximum number of allowed biometrics failures when unlocking, before fallbacking the user to the pin if set or logging out the user. Defaults to `5`
|
|
static let maxAllowedNumberOfBiometricsFailures: Int = 5
|
|
|
|
/// Indicates should the app log out the user when number of PIN failures reaches `maxAllowedNumberOfPinFailures`. Defaults to `false`
|
|
static let logOutUserWhenPINFailuresExceeded: Bool = false
|
|
|
|
/// Indicates should the app log out the user when number of biometrics failures reaches `maxAllowedNumberOfBiometricsFailures`. Defaults to `false`
|
|
static let logOutUserWhenBiometricsFailuresExceeded: Bool = false
|
|
|
|
static let showNotificationsV2: Bool = true
|
|
|
|
// MARK: - Main Tabs
|
|
|
|
static let homeScreenShowFavouritesTab: Bool = true
|
|
static let homeScreenShowPeopleTab: Bool = true
|
|
static let homeScreenShowRoomsTab: Bool = true
|
|
|
|
// MARK: - General Settings Screen
|
|
|
|
static let settingsScreenShowUserFirstName: Bool = false
|
|
static let settingsScreenShowUserSurname: Bool = false
|
|
static let settingsScreenAllowAddingEmailThreepids: Bool = true
|
|
static let settingsScreenAllowAddingPhoneThreepids: Bool = true
|
|
static let settingsScreenShowThreepidExplanatory: Bool = true
|
|
static let settingsScreenShowDiscoverySettings: Bool = true
|
|
static let settingsScreenAllowIdentityServerConfig: Bool = true
|
|
static let settingsScreenShowConfirmMediaSize: Bool = true
|
|
static let settingsScreenShowAdvancedSettings: Bool = true
|
|
static let settingsScreenShowLabSettings: Bool = true
|
|
static let settingsScreenAllowChangingRageshakeSettings: Bool = true
|
|
static let settingsScreenAllowChangingCrashUsageDataSettings: Bool = true
|
|
static let settingsScreenAllowBugReportingManually: Bool = true
|
|
static let settingsScreenAllowDeactivatingAccount: Bool = true
|
|
static let settingsScreenShowChangePassword:Bool = true
|
|
static let settingsScreenShowEnableStunServerFallback: Bool = true
|
|
static let settingsScreenShowNotificationDecodedContentOption: Bool = true
|
|
static let settingsScreenShowNsfwRoomsOption: Bool = true
|
|
static let settingsSecurityScreenShowSessions:Bool = true
|
|
static let settingsSecurityScreenShowSetupBackup:Bool = true
|
|
static let settingsSecurityScreenShowRestoreBackup:Bool = true
|
|
static let settingsSecurityScreenShowDeleteBackup:Bool = true
|
|
static let settingsSecurityScreenShowCryptographyInfo:Bool = true
|
|
static let settingsSecurityScreenShowCryptographyExport:Bool = true
|
|
static let settingsSecurityScreenShowAdvancedUnverifiedDevices:Bool = true
|
|
/// A setting to enable the presence configuration settings section.
|
|
static let settingsScreenPresenceAllowConfiguration: Bool = false
|
|
|
|
// MARK: - Timeline settings
|
|
static let roomInputToolbarCompressionMode: MediaCompressionMode = .prompt
|
|
|
|
enum MediaCompressionMode {
|
|
case prompt, small, medium, large, none
|
|
}
|
|
|
|
// MARK: - Room Creation Screen
|
|
|
|
static let roomCreationScreenAllowEncryptionConfiguration: Bool = true
|
|
static let roomCreationScreenRoomIsEncrypted: Bool = true
|
|
static let roomCreationScreenAllowRoomTypeConfiguration: Bool = true
|
|
static let roomCreationScreenRoomIsPublic: Bool = false
|
|
|
|
// MARK: - Room Screen
|
|
|
|
static let roomScreenAllowVoIPForDirectRoom: Bool = true
|
|
static let roomScreenAllowVoIPForNonDirectRoom: Bool = true
|
|
static let roomScreenAllowCameraAction: Bool = true
|
|
static let roomScreenAllowMediaLibraryAction: Bool = true
|
|
static let roomScreenAllowStickerAction: Bool = true
|
|
static let roomScreenAllowFilesAction: Bool = true
|
|
|
|
// Timeline style
|
|
static let roomScreenAllowTimelineStyleConfiguration: Bool = true
|
|
static let roomScreenTimelineDefaultStyleIdentifier: RoomTimelineStyleIdentifier = .plain
|
|
static var isRoomScreenEnableMessageBubblesByDefault: Bool {
|
|
return self.roomScreenTimelineDefaultStyleIdentifier == .bubble
|
|
}
|
|
static let roomScreenUseOnlyLatestUserAvatarAndName: Bool = false
|
|
|
|
/// Allow split view detail view stacking
|
|
static let allowSplitViewDetailsScreenStacking: Bool = true
|
|
|
|
// MARK: - Room Contextual Menu
|
|
|
|
static let roomContextualMenuShowMoreOptionForMessages: Bool = true
|
|
static let roomContextualMenuShowMoreOptionForStates: Bool = true
|
|
static let roomContextualMenuShowReportContentOption: Bool = true
|
|
|
|
// MARK: - Room Info Screen
|
|
|
|
static let roomInfoScreenShowIntegrations: Bool = true
|
|
|
|
// MARK: - Room Settings Screen
|
|
|
|
static let roomSettingsScreenShowLowPriorityOption: Bool = true
|
|
static let roomSettingsScreenShowDirectChatOption: Bool = true
|
|
static let roomSettingsScreenAllowChangingAccessSettings: Bool = true
|
|
static let roomSettingsScreenAllowChangingHistorySettings: Bool = true
|
|
static let roomSettingsScreenShowAddressSettings: Bool = true
|
|
static let roomSettingsScreenShowAdvancedSettings: Bool = true
|
|
static let roomSettingsScreenAdvancedShowEncryptToVerifiedOption: Bool = true
|
|
|
|
// MARK: - Room Member Screen
|
|
|
|
static let roomMemberScreenShowIgnore: Bool = true
|
|
|
|
// MARK: - Message
|
|
static let messageDetailsAllowShare: Bool = true
|
|
static let messageDetailsAllowPermalink: Bool = true
|
|
static let messageDetailsAllowViewSource: Bool = true
|
|
static let messageDetailsAllowSave: Bool = true
|
|
static let messageDetailsAllowCopyMedia: Bool = true
|
|
static let messageDetailsAllowPasteMedia: Bool = true
|
|
|
|
// MARK: - Notifications
|
|
static let decryptNotificationsByDefault: Bool = true
|
|
|
|
// MARK: - HTTP
|
|
/// Additional HTTP headers will be sent by all requests. Not recommended to use request-specific headers, like `Authorization`.
|
|
/// Empty dictionary by default.
|
|
static let httpAdditionalHeaders: [String: String] = [:]
|
|
|
|
|
|
// MARK: - Authentication Screen
|
|
static let authScreenShowRegister = true
|
|
static let authScreenShowPhoneNumber = true
|
|
static let authScreenShowForgotPassword = true
|
|
static let authScreenShowCustomServerOptions = true
|
|
static let authScreenShowSocialLoginSection = true
|
|
|
|
// MARK: - Authentication Options
|
|
static let authEnableRefreshTokens = false
|
|
|
|
// MARK: - Onboarding
|
|
static let onboardingShowAccountPersonalization = true
|
|
static let onboardingEnableNewAuthenticationFlow = true
|
|
|
|
// MARK: - Unified Search
|
|
static let unifiedSearchScreenShowPublicDirectory = true
|
|
|
|
// MARK: - Secrets Recovery
|
|
static let secretsRecoveryAllowReset = true
|
|
|
|
// MARK: - UISI Autoreporting
|
|
static let cryptoUISIAutoReportingEnabled = false
|
|
|
|
// MARK: - Polls
|
|
|
|
static let pollsEnabled = true
|
|
|
|
// MARK: - Location Sharing
|
|
|
|
/// Overwritten by the home server's .well-known configuration (if any exists)
|
|
static let defaultTileServerMapStyleURL = URL(string: "https://api.maptiler.com/maps/streets/style.json?key=fU3vlMsMn4Jb6dnEIFsx")!
|
|
|
|
static let locationSharingEnabled = true
|
|
|
|
// MARK: - Voice Broadcast
|
|
static let voiceBroadcastChunkLength: Int = 120
|
|
static let voiceBroadcastMaxLength: UInt = 14400 // 240min.
|
|
|
|
// MARK: - MXKAppSettings
|
|
static let enableBotCreation: Bool = false
|
|
static let maxAllowedMediaCacheSize: Int = 1073741824
|
|
static let presenceColorForOfflineUser: Int = 15020851
|
|
static let presenceColorForOnlineUser: Int = 3401011
|
|
static let presenceColorForUnavailableUser: Int = 15066368
|
|
static let showAllEventsInRoomHistory: Bool = false
|
|
static let showLeftMembersInRoomMemberList: Bool = false
|
|
static let showRedactionsInRoomHistory: Bool = true
|
|
static let showUnsupportedEventsInRoomHistory: Bool = false
|
|
static let sortRoomMembersUsingLastSeenTime: Bool = true
|
|
static let syncLocalContacts: Bool = false
|
|
|
|
// MARK: - New App Layout
|
|
static let newAppLayoutEnabled = true
|
|
|
|
// MARK: - QR Login
|
|
|
|
/// Flag indicating whether the QR login enabled from login screen
|
|
static let qrLoginEnabledFromNotAuthenticated = true
|
|
/// Flag indicating whether the QR login enabled from Device Manager screen
|
|
static let qrLoginEnabledFromAuthenticated = false
|
|
/// Flag indicating whether displaying QRs enabled for the QR login screens
|
|
static let qrLoginEnableDisplayingQRs = false
|
|
|
|
static let rendezvousServerBaseURL = URL(string: "https://rendezvous.lab.element.dev/")!
|
|
|
|
// MARK: - Alerts
|
|
static let showUnverifiedSessionsAlert = true
|
|
}
|