Commit Graph

4602 Commits

Author SHA1 Message Date
ganfra 41cf1afce3 refactor (start chat) : start splitting things (create room, invite people, start chat) 2025-08-13 11:06:42 +02:00
Benoit Marty 58ce545d98 Merge pull request #5160 from element-hq/feature/bma/cleanupFeatureFlags
Remove old feature flags
2025-08-12 18:21:44 +02:00
Jorge Martin Espinosa 516c3cfda3 Provide calculated server names when opening a room from another (#5155)
* Provide calculated server names when opening a room from another, based on the most frequently used domain names in the user ids for the users in the room.

This helps when following permalinks or navigating to the successor room of a tombstoned one. Previously, the `/summary` endpoint was failing because no server names were used in the `via` parameters.
2025-08-12 15:17:46 +00:00
Benoit Marty d04434e20e Remove FeatureFlag.MediaUploadOnSendQueue 2025-08-12 16:08:46 +02:00
Benoit Marty 34efd2c3fa Remove FeatureFlag.MediaCaptionCreation and FeatureFlag.MediaCaptionWarning 2025-08-12 16:08:45 +02:00
Benoit Marty dcb6055783 Remove FeatureFlag.MediaGallery 2025-08-12 16:08:45 +02:00
Benoit Marty 4f0535714e Remove FeatureFlag.PinnedEvents 2025-08-12 16:08:44 +02:00
Benoit Marty be9861bea9 Remove FeatureFlag.QrCodeLogin 2025-08-12 16:08:43 +02:00
Benoit Marty 1268f74420 Remove FeatureFlag.MarkAsUnread 2025-08-12 16:08:42 +02:00
Benoit Marty 0ba783cd93 Remove FeatureFlag.VoiceMessages 2025-08-12 16:08:41 +02:00
Benoit Marty 82c86a2b4d Remove FeatureFlag.NotificationSettings and FeatureFlag.PinUnlock 2025-08-12 16:08:40 +02:00
Benoit Marty 7fb70fabed Remove FeatureFlag.LocationSharing and FeatureFlag.Polls 2025-08-12 16:08:38 +02:00
Benoit Marty fb16f3875d Suppress deprecation warning for test. 2025-08-12 15:52:08 +02:00
Benoit Marty 3e73496c85 Remove FeatureFlag.IncomingShare 2025-08-12 15:52:05 +02:00
Jorge Martin Espinosa 1a31e49f1e Do not automatically initialize DefaultVideoMetadataExtractor's data source (#5157)
This will cause a crash for image attachments
2025-08-12 13:03:43 +00:00
Jorge Martin Espinosa 31a952c389 Hide the recovery key while we are entering it (#5147)
* Hide the recovery key while we are entering it (#5134)

This is the Element X Android part of
https://github.com/element-hq/element-meta/issues/2888

* Move the textfield contents being visible to the state so we can preview and test it

* Always use the password visual transformation for the recovery key field

* Update screenshots

---------

Co-authored-by: Andy Balaam <andy.balaam@matrix.org>
Co-authored-by: ElementBot <android@element.io>
2025-08-12 14:46:00 +02:00
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