Make the tab bar hide when pushing screens on iPhone as requested by the designs.
Annoyingly we couldn't simply add a second call to .toolbar(.hidden, for:.tabBar) on the pushed screens, but this way is automatic and there's still an override so it's good enough for now.
* Remove the huge conditional compilation block on AppSettings.
It is still required for the ElementCallBaseURL however.
* Add a feature flag for spaces.
* Add the basis for a state machine to UserSessionFlowCoordinator.
* Move the Settings flow from the Chats flow to UserSession flow.
It now works from the Spaces tab.
* Add a StateMachineFactory and use it to publish the state in the tests.
* Add a SpaceExplorerFlowCoordinator.
* Project tweaks
- iOS 17.5 so that we can use the simulator.
- Make a Spaces group for common Space related views.
- Fix the tab bar badge colour on iPhone landscape and iPadOS 17 (18 is still wrong 😒)
* Allow MediaPickerScreen users to select the media selection mode (single or multiple)
* Fix cancellation
* Add support for multiple media URLs on the MediaUploadPreviewScreen.
* Support processing more URLs on the `MediaUploadingPreprocessor` and sending more on the `MediaUploadPreviewScreen`
* Add feature flag for `multipleAttachmentUploadEnabled`
* Add a label showing the current preview item index in the MediaUploadPreviewScreen
* Add support for dragging and dropping or pasting multiple items at the same time.
* Support sharing more than one file through the share extension.
* Limit the number of items that can be shared in one go to 5.
* Fix unit tests
* Fix incorrect fatal error when dealing with single selection media pickers.
* Document the `multipleAttachmentUploadEnabled` usage in the context of the MediaPicker.
* Use a task group for processing selected media in the photo library picker.
* Use a task group for processing multiple selected media in the MediaUploadingPreprocessor
* Switch the maximum number of items that can be shared to 10.
* Allow multiple items to be pasted at the same time.
* Replace deprecated URL methods.
* Start putting log files in Library/Logs (moving existing files with a migration.)
* Make Tracing.deleteLogFiles aware of the legacy logs location.
* Allow the logs to be collected from a different directory.
* Move the rageshakeURL configuration from the BugReportService to AppSettings.
* Refactor Target to return a handle when configuring.
This helps with reconfiguration and removes the @MainActor constraint.
* Merge the AuthenticationServer with the QRCodeLoginService.
* Merge AuthenticationClientBuilderFactory and AuthenticationClientBuilder into AuthenticationClientFactory
The separation is no longer needed now that password/OIDC login and QR code login have a similar API shape.
As we're using an overlay for the presentation (to keep the web view alive when minimized), we need to make sure to hide everything behind the overlay from VoiceOver.
* Move the AuthenticationStartScreen into the Authentication directory.
* Commit the updated Sentry license.
No idea why they dropped the 2024 🤷♂️
* Use StateStoreViewModelV2 in BugReportScreen.
* Use StateStoreViewModelV2 in UserDetailsEditScreen.
* Use StateStoreViewModelV2 in NotificationSettingsScreen.
* Use StateStoreViewModelV2 in NotificationSettingsEditScreen.
* Use StateStoreViewModelV2 in LegalInformationScreen.
* Use StateStoreViewModelV2 in LogViewerScreen.
* Use StateStoreViewModelV2 in AnalyticsSettingsScreen.
* Rename AdvancedSettingsScreen directory.
* Use StateStoreViewModelV2 in EncryptionResetScreen.
* Use StateStoreViewModelV2 in EncryptionResetPasswordScreen.
* Use StateStoreViewModelV2 in SecureBackup…Screens.
* Use StateStoreViewModelV2 in LoginScreen.
Seems this one was ignored waiting on the fulfillment transitionValues implementation.
* Use StateStoreViewModelV2 in DeactivateAccountScreen.
* Move DeactivateAccountScreen into the Settings directory.
* Make account provider configuration more flexible.
- Change defaultHomeserverAddress to an array of providers (needs UI).
- Add allowOtherAccountProviders to prevent the user from manually entering a provider.
* Refactor QR code scan failures into a common type.
* Validate scanned QR codes against the allowed account providers.
* Hide the login flow on the QR code screen when restricted.
* Fix various small errors when running in the Swift 6 language mode
* Make the `TargetConfiguration` run on the main actor.
* Fixed a comment
* Add a comment as to why we can't make the whole NSE a main actor.
* Fix the unit tests
* Fix `blankLinesAtStartOfScope` swiftformat error.
* Add support for account provisioning links and route them to the authentication flow.
* Use the provisioning parameters to configure the authentication flow.
* Add UI tests for the provisioned authentication flow.
* Record new preview snapshots.
* Add unit tests.
* Make the domain configurable in the app settings.
* Use the loginHint in the login screen too.