Commit graph

4586 commits

Author SHA1 Message Date
Benoit Marty
216ba060b4
Merge branch 'develop' into feature/bma/rageshakeConfigStep2 2025-08-11 17:35:06 +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
ElementBot
4b12c3f805
Sync Strings (#5146)
* Sync Strings from Localazy

* Remove unused WelcomeView.

* Remove unused WelcomeView.

---------

Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
Co-authored-by: Benoit Marty <benoit@matrix.org>
2025-08-11 12:49:29 +00:00
Benoit Marty
1c9304cac5 Add unit test on DefaultRageshakeFeatureAvailability 2025-08-11 11:18:29 +02:00
Benoit Marty
67e27ab125 Add missing test on CrashDetectionPresenter 2025-08-11 11:10:32 +02:00
Benoit Marty
d9b274b6cf Let enterprise build be able to override (or disable) the bug report URL. 2025-08-08 17:23:39 +02:00
Jorge Martin Espinosa
49a268a0e1
Fix cursor position in room list search (#5138) 2025-08-08 15:50:06 +02:00
Benoit Marty
db64ce3142 Extract code to retrieve .well-known files to its own modules. 2025-08-08 12:36:48 +02:00
Benoit Marty
1afcce2b97
Merge pull request #5126 from element-hq/feature/bma/redirectToElementPro
Redirect FOSS user to Element Pro according to element .well-known file
2025-08-08 09:38:59 +02:00
Benoit Marty
8a163fc7d2
Merge pull request #5132 from element-hq/feature/bma/rageshakeConfig
Let enterprise build store the logs in a dedicated subfolder
2025-08-07 16:35:00 +02:00
Benoit Marty
2a67ad4c67 Only change the log folder on enterprise build 2025-08-07 14:02:07 +02:00
Benoit Marty
2d801a0924 Add tests 2025-08-07 12:38:10 +02:00
Benoit Marty
a8ba4751ed Fix tests 2025-08-07 12:19:26 +02:00
Benoit Marty
2a4fc974ea Ensure that deleteAllFiles will check all the log files. 2025-08-07 11:40:38 +02:00
Benoit Marty
18c325560b Store log files in subfolder based on the homeserver domain. 2025-08-07 11:31:05 +02:00
Benoit Marty
122aeb1d03
Merge pull request #5120 from element-hq/feature/bma/a11y/contextMenuKeyboard
[a11y] Open context menu with the keyboard
2025-08-06 14:50:12 +02:00
Benoit Marty
ecd3fc7ed1 Add missing preview on LoginModeView 2025-08-06 14:40:37 +02:00
Jorge Martin Espinosa
1343aaed20
Reload room member list when active members count changes (#5129) 2025-08-06 10:37:52 +00:00
Benoit Marty
df731a6037 Remove blank line 2025-08-06 11:13:11 +02:00
Benoit Marty
fb30748ed7 Rename file to match class name. 2025-08-06 11:12:22 +02:00
Benoit Marty
89ef890a7c Prevent users from using Element FOSS on homeservers that enforce the usage of Element Pro. 2025-08-06 10:23:16 +02:00
Benoit Marty
43fade19c6 Fix comment quality 2025-08-05 21:11:20 +02:00
Benoit Marty
be82c6e257 Rename extension. 2025-08-05 21:11:19 +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
Jorge Martin Espinosa
dff295eadf
Delegate call notifications to Element Call, upgrade SDK and EC embedded (#5119)
* Stop sending call notifications manually: the Element Call widget can now assume responsibility for sending them when you start a call.

* Upgrade SDK version to `v25.8.5`, fix API breaks

* Upgrade Element Call embedded to `v0.14.1`

* Fix tests and lint issues

* Add `RoomListEntriesDynamicFilterKind.NonSpace` to avoid displaying spaces in the room list

---------

Co-authored-by: Robin <robin@robin.town>
2025-08-05 15:14:51 +00:00
Benoit Marty
9557035199 Ensure that navigation using keyboard is not broken on the room list.
Workaround https://issuetracker.google.com/issues/436432313
2025-08-05 12:00:12 +02:00
Benoit Marty
d988ae3082 [a11y] Let keyboard shortcut Shift + F10 trigger the same action than a long click 2025-08-05 09:41:08 +02:00
Benoit Marty
27ad6217ec Cleanup: Remove unused class 2025-08-05 09:17:06 +02:00
Benoit Marty
8994ff587b Cleanup: The local inspection mode is handled in ModalBottomSheet. 2025-08-04 16:37:43 +02:00
Benoit Marty
60be02c3c3 Cleanup: rememberModalBottomSheetState is the default value for sheetState 2025-08-04 16:36:21 +02:00
Benoit Marty
bdcafde2ce Sync string again 2025-08-04 14:50:08 +02:00
bmarty
ee77c646eb Sync Strings from Localazy 2025-08-04 00:34:11 +00:00
Jorge Martin Espinosa
51f67741ae
Adapt 'change roles' screens to the new creator/owner role (#5076)
* Replace `RoomMember.Role.CREATOR` with `RoomMember.Role.Owner` - Make `RoomMember.Role` a sealed interface instead

* Adapt room member role mapping to include the power level to distinguish between admins and owners

* Use new `RoomMember.Role` sealed interface through the app

* Change how `MembersByRole` groups members to add owners to the admins section

* Adapt the `ChangeRoles` screen to the new roles:
    - Owners can't modify other owner's roles.
    - They can modify the roles of any other user, without confirmation.

* Adapt 'roles and permissions' screen:
    - Owners can't demote themselves.
    - The admin count also counts owners.

* Add more tests and screenshots

* Add owners to its own section in the 'change roles' screen

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
2025-07-29 14:07:16 +00:00
bmarty
0fb0861bc1 Sync Strings from Localazy 2025-07-28 00:33:43 +00:00
Jorge Martin Espinosa
afa01e926b
Make sure we display errors when we create a recovery key and it fails (#5079)
* Make sure we display errors when we create a recovery key and it fails

* Add another preview for the error state

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
2025-07-25 13:36:43 +02:00
Jorge Martin Espinosa
34848aa7f9
Prevent crash caused by re-release of wakelock in calls (#5077) 2025-07-25 13:36:23 +02:00
Jorge Martin Espinosa
e14ef24927
Prevent loop when exiting the attachments preview screen (#5078)
Disable the custom `BackHandler` when the `sendState` is `Done`. Otherwise, it can get into a loop in some cases where `postCancel()` calls the `OnDoneListener`, which triggers an up navigation, which then simulates a back press... and we end up in the custom `BackHandler` again.
2025-07-25 13:36:09 +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
Jorge Martin Espinosa
d53457ec66
Make sure we clean up the pre-processed and uploaded media (#5039)
* Add `MediaSender.cleanUp()` and `MediaPreProcessor.cleanUp()` methods: this will remove the temporary files created when pre-processing media before sending them.

* Make sure we clean up also the previous temporary media.

* Fix the condition for the custom back handler in the attachments preview screen

* Tests: check the clean up is performed when needed
2025-07-23 08:55:20 +02:00
ganfra
9f11884ddd
Merge pull request #5054 from element-hq/sync-localazy
Sync Strings
2025-07-22 21:13:30 +02:00
bmarty
8ffbfd82e8 Sync Strings from Localazy 2025-07-22 20:46:13 +02:00
ganfra
372d5f6e9b
Merge pull request #5046 from element-hq/feature/bma/a11y/createRoomImage
[a11y] Improve accessibility on avatar when creating a room.
2025-07-22 18:25:23 +02:00
Jorge Martin Espinosa
09e127cffc
Use lower level APIs to draw the message bubbles (#5056)
Co-authored-by: ElementBot <android@element.io>
2025-07-21 12:00:31 +02:00
Andy Balaam
6b7cb76734
Grammar fixes for docs and comments (#5043) 2025-07-17 20:32:37 +02:00
Benoit Marty
41783eb599 [a11y] Improve accessibility on avatar when creating a room. 2025-07-17 16:46:34 +02:00
Benoit Marty
2e0da99f2c
Merge pull request #5017 from element-hq/feature/bma/a11y/sessionVerification
[a11y] Improve session verification screens
2025-07-17 15:45:32 +02:00
Benoit Marty
cb725b279f
Fix typo 2025-07-17 15:14:49 +02:00
Benoit Marty
6674afbdb0 Remove blank line 2025-07-16 11:23:42 +02:00
Benoit Marty
cdbadb5477 FAB: iterate on design 2025-07-16 10:11:53 +02:00
Benoit Marty
827b02992d Iterate on FloatingActionButton shape and colors. 2025-07-16 09:47:08 +02:00