Change wording of setup recovery key banner and change target to root.
Iterate on wording of encryption screen.
Change button to Switch.
Iterate on wording to delete key storage.
Iterate on wording and icon on the root setting.
Remove confirmation dialog when disabling backup.
Add subtitle to change recovery key action.
Enable key storage directly, remove quite empty screen to setup the backup.
Disable recovery action if key backup is disabled.
* Add `DateTimeObserver` to rebuild the room summary data when the date/time changes.
* Add time changed action too, to trigger when the user manually changes date/time
* Fix timezone issue by adding `TimezoneProvider`, fix tests
* Create test for `DateTimeObserver` usage in `RoomListDataSource`
* Create aRoomListRoomSummaryFactory function.
* Improve test by faking the lastMessageTimestampFormatter
---------
Co-authored-by: Benoit Marty <benoit@matrix.org>
* Use Anvil KSP instead of the Square KAPT one
* Fix several configuration cache, lint and test issues
* Allow incremental kotlin compilation in the CI
* Workaround Robolectric + Compose issue that caused `AppNotIdleException`
* Update the `enterprise` commit hash
* Update screenshots
---------
Co-authored-by: ElementBot <android@element.io>
* Don't display security banner for unknown `RecoveryState`
* Don't display 'set up recovery' if its status is unknown.
Add more screenshot tests.
* Update screenshots
---------
Co-authored-by: ElementBot <android@element.io>
* Add banner for optional migration to native sliding sync
- Add `MatrixClient.isNativeSlidingSyncSupported()` and `MatrixClient.isUsingNativeSlidingSync` to check whether the home server supports native sliding sync and we're already using it.
- Add `NativeSlidingSyncMigrationBanner` composable to the `RoomList` screen when the home server supports native sliding sync but the current session is not using it.
- Add an extra logout successful action to the logout flow, create `EnableNativeSlidingSyncUseCase` so it can be used there.
* Update screenshots
* Make sure the sliding sync migration banner has lower priority than the encryption setup ones
---------
Co-authored-by: ElementBot <benoitm+elementbot@element.io>
* Add centralised 'room is DM' check
Also add extension functions for `MatrixRoom` and `MatrixRoomInfo`.
* Use the centralised method and extension functions through the app, including:
- Room list.
- Room details screen.
- Invites.
- Notifications.
Replace most `isDirect` usages with `isDm`.
* Update screenshots
---------
Co-authored-by: ElementBot <benoitm+elementbot@element.io>
Previously, this had to wait for a recomposition until it was launched, which took ~100ms in a debug build. With these changes, the side effect is emitted in 10-20ms instead.
* Update dependency org.matrix.rustcomponents:sdk-android to v0.2.31
* Use new Rust client side sorting API
* Make `RoomListEntriesUpdate.describe()` an extension function
* Remove `RoomListSummary.Filled` and `RoomListSummary.Empty`
* Fix icon sizes to pass the lint checks
* Update screenshots
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
Co-authored-by: ElementBot <benoitm+elementbot@element.io>