Commit Graph

109 Commits

Author SHA1 Message Date
Stefan Ceriu df3e5976ce Bump the RustSDK to v1.0.79; add a feature flag for the new rust side ClientBuilder::useEventCachePersistentStorage 2024-12-10 18:19:31 +02:00
Stefan Ceriu caaa89af62 Media gallery - part 1(#3588)
* Introduce a `MediaEventsTimelineFlowCoordinator`
* Update SDK API and architecture
* Add a feature flag, add translations
* Move the media events timeline presentation under the room flow coordinator state machine
* Rename `TimelineViewState.timelineViewState` of type `TimelineState` to `timelineState`
* Enabled SwiftLint's `trailing_closure` rule and fix the warnings.
2024-12-06 16:58:14 +02:00
Doug 49a94e0bdb Handle media source validation more gracefully. (#3571)
* Handle media source validation more gracefully.

* Fix unit tests.
2024-11-29 12:42:27 +00:00
Doug 7e1476d973 Add support for adding/editing/removing media captions. (#3547)
* Add support for editing media captions.

* Add composer snapshots.

* PR comment.
2024-11-21 18:18:27 +00:00
Stefan Ceriu 79473ef2e9 Bump the RustSDK to v1.0.67 (#3512)
* Bump the RustSDK to v1.0.67

* PR comments

---------

Co-authored-by: Doug <douglase@element.io>
2024-11-13 18:03:30 +00:00
Stefan Ceriu b122b02bee Share extension (#3506)
* Setup simple share extension

* Switch the app url scheme to be the full bundle identifier

* Setup a share extension that show a SwiftUI view, uses rust tracing and redirects to the hosting aplication

* Move media as json through the custom scheme into the main app and deep link into the media upload preview screen

* Fix message forwarding and global search screen room summary provider filtering.

* Tweak the message forwarding and global search screen designs.

* Add a room selection screen to use after receiving a share request from the share extension

* Fix share extension entitlements

* Share the temporary directory between the main app and the extensions; rename the caches one.

* Remove the no longer needed notification avatar flipping fix.

* Extract the placeholder avatar image generator from the NSE

* Nest `AvatarSize` within the new `Avatars` enum

* Donate an `INSendMessageIntent` to the system every time we send a message so they appear as share suggestions

* Support suggestions in the share extension itself

* Improve sharing animations and fix presentation when room already on the stack

* Clear all routes when sharing without a preselected room.

* Fix broken unit tests

* Various initial tweaks following code review.

* Correctly clean up and dismiss the share extension for all paths.

* Move the share extension path to a constants enum

* Rename UserSessionFlowCoordinator specific share extension states and events

* Add UserSession and Room flow coordinator share route tests

* Tweak the share extension logic.
2024-11-13 14:02:47 +02:00
Doug 7c75498b4d Replace individual RoomProxy properties with a stored RoomInfo. (#3445)
* Store RoomInfo updates in JoinedRoomProxy and read from them directly.

* Remove all RoomProxy properties that were reading from the RoomInfo.
2024-10-28 12:29:31 +00:00
Doug a4ea552a83 Show a verification badge on the Room Member/User Profile screens. (#3427)
* Add a badge for verified users/room members.

* Reorder subviews.

* Add a (disabled) button to verify other users.

* PR comments.

* Update the SDK.

* Adopt the SDK changes introduced in matrix-rust-sdk/pull/4100

---------

Co-authored-by: Stefan Ceriu <stefan.ceriu@gmail.com>
2024-10-21 16:07:19 +01:00
Stefan Ceriu 0651314e3e Adopt various rust side Timeline API additions (#3423)
* Adopt new reaction toggling API introduced in matrix-org/matrix-rust-sdk/pull/4127

* Adopt the changes introduced in matrix-org/matrix-rust-sdk/pull/4111: use the new `TimelineUniqueId` type instead of `String` for unique timeline identifiers.

* Bump the RustSDK to v1.0.58.

* Fix unit tests
2024-10-16 19:08:34 +03:00
Stefan Ceriu 35d49c4d85 Refactor theTimelineItemIdentifier handling; stop relying on optional EventOrTransactionIds and be explicit when setting composer modes from the draft service. 2024-10-16 16:37:47 +03:00
Stefan Ceriu c79dbe85a0 Bump the RustSDK to v1.0.53: adopt latest record based timeline item APIs (#3356) 2024-10-01 18:50:11 +03:00
Stefan Ceriu 664e87fe87 Switch license to AGPL (#3237)
* Switch license file to AGPL

* Update file copyright headers

* Update the default project file header
2024-09-06 16:34:30 +03:00
Doug 342ad57ce7 Update the SDK. 2024-08-30 14:45:54 +03:00
Mauro 993fe8cd36 TimelineKind refactor (#3193) 2024-08-22 18:33:21 +00:00
Mauro 4eb1ed5d09 Pinned Events Timeline actions and differentiation (#3182) 2024-08-22 17:35:44 +02:00
Stefan Ceriu e281a3f242 Introduce a new RoomProxyType and treat rooms differently based on their membership state 2024-08-21 12:24:20 +03:00
Mauro ff2c42d53b Pinned items timeline implementation for the banner (#3099) 2024-08-05 14:09:05 +02:00
Mauro 0da2d4917b Pin/Unpin Logic (#3084) 2024-07-26 20:41:00 +02:00
Mauro ff33c07596 Fix editing items not in the timeline failing (#3075) 2024-07-22 13:15:57 +02:00
Stefan Ceriu a2faae20c2 Allow showing the developer options on any build type by tapping the settings screen version footer 7 times (a la android) 2024-06-12 13:07:00 +03:00
Stefan Ceriu b2afa04832 Cleanup dead code after Periphery run 2024-06-11 14:38:08 +03:00
Stefan Ceriu 6c1647b851 Fixes #2842, fixes #2841 - Adopt new message sending queue API
- automatically retry failed requests as soon as the network is availble again
- remove manual retry options
2024-06-06 12:59:03 +03:00
Doug e829a3ded6 Move message forwarding out of the flow coordinator. (#2738) 2024-05-07 15:04:11 +01:00
Doug d067e844da Permalink polish (#2771)
* Fix unbalanced padding.

* Animate the scroll to an event when it is already loaded.

* Perform the timeline clearance immediately before replacing the items.
Hides the empty timeline that was briefly shown.

* Make switching timeline more resilient.
2024-05-02 17:51:38 +01:00
Doug f688d2eda4 Permalink Tweaks (#2768)
* Revert back to creating a new flow when re-selecting the same room.

Fix the composer bug by adding IDs to the all of the module AnyViews.

* Don't show the live timeline when starting with a focussed event.
2024-04-30 17:25:32 +01:00
Doug 7b2168a540 Event Permalink Tweaks (#2754)
* Handle errors focussing the timeline.

* Add a test for focussing on an existing timeline item.
2024-04-29 10:00:41 +01:00
Doug df6cf25524 Update the SDK and enable event permalinks. (#2748) 2024-04-26 09:59:01 +01:00
Doug 76e7de40b5 Prepare for event focus and forward pagination (#2745)
Neither are available yet.
2024-04-25 18:32:33 +01:00
Stefan Ceriu ee7b1de1c8 With date separators not longer duplicated switch back to using their timestamps (formatted even) as stable identifiers 2024-04-16 19:27:45 +03:00
Stefan Ceriu a62c96f1c5 Onboarding flow coordinator and FTUE changes (#2578)
Fixes #2595, fixes #2594, fixes #2593, fixes #2592, fixes #2591
2024-03-21 14:01:23 +02:00
Doug 730d099a76 Add RoomDetails for use (with RoomMemberDetails) in AvatarHeaderView. (#2490)
* Add RoomDetails and refactor AvatarHeaderView to use it.
* Remove old displayName property and use RoomDetails in the RoomDetailsScreenViewState
2024-02-21 14:19:05 +00:00
Stefan Ceriu 5cb5862e5e Bump the RustSDK, adopt new marking/flagging rooms as (un)read API and fix sending read receipts when entering rooms or making the app active again 2024-02-14 12:33:19 +02:00
Stefan Ceriu f2e9c32e8d Fixes #2347, #2348, #2349 - Add support for typing notifications 2024-02-13 15:27:52 +02:00
Mauro 224e4e4881 Room List Filters implementation (#2423) 2024-02-08 16:50:44 +01:00
Stefan Ceriu 9915a33964 Fixes #2360 - Add support for manually marking rooms as unread (#2408)
* Fixes #2360 - Add support for manually marking rooms as unread

* Add analytics for marking rooms as (un)read

* Remove unnecessary analytics abstraction levels

* Fix breaking API changes following SDK bump

* Add changelog

* Handle PR comments

* Fix unit tests
2024-02-05 18:06:50 +02:00
Stefan Ceriu 31ca8ed7f2 Prevent unnecessary backpagination requests from running every time a room is entered
- related to #1760 which moved initial timeline item computations to a serial queue
2024-02-02 18:20:14 +02:00
Mauro e755be4cda Settings to enable and disable sending public RRs (#2384) 2024-01-25 15:47:33 +01:00
Mauro faeab892a9 Filtered out unwanted state events for DMs (#2361) 2024-01-19 18:58:29 +01:00
Mauro 1001b5dc33 Reverting RTE to use SDK markdown when in markdown mode (#2327) 2024-01-12 11:58:36 +00:00
Nicolas Mauri 8dd66d3f48 Fix a crash that can occur when updating timeline items in a background thread (#2268) 2023-12-19 15:05:21 +00:00
Mauro 09fb5461e6 Removing dead code part 3 (#2264) 2023-12-19 12:12:16 +01:00
Nicolas Mauri 72a84badcb Polls history (#2244) 2023-12-18 15:38:39 +00:00
Mauro 2f88d39789 Send html in plain text mode (#2246) 2023-12-15 10:04:51 +01:00
Alfonso Grillo e7494164b2 Add TimelineProxy (update sdk to 0.0.7-november23) (#2178)
* Refactor RoomProxy

* Refactor paginateBackwards

* Refactor sendReadReceipt

* Refactor messageEventContent APIs

* Refactor sendMessage

* Refactor toggleReaction

* Refactor send attachments

* Refactor sendLocation

* Refactor cancel/retry send

* ⚠️ Fix encryption build errors

* Refactor editMessage

* Refactor retryDecryption

* Refactor fetchDetails

* Refactor polls APIs

* Refactor fetchMembers

* Refactor RoomTimelineProviderProtocol

* Update sdk to 0.0.7-november23

* Fix UTs

* Fix comment

* Delete old workaround

* Move TimelineProxyError

* Delete queue warnings

* Fix key listener

* Add pollHistory timeline property

* Refactor room/timeline subscriptions

* Delete unused code
2023-11-28 19:01:35 +00:00
Stefan Ceriu abe2080ee2 Extract room screen action handling into separate component (#2045)
* Extract room screen action handling into separate component

* Fix tracing configuration unit tests

* Move the custom reactionsCollapsedBinding to the TimelineReactionsView

* Move voice message playback handling from the timelineController to the room view model

* Reorder methods

* Remove the need for a media player provider in the timeline controller

* Move room attachments opening to the view model, remove the need for a media provider in the timeline controller

* Rename RoomScreenActionsHandler -> RoomScreenInteractionHandler

* Move message sending retry and cancellation to the timeline controller.

* Move audio playback, attachment loading and  user tapping handling into the InteractionHandler

* Fix unit tests

* Switch back swiftlint file_length rule error to 1000 lines
2023-11-08 18:31:39 +02:00
Alfonso Grillo 530985e674 Add deferred spinner for voice messages (#2018)
* Add  delayedLoaderPlaybackState

* Add more tests

* Fix Xcode 14 build error

* Refactor  delayedLoaderPlaybackState -> playerButtonPlaybackState

* Fix runtime issue
2023-11-03 10:39:22 +00:00
Nicolas Mauri 4f0ed94eaa Fix the delay when switching between voice messages (#1985) 2023-10-30 19:44:59 +00:00
Nicolas Mauri a32a7c8f2c Fix: Keep the progress indicator visible after pausing or scrubbing a voice message. (#1969) 2023-10-27 15:24:22 +00:00
Nicolas Mauri 8a5986f9b0 Fix: Always detach voice message audio player state before playing another one (#1965) 2023-10-26 14:12:21 +02:00
Nicolas Mauri f9ad44f96a Fix playback and recording of voice messages (#1948) 2023-10-24 16:49:42 +00:00