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