Commit Graph

436 Commits

Author SHA1 Message Date
Benoit Marty fe99e5dd85 Revert "Let the CI reveal all the error that I do not see locally for compilation cache reasons."
This reverts commit 7cea29e899.
2025-10-10 11:49:15 +02:00
Benoit Marty 7cea29e899 Let the CI reveal all the error that I do not see locally for compilation cache reasons. 2025-10-10 10:28:15 +02:00
Benoit Marty 81787208c0 Make error message more visible 2025-10-10 09:45:10 +02:00
Benoit Marty 0b1d8e7c87 Add a script to check stability of State classes
tom script
2025-10-09 18:22:14 +02:00
Benoit Marty a584a5c1c6 Update Localazy config and sync all the strings. 2025-10-07 15:53:53 +02:00
Jorge Martin Espinosa 9714abe032 Add Labs screen for beta testing of public features (#5465)
* Add Labs screen:

- Make `Feature` have an `isInLabs` boolean to distinguish private feature flags from public ones.
- Have `FeatureFlagsService` provide the list of available flags.
- Display the labs item in the settings screen only if there are available public features.
- Remove public feature toggles from developer options.
- Implement the labs screen with the public features.
- Add a clear cache step to the threads feature toggle
- Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
2025-10-07 10:02:54 +00:00
Benoit Marty baa5eb0b72 Update compound scripts.
Ensure drawable folder is emptied before importing tokens and import again.
2025-10-05 21:01:14 +02:00
Benoit Marty 6b4198d75b Import Compound scripts from project https://github.com/element-hq/compound-android 2025-10-03 18:25:49 +02:00
Benoit Marty 2907f762f6 Announcement for Spaces 2025-10-03 00:15:27 +02:00
Benoit Marty 74c2ee46d8 Leave space - Add screen to leave a space. 2025-09-26 14:14:00 +02:00
renovate[bot] 5b9ce7a210 Update metro to v0.6.7 (#5416)
* 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>
2025-09-26 08:16:36 +00:00
Benoit Marty db1672b813 Adding fastlane file for version 25.09.2 2025-09-24 14:35:33 +02:00
Benoit Marty fa14e4c106 Add notification troubleshoot test about blocked users. 2025-09-23 08:59:40 +02:00
Benoit Marty 574c2cb2b5 Remove empty line. 2025-09-16 14:38:32 +02:00
Benoit Marty a575019760 Use DependencyHandlerScope.testCommonDependencies() 2025-09-16 14:38:31 +02:00
Benoit Marty 94f098d517 Release script: read the build tool version from Versions.kt 2025-09-10 11:33:38 +02:00
Benoit Marty e88743bd6a Rename anvil modules to annotations and codegen 2025-09-05 14:26:27 +02:00
Jorge Martín b76a71ebf5 Start migrating Anvil KSP to Metro 2025-09-04 16:48:34 +02:00
Benoit Marty de16268674 Merge pull request #5166 from element-hq/feature/fga/create_room_flow_rework
Create room flow rework
2025-08-18 09:38:28 +02:00
Benoit Marty 976beff1de Build release with build tools from SDK 36 and add a not to not forget last time we update the value of COMPILE_SDK 2025-08-14 14:31:22 +02:00
Benoit Marty 003249faa6 Use string from Localazy. 2025-08-14 11:46:28 +02:00
Benoit Marty 186d06c73e Cleanup Localazy config and do a sync. 2025-08-13 17:41:44 +02:00
ganfra 41cf1afce3 refactor (start chat) : start splitting things (create room, invite people, start chat) 2025-08-13 11:06:42 +02:00
Jorge Martin Espinosa adc61b3826 Add media file limit size warning and media quality selection (#5131)
* Add `VideoCompressorPreset` enum

This represents the different compression presets used for processing videos before uploading them

* Add `VideoCompressorHelper` util class to calculate the scaled output size of the video given an input size and its optimal bitrate

Also add `MediaOptimizationConfig` which will be used to decide how to apply compression in `MediaPreProcessor`

* Add `RustMatrixClient.getMaxFileUploadSize()` function and `MaxUploadSizeProvider` so we can import only this functionality into other components

* Try preloading the max file upload size the first time we get network connectivity - it's a best effort

This should help ensure we'll have this value available later, even if we still need to load it asynchronously.

* Split the `compressMedia` preference into `compressImages` and `compressMediaPreset`

* Modify the media processing parts to use the new classes and utils

* Add `MediaOptimizationSelectorPresenter`, which will retrieve the compression values and the max file upload size, also estimating the compressed video file sizes if needed.

* Add a feature flag to allow selecting the media upload quality per upload

* Integrate the previous changes with the attachments preview screen

Add strings from localazy too.

* Adapt the rest of the app calls to upload media to using the media optimization configs

* Allow modifying the default compression values in advanced settings, based on the feature flag value

* Pass the `fileSize` in `MediaUploadInfo` too, to be able to check it against the `maxUploadSize`

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
2025-08-11 17:22:46 +02:00
Jorge Martin Espinosa 1a335698c0 Force last owner of a room to pass ownership when leaving (#5094)
* Move `ChangeRoles*` classes to their own module so they can be shared

* Hook the change roles screen to the leave room action, add confirmation dialogs

* Use enum instead of sealed interface for `ChangeRoomMemberRolesListType`

* Try to improve communications between nodes

* refactor (leave room) : makes sure to expose only necessary code from api module

* Add `:libraries:previewutils` module to share some test fixtures used for UI previews

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
Co-authored-by: ganfra <francoisg@matrix.org>
2025-08-05 17:24:14 +02:00
renovate[bot] 040fde7f22 Update dependency org.matrix.rustcomponents:sdk-android to v25.7.23 (#5073)
* Update dependency org.matrix.rustcomponents:sdk-android to v25.7.23

* Adapt to SDK changes:

- Add 'creator' role, adapt existing logic to it.
- Remove `ReplyParameters`, replace with `EventId` where possible.
- Fix changes in OIDC auth methods.
- Add more join rules.

* Make sure both creators and users with power level >= 150 are displayed as 'owners' in the room member list.

* Don't close the roles and permissions screen if the user is a creator

* Use `MediaPreviewValue.DEFAULT` for `MediaPreviewConfig.DEFAULT` too

* Improve APIs around checking roles and power levels:
    - Ensure `RoomInfo.RoomPowerLevels.users` can't be directly used to check power levels since it can't check the power levels for creators.
    - Add a few helper functions to handle actions that relied on the previous `users` property, and docs to explain their usages.

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2025-07-24 11:58:30 +02:00
Benoit Marty 36ad2432e1 Use icon for Spaces and update label and navigation bar design and behavior. 2025-07-08 10:28:26 +02:00
Benoit Marty 0570fb1c0e Fix shellcheck issue on release.sh 2025-06-30 17:00:58 +02:00
Benoit Marty 3ff8592785 Release script: read minSdkVersion from file plugins/src/main/kotlin/Versions.kt 2025-06-30 17:00:56 +02:00
Benoit Marty 60083ad5ea Rename module roomlist to home 2025-06-27 15:24:50 +02:00
Jorge Martin Espinosa 12fdb8e875 Add scripts to enable and disable talkback (#4906) 2025-06-20 12:19:33 +00:00
ganfra e2b1ab2632 Merge branch 'develop' into feature/fga/room-version-upgrade 2025-06-16 20:46:28 +02:00
Benoit Marty 8f94b4cd0e Merge pull request #4845 from element-hq/feature/bma/batteryOptimization
Add a banner to ask the user to disable battery optimization when Event cannot be resolved from Push
2025-06-16 11:19:15 +02:00
Jorge Martin Espinosa c598b0699e Disable BT audio devices for Element Call on Android < 12 (#4876)
Display an error dialog muting the call when a bluetooth audio device is selected on Android 11 or lower, re-enable the audio once another device is used.
2025-06-13 16:29:07 +02:00
Benoit Marty d15a352f74 Improve accessibility of Poll answers. 2025-06-13 10:15:37 +02:00
Benoit Marty d5dfceded7 Battery optimization banner: update wording. 2025-06-12 17:40:38 +02:00
ganfra 94e678a905 feature (room upgrade) : sync translations 2025-06-11 10:46:40 +02:00
夜坂雅 20270cdffe feat: Support matrix: links (#4839) 2025-06-09 16:40:45 +02:00
Jorge Martin Espinosa efdc10e60a Add catchingExceptions method to replace runCatching (#4797)
- 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.
2025-06-04 09:02:26 +02:00
renovate[bot] 7bb1e24ff5 fix(deps): update dependency androidx.compose:compose-bom to v2025.04.01 (#4631)
* 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>
2025-06-03 21:05:43 +00:00
ganfra abc5547aa3 Merge branch 'develop' into feature/fga/user_moderation_bottomsheet 2025-06-03 10:46:12 +02:00
Benoit Marty b398fb47d2 Fix mobile link (#4805)
* Fix path of mobile link. Adding a trailing `/`

* Reduce brain pressure.
2025-06-02 16:11:30 +02:00
Jorge Martin Espinosa d5b97ed5af Use Localazy's langAliases for Indonesian (#4801) 2025-06-02 12:05:55 +02:00
ganfra 2e1eb900a4 Merge branch 'develop' into feature/fga/user_moderation_bottomsheet 2025-05-23 17:28:48 +02:00
ganfra b1441e1afd change (member moderation) : sync strings 2025-05-21 18:30:45 +02:00
Benoit Marty 5a2aeac6b6 Add support for login link (#4752)
* 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>
2025-05-21 18:19:42 +02:00
Benoit Marty 150239bcd8 Merge on boarding module to login module (#4746)
* Move onboarding code to the login module.

* Remove OnBoardingEntryPoint, move the flow to LoginFlowNode

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
2025-05-20 08:54:23 +02:00
ganfra 58d9b12ab3 change (member moderation) : extract in a separate module 2025-05-14 11:19:07 +02:00
Benoit Marty c61ee59528 Improve the callback uri format and customization. (#4664)
* 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`
2025-05-05 17:46:17 +02:00
ganfra 0b83e66733 Feature : Report room (#4654)
* feature (report room) : introduce all presentation classes.

* feature (report room) : branch entry point in the room list

* refactor (matrix ui) : move some code from appnav to matrix ui

* feature (report room) : add api on room

* feature (report room) : adjust ui

* feature (report room) : branch api

* feature (decline invite and block) : move things around and introduce presentation classes

* feature (decline invite and block) : continue to move things

* feature (report room) : remove reference to "conversation" for now

* feature (report room) : add report room action to room detail screen

* feature (report room) : enabled button state

* feature (report room) : improve code and reuse

* feature (report room) : add feature flag

* feature (report room) : change feature flag to static bool

* feature (report room) : add tests

* feature (report room) : fix ui with new api on ListItem

* feature (report room) : clean up and add more tests.

* Update screenshots

* feature (report room) : more test and fix issue

* feature (report room) : update strings

* feature (report room) : fix konsist preview

* feature (report room) : disable feature

* Update screenshots

* var -> val

* Improve preview of AcceptDeclineInviteView

* Improve preview consistency

* Add missing test on DismissErrorAndHideContent

* Update screenshots

* Add missing tests

---------

Co-authored-by: ElementBot <android@element.io>
Co-authored-by: Benoit Marty <benoit@matrix.org>
2025-05-02 12:25:19 +02:00