Commit Graph

3946 Commits

Author SHA1 Message Date
Stefan Ceriu b7333b9b5f Clean up the window manager and its protocols 2026-03-31 20:33:33 +03:00
Stefan Ceriu bb61db285b Dismiss a room's window when its flow finishes as there's no longer a reason for it to be alive. 2026-03-31 20:33:33 +03:00
Stefan Ceriu ac5b61c973 Programatically focus the main window when invoking the global search 2026-03-31 20:33:33 +03:00
Stefan Ceriu a010306b41 Move the global search shortcut to application commands so it's more reliable with multiple windows 2026-03-31 20:33:33 +03:00
Stefan Ceriu d4e3b11486 Best effort attempt at cleaning up the WindowManger registered coordinators. 2026-03-31 20:33:33 +03:00
Stefan Ceriu e080c7d35a Prevent the window manager from being setup more than once. 2026-03-31 20:33:33 +03:00
Stefan Ceriu 891c3fffd4 Close all secondary windows on logout 2026-03-31 20:33:33 +03:00
Stefan Ceriu deaa2727db Set a default size for all the detached windows 2026-03-31 20:33:33 +03:00
Stefan Ceriu e6f269b9f2 Hook up the settings screen 2026-03-31 20:33:33 +03:00
Stefan Ceriu 35198460ce Automatically dismiss (now) empty windows 2026-03-31 20:33:33 +03:00
Stefan Ceriu f1ef968975 Introduce support for multiple windows on mac and iPad OS
Once the app starts the WindowManager is configured with SwiftUI's environment OpenWindowAction. It can then be used to register coordinators (that provide the toPresentable view) and an optional flow coordinator (as most of the screens are part of a flow, especially rooms).
Once a coordinator is registed, the WindowManager invokes the OpenWindowAction which in turn makes the Application call its newly introduced WindowManagerWindowType WindowGroup's block to instantiate a new visual window rooting that view.

The WindowManager is also responsible for wrapping the presentable in a disappearance block and clean up the coordinator stack.

# Conflicts:
#	ElementX/Sources/Application/AppCoordinator.swift
2026-03-31 20:33:33 +03:00
Stefan Ceriu 91a10f4d51 Add RoomThreadListScreen preview snapshots. 2026-03-31 18:21:14 +03:00
Stefan Ceriu 9406148689 Add a feature flag for the new RoomThreadList screen. 2026-03-31 18:21:14 +03:00
Stefan Ceriu e7e1e990db Add a new RoomThreadListScreen and hook it up to the RoomThreadListService
It will automatically paginate to fill the screen and update the list as updates come in.
2026-03-31 18:21:14 +03:00
Stefan Ceriu e97ed6ec5c Introduce the RoomThreadListServiceProxy and expose it from the RoomProxy
Also update the sdk and app mocks and add a simple `RoomThreadListServiceProxyMock`

# Conflicts:
#	ElementX.xcodeproj/project.pbxproj
#	ElementX.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
#	SDKMocks/Sources/Generated/SDKGeneratedMocks.swift
#	project.yml
2026-03-31 18:21:14 +03:00
Stefan Ceriu 823e2afa97 Refactor the RoomMessageEventStringBuilder to take a Style instead of a Destination
This make its usage clearer and makes different styles reusable
2026-03-31 18:21:14 +03:00
Stefan Ceriu df7914d052 Fix template screen ElementNavigationStack errors 2026-03-31 18:21:14 +03:00
Mauro Romito 87aaf1065e include the always usage location description in the info.plist 2026-03-31 17:09:42 +02:00
Element CI 0fc0e68346 Prepare next release 2026-03-31 06:00:56 -07:00
Mauro Romito d7f8d6d890 reactively determine with a timer if the lls timeline item has expired or not.
Move mockToday410/420/430 to private Date extension in LiveLocationRoomTimelineView

Agent-Logs-Url: https://github.com/element-hq/element-x-ios/sessions/d2136882-1acc-455d-a363-815e0fb73e89

Co-authored-by: Velin92 <34335419+Velin92@users.noreply.github.com>

fix
2026-03-31 14:29:04 +02:00
Doug 07490dd4a9 Add support for iOS 26.4 emoji reactions and ensure older ESS versions still work. (#5329)
* Update the SDK and EmojiBase (with support for iOS 26.4 emojis).

* Update snapshots

(We use 26.1 so the snapshot doesn't support the new emoji)
2026-03-31 13:26:51 +01:00
renovate[bot] 08a92c0dd0 Update codecov/codecov-action action to v5.5.4 (#5308)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-31 12:50:43 +01:00
Mauro Romito a1029132c5 PR Suggestions 2026-03-31 12:58:27 +02:00
Mauro Romito f31c256037 added tests 2026-03-31 12:58:27 +02:00
Mauro Romito d67c1a93db implemented the usage of the live location manager permission handling in the location sharing screen. 2026-03-31 12:58:27 +02:00
Mauro Romito b31d0cad75 implemented the LiveLocationManager as part of the user session and setup of permissions in the plist. 2026-03-31 12:58:27 +02:00
ElementRobot 3ba636aa37 Bump the calendar version ready for the next release 2026-03-31 10:58:03 +02:00
renovate[bot] ada2c73c1f Update dependency element-hq/compound-design-tokens to v9 2026-03-31 10:38:07 +03:00
Hugh Nimmo-Smith 220ccfe61e Don't check scanned server against app config and use baseUrl from QR if available 2026-03-30 19:41:33 +02:00
Valere 83adb46b33 add test for voice call 2026-03-30 17:49:46 +02:00
Valere 558ec76f73 fix tests 2026-03-30 17:49:46 +02:00
Valere a170018942 fixup swiftformat 2026-03-30 17:49:46 +02:00
Valere fec4f7d9ee call: Support voice only incoming call 2026-03-30 17:49:46 +02:00
Valere 867d3476c3 fixup: Missing "log" handling 2026-03-30 16:57:16 +03:00
Valere bec8f55f29 feat: Forward ElementCall logs to the native logs 2026-03-30 16:57:16 +03:00
Mauro Romito 42ac71cbc0 pr suggestions 2026-03-30 14:05:31 +02:00
Mauro Romito 96a13f718e implemented the UI to render the formatted floating date 2026-03-30 14:05:31 +02:00
Mauro Romito e3a8c7f423 implemented the display logic for the formatted date 2026-03-30 14:05:31 +02:00
Mauro Romito eafe1f25e3 added an FF for the floating date 2026-03-30 14:05:31 +02:00
ElementRobot 9b4fc23c2e Translations update 2026-03-30 13:54:04 +02:00
manuroe 3d58aa0afb Use single typeText call to speed up tests execution 2026-03-30 10:11:49 +02:00
Aaron Thornburgh 96b6d69d5a Update Send button bg color (#5170)
* Update Send button bg color

Change the gradient bg to accent/rest.

* Tidy-up ComposerToolbar to match iOS 18 Figma.

Also simplifies the tests a bit.

* Add a .glassEffect to Compound's SendButton.

* Add a border to TimelineReplyView.

Also use the same sizes in both the message bubbles and the composer.

* Change icon size and container in message bubbles

- Container size = 36x36px
- Icon size = 24x24px

* Update icon of reply contents to be 24x24

* Update the VoiceMessageButton to match the designs.

* Adopt Liquid Glass in the ComposerToolbar.

* Generate and fix snapshots.

---------

Co-authored-by: Doug <douglase@element.io>
2026-03-25 17:42:10 +00:00
Element CI a2481b59ba Prepare next release 2026-03-24 13:51:40 -07:00
Doug 8ce6f1f0d3 Really fix the release script. 2026-03-24 19:45:07 +00:00
Doug 86cea87c0f Fix the release script. 2026-03-24 17:06:44 +00:00
Mauro Romito 3ae0fc6713 remove the DEBUG check from the PreviewScrollView 2026-03-24 16:31:38 +01:00
Mauro Romito b4d6b8f47c update matrix sdk to 26.03.24 2026-03-24 12:48:34 +01: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
ElementRobot 610c296125 Translations update (#5295) 2026-03-23 17:20:23 +00:00
Stefan Ceriu 4ae17c06ea Bump the RustSDK to v26.03.23 2026-03-23 15:20:37 +02:00