Commit Graph

2129 Commits

Author SHA1 Message Date
Benoit Marty e346f68fc8 Merge pull request #7044 from bxdxnn/fix/thread-list-avatar
Fix wrong avatar shown in the thread list's top bar
2026-07-06 11:34:14 +02:00
Benoit Marty 8840e2f96b Merge pull request #7112 from element-hq/feature/bma/galleryMessages
Support gallery messages
2026-07-03 14:09:20 +02:00
Benoit Marty 762823ebd7 SampleMediaRenderer can be internal. 2026-07-03 09:52:12 +02:00
Benoit Marty 4566712ad3 Take user choice into consideration when pre-processing the media. 2026-07-03 09:49:06 +02:00
Benoit Marty 57ed76bd03 A11Y: Do not read the +x Text. 2026-07-02 12:26:49 +02:00
Benoit Marty 79f1423a30 Fix accessibility: message composer label and 'Seen by' button (#6390, #6393)
- MarkdownTextInput: set contentDescription on MarkdownEditText so TalkBack
  announces a persistent label even when the field has content (fixes #6390)
- TimelineItemReadReceiptView: remove hideFromAccessibility() so the 'Seen by'
  button is exposed to TalkBack; use semantics (not clearAndSetSemantics) to
  preserve click action, and add Role.Button (fixes #6393)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-01 17:49:32 +02:00
Benoit Marty 6cce74db88 [Gallery] Set media optimation user choice per media 2026-07-01 09:45:08 +02:00
Benoit Marty 29743d3c89 Some renaming for clarity. 2026-06-30 12:16:04 +02:00
Benoit Marty 89b4722a58 Restore previous code. 2026-06-30 12:06:34 +02:00
Benoit Marty 99343926ff Extract SingleItemPreviewRenderer, make it a class and rename it to SampleMediaRenderer 2026-06-30 12:00:12 +02:00
Benoit Marty 96e1c93f38 Introduce derived state editedAttachments 2026-06-30 11:50:58 +02:00
Benoit Marty f91fd4b535 Rename method to sendMedia 2026-06-30 11:35:20 +02:00
Jorge Martin Espinosa 6068aeaf01 Detect RTL text in events and adjust the text rendering (#6994)
* Add `TextDirection.detect` to check the overall LTR or RTL direction of texts

* Calculate if the contents of events have a different direction than the layout to reverse the layout direction if needed.

LTR content, RTL text -> mismatched direction, reverse.
RTL content, LTR text -> also mismatched, reversed too.

* Measure text in `measureLastTextLine` based on its direction, not the layout's,
to avoid some issues with incorrectly calculated free space.

* Tweak the paddings in `TimelineEventTimestampView` a bit if the layout and text directions don't match

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
2026-06-29 15:11:49 +02:00
ElementBot 46460e1c27 Sync Strings (#7115)
* Sync Strings from Localazy

* Update screenshots

---------

Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
2026-06-29 14:09:36 +02:00
Benoit Marty c80eb12e2f Remove duplicated fixtures. 2026-06-29 11:36:20 +02:00
Benoit Marty 73ef038035 Preview: add video item in the list 2026-06-29 11:31:21 +02:00
Benoit Marty ad84122285 Revert change on TimelineItemVideoView, it was dead code. 2026-06-29 11:21:02 +02:00
Benoit Marty b2a7c6548a Add missing test on TimelineItemContentMessageFactory 2026-06-29 10:01:21 +02:00
Benoit Marty 95e656cc32 Fix regression on tests. 2026-06-29 09:11:51 +02:00
Benoit Marty b62242cdd2 Fix sharing gallery from pinned event timeline. 2026-06-26 17:36:27 +02:00
Benoit Marty a7e6d8af6e Better fix to render all items in the gallery. Should be able to render mixed items. 2026-06-26 16:24:57 +02:00
bxdxnn 87aff40b26 Support gallery messages (#6519)
* Support gallery messages

* Address review

* Remove unused function

* Fix indent

* Add "Gallery" message prefix

* Support galleries for image editing

* Fix tapping on a tile opens the last item

* Fix overflow count

* Add caption editing to gallery messages

* Use the new gallery string for prefix

* Lock sending galleries behind a feature flag

* Fix detekts

* Fix

* Ensure image edition is saved when navigating

* Fix sending media broken on edited gallery.

* Fix tests

* Order imports

* Remove unused parameters.

* Fix copyright header of new files.

* Fix Konsist test

* Extract new previews to a dedicated file.

* Sync strings

* Remove unused import

* Update screenshots

* Trigger CI

* Remove parameters with default value.

* More cleanup

* Restore sendAsFile behavior.

* Improve Preview.

* Improve Preview.

* Improve Preview.

* Fix gallery sending cancel and retry issue

* Ensure any previous job is cancelled.

* Fix issue in summary message

* Gallery feature is disabled by default.

* Kotlin convention

* Remove useless parenthesis

* Update screenshots

* Fix test

* List -> ImmutableList

* Remove useless code.

* Render formatted caption for attachment list.

* Replace set of Booleans by an enum

* Remove unused model for individual caption in a gallery Event.

* Fix tests

* Fix tests

* Rework MediaViewer entry point.

And ensure that the clicked image from the gallery is displayed first.

* Ensure gallery item can be click in the pinned message list
Improve the gallery item click handling code.

* Improve code and fix separator color
Closes #7101

* React on attachment item click
Improve code

* Improve code and support 0 items in gallery.

* Fix click on attachment item not rendering anything.

---------

Co-authored-by: Benoit Marty <benoitm@element.io>
Co-authored-by: Benoit Marty <benoit@matrix.org>
Co-authored-by: ElementBot <android@element.io>
2026-06-26 16:00:56 +02:00
ganfra 0aea5f94ec Merge branch 'develop' into fix/thread-list-avatar 2026-06-26 11:07:31 +02:00
ElementBot 932fdaeb2c Sync Strings (#7071)
* Sync Strings from Localazy

* Sync strings again.
Restore `screen_notification_settings_sound_system_default`

---------

Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
Co-authored-by: Benoit Marty <benoit@matrix.org>
2026-06-22 15:37:33 +02:00
Benoit Marty c430877d87 Ensure Robolectric test are run using API 36 until the library support API 37. 2026-06-18 12:18:32 +02:00
bxdxnn cc736ec759 Fix wrong avatar in the thread list top bar 2026-06-17 16:20:34 +00:00
bxdxnn 351acec58d Fix thread list not loading older threads (#7034)
* Fix thread list pagination
2026-06-16 20:52:52 +02:00
ElementBot d39b208099 Sync Strings from Localazy (#7021)
Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
2026-06-16 12:59:45 +02:00
Benoit Marty ff8e477b4f Merge pull request #6984 from bxdxnn/fix/draft-threads
Fix message drafts not being saved in Threads
2026-06-10 14:44:12 +02:00
bxdxnn 3bc7da0e01 Apply suggestion from @bmarty
Co-authored-by: Benoit Marty <benoit.marty@gmail.com>
2026-06-09 13:29:58 +03:00
bxdxnn 8b4158c824 Address review 2026-06-08 18:17:45 +00:00
Jorge Martin Espinosa bea2903093 Click on avatar in moderation bottom sheet opens avatar preview (#6991)
* Make the avatar in the room member moderation bottom sheet open the avatar in the media viewer (#6962)

* Make the avatar in the room member moderation bottom sheet open the avatar in the media viewer.

* Fix issue with avatar overlay not dismissing the bottom sheet: the bottom sheet would eat all the touch events until the first click, which would somehow cancel this behaviour

* Fix lint issues

* Update screenshots

---------

Co-authored-by: bxdxnn <267911624+bxdxnn@users.noreply.github.com>
Co-authored-by: ElementBot <android@element.io>
2026-06-08 16:32:13 +02:00
ElementBot 5a4c0b5d58 Sync Strings from Localazy (#6986)
Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
2026-06-08 14:33:40 +02:00
bxdxnn 6219378ad3 Fix "Sent" checkmark disappearing when the message is read and "Share presence" is disabled (#6985)
* Don't compute read receipts if presence sharing is disabled

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
Co-authored-by: Jorge Martín <jorgem@element.io>
2026-06-08 13:21:34 +02:00
bxdxnn a10aa6cbe3 Support thread root in drafts 2026-06-06 18:26:46 +00:00
Benoit Marty 4749ec3112 Replace "Edit" button with Crop icon. 2026-06-04 16:13:30 +02:00
Jorge Martin Espinosa a91e1fa2ae Make Vulkan a *not required* feature (#6961)
* Make Vulkan a *not required* feature

* Add `DeviceHasVulkanSupport` helper to check this on runtime

* When trying to open a screen with a map in it, check if vulkan is supported and display a new error dialog in that case

* Fix random lint issue

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
2026-06-04 13:08:19 +00:00
Jorge Martin Espinosa 2ab780576a Remove the FloatingDateBadge feature flag (#6950)
* Remove the `FloatingDateBadge` feature. This is now always enabled.

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
2026-06-03 16:34:06 +02:00
Benoit Marty a9ecf3c5dc Add flip actions to image edition 2026-06-03 11:03:56 +02:00
Benoit Marty a095190902 Merge pull request #6924 from element-hq/feature/bma/fixImageEdition
Fix image resizing behavior.
2026-06-01 22:40:01 +02:00
Benoit Marty b68c78526f Use secondary color (default) for leading icons.
Fixes #6910
2026-06-01 15:49:53 +02:00
Benoit Marty f52fc9c1c2 Fix image resizing behavior. 2026-06-01 14:41:26 +02:00
ElementBot 81ed41d580 Sync Strings (#6921)
Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
2026-06-01 09:52:14 +02:00
bxdxnn 8c29a7b55c Merge pull request #6889 from bxdxnn/fix/read-receipt-calls
Fix read receipts not shown for calls
2026-05-29 17:46:35 +02:00
bxdxnn e0cda170a9 Do not hide own media (#6898) 2026-05-29 09:18:12 +02:00
Jorge Martín bf1462f9b1 WIP 2026-05-28 09:54:00 +02:00
Jorge Martin Espinosa 1e67c2f77b Move empty day separator filtering to a timeline post-processor (#6866)
* Move empty day separator filtering to a timeline post-processor

* Split `FilterPublicMembershipChangesPostProcessor` from `RoomBeginningPostProcessor`
2026-05-26 08:28:32 +00:00
Jorge Martin Espinosa 0e2213a199 Fix public read receipts being sent by mistake (#6838)
When returning to the chat screen from the room details one or a member's profile, `TimelineEvent.OnScrollFinished` will be called immediately, and this would read the default value for `isSendPublicReadReceiptsEnabled`, which is `true`.

If you had public read receipts disabled, this is a mistake, and would send a public read receipt. Instead, what we want to do is wait until the updated value is emitted and use it to decide whether we want to send a public or private read receipt.
2026-05-26 10:10:42 +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