Commit Graph

335 Commits

Author SHA1 Message Date
Benoit Marty c409fc2c83 Fix other issues detekted. 2026-05-28 09:54:02 +02:00
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 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 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
Benoit Marty 54efb46294 MediaViewerEvents -> MediaViewerEvent 2026-04-21 15:50:59 +02:00