Adapt to SDK changes:
- Replace `RoomInfo.isTombstoned: Boolean` with `RoomInfo.tombstone: RoomTombstone?`.
- Add `loginHint` parameter to `Client.urlForOidc`.
- Remove `ClientBuilder.useEventCachePersistentStorage`, as it's not longer optional.
* Disable mutliple click (parallel or serial) on a room (Fixes#4619)
* Rename method from FirstThrottler
* Move check to the Compose and add unit test on it.
- If the video can't be transcoded it will be uploaded as a file instead.
- If the video already has the right format and dimensions, don't transcode it.
- Update the dimensions to 720p max when enabling media compression and 1080p otherwise, matching Element X iOS.
* Extract Audio focus management to its own modules.
* Request Audio focus when playing a voice message.
* Add missing dependency.
(and remove a duplicated one)
* Request Audio focus when playing a video/audio in the media viewer.
* Pause audio when audio focus is lost.
* Rename class
* Fix tests
* Fix detekt issue.
* Audio focus: let the system handle automatic ducking when playing media.
* Document and update API
* Remove useless space.
* 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>
* Remove unused SUPPORT_EMAIL_ADDRESS
* Improve the callback uri format and customization.
Use io.element.android for the scheme of Oidc redirection for Element X.
For nightly the scheme will be io.element.android.nightly
For debug the scheme will be io.element.android.debug
Element Pro is using `io.element`
* fix(deps): update dependency org.matrix.rustcomponents:sdk-android to v25.4.30
* OidcConfiguration do not take a contact parameter anymore.
* Fix API break.
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Benoit Marty <benoit@matrix.org>
* Fix typo
* Fix number of room member not correct for room invitation.
* Remove unneeded annotation
* Rename test classes.
* Add test about number of room members
Fix other tests.
* Avoid multiple request to get the room preview.
* Use ElementTheme.colors.bgCanvasDefault instead of MaterialTheme.colorScheme.background
Even if the value is the same, we should use color from ElementTheme.
* Remove background management of ElementCallActivity. It does not work as expected and also changing theme during a call would require to load the url again with the new theme.
* Do not use isSystemInDarkTheme() directly.
* Use bgSubtleSecondary for background color of Preview.
* Use default colors for Preview.
* Fix copy paste issue.
* Update screenshots
---------
Co-authored-by: ElementBot <android@element.io>
* Ensure that the image loader is set, else the IncomingCallActivity will not be able to render the avatar.
Fixes#4633
* Add background color to OnboardingBackground
Fixes#4629
* Trigger CI
* a11y: add Modifier to improve accessibility of ListItems.
Remove duplication of onChange. As per the documentation, it has to be used only if the behavior is different than the onClick listener of the list item.
It also has the effect to read twice the action when the screen reader is one. See https://github.com/element-hq/element-x-android/pull/4047#discussion_r1888136571 for more details
a11y: remove contentDescription on List item icon, else the text is read twice.
* Ensure that if the ListItem is not enabled, the trailing/leading content is also not enabled.
* Update screenshots
* Fix lint crash.
---------
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.
* Login: more logs.
* Login: map Oidc error to provide more information in the error dialog.
* Oidc: use the application name.
* Oidc: move configuration from OidcConfigurationProvider to OidcConfig and add some comments.
* Oidc: limit to only 1 contact in the configuration.
* Oidc: Move configuration to BuildConfig file.
* Remove unused const.
* Add missing test on Exception mapping
* Remove contacts from OidcConfiguration.
https://github.com/matrix-org/matrix-rust-sdk/pull/4958
* Fix ringing calls not being automatically canceled
This will keep the sync active while the user is screening an incoming call, allowing receiving a call cancellation event, which will terminate the incoming call ringing early.
* Add extra logs to help debugging ringing call issues.
* Fix settings entry point not available when there is no avatar on the account. Fixes#4599.
* Use Ktx extension `String.toUri()`
* Allow screen reader to focus on the user avatar to allow editing it.
* Fix import order
* Fix audio output selection.
* Ensure that Element Call audio output uses a new connected device, even during a call.
Also add a few logs.
* Extract functions.
* Add more log and protect from crash.
* Revert formatting change
* Update screenshots
---------
Co-authored-by: ElementBot <android@element.io>
* Add adb tools to help with doze mode and app standby
* Add info about the device state when an error occurs in push.
* Keep more events in the DB.
* Push history: add confirmation dialog when resetting the data
* Push history: add a filter to see only the errors
* Update screenshots
* Push history: print out invalid/ignored data received.
* Increase log level for push, to make such log more visible.
It also appears that sometimes Timber.d are not present in the rageshakes.
* Log priority
* Do not include device state for invalid/ignored event.
* Fix tests.
* Fix format issue.
* Fix mistake in code blocks and do not filter when not necessary.
* Improve formatting and add missing unit test.
* Reduce nesting of blocks.
---------
Co-authored-by: ElementBot <android@element.io>
* Make whole messages selectable and readable as a single unit when possible.
* Make most UI components not clickable when talkback is enabled.
* Make voice messages work with talkback too.
* Read grouped state events even if the events are collapsed.
* Move image and video item actions to the timeline item.
* Improve accessibility in the message context menu too
* Fix a11y issue on add attachment button.
* Add `contentDescription` to file icon so it's read aloud
---------
Co-authored-by: Benoit Marty <benoit@matrix.org>
Since Android doesn't have support for SVG files we can't create a thumbnail or get the dimensions and other metadata needed for the `m.image` message type, so we need to send them as plain files
* 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>
* 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 kotlin
* Fix deprecation warning
* Remove this workaround, it's not needed anymore, and was causing a compilation error:
* What went wrong:
A problem occurred configuring project ':libraries:session-storage:impl'.
> Failed to notify project evaluation listener.
> Element 'kspDebugKotlin' of type 'com.google.devtools.ksp.gradle.KspAATask_Decorated' from container 'task set' cannot be cast to 'org.jetbrains.kotlin.gradle.tasks.KotlinCompile'.
> Element 'kspReleaseKotlin' of type 'com.google.devtools.ksp.gradle.KspAATask_Decorated' from container 'task set' cannot be cast to 'org.jetbrains.kotlin.gradle.tasks.KotlinCompile'.
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Benoit Marty <benoit@matrix.org>