* 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>
* Use badge color from Compound and remove temporary aliases
* Use color instead of a copy of it.
* Update screenshots
---------
Co-authored-by: ElementBot <android@element.io>
* Remove condition on displayType as I believe, that it has no effect.
* Remove the green badge on a pending invite after a first preview
* Update screenshots
* Fix test
* Improve DefaultSeenInvitesStore, clear it on logout, and on clear cache. Also create a store per session.
* Remember the returned flow.
---------
Co-authored-by: ElementBot <android@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
* Let TextFieldListItem take the entire width.
* Add unit test to detect usage of OutlinedTextField.
* Use TextField instead of OutlinedTextField
* Remove unnecessary opt in to ExperimentalFoundationApi
* Use TextField instead of OutlinedTextField
* Fix compilation issue.
* Update screenshots
* ListDialog: add space between items.
* Update screenshots
* Set applyPaddingToContents to true by default.
* Update screenshots
---------
Co-authored-by: ElementBot <android@element.io>
* Extract TextFieldDialog to its own file (no other change).
* Add TextFieldDialogPreview
Enhance TextFieldDialog
* Let RoomMembersModerationView use TextFieldDialog
* Update screenshots
* Konsist.
* Add modifier parameter.
---------
Co-authored-by: ElementBot <android@element.io>
* 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>
* Timeline header: ensure that the decoration is clickable, and properly fix the icon rendering.
* Update screenshots
---------
Co-authored-by: ElementBot <android@element.io>
* Add handy extension "VariantDimension.buildConfigFieldStr"
* Update configuration for MapTiler.
* Update configuration for Sentry.
* Build AnalyticsConfig depending on analytics configuration.
* Configure analytics policy url.
* Add handy extension "VariantDimension.buildConfigFieldBoolean"
* Configure legal urls.
* Add a way to disable rageshake / reporting bugs.
* Update screenshots
* Quality
* Fix test
* Use `ifBlank` extension
* Add missing configuration for PostHog
* Update configuration for Rageshake.
* Add build log.
* Disable crash detection if rageshake feature is not available.
Disabled twice.
* Hide link to analytics policy if the link is missing.
* Fix test when run in enterprise context.
* Use RageshakeFeatureAvailability where appropriate.
* Rename file.
* Move some classes to their correct module.
* Update screenshots
---------
Co-authored-by: ElementBot <android@element.io>
* Warn when opening a suspicious link.
Upgrade RTE to 2.38.3
* Update screenshots
* Add tests on LinkPresenter and LinkView.
* Format file
---------
Co-authored-by: ElementBot <android@element.io>
* Let element enterprise configure the ids for maptiler service.
* Disable location sharing and location viewer is the service is not available.
* Fix compilation issue on connected test
* Do not allow to reload the map if the mapId is not available.
* Update screenshots
* Rename file.
* Better to inject a string provider here, so we can unit test DefaultLocationService.
---------
Co-authored-by: ElementBot <android@element.io>
* 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>
* 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>
Create `LinkfierHelper` and post-process URLSpans added to make sure they honor the actual URLs in text by removing unnecessarily added trailing punctuation.