* Move empty day separator filtering to a timeline post-processor
* Split `FilterPublicMembershipChangesPostProcessor` from `RoomBeginningPostProcessor`
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.
* Filter some membership/profile/topic events in public rooms: don't display join and leave membership events in publicly joinable rooms, and hide display name and avatar url changes in non encrypted and publicly joinable rooms.
* Add empty day post-processing to the timeline based on bxdxnn's code, tweaked.
---------
Co-authored-by: Jorge Martín <jorgem@element.io>
* Update dependency org.matrix.rustcomponents:sdk-android to v26.05.20
* Fix API breaks:
- Handle new `ClientBuildException.InvalidRawKey` variant.
- `RoomInfo` now has a `fullyReadEventId` .
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
* 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.
* 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
* Change native back button behavior in EC view:
- inject escape into webview instead of going back.
- the webview will call back when no other modal is open.
* call down and up in the webview + make sure that we fall back to close
pip in case the webview did not handle the esc action.
* Tests and refactor to CallScreenBackPressPolicy
---------
Co-authored-by: Jorge Martín <jorgem@element.io>
* Update dependency io.element.android:element-call-embedded to v0.19.3
* Remove `Scaffold` component from CallScreenView
* Add immersive mode to calls in landscape orientation
* Add `consumeWindowInsets`, which fixes the webview not displaying any insets for the bottom nav bar
* Update screenshots
* Ignore compact height in PiP mode
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: ElementBot <android@element.io>