* 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.
* 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>
* 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.
* 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
* Show a loading indicator when confirming the recovery key
* Hide the passphrase characters when confirming the recovery key
* Don't show the settings security section until session verification state is retrieved (async)
* Fix preview screenshots
* 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>
* Fixes#1011 - Add legal information screen in settings, move all settings related screens under Source/Screen/Settings
* Fix warnings after sliding sync api change