* Remove the dynamic member lookup from UserSettings in favour of nested access.
* Remove forwarding methods from UserSettings.
* Update the Enterprise submodule.
* Add a multi-account feature flag
The flag lives in Developer options. Switching it on arms the upcoming one-time multi-account announcement, whose seen state defaults to true so fresh installs never see it.
* Add an Add account row to Settings behind the multi-account flag
The row sits in its own section under the user status, as in the designs. Tapping it is routed up to the settings flow, which ignores it until the add account flow exists.
* Remove the Developer options view model tests
The Developer options screen is excluded from coverage, so these tests don't add value.
* Apply review suggestions to the multi-account flag
- Order the multi-account requirements in DeveloperOptionsProtocol to match the screen's sections.
- Drop the redundant "Experimental" from the toggle's subtitle.
Remove some redundant injections when passed alongside a user session too.
# Conflicts:
# ElementX/Sources/Screens/PinnedEventsTimelineScreen/View/PinnedEventsTimelineScreen.swift
# ElementX/Sources/Screens/Timeline/TimelineViewModel.swift
* Update the SDK and hook up the status from Room Heroes.
Also start requesting profiles via sss when the feature flag is enabled.
* Add support for subscribing to your own profile.
* Show the user's own Status emoji on the SettingsScreen.
* Add the UI for setting your own status.
* Add placeholder action for selecting a custom emoji and fix some accessibility issues.
* Correctly handle the re-opening of the main window.
Add an additional safe-guard to ensure only one main window exists.
Make sure all secondary windows use the correct tint colour.
* Fix a bug where the settings screen isn't shown on macOS when the AppLock feature is enabled.
* Settings > Change Done button to Close
Do it!
* Change ordering of menu item sections
Swap manage app section with manage account section.
* Use a primaryAction placement for the close button.
* Generate the preview snapshots.
* Merge the Manage account and Manage devices actions.
---------
Co-authored-by: Doug <douglase@element.io>
* Add some tests for DeferredFulfillment with Observation.
* Use StateStoreViewModelV2 in AuthenticationStartScreen.
* Use StateStoreViewModelV2 in ServerConfirmationScreen.
* Use StateStoreViewModelV2 in ServerSelectionScreen.
* Use StateStoreViewModelV2 in SoftLogoutScreen.
* Use StateStoreViewModelV2 in SettingsScreen.
* Use StateStoreViewModelV2 in DeveloperOptionsScreen.
* Use StateStoreViewModelV2 in AdvancedSettingsScreen.
* Make the map tiler key optional.
* Make the bug report URL optional.
* Make the sentry URL optional.
* Make the analytics configuration optional and handle consent taking Sentry into account.
* Stop prompting users to report crashes when Sentry is disabled.
* Add the networkMonitor to the NSE and delete the old MockMediaLoader
* Generate a MediaLoaderMock through AutoMockable and use it in the MediaProviderTests
* Implement an ImageProvider mechanism that automatically tries reloading images when connectivity is established again and use it for LoadableImages
* Merge the ImageProvider protocol back into the MediaProvider
* Address PR review comments
* Provide a default sdk client request configuration
* Address tasks not automatically cancelling themselves when views get deallocated
* Remove the welcome screen
* Allow the UserSessionFlowCoordinator to control the whole app hierarchy, not only its splitView
* Start using the new verification state listener
* Rename Onboarding to AuthenticationStart in preparation for the new OnboardingFlowCoordinator; update snapshots and tests
* Make the AuthenticationCoordinator a proper FlowCoordinator
* Add some padding around the authentication start screen report a problem button
* Bump the RustSDK to v1.1.49
* Only add bottom padding on the authentication start screen report a problem button
* Show recovery instead of verification if this is the last session and recovery is set up
* Rename `recoveryKeyState` to `recoveryState`
* Remove duplicates on session security state changes.
* Fix missing "Save recovery key" button
* Fix unit tests
* Rename `isLastDevice` to `isOnlyDeviceLeft`
* Address PR comments
* Use a custom SDK build that might fix incomplete recovery state false positives. Enable chat backup by default
* Get rid of the chat backup feature flag
* Fix force unwrap warning
* Fix long line warning
* Prevent the recovery key confirmation banner popping up before the verification state is fetched. Stop showing secure backup user avatar and menu badges while the session is not verified.
* Switch back to the release version of the SDK
* Fix inconsistent session verification states, improve/simplify how to deal with it
* Fix unit tests
* Cleanup and hopefully simplify home screen banner presentations
* Fixes vector-im/element-x-ios/issues/1868 Incorrect `is_verified` flag after successfully running verification flow
- the inner user_identity isn't automatically updated when the flow finishes, needs to be fetched again from encryption
- also replaces `UserIdentity.is_verified` with `Device.is_cross_signed_by_owner`
- depends on matrix-org/matrix-rust-sdk/pull/2775
---------
Co-authored-by: Doug <douglase@element.io>