Commit Graph

227 Commits

Author SHA1 Message Date
Benoit Marty
826cacf209 Remove @Inject, not necessary anymore when class is annotated with @ContributesBinding 2025-10-22 18:52:37 +02:00
Benoit Marty
3db100e61c Fix tests. 2025-10-22 10:31:12 +02:00
Benoit Marty
9af694b4a2 Use right colors on ForcedDarkElementTheme 2025-10-22 09:48:07 +02:00
ElementBot
5f6a93cd1a Sync Strings (#5562)
* Sync Strings from Localazy

* Sync strings again

---------

Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
Co-authored-by: Benoit Marty <benoit@matrix.org>
2025-10-20 10:04:46 +00:00
Jorge Martin Espinosa
b90dc081b7 Fix media viewer not being dismissed with reduced motion enabled (#5555)
This is also called 'remove animations' in some Android versions. It seems like the associated coroutine dispatcher never allows the `delay` calls to complete, or maybe they take too long and the coroutine is cancelled before they finish.
2025-10-17 10:10:13 +00:00
Benoit Marty
901685471c Let the test use sample data. 2025-10-13 17:12:42 +02:00
Benoit Marty
e9f80d917a Centralize WaveForm samples. 2025-10-13 17:12:36 +02:00
Benoit Marty
da78386d25 Add Konsist test to check that toPersistentList() is not used.
Same for `toPersistentSet()` and `toPersistentMap()`.
Fix existing issues.
2025-10-08 15:51:18 +02:00
ElementBot
c6d4a367d3 Sync Strings from Localazy (#5427)
Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
2025-09-29 15:10:21 +00:00
renovate[bot]
c1cd259ce7 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
595cec7d33 Merge branch 'develop' into feature/bma/testEntryPoint 2025-09-18 18:58:30 +02:00
Benoit Marty
1abeb8e5c7 Complete test on MediaGalleryPresenter 2025-09-17 12:18:37 +02:00
Benoit Marty
626689a285 Fix issue after rebase. 2025-09-16 14:41:00 +02:00
Benoit Marty
264472ba36 Avoid using AndroidJUnit4 runner to test Entrypoint implementations. 2025-09-16 14:38:32 +02:00
Benoit Marty
e36273b94c Add test on DefaultEntryPoints 2025-09-16 14:38:32 +02:00
Benoit Marty
a45e9d23c2 Rename Node to follow naming convention 2025-09-16 10:38:16 +02:00
Jorge Martin Espinosa
b0708636ad Media viewer: release the ExoPlayers when the hosting composables are disposed (#5351)
* Media viewer: release the `ExoPlayers` when the hosting composables are disposed

* Restore missing `removeListener` call
2025-09-15 16:00:13 +02:00
Benoit Marty
aee66d6316 Other cleanup 2025-09-05 16:54:45 +02:00
Benoit Marty
4e720cecb1 Rename anvil modules to annotations and codegen 2025-09-05 14:26:27 +02:00
bmarty
676d7f6c8f Sync Strings from Localazy 2025-09-05 07:44:19 +00:00
Jorge Martín
8f09fd62d9 Fixes after rebase 2025-09-04 16:49:21 +02:00
Jorge Martín
fc3153bd26 Fix lint issues and restore commented out code 2025-09-04 16:49:18 +02:00
Jorge Martín
92a4b8b66b Start migrating Anvil KSP to Metro 2025-09-04 16:48:34 +02:00
ElementBot
a43b907275 Sync Strings from Localazy (#5249)
Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
2025-09-01 12:44:49 +02:00
Jorge Martin Espinosa
285066c206 Threads - first iteration (#5165)
* Initial threads support: parse `ThreadSummary`.

Replace several `isThreaded` values with `EventThreadInfo`, which contains the info about the event either being the root of a thread or part of it.

* Add `Threaded` timeline mode

* Add a `liveTimeline` parameter to `TimelineController`'s  constructor. This way we can customise which timeline will be used as the 'live' one. Also add `@LiveTimeline` DI qualifier for the actual live timeline of the room.

* Create `ThreadedMessagesNode`. Allow opening a thread in a separate screen.

* Add the callbacks for the list menu actions - even if they're the wrong ones and will send the data to the room instead

* Send attachments and location in threads

* Fix polls in threads, add support for sending voice messages in threads

* Display thread summaries only when the feature flag is enabled

* Use 'Reply' instead of 'Reply in thread' when in threaded timeline mode

* Remove incorrect usage of `Timeline` in `MessageComposerPresenter`. This led to replies to threaded events not appearing as actual replies.

---------

Co-authored-by: ElementBot <android@element.io>
2025-08-19 13:35:48 +00:00
Jorge Martin Espinosa
a170d80cb3 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
Benoit Marty
4a6765db20 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
683628e352 Rename extension. 2025-08-05 21:11:19 +02:00
Benoit Marty
eb33c8d864 [a11y] Let keyboard shortcut Shift + F10 trigger the same action than a long click 2025-08-05 09:41:08 +02:00
Benoit Marty
0b895f631d Merge pull request #5112 from element-hq/sync-localazy
Sync Strings
2025-08-04 16:01:40 +02:00
renovate[bot]
d65808d8cf Update media3 to v1.8.0 (#5101)
* Update media3 to v1.8.0

* Fix breaking API changes

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2025-08-04 10:26:15 +02:00
bmarty
a2c8107b44 Sync Strings from Localazy 2025-08-04 00:34:11 +00:00
Jorge Martin Espinosa
b2477eb412 Remove the scaling added in Player.Listener.onVideoSizeChanged (#5055) 2025-07-22 16:06:49 +02:00
Benoit Marty
71cb6892cb MediaGalleryView: replace PageTitle by IconTitleSubtitleMolecule 2025-07-11 14:21:04 +02:00
Benoit Marty
c33b16db6b MediaDeleteConfirmationBottomSheet: replace PageTitle by IconTitleSubtitleMolecule 2025-07-11 14:19:59 +02:00
ElementBot
1944004409 Sync Strings from Localazy (#4983)
Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
2025-07-04 14:37:59 +00:00
Benoit Marty
a464e5c99f [a11y] Add heading() to date separators. 2025-07-04 12:16:05 +02:00
Benoit Marty
4afc20798c [a11y] Ensure that heading() is applied to all screen titles. 2025-07-04 12:15:42 +02:00
Benoit Marty
d1e0804772 [a11y] Add long click label 2025-07-04 09:34:14 +02:00
Benoit Marty
aeb750439c Fix test regression on API 33. 2025-06-30 17:01:01 +02:00
Benoit Marty
2234cab0c7 Fix test regression on API 33. 2025-06-30 17:01:00 +02:00
bmarty
2e8f8ec057 Sync Strings from Localazy 2025-06-30 00:33:54 +00:00
Benoit Marty
7f60fde9dc Remove default param for Avatar.avatarType 2025-06-23 21:36:53 +02:00
Benoit Marty
d524c23b8d Merge pull request #4916 from element-hq/feature/bma/zoomVideo2
Add ability to zoom on video.
2025-06-23 13:46:43 +02:00
Benoit Marty
a79b8c9c16 Add ability to zoom on video. 2025-06-23 12:09:33 +02:00
renovate[bot]
304b99d544 fix(deps): update dependency org.robolectric:robolectric to v4.15 (#4901)
* fix(deps): update dependency org.robolectric:robolectric to v4.15

* It seems that there's been some improvement on Robolectric 4.15 so this can be tested properly now.

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Benoit Marty <benoit@matrix.org>
2025-06-20 17:23:20 +02:00
Benoit Marty
72978b22f9 Remove ExperimentalFoundationApi. Not necessary anymore. 2025-06-11 18:10:55 +02:00
ElementBot
f32495ee58 Sync Strings from Localazy (#4842)
Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
2025-06-11 14:13:33 +02:00
renovate[bot]
96063373b7 fix(deps): update coil to v3.2.0 (#4712)
* fix(deps): update coil to v3.2.0

* Fix compilation issue. Need to provide an image for preview.

https://coil-kt.github.io/coil/compose/#previews

* Improve preview for images.

* Update screenshots

* More cleanup

* Update screenshots

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Benoit Marty <benoit@matrix.org>
Co-authored-by: ElementBot <android@element.io>
2025-06-05 09:49:27 +02:00
renovate[bot]
0ded7f7f34 fix(deps): update telephoto to v0.16.0 (#4749)
* fix(deps): update telephoto to v0.16.0

* Opt in for ExperimentalTelephotoApi

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Benoit Marty <benoit@matrix.org>
2025-06-04 18:07:47 +02:00