* 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.
* Use `runBlocking` for the token refresh logic
The `RustClientSessionDelegate` callbacks always run in a separate thread, so they don't block the main thread.
This ensures the token refresh is fully done (data saved/failed to) before the SDK continues sending the pending previously failed requests
* Fix message type prefixes formatting inconsistencies
* Use new string for the poll summary prefix instead of the A11y text. Also add tests check for the bold spans.
---------
Co-authored-by: Jorge Martín <jorgem@element.io>
* 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.