Commit graph

362 commits

Author SHA1 Message Date
Benoit Marty
1f3d848c79
Image edition before sending: crop and rotate. (#6842)
* Add crop and rotate editing before sending images (#6363)

* feat(messages): add crop and rotate before image upload

* Update screenshots

* chore: trigger CI after screenshot update

* fix: resolve detekt violations in image editor and media viewer modules

* fix: require explicit edits param, use plurals for rotation a11y, remove redundant @Inject

* fix: require explicit edits param, use plurals for rotation a11y, remove redundant @Inject

* fix: use semantically correct RotateRight icon for image rotation action

* Update screenshots

* chore: trigger CI after screenshot update

---------

Co-authored-by: ElementBot <android@element.io>
Co-authored-by: Benoit Marty <benoitm@element.io>

* Update design and UX

Update and add tests
Improve preview

* Update screenshots

* For quality issue and improve preview

* Update screenshots

* Remove default value of data class.

* Rename file.

* Fix tests.

* Allow detecting touch events outside the image by applying the drag detection to the parent node and offsetting the touch events

* Improve touch detection.

* Update screenshots

* Remove useless line.

---------

Co-authored-by: Gianluca Iavicoli <gianluca.iavicoli04@gmail.com>
Co-authored-by: ElementBot <android@element.io>
Co-authored-by: Jorge Martín <jorgem@element.io>
2026-05-26 10:07:05 +02:00
ElementBot
0aaa80cbdc
Sync Strings from Localazy (#6856)
Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
2026-05-26 08:05:07 +00:00
Gianluca Iavicoli
bcad1f9dce Add crop and rotate editing before sending images (#6363)
* feat(messages): add crop and rotate before image upload

* Update screenshots

* chore: trigger CI after screenshot update

* fix: resolve detekt violations in image editor and media viewer modules

* fix: require explicit edits param, use plurals for rotation a11y, remove redundant @Inject

* fix: require explicit edits param, use plurals for rotation a11y, remove redundant @Inject

* fix: use semantically correct RotateRight icon for image rotation action

* Update screenshots

* chore: trigger CI after screenshot update

---------

Co-authored-by: ElementBot <android@element.io>
Co-authored-by: Benoit Marty <benoitm@element.io>
2026-05-21 15:18:40 +02:00
Benoit Marty
c3a4d64ec6
Merge pull request #6827 from element-hq/feature/bma/a11y/roomNameHeading
[a11y] Improve accessibility of screen headers.
2026-05-21 09:00:33 +02:00
Benoit Marty
44df2d2c17 [a11y] Improve accessibility of media controller 2026-05-20 17:23:30 +02:00
Benoit Marty
4641ae666e [a11y] Improve accessibility of media controller 2026-05-20 17:04:24 +02:00
Benoit Marty
bd01b27517 [a11y] Ensure that video overlay with controls is never hidden when screen reader is enabled. 2026-05-20 16:21:06 +02:00
Benoit Marty
5b2970f789 [a11y] Improve accessibility of screen headers. 2026-05-20 15:49:18 +02:00
Jorge Martin Espinosa
42c141109f
Fix media viewer flickering (#6800)
* Fix media viewer flickering

This was caused by the data being loaded triggering an index update that got out of sync with the displayed items, and for an instant, the pager index pointed to the wrong data until it was refreshed

* Reuse the same 'displayer' function for both forwards and backwards pagination

* Make `dataFlow` a property so we don't create a new instance every time we access it

* Remove `pageDataComparator` as it prevented new items from being loaded when a pagination returned no valid items to display but has more items to load

Make sure we modify the current index when loading new data only if it was pointing to the input event id.

* Fix `MediaViewerDataSource` overriding the provided timestamp for `Loading` items

Test emitting different loading items from the data source results in the state displaying the different items, so they will trigger a new pagination attempt

* Add regression test to check loading -> error -> loading states will still trigger 2 separate `LoadMore` events
2026-05-20 11:32:32 +02:00
Benoit Marty
07668502fa
Merge pull request #6798 from element-hq/sync-localazy
Sync Strings
2026-05-18 18:45:27 +02:00
Jorge Martin Espinosa
2954174c56
Only load full media on media viewer when it's the visible item (#6794)
* Only load full media on media viewer when it's the visible item

* Allow cancelling ongoing media loading if scrolling fast
2026-05-18 10:29:14 +02:00
cizra
e6c3a8ff1d
Add MIDI playback (#6770)
* Add MIDI playback

* Implement PR suggestions
2026-05-18 10:06:47 +02:00
bmarty
dcc67f9fc6 Sync Strings from Localazy 2026-05-18 00:57:56 +00:00
Valere
6bc8cd84e4 fixup test compilation 2026-05-11 16:54:30 +02:00
ElementBot
0c657c258a
Sync Strings from Localazy (#6761)
Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
2026-05-11 09:37:59 +02:00
bxdxnn
071d98c66b
Render media captions formatting in the media viewer (#6729)
* Render media captions formatting in the media viewer

* Update screenshots

* Trigger actions

* Remove unused imports and reformat code

---------

Co-authored-by: ElementBot <android@element.io>
Co-authored-by: Jorge Martín <jorgem@element.io>
2026-05-08 16:30:32 +02:00
Benoit Marty
2a694f6dfd Create PreviewData with sample of UGC used for preview.
Fix preview issue where username was used for room/avatar name.
2026-05-06 17:45:50 +02:00
bxdxnn
28e1062eed
Reimplement "Natural media viewer swiping order" (#6715) 2026-05-05 16:02:52 +02:00
Benoit Marty
26fe5b6492
Merge pull request #6650 from element-hq/feature/bma/a11yFixes
[a11y] Fix a set of issues
2026-05-04 11:50:15 +02:00
bmarty
0d2f71643a Sync Strings from Localazy 2026-05-04 00:54:27 +00:00
Benoit Marty
85ef12a401
Merge pull request #6697 from element-hq/feature/bma/fixDependencyError
Fix dependency error
2026-04-30 16:57:19 +02:00
Benoit Marty
4e38846342
Merge pull request #6693 from element-hq/renovate/compose.bom
Update dependency androidx.compose:compose-bom to v2026.04.01
2026-04-30 16:54:23 +02:00
Benoit Marty
11b9efa2c9 Migrate to v2 testing APIs 2026-04-30 16:04:07 +02:00
Jorge Martin Espinosa
30fd90abb9
Mitigate a deadlock when loading room timelines (#6674)
This may be happening because we were not destroying focused event timelines used for the media viewer/gallery when necessary, and having several of those back paginating *may* have caused a deadlock in the event cache.
2026-04-30 16:01:24 +02:00
Benoit Marty
b8995e4356 Fix quality issues 2026-04-30 14:09:07 +02:00
Benoit Marty
d6f8c13c3f MediaPlayerControllerView: Use IconButton instead of Box and remove the clipping. 2026-04-30 12:20:53 +02:00
Benoit Marty
b1890de26a MediaViewerView: move TopBar to Scaffold topbar 2026-04-30 12:20:53 +02:00
Benoit Marty
8188ef1463 Improve MediaViewerBottomBar usage. 2026-04-30 12:19:32 +02:00
Benoit Marty
562e36b5ea Improve how the ThumbnailView is added to the composition 2026-04-30 12:19:32 +02:00
Benoit Marty
dcd0a98c0c Declare Top bar first and use zIndex. 2026-04-30 12:19:30 +02:00
Benoit Marty
4e46f12a12 Remove useless Box 2026-04-30 12:17:25 +02:00
Benoit Marty
4d0be69b4c In the module :libraries:matrix.api, change the dependencies to:
- libraries.sessionStorage.api
- projects.libraries.architecture
from `api` to `implementation`.

Modules who need `:libraries:matrix.api` do not necessarily need to use the session storage api.
2026-04-30 09:52:10 +02:00
Benoit Marty
09ff3294d5 Ensure that all the ModalBottomSheet can scroll. 2026-04-27 10:23:56 +02:00
ElementBot
9a2ad3928a
Merge pull request #6658 from element-hq/sync-localazy
Sync Strings
2026-04-27 09:17:54 +02:00
Benoit Marty
fb50fce649 Ensure preview has a date 2026-04-24 16:53:53 +02:00
Benoit Marty
c283f0109b a11y: add heading to the title. 2026-04-24 16:16:15 +02:00
Benoit Marty
de7b4002d8 MediaDetailsBottomSheet: update wording. 2026-04-24 15:16:26 +02:00
Benoit Marty
1c229e7229 Replace " - " by " • " as it renders better. 2026-04-24 14:28:52 +02:00
Benoit Marty
09e0d2d166 MediaDetailsBottomSheet: Add missing preview case. 2026-04-23 11:22:47 +02:00
Benoit Marty
bbb4a47eff MediaDetailsBottomSheet: iterate on design.
Closes #6645
2026-04-23 11:20:20 +02:00
Benoit Marty
b12a9ff2b9 Improve rendering when sender does not have a display name. 2026-04-22 14:57:18 +02:00
Benoit Marty
7bbdecc7a8 Rename sub classes of MediaBottomSheetState and improve preview of MediaDeleteConfirmationBottomSheet 2026-04-22 14:42:56 +02:00
Benoit Marty
c1678f22e6 Add more preview for MediaDetailsBottomSheetPreview 2026-04-22 12:21:20 +02:00
Benoit Marty
769341e4f2 Remove some dividers. 2026-04-22 12:16:52 +02:00
Benoit Marty
630b0c8098 Improve and add test 2026-04-22 12:07:56 +02:00
Benoit Marty
1e39736797 MediaGalleryEvents -> MediaGalleryEvent 2026-04-22 11:01:36 +02:00
Benoit Marty
83b4bfad96 Move "Open with" action to bottom sheet 2026-04-22 10:59:21 +02:00
Benoit Marty
a0632b216c MediaDetailsBottomSheet: update wording and dividers. 2026-04-21 16:53:22 +02:00
Benoit Marty
79afb1d9e0 MediaViewer: add Save action as a main action. 2026-04-21 16:21:01 +02:00
Benoit Marty
97ae775df5 MediaViewer: add Share action as a main action. 2026-04-21 16:14:07 +02:00