* Resolve display names in mentions in real time
* Use `LocalRoomMemberProfilesCache` to avoid having to implement `TextMessagePresenter`
* Also use local composition provider for `MentionSpanProvider`
* Improve how active calls work:
- Sending the `m.call.notify` event is now done in `CallScreenPresenter` once we know the sync is running.
- You can mark a call of both external url or room type as joined.
- Hanging up checks the current active call type and will only remove it if it matches.
* Fix tracing configuration in debug and nightlies:
- Debug will now write the logs to disk too.
- Nightly will be able to customise tracing filters.
- Improved the configure tracing and bug report screens.
* Update screenshots
* Add changelog
---------
Co-authored-by: ElementBot <benoitm+elementbot@element.io>
- Add `ActiveCallManager` to handle incoming and ongoing calls.
- Add ringing call notifications with full screen intents and missed call ones as part of the 'conversation' notifications.
---------
Co-authored-by: ElementBot <benoitm+elementbot@element.io>
* Restore `MarkdownTextInput` contents: create a `MarkdownTextInputStateSaver` and use it to save and restore the text and selection.
* Add default text flags to the markdown composer
This looks a little more "sane", and more closely matches what iOS does
with it's filter chips. This has to manually track which filters were
"just-deselected" and move those even higher up the z stack to ensure
they appear above even when sliding right. This is because the order is
determined by the position left-to-right of the _final_ destination of
the chip. In this case we want anything that's either currently
selected, or was selected and is still fading out to appear on top.
Signed-off-by: Joe Groocock <me@frebib.net>
* Add plain text editor based on markdown input
- Fix autofocus of message composer.
- Remove `Message` data class, fetch the details in `MessagesPresenter` instead.
- Remove `enable rich text` option from advanced settings, set it as a build configuration instead.
* Fix MentionSpanProvider
* Bump RTE library to released `v2.37.3`
---------
Co-authored-by: ElementBot <benoitm+elementbot@element.io>
* 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`.