Commit Graph

531 Commits

Author SHA1 Message Date
Mauro Romito a4a857003c use isDM from the SDK to determine if a spaceRoom, a joinedRoom or a notificationItem are from a dm room. 2026-05-14 13:47:44 +02:00
Michael ff5dcb040d Replace the ServiceLocator with direct dependency injection (#5548)
Removes the ServiceLocator singleton and instead directly injects the dependencies it was holding for more control over instantiation of the various component subtrees and better visibility over how they're being used.
2026-05-14 09:45:49 +03:00
Mauro Romito 07fc022a65 prevent replies to LLS timeline items, and live location sharing in threads 2026-05-12 17:26:02 +02:00
Mauro Romito 686753721e new implementation based on the usage of NSTextAttachment to allocate space for the timestamp 2026-05-12 14:46:18 +02:00
Valere Fedronic ba23153ab4 feat: Render declined calls in DM timeline (#5512)
* feat: Render declined calls in DM timeline

* Record preview snapshots

* review: Use CallIntent constant

* review: clean-up

* Record preview snapshots

* review: Move private field to the bottom with MARK: - Private

* review: Male CallIntent a string enum to use rawValue

---------

Co-authored-by: Element CI <ci@element.io>
2026-05-11 14:51:30 +03:00
Stefan Ceriu 30593909de Simplify and fix implementation 2026-04-17 17:17:55 +03:00
Mauro 602d779e3a Render LiveLocations in the map (#5394) 2026-04-14 18:27:34 +02:00
Mauro 922fcafcd5 Live Location Sharing Banner (#5370)
* Live Location Sharing Banner

# Conflicts:
#	ElementX.xcodeproj/project.pbxproj

* updated the top banner modifier and the top banner views

# Conflicts:
#	ElementX/Resources/Localizations/en-US.lproj/Localizable.strings
#	ElementX/Resources/Localizations/en.lproj/Localizable.strings

* improved the stopping function from the timeline item

* stop live location sharing before starting a new one.

* added some tests for LiveLocationManager

* pr suggestions
2026-04-10 14:50:42 +02:00
Doug f26b4a1cd0 Update the SDK handling breaking changes. (#5364) 2026-04-08 21:11:57 +01:00
Stefan Ceriu e66bbab63c Remove now unneeded waitForInitialItems TimelineProvider method. 2026-04-02 16:42:50 +03:00
Stefan Ceriu 5984001720 Remove the shouldDisambiguateDisplayNames parameter from the RoomEvent and RoomStateEvent string builders. 2026-04-02 12:30:43 +03:00
Stefan Ceriu 212cd42161 Fix a couple of warnings 2026-04-01 14:09:23 +03:00
Mauro Romito e3a8c7f423 implemented the display logic for the formatted date 2026-03-30 14:05:31 +02:00
Mauro b8d337e4ce Render the live location timeline item (#5209)
* created the data for the timeline item

# Conflicts:
#	ElementX/Sources/Other/Logging/Tracing.swift
#	ElementX/Sources/Services/Authentication/AuthenticationService.swift
#	ElementX/Sources/Services/Authentication/LinkNewDeviceService.swift

* Implemented the LLS timeline item

* updated preview tests

* pr and design suggestions

* previewscrollview is debug only
2026-03-24 10:34:00 +01:00
Mauro dfee18e511 Rename Sign Out to Remove Device + Update SDK 26.03.18 (#5280)
* update the sdk

* updated preview tests

# Conflicts:
#	ElementX/Sources/Screens/Timeline/View/Style/TimelineItemSendInfoLabel.swift
#	ElementX/Sources/Screens/Timeline/View/TimelineItemViews/LiveLocationRoomTimelineView.swift

* update sdk to 26.03.18 + regenerated preview tests after sign out copy change

* updated UI tests

* pr suggestions
2026-03-18 17:34:45 +01:00
Mauro Romito 12d96ed9d2 update SDK to 26.03.10 2026-03-10 12:35:11 +01:00
Mauro Romito 9e68da4ff0 implementing static location sheet 2026-03-09 18:14:41 +01:00
Mauro bbbb2e9dee Refactor and redesign Location Sharing Screen (#5155)
* refactored the static location screen to the location sharing screen

# Conflicts:
#	UnitTests/Sources/LocationSharingScreenViewModelTests.swift

# Conflicts:
#	ElementX.xcodeproj/project.pbxproj

* implemented a custom pin with an overlayable view

* implemented the render of the user when the location is sender instead of the pin type

* removed description and body they are not used at all.

* reimplemented single button for sharing this or user location + implemented an experimental way to update annotations

* removed unnecessary @Suite description

* implemented a way to display the alert on top of the sheet and added a spinner to the center user location button

* fixed alerts strings

* fixed a failing test

* improved preview tests
2026-03-06 12:51:16 +01:00
Stefan Ceriu 0ab6458e4e Fix new redundantSendable and redundantSwiftTestingSuite swiftformat errors 2026-03-04 17:02:11 +02:00
Stefan Ceriu b9364da933 Add missing parenthesis on timeline removal diff logs. 2026-03-02 18:14:21 +02:00
Stefan Ceriu ca00a7a9d7 Update the RustSDK to v26.03.02 2026-03-02 18:14:21 +02:00
Stefan Ceriu 61763d9893 Bump the RustSDK to v26.02.03 (#5051)
Bump the RustSDK to v26.02.03
Fix breaking changes and add support for the new background task error reporting delegate and the new room invite latest event.
2026-02-06 12:08:44 +02:00
Stefan Ceriu 25d5a70b00 Try to prevent timelineProvider timing crashes on update listeners. 2026-02-05 09:22:56 +02:00
Doug e06baf6f32 Update the crypto strings. (#5009) 2026-01-27 11:32:52 +00:00
Stefan Ceriu 23062901c0 Update files following swiftformat upgrade 2026-01-27 12:50:57 +02:00
Doug cea365ac97 Add the empty state to SpaceScreen. (#4985)
* Rename PaginationState.timelineEndReached to PaginationState.endReached.

* Rename PaginationState to TimelinePaginationState.

Also renames PaginationStatus to PaginationState so that a TimelinePaginationState consists of the forward and backward pagination states.

* Add the empty state to SpaceScreen.

Only has 1 of the 2 buttons for now.
2026-01-22 12:37:34 +00:00
Skye Elliot a30ae24d16 Display a badge for messages decrypted using shared keys. (#4937)
* feat: Show info badge for messages decrypted with shared keys

* tests: Add snapshots and tests for forwarder icon.

* fix: Update `EventBasedTimelineItemProtocol.hasStatusIcon`

* fix: Address review comments.

* fix: Use two translations for key forwarded dialog content.

* refactor: Rename `TimelineItemForwarder` to `TimelineItemKeyForwarder`.

Additionally adds a `[weak self]` guard to `encryptionForwarder` alert
handler.

* tests: Add `previewLayout` directive to `encryptionForwarder` previews

* refactor: Remove unused translations, use short-circuiting condition.
2026-01-19 14:27:49 +00:00
Skye Elliot 00dc901ce1 Bump the Rust SDK to v26.01.06 (#4933) 2026-01-08 10:40:00 +00:00
Milton Moura c5f6353769 fix: remove unused MatrixRustSDK imports
Signed-off-by: Milton Moura <miltonmoura@gmail.com>
2025-12-13 10:11:57 +02:00
Doug f2607affd2 Adopt the new latest event API. (#4779) 2025-11-25 11:52:48 +00:00
Doug 2be321862f Fix another bug where the app could crash on launch if the access token had expired. (#4733)
Updates the SDK.
2025-11-11 15:29:23 +00:00
Doug 419c18cabb Fix a potential bug where the token couldn't be refreshed when the cached server /versions had expired. (#4687)
* Update SDK mocks for UniFFI 0.30.0

* Update the SDK.

* Update the SDK again

Includes a temporary workaround that patches the SDK's generated Swift files so that our tests don't crash:
https://github.com/element-hq/matrix-rust-components-swift/commit/3f0075fb8acaf202755512dfbafc28024e5125b2
2025-11-03 19:09:31 +00:00
Mauro 17c2dc96d0 Update SDK to 25.10.21 (#4642)
* update sdk

* fix normalized waveform

* added a comment on normalization

* running on MacOS-26

* Revert "running on MacOS-26"

This reverts commit 1c8ececf0b84200193eaa2ab205094215b168060.
2025-10-22 11:27:26 +02:00
Mauro f7dd9cdcf8 Update copyright holding and dates (#4640)
* Update copyright holding and dates

* compound IDE Macros updated

* update copyright

* update copyrights done

* update templates and README
2025-10-21 14:34:56 +02:00
Mauro Romito 40367eeec9 fixed an issue where threads would not do the initial focus and an issue where the timeline did throw an error by mistake 2025-10-09 11:15:37 +02:00
Doug 6377d9be67 A couple of small tweaks. (#4569)
* Stop ignoring the safe area with the suggestions view.

They weren't visible on iPad (hidden behind the sidebar) and I can't find any instance when they're shown where the safe area comes into play.

* Make sure the room list deselects the cell when dismissed a room.

* Use the backports pattern in more places.

* Fix the annoying header on macOS.

* Silence some warnings

* Fix compound CI branch name.
2025-10-03 12:09:17 +01:00
Doug c5fccdce5e Show space invites in the room list. (#4545) 2025-09-29 13:57:58 +01:00
Stefan Ceriu bfaca7cff9 Implement link previews for text messages using Apple's LinkPreview framework (#4520) 2025-09-19 12:48:09 +00:00
Doug d571e27637 Update the SDK. (#4517) 2025-09-17 15:43:38 +01:00
Doug eda37eb626 Use the Emoji/Map/Poll view models. (#4458)
* Toggle emojis in the EmojiPickerScreenViewModel.

* Send locations in the StaticLocationScreen.

* Send polls in the PollFormScreen.
2025-09-03 16:52:28 +01:00
Doug ed8f446735 Update the SDK, handle API breaks. (#4418) 2025-08-15 17:25:51 +01:00
Doug e182940844 Handle TimelineDiff as an enum with associated values. (#4379)
* Handle TimelineDiff as a true enum.

* Update the SDK.

* Silence some warnings.
2025-08-05 09:23:22 +01:00
Doug 01033cf53e Add support for Space avatars. (#4362) 2025-07-29 12:20:13 +01:00
Stefan Ceriu 128f4f2110 Improve attachment sending methods signatures 2025-07-24 14:55:34 +03:00
Stefan Ceriu ffe2f726e7 Interact with polls through the TimelineController as well (creation still disabled on threaded timeline as it's not yet supported by the SDK) 2025-07-24 14:55:34 +03:00
Stefan Ceriu 35195abc35 Add message sending methods to the TimelineController that will automatically use the correct timeline proxy instance internally. 2025-07-24 14:55:34 +03:00
Stefan Ceriu a4c0b7f91c Reorder the TimelineController send methods 2025-07-24 14:55:34 +03:00
Stefan Ceriu 1fc15a220d Remove the threadRootEventID associated value from all the RoomFlowCoordinatorStateMachine states and replace them with a UserInfo passed TimelineController. 2025-07-24 14:55:34 +03:00
Stefan Ceriu 3fcbc8c60a Transition voice messages to the new in thread sending mechanism 2025-07-24 14:55:34 +03:00
Stefan Ceriu ed98f64a35 Remove threadRootEventID parameters from TimelineProxy send methods. This is now handled internally to the SDK as long as the right timeline instance is used. 2025-07-24 14:55:34 +03:00