* Session falsely displayed as 'verified' with no internet connection
- Remove the need to wait for `isReady` for `SessionVerificationService.canVerifySessionFlow` to fix this.
- Rename `SessionVerificationService.canVerifySessionFlow` to `needsSessionVerification`.
- Make `isReady` private.
* Make logs less verbose, especially for sliding sync.
Use the same config as iOS for most targets.
* Make sure we don't try to upload logs that are larger than the max request size of the bug reporter server.
* Display the loading state as soon as the bug reporter starts processing the log files
* Add changelog
* UX cleanup: user profile.
- Move send DM to a CTA button.
- Add 'Call' CTA button too when there is a DM with that user and a call is possible.
- Add missing tests.
* Update screenshots
* Add tests for clicking on the avatar
---------
Co-authored-by: ElementBot <benoitm+elementbot@element.io>
* Enforce mandatory session verification only for new logins
- Creates `AppMigration` base interface as a way to isolate migration logic, app migrations must implement this interface.
- Creates `AppMigration01` with the existing logs removal migration and `AppMigration02` with the logic to allow existing sessions to skip verification.
- Add `DefaultSessionPreferencesStoreFactory.remove(sessionId)` to allow a ephemeral session store access to exist outside the `SessionScope` for this new migration.
* Fix tests
* Add more tests.
This also includes creating several abstractions.
* Review changes.
- Make `orderedMigrations` a class property, `migrations` just a constructor parameter to avoid incorrect usages.
- Create `lastMigration` property too, use it instead of `MIGRATION_VERSION`.
* UX cleanup: reorder options in the main settings screen
* Update screenshots
* Group sections in composables
* Add some horizontal padding to the `Footer` component
---------
Co-authored-by: ElementBot <benoitm+elementbot@element.io>
* Adjust typography in `SelectedUser` component
* Set 2 max lines for `SelectedUser` component.
Also update the theme token references.
* Update screenshots
---------
Co-authored-by: ElementBot <benoitm+elementbot@element.io>
* Always display 'lost recovery key?' option
* Use `isLastDevice` it to display only 'enter recovery key' option for verification.
* Update strings. This should fix the wrong term 'passcode' being used in the recovery key screen title.
* Disable 'lost your recovery key?' button while the screen is in a loading state
* Update screenshots
---------
Co-authored-by: ElementBot <benoitm+elementbot@element.io>
* Remove `SessionData.needsVerification` as the source of truth for session verification status.
- Use the Rust SDK `EncryptionService.verificationState()` instead, but always waiting for the first 'known' result (either verified or not, discarding 'unknown').
- Add a workaround in the super rare case when reading this value gets stuck somehow. We'll assume the user is not verified in that case.
- Make `DefaultFtueService.getNextStep` and dependent checks `suspend`.
- Make the `skip` button use a value in the session preferences instead.
* Log exception when the verification status can't be loaded
Co-authored-by: Benoit Marty <benoit@matrix.org>
* Fix review comments
---------
Co-authored-by: Benoit Marty <benoit@matrix.org>
Improve room member list UX:
- Don't display the list in chunks anymore.
- Use an indeterminate linear progress indicator to display some loading is being done (either loading the cached list or the updated one).
- Try to make sure we don't display the members loaded from timeline items as the cached room list by mistake.
* Update screenshots
* Simplify member loading logic.
---------
Co-authored-by: ElementBot <benoitm+elementbot@element.io>
* Added empty state to banned member list
* Center both empty states in `RoomMemberListView` and `PollHistoryView`
* Update screenshots
---------
Co-authored-by: ElementBot <benoitm+elementbot@element.io>
* Change a room's permissions power levels
* Make `currentPermissions` use a `MatrixRoomPowerLevels?` instance instead.
* Update strings
* Update screenshots
---------
Co-authored-by: ElementBot <benoitm+elementbot@element.io>
Read receipts have been considered quite stable over the last few weeks, so
there's no need to keep the trace level for the associated logs for the time
being.
Allow Admins to modify room member roles:
- Add a 'roles and permissions' option for each room.
- Allow promoting users to admins, adding or removing moderators, and demote yourself if you're and admin.
---------
Co-authored-by: ElementBot <benoitm+elementbot@element.io>
* Add extra params to bug reports
- `local_time`: the time in the device's timezone.
- `utc_time`: the time in UTC.
- `sdk_sha`: the commit SHA that was used to build the Rust SDK