* Don't compress images sent through the Files attachment picker
Images and videos picked through the "Attachment" picker are now
uploaded without re-encoding, regardless of the "Optimize media quality"
setting. The gallery and camera pickers keep the existing behaviour,
matching what Element Web/Desktop and most other messengers do.
Fixes#6365
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* Make sure we select the right video preset for sending as file
Wait for the video size estimations to be calculated before preprocessing the video file
---------
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
This happens when building a `ShortcutInfoCompat` in `DefaultNotificationConversationService.onSendMessage` when the provided room name is not null but it's empty.
* 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
* Attempt to fix room list item duplicates at midnight
This seems to happen because of a race condition between `RoomListDataSource.observeDateTimeChanges` and `RoomListDataSource.replaceWith` being called at almost the same time and the first one using the newly received items from observing the timeline items but not updating the cache which will be later reused by `replaceWith`, containing incorrect indices
* Create a new room when inviting people to a DM
* Improve screenshot tests
* Update screenshots
---------
Co-authored-by: ElementBot <android@element.io>
* Fix Maestro: tap on confirmation for inviting unknown users to a room
* Tap on back after inviting some user
* Tap on back again
* Confirm inviting someone to a DM
* Make fix conditional