* 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
* Switch to the new local room list sorting API
* Get rid of the RoomSummary enum, replace it by the inner RoomSummaryDetails
* And finally, rename RoomSummaryDetails to RoomSummary
* Fix a bunch of warnings
* Small tidy up post rebase/review.
- Remove unused invalidated property.
- Rename some RoomSummary instances to summary instead of details.
- Fix tests with missing roomListItem's.
* Update snapshots
---------
Co-authored-by: Doug <douglase@element.io>
* Show room member role changes in the timeline.
* Fix a bug in room flow coordinator.
* Tidy up roles and permissions flow.
* Refresh the power levels in the room details screen.
* Automatically update permissions after saving.
* Remove extra button.
* Add a short delay to the roles and permissions screen snapshots.
The permissions rows are now in a loading state initially.
* 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
* Add a setting to hide grey unread messages badges.
* Move room badge logic to be built in the view model instead of in the view.
* Move setting into DeveloperOptions.
* 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 the recovery section if key backup is anything **but** disabled
* Don't show an action on secure backup if its current state is unknown
* Do not show a badge on the home screen avatar while the recovery state is unknown
* Do not assume key backup is disabled when its state is unknown. If the state is unknown, check if a backup exists remotely.
* Dedupe remote backup state requests and handle task cancellations
* Adopt Rust side secure backup APIs (incomplete, based on poljar/backup-pr)
* Implement the home screen recovery key confirmation banner.
* Update with the latest Rust changes.
The loading button for .unknown was incorrect. It should be treated as disabled.
---------
Co-authored-by: Doug <douglase@element.io>
* Converge on UserSessionFlowCoordinator logout confirmation
* Add logout confirmation screen strings to untranslated.
* Fix chat backup learn more URl fragment.
* Implement logout flows that check recovery and key backup for the last session
* Move logout confirmation screen strings to localazy
* Change encrypted timeline item copy to "Waiting for decryption key"
* Use different encrypted history banner based on key backup states
* Introduce a SettingsFlowCoordinator and implement navigation directly to the secure backup screen from the logout flows.
* Fix **mocked** secure backup controller flows
* Simplify encrypted history banner logic
* Address PR comments