* Introduce PushHistoryService to store data about the received push
Add a push database.
* Update screenshots
* Improve preview.
* Update screenshots
* Add missing test.
* Add test for PushHistoryView
* Fix configuration issue.
Was: w: /libraries/troubleshoot/impl/src/test/kotlin/io/element/android/libraries/troubleshoot/impl/history/PushHistoryPresenterTest.kt:35:27 Cannot access class 'PushProvider' in the expression type. While it may work, this case indicates a configuration mistake and can lead to avoidable compilation errors, so it may be forbidden soon. Check your module classpath for missing or conflicting dependencies.
---------
Co-authored-by: ElementBot <android@element.io>
* fix(deps): update dependency org.matrix.rustcomponents:sdk-android to v25.4.8
* Fix API breaks:
- Add `ReplyParameters` class and parameters to send functions.
- Remove outdated OIDC related values.
- Stop pre-processing the timeline to add the timeline start item, this is already done by the SDK.
* Use the new function to reply to messages in a quick reply from a notification, however:
1. We don't have the thread id value at the moment since the SDK does not provide it yet.
2. The replied to event id wasn't being passed from the notification info.
* Remove also timeline start virtual item for DMs, since this wasn't present before either
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
* Add Konsist test to ensure that the result of a function returning a flow is remembered.
* Remember flows before they are collected by state.
* Fix compilation issue
* Make isOnline a val.
* Make selectedUsers() a val.
* Make flow() a val.
* Make getUserConsent(), didAskUserConsent() and getAnalyticsId() some val.
* Remove Timeline.paginationStatus() and replace by direct access to the underlined flow.
* Simplify test
* userConsentFlow must be initialized before because it's used in observeUserConsent
* Fix test compilation
* Make sure the live timeline is destroyed before clearing a room's cache
According to the SDK team, having a live timeline could lead to DB issues.
* Try to destroy all room and list item references when the `RustRoomFactory` is destroyed
It may also have some effect on DB corruption issues we've seen
* Make `RustMatrixClient.close` asynchronous
This is a safer way to destroy the Rust instances associated to it. Since `MatrixClient` doesn't implement `Closeable` anymore, the method has been renamed to `destroy` to follow the existing naming in the project.
* Add confirmation dialog when kicking someone, ith ability to provide a reason.
Also add the reason for banning people.
* Fix padding issue in dialogs.
* Improve TextField in dialog.
* Update screenshots
* Fix tests
* Format and import
* Add missing UI tests.
* Use `needsConfirmation` as it's already used in the code base.
---------
Co-authored-by: ElementBot <android@element.io>
* Use embedded version of Element Call: for in-app room calls, the app will use an embedded version of Element Call shipped with the app instead of using an external service.
* Remove `ElementCallBaseUrlProvider` so we don't use the Element well known file to get the base URL anymore
* Remove `ElementCallConfig.DEFAULT_BASE_URL` since it's not used anymore
* Restore the usage of the custom EC base URL in developer settings as the actual base URL, it present
* Add a way to customise the embedded EC analytic credentials
* Update CI to use the EC analytic credentials as secrets
* Improve the custom URL placeholder to include the `/room` suffix
* Make self verification screens scrollable
* Remove unused fields from `VerificationEmoji`
* Make only the header and content scroll in `HeaderFooterPage`.
* Use the right 'emoji' icon in both flows (`ReactionSolid`)
---------
Co-authored-by: ElementBot <android@element.io>
* Use close() instead of destroy, because close() is synchronized.
* Use new method to clear the SDK cache.
* Format file.
* Remove the legacy way to clear the SDK cache.
* Remove unused import
* revert name change
Breaking changes addressed:
* Make `MatrixClient.getNotificationSettings()` async, cache its result.
* Use `RoomInfo` for accessing the updated room's info.
* Refactor `MatrixRoom` so it always receives an initial `MatrixRoomInfo` value: this value will be used to make `MatrixRoom.roomInfoFlow` a `StateFlow` so we can assume the initial updated Room data will be present.
* Fetch encryption state when loading a room if it's unknown
* 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>
* Add support for starting verification of a user
* Add support for replying to incoming user verification requests
* Add reset recovery key button and previews to `ChooseSelfVerificationModeView`
* Add 'Profile' item in room details screen
* Update screenshots
* Remove `showDeviceVerifiedScreen` parameter from `NavTarget.UseAnotherDevice`
* Allow exiting the FTUE flow, which will close the app. The previous state will be restored when the app is reopened.
* When outgoing verification fails, move to the `Canceled` state. Then, when resetting the state machine state also reset the verification service.
---------
Co-authored-by: ElementBot <android@element.io>
This is done to fix an issue where the Nodes that contain these dependencies are leaked and the `Client` and other SDK-related components can keep working in background for a while, until the caches holding the Nodes are flushed or the app is restarted.
* Upgrade SDK version to 25.02.26
* Remove OIDC URL result from logout, the SDK no longer provides it
* Handle room creation and destruction in a better way
* Remove `onSuccessLogout`
* fix(deps): update dependency org.matrix.rustcomponents:sdk-android to v25
* Adapt to SDK changes:
- Remove logic related to sliding sync proxy, leaving just the minimum needed to detect its usage on the current session data.
- Remove code associated with the opt-in migration to native sliding sync, since it's now mandatory.
- Remove toggle between proxy/native sliding sync.
- Some fixes to session verification API breaks.
* Update forced logout dialog message, remove `NativeSlidingSyncMigrationBanner`
* Update screenshots
* Update all strings
* Remove `SuccessfulLogoutPendingAction`
---------
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 <android@element.io>
Some internal refactoring was done too:
- Remove RoomInfo.isPublic to only use JoinRule.
- Also take into account restricted access rooms for previews.