* Inject the session scope instead of the application scope where it's possible.
* Create AppCoroutineScope annotation to let developers explicitly choose the appropriate CoroutineScope when injecting one.
* Remove not helping warning.
* Add and improve tests
* Send the `m.fully_read` read marker when the user navigates back to the room list, to mark the room as read.
* Also clear the data, to let the next screen be able to go back
* Disable the change account provider button when the form is loading the data to prevent double navigation
* Improve OnboardingViewTest, ensure that no Event are emitted.
* OnboardingViewTest: add tests to cover the change.
- 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.
* fix(deps): update dependency androidx.compose:compose-bom to v2025.04.01
* Fix autofill deprecations
* Adapt our custom BottomSheetState and scaffold to the new APIs
* Get rid of all the custom bottom sheet implementation
It doesn't seem to be needed anymore 🎉
* Replace `semantics { invisibleToUser() }` with `hideFromAccessibility()`
* Update screenshots
* Add commit and cancel callbacks for autofill on the login view
* Fix broken tests caused mainly by https://issuetracker.google.com/issues/366255137
Add `LocalUiTestMode` composition local and helper functions.
* Remove dependency that caused a new license to need to be approved
* Let setSafeContent handle setting the value for LocalUiTestMode
* Fix broken test
* Apply fix to RoomMemberModerationViewTest and RoomListDeclineInviteMenuTest
---------
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>
Co-authored-by: Benoit Marty <benoit@matrix.org>
* Make sure lambdaError() make the test fail in all circumstances.
* Fix existing errors on tests.
* Uniformize the way we are creating class under test.
* Cleanup
* Fix typo
* Fix failing test after rebase.
* 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>
* Hide login with QrCode when the app is opened by a link
* Fix UI on ChangeAccountProviderView.
* Add flow to choose between a fixed list of account provider
* Update screenshots
* Fix licence header
* Rename preview.
* Ensure that the default account provider cannot be "*"
This should not happen IRL, but better be robust against issue in application configuration.
* Create const of any account provider value
* Fix typo
---------
Co-authored-by: ElementBot <android@element.io>
* Add support for login link
https://mobile.element.io/element?account_provider=example.org&login_hint=mxid:@alice:example.org
* Update screenshots
* Reduce code duplication
* Add test on OnBoardingPresenter
* Fix tool
* Ignore login parameter if user is not allowed to connect to the provided server.
* Improve tests.
* Cleanup
* Revert change on Project.xml.
* Add documentation
* Improve LoginHelper
* Rename LoginFlow to LoginMode
Move LoginFlow to package io.element.android.features.login.impl.login
Rename some implementation of LoginMode
Rename LoginFlowView to LoginModeView
* Change launchMode of MainActivity from `singleTop` to `singleTask`
Using launchMode singleTask to avoid multiple instances of the Activity when the app is already open. This is important for incoming share and for opening the application from a mobile.element.io link.
Closes#4074
---------
Co-authored-by: ElementBot <android@element.io>
* 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.
* 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>