240 Commits

Author SHA1 Message Date
Doug 542dbd82b9 Prefix the user's own messages with 'You' in the room list. (#4022) 2025-04-14 14:00:19 +01:00
Stefan Ceriu 83136af7c4 Bump the SDK and adopt the new MsgLike timeline item types (#4000)
* Bump the RustSDK to v25.04.09

* Adopt new MsgLike based timeline item structure.

* Move the `replyDetails` and `isThreaded` to the `RoomTimelineItemProperties`

* Restructure the TimelineItemFactory

* Fix line length warning

* Rename `msgLikeContent` to `messageLikeContent` wherever possible.

* Move the `EventTimelineItem` mocks to the SDK mocks folder.
2025-04-10 14:04:16 +03:00
Mauro Romito 8e439bc8f5 pr suggestions 2025-03-21 15:41:39 +01:00
Mauro 319441d527 Use a static room summary provider to resolve room summaries through id and aliases (#3863)
* trying to debug why sometimes the value

is missing even if it appears in the room list

* static room provider implementation

* set the page size through the init

* removed reset filters on .cancel

since using the sop function is safer
2025-03-04 14:08:15 +01:00
Mauro a2242c63e2 Render Room and Message Pills (#3809)
* added a way to render the room and the message

pills, but is WIP

* permalinks now get converted into pills!

* fixed an issue where room address mentions

were not adding a URL properly but a string

* updated tests

* c

* Revert "c"

This reverts commit 5c80252fa23dba7e4d44f2a07fbf1e9500e37c82.

* updated tests

* more tests

* created APIs to get a specific RoomSummary

given the id or the alias

* small mention builder improvement

* pr suggestions
2025-02-25 13:46:01 +00:00
Doug d325adb4fc Hide the unread dot after previewing an invite. (#3800)
* Hide the unread dot when previewing an invite.

* Remove an invited room ID when accepting/rejecting.

* Remove the unread badge from knocked room cells.

* Update snapshots.

* Address PR comments.

Refactor KnockRequestType to JoinRequestType.
2025-02-18 12:22:13 +00:00
Doug bad4a8f9c8 Refactor Rust timeline identifiers into our own. (#3731)
* Refactor eventOrTransactionID.

* Refactor uniqueID.
2025-02-04 09:50:46 +00:00
manuroe 3950cac085 Dual licensing: AGPL + Element Commercial (#3657)
* New LICENSE-COMMERCIAL file

* Apply dual licenses: AGPL + Element Commercial to file headers

* Update README with dual licensing
2025-01-06 11:27:37 +01:00
Mauro 45a630dd85 Implement Knock Logic (#3573)
* WIP RequestToJoin struct

* implemented the logic to display the cells

* knock request banner accept flow

* mark all knocks as seen implemented

* details logic

* implemented accept, decline and ban in the list

* added a loader and modified the stacked view

of the banner

* pr suggestions

* updated naming and loading strings

* added the initial loading state

improved code and the tests

* updated a string that has changed

* code improvement

* tests for the room screen view model

* room details tests

and improved the knock requests tests for the room screen

* knock requests list tests

* added error state alerts with retry

* struct has been renamed on the sdk

so I renamed it also on the app side

* update SDK
2024-12-16 15:32:45 +01: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 77ade52718 Update the strings for unsupported calls. (#3502) 2024-11-11 17:45:06 +00:00
Mauro 2511c98090 Knocked Preview implementation (#3426)
* JoinRoomScreen ui for knocking

* code improvement

* updated previews

* added knocked state with tests

* send knock request

* Apply suggestions from code review

Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>

* pr comments

* update tests

* new API

* knock implementation and cancel knock

* update strings

* added a knocked cell in the home screen

* design update

* updated SDK

* simplified the invite case code

* pr comments

* updated previews

* added message as reason

* updated strings

* fixing tests

---------

Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
2024-10-24 17:23:06 +02:00
Doug cb4d68a756 Fix a bug where the room state wouldn't indicate when a call was in progress. (#3442)
* Fix breaking changes on decryption errors and sending failures.

* Update SDK and analytics events.

* Add extra UTD strings.

---------

Co-authored-by: Stefan Ceriu <stefan.ceriu@gmail.com>
2024-10-24 12:54:52 +01:00
Stefan Ceriu 8f9f8cbed0 Adopt the changes introduced in matrix-org/matrix-rust-sdk/pull/4159 2024-10-23 12:15:05 +03: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 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 9b6470d1f3 Stop delaying subscriptions until after startup (#3294)
- reverts b43797f4bf
- relies on https://github.com/matrix-org/matrix-rust-sdk/pull/3981
2024-09-18 12:16:46 +02:00
Stefan Ceriu d0d24e2d09 Remove spammy logs 2024-09-09 14:42:32 +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
Stefan Ceriu b43797f4bf Delay setting up subscriptions until the RoomListService is running in order to avoid cancelling in flight initial sync requests 2024-09-05 17:26:11 +03:00
Stefan Ceriu 288b1e7896 Update subscriptions if visible range rooms change without the range itself changing (#3220)
* Remove room list range deduplication and allow subscribing to rooms when then update to come into the visible range.

* Fixes #3088 - Update subscriptions if visible range rooms change without the range itself changing
- we switched from range based subscribing with duplicate suppression to id based, but ids can change without ranges changing
- the all rooms list fetches at least 1 event per rooms and can cause rooms to come in and out of the visible range without user interaction
2024-09-02 18:35:31 +03:00
Stefan Ceriu ad13f644c5 Bump the SDK to v1.0.39 2024-08-15 18:24:31 +03:00
Stefan Ceriu 4617d0c255 Switch the new bulk room subscription API 2024-08-09 13:57:04 +03:00
Stefan Ceriu 0c47ea7231 Delete more unnecessary logs 2024-08-07 17:53:10 +03:00
Stefan Ceriu 8f922ac7ee Remove unnecessary room list logs, they haven't proved useful at any point. 2024-08-06 21:30:40 +03:00
Mauro 08347e15a5 Pinned events banner loading state (#3118) 2024-08-06 15:46:56 +02:00
Mauro ff2c42d53b Pinned items timeline implementation for the banner (#3099) 2024-08-05 14:09:05 +02:00
Doug 2e6def5157 Fix the string used for encrypted events in the room list. (#3030)
I don't think its actually meant to be shown but this should still be correct if it is.
2024-07-16 09:22:20 +01:00
Doug a1329d9d54 Replace old visible rooms range with subscriptions in the room list. (#3014)
* Add a SubscriptionTracker actor to RoomProxy.

* Request subscriptions when scrolling rooms.

* Stop unsubscribing in preparation for Simplified Sliding Sync.
2024-07-08 14:32:13 +01:00
Stefan Ceriu d71c8c4e83 Use local room list sorting from Rust. (#2978)
* Switch to the new local room list sorting API

* Get rid of the RoomSummary enum, replace it by the inner RoomSummaryDetails

* And finally, rename RoomSummaryDetails to RoomSummary

* Fix a bunch of warnings

* Small tidy up post rebase/review.

- Remove unused invalidated property.
- Rename some RoomSummary instances to summary instead of details.
- Fix tests with missing roomListItem's.

* Update snapshots

---------

Co-authored-by: Doug <douglase@element.io>
2024-07-05 10:10:53 +01:00
Doug 834260c144 Use the room heroes when computing a DM avatar. (#2900)
* Use room heroes for DM avatar content ID.

* Use RoomAvatar.heroes for the DM Details stack.
2024-06-19 10:27:10 +00:00
Stefan Ceriu 3bb8d668bf Bump the RustSDK to v1.0.14 2024-06-17 17:37:13 +03:00
Stefan Ceriu b614f43d00 Add a feature flag for fuzzy room list searching 2024-06-17 15:21:12 +03:00
Mauro Romito 61e00cf0f7 room membership change states will use displayName
changelog

code improvement
2024-06-11 18:09:59 +03:00
Stefan Ceriu 97e57e6666 element-hq/element-x-ios/issues/2876 - Add support for showing call notifications in the timeline 2024-05-31 13:32:47 +03:00
Doug f0a40ddf36 Update the SDK. (#2873) 2024-05-21 15:30:01 +01:00
Mauro 545b5c31cc Bump SDK (#2857)
Co-authored-by: Doug <douglase@element.io>
2024-05-20 14:37:45 +02:00
Stefan Ceriu 446854e1c3 Fixes #2800 - Display message bodies (file names) next to attachment previews 2024-05-10 17:40:46 +03:00
Stefan Ceriu a401976b2b Enable room list invites by default and remove old code paths 2024-05-09 19:01:57 +03:00
Doug 11557e4879 Update the SDK. (#2776)
Handle async FFI changes.

Fix flakey unit test.
2024-05-03 12:00:05 +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 8d66572cc9 Fixes #2706 - Use disambiguated display names for timeline item senders and state event bodies. (#2739) 2024-04-25 14:53:18 +03:00
Stefan Ceriu 064626fbbe element-hq/element-x-ios/issues/2670 - Show invites as part of the room list 2024-04-09 18:18:11 +03:00
Mauro c66ddfb71e Filters, Mark Unread/Read/Favourites FF removals + code and tests clean up (#2541) 2024-03-07 17:56:09 +01:00
Stefan Ceriu 063b3732b1 Fixes #1837 - Add support for m.call.invite events in the timeline, room list and notifications 2024-03-07 18:23:22 +02:00
Mauro 7754b9b8dc Searching disables the filters (#2530) 2024-03-06 11:02:30 +01:00
Doug 7f3451216d Update the SDK. (#2529) 2024-03-05 16:31:27 +00:00
Stefan Ceriu 932ba75550 Replace the existing RoomSummaryProviderMock with a generated one 2024-02-29 10:14:37 +02:00
Mauro 1f389ed008 Bump sdk + Favourites filters implementation (#2484) 2024-02-19 17:53:57 +01:00