* Update metro to v0.6.7
* Replace `@Inject` with `@AssistedInject` where needed
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
- Add `runCatchingExceptions` and `mapCatchingExceptions` to replace `runCatching` and `mapCatching`.
- Make `tryOrNull { ... }` catch only exceptions too.
- Apply the changes to the whole project.
- Add new Rust fakes for tests to handle the code that's now unblocked - previously it just threw an `UnsatisfiedLinkError` which we ignored.
- Add a new `detekt-rules` project with a `RunCatchingRule` to prevent `runCatching` and `mapCatching` usages.
* Hide Element Call entry point if Element Call service is not available.
* No need to preview the case RoomCallState.Unavailable
* Hide start call action from user profile if Element Call is not available.
* Add mising `use` and cover the problem by a test.
* Update screenshots
* Update enterprise submodule ref.
* Ensure `enterpriseService.isElementCallAvailable()` is not called several times.
And fix unit tests on CI
---------
Co-authored-by: ElementBot <android@element.io>
* Update target link for "Learn more".
* Rename VerifySelfSession* to OutgoingVerification*
* Optimize import
* Refactor to avoid long line
* Update screenshots
---------
Co-authored-by: ElementBot <android@element.io>
`JoinedRoom` will now contain both a mandatory live timeline reference and all the functionality associated to it.
`BaseRoom` on the other hand will contain only functionality that's shared for both joined and not joined rooms.
`NotJoinedRoom` is a wrapper around `RoomPreviewInfo` data and a possible local `BaseRoom`, if it exists.
The `RustRoomFactory` cache is now gone since the persistent event cache should have the same effect.
* Sync Strings from Localazy
* Fix strings usage after some were moved
* Fix Norwegian string that was causing lint to fail
* Update screenshots
---------
Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
* For the user info in the timeline items, display the ripple effects according to the bounds and shape of the user avatar and display name
* Fix ripple in other screens too
* Move `observeRoomMemberIdentityStateChange` and associated classes to `libs:matrixui` module so they can be reused
* Add `EncryptionService.getUserIdentity` method to retrieve not only if the user is verified or not, but in which state they are
* Fix `IdentityChangePresenter` after the previous changes
* Fix `withFakeLifecycleOwner` and add `testWithLifecycleOwner` helper
* Display verified badge in DM top app bar when possible
* Display a verification violation warning icon next to the 'People' item in room details screen
* Display either a verified badge or a verification violation warning icon next to the room members in the room member list screen
* Display either a verified badge or a verification violation warning and withdraw verification button in the room member profile.
Generic user profiles won't display verification state anymore since we can't easily track changes in it.
* Add preview for room member details screen with verification violation identity state
* Add verified and violation badge to the `Profile` list item in room details screen
* Update screenshots
---------
Co-authored-by: ElementBot <android@element.io>