Commit Graph

2895 Commits

Author SHA1 Message Date
Mauro Romito
074de88017 implement APIs for LLS observation 2026-04-14 14:17:27 +02:00
Skye Elliot
477bf859c5 Prompt user when inviting users with uncached identities (#5331)
If the user attempts to invite someone (to a room or creating a DM) whose identity is not cached, we prompt them to make sure this was their intention.
2026-04-14 14:51:58 +03:00
Stefan Ceriu
03fbf8fbd5 Add an action to the newly introduced FloatingDateBadge that scrolls the timeline to that day. (#5350)
and replace the TimelnieTableViewController's `floatingDateText` with a pure date.
2026-04-14 11:27:27 +03:00
Mauro
df7f8e0510 Fix LiveLocationManager flaky tests (#5389) 2026-04-13 18:05:47 +02:00
Doug
252e2f75df Verify Element X with an existing Element Classic account. (#5374)
* Read and import the secrets from ClassicAppAccounts.

* Record snapshots.

* Add some documentation, tidy up tests and fix the dismissal of the backup instructions.

* Workaround flakey tests (the fulfilments weren't always firing).

* Allow a custom Classic App deep link URL to be configured.
2026-04-13 15:30:09 +01:00
Mauro Romito
3eeade36e0 swiftformat 2026-04-13 11:40:22 +02:00
Mauro Romito
16e9fb041f translation update 2026-04-13 11:40:22 +02:00
Doug
e3a074b8b2 Remove the Spaces Announcement sheet. (#5376) 2026-04-10 17:49:28 +01:00
Mauro Romito
e8a5123cc9 order strings alphabetically by key after downloading them 2026-04-10 16:21:57 +02:00
Mauro
2d2295bcc1 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
ElementRobot
1e0b26816b Translations update 2026-04-10 10:55:52 +02:00
Valere Fedronic
ec00eac164 Add support for starting voice calls from a DM (#5305)
* feat: Start voice call from DM

* rename voiceCall:bool to isVoiceCall

* review: Fix a typo

* review: use one displayCall(bool) instead of 2 actions

* review: Add a new specific preview for DM calls

* combine startCall and startVoiceCall in single enum with isVoiceCall

* review: add isVoiceCall to presentCallScreen action

* review: Use proper a11y for voice vs  video

* add voice/video options to UserProfile Screen

* fixup: move config params to the roomInfo object

* review: Revert changes on preview as the toolbar cannot be snapshot'd

* review: Extract call controls in specific file

* oups: Add voice call option in room details screen

* Update room details screenshots

* Update user profile screenshots

* Update room member details screenshots

* fixup: remove dead code
2026-04-09 16:22:31 +01:00
Valere Fedronic
d792f6e4f9 Require video for callkit even if voice call only to workaround a bug answering calls on the lock screen (#5366) 2026-04-09 14:18:06 +00:00
Doug
d6cd2c696e Add a view to show the user's account from Element Classic. (#5361)
No presentation logic yet.
2026-04-08 21:18:03 +01:00
Doug
ff4270addc Update the SDK handling breaking changes. (#5364) 2026-04-08 21:11:57 +01:00
Mauro Romito
b5261272ed fixes an issue where the playback speed was preventing the a11y label to be read 2026-04-08 17:48:35 +02:00
Mauro Romito
5c00311e59 floating date feature is now out of the feature flag 2026-04-08 14:55:07 +02:00
Doug
d34c38d48a Add a view with instructions for enabling backups in Element Classic. (#5359)
No presentation logic yet.
2026-04-08 11:03:30 +01:00
Hugh Nimmo-Smith
5574dc8ab7 Improve detection of link device completion when linking a new device via QR (#5323)
* Improve detection of link device completion

* Fix tests to match
2026-04-08 09:48:00 +01:00
ElementRobot
979ca55b0b Translations update (#5357) 2026-04-07 11:32:54 +01:00
Mauro Romito
e8cc722054 add a spinner when starting LLS 2026-04-03 16:46:20 +02:00
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