Commit Graph

2874 Commits

Author SHA1 Message Date
Mauro Romito
2715ffdb17 force the timeline to render as expired as soon as the stop button is pressed 2026-04-03 16:46:20 +02:00
Mauro Romito
524bef6d60 add new tests to LocationSharingViewModel 2026-04-03 14:19:42 +02:00
Mauro Romito
a5054f506a implement the stop action in the LiveLocationRoomTimelineView 2026-04-03 14:19:42 +02:00
Mauro Romito
0fb321576d implement the start live location handling in the LocationSharingScreenViewModel 2026-04-03 14:19:42 +02:00
Mauro Romito
299649abbd pr suggestions 2026-04-03 12:36:45 +02:00
Mauro Romito
eabfdcd035 implement the start, send and stop functions 2026-04-03 12:36:45 +02:00
Stefan Ceriu
22b1ecf6be Remove now unneeded waitForInitialItems TimelineProvider method. 2026-04-02 16:42:50 +03:00
Stefan Ceriu
e375950ba1 Remove the shouldDisambiguateDisplayNames parameter from the RoomEvent and RoomStateEvent string builders. 2026-04-02 12:30:43 +03:00
Stefan Ceriu
33fe72041f Update reply view border corner radii and color
And also update relating preview test snapshots
2026-04-01 18:42:45 +03:00
Stefan Ceriu
79e706e5d9 Hook up the RoomThreadList to the RoomFlowCoordinator state machine and presenting threads. 2026-04-01 14:09:23 +03:00
Stefan Ceriu
5f8d7d75a1 Fix a couple of warnings 2026-04-01 14:09:23 +03:00
Stefan Ceriu
64614cdfb5 Rename "Auxiliary" windows to "Secondary" windows 2026-03-31 20:33:33 +03:00
Stefan Ceriu
a41da0616c Fix which roomID is used when dismissing windows and unit test mocks. 2026-03-31 20:33:33 +03:00
Stefan Ceriu
aef8d79104 Change the "open in new window" room list cell action underneath mark as read/unread and change its icon 2026-03-31 20:33:33 +03:00
Stefan Ceriu
bbc27d17ec Use the environment's supportsMultipleWindows instead of UIDevice.current.isPhone 2026-03-31 20:33:33 +03:00
Stefan Ceriu
256cc5c35a Disable creating new windows (duplicates) 2026-03-31 20:33:33 +03:00
Stefan Ceriu
50522b5261 Use different auxiliary window sizes on mac vs iPad 2026-03-31 20:33:33 +03:00
Stefan Ceriu
d52f392758 Disable multiple windows when screen lock is enabled. 2026-03-31 20:33:33 +03:00
Stefan Ceriu
2b2b926fdc Clean up the window manager and its protocols 2026-03-31 20:33:33 +03:00
Stefan Ceriu
685d2d083c 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
92ebfed4e1 Programatically focus the main window when invoking the global search 2026-03-31 20:33:33 +03:00
Stefan Ceriu
b9c5c3446a 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
aae95a9489 Best effort attempt at cleaning up the WindowManger registered coordinators. 2026-03-31 20:33:33 +03:00
Stefan Ceriu
a33c2b6f39 Prevent the window manager from being setup more than once. 2026-03-31 20:33:33 +03:00
Stefan Ceriu
b034fffb1f Close all secondary windows on logout 2026-03-31 20:33:33 +03:00
Stefan Ceriu
806767be7f Set a default size for all the detached windows 2026-03-31 20:33:33 +03:00
Stefan Ceriu
89f56b4c55 Hook up the settings screen 2026-03-31 20:33:33 +03:00
Stefan Ceriu
c66e737ee0 Automatically dismiss (now) empty windows 2026-03-31 20:33:33 +03:00
Stefan Ceriu
12b6b7ec74 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
26e659dce9 Add RoomThreadListScreen preview snapshots. 2026-03-31 18:21:14 +03:00
Stefan Ceriu
5120a117cc Add a feature flag for the new RoomThreadList screen. 2026-03-31 18:21:14 +03:00
Stefan Ceriu
ba810116a0 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
d27b6697a9 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
0104ad06aa 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
Mauro Romito
fcbb7ab057 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
Mauro Romito
b5b459d947 PR Suggestions 2026-03-31 12:58:27 +02:00
Mauro Romito
9e1545e3c1 added tests 2026-03-31 12:58:27 +02:00
Mauro Romito
9e17fd0315 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
7e00e9d6fe implemented the LiveLocationManager as part of the user session and setup of permissions in the plist. 2026-03-31 12:58:27 +02:00
Hugh Nimmo-Smith
ac2edc962a Don't check scanned server against app config and use baseUrl from QR if available 2026-03-30 19:41:33 +02:00
Valere
f5451e5e17 fix tests 2026-03-30 17:49:46 +02:00
Valere
3030a9438c fixup swiftformat 2026-03-30 17:49:46 +02:00
Valere
2afac7857e call: Support voice only incoming call 2026-03-30 17:49:46 +02:00
Valere
5257f6f8a8 fixup: Missing "log" handling 2026-03-30 16:57:16 +03:00
Valere
4777e371e7 feat: Forward ElementCall logs to the native logs 2026-03-30 16:57:16 +03:00
Mauro Romito
e87c83cb23 pr suggestions 2026-03-30 14:05:31 +02:00
Mauro Romito
7296b09a17 implemented the UI to render the formatted floating date 2026-03-30 14:05:31 +02:00
Mauro Romito
c0f9f13c50 implemented the display logic for the formatted date 2026-03-30 14:05:31 +02:00
Mauro Romito
9c043eb2b8 added an FF for the floating date 2026-03-30 14:05:31 +02:00
ElementRobot
ca149d93f9 Translations update 2026-03-30 13:54:04 +02:00