Commit Graph

2850 Commits

Author SHA1 Message Date
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
manuroe
c7026da5a9 Use single typeText call to speed up tests execution 2026-03-30 10:11:49 +02:00
Aaron Thornburgh
b4d6fe43c3 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
Mauro Romito
79db8582cf remove the DEBUG check from the PreviewScrollView 2026-03-24 16:31:38 +01:00
Mauro
8934f68f7b 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
055b6524a0 Translations update (#5295) 2026-03-23 17:20:23 +00:00
amshak
f42ec2d0ce Changed ordering of Room details screen (#5290)
* Changed ordering of Room details screen

Added media, polls and pinned section on top, because the user is more likely to access those.

* Update snapshots.
2026-03-20 15:12:53 +00:00
Aaron Thornburgh
10597ec9be Use an iOS 26 close button and re-order some sections in SettingsScreen. (#5281)
* Settings > Change Done button to Close

Do it!

* Change ordering of menu item sections

Swap manage app section with manage account section.

* Use a primaryAction placement for the close button.

* Generate the preview snapshots.

* Merge the Manage account and Manage devices actions.

---------

Co-authored-by: Doug <douglase@element.io>
2026-03-20 15:00:10 +00:00
Aaron Thornburgh
c3ed417b8f Update container shape of the File TimelineItem's icon. (#5288)
* Change corner radius of icon container

From round to 4px

* Update snapshots.
2026-03-20 14:08:57 +00:00
Stefan Ceriu
6a4171efd2 Adjust the PillView and BadgeLabel to the new compound styles 2026-03-19 16:41:27 +02:00
Mauro
9442b6981f 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
ElementRobot
7a383cb855 Translations update (#5212)
* Translations update

* updated previews

---------

Co-authored-by: Mauro Romito <mauro.romito@element.io>
2026-03-16 16:51:17 +01:00
Doug
67162381a8 Fix the AuthenticationStartScreen with large Dynamic Type sizes. (#5191)
* Allow AuthenticationStartLogo to be scaled and fix dark mode when not on a gradient.

* Fix the layout of AuthenticationStartScreen with large Dynamic Type sizes.
2026-03-12 14:18:19 +00:00
Doug
0bd72114b8 Add tests for loading Classic accounts.
Tidy up warnings and fix a few bugs that were revealed.
2026-03-11 17:42:53 +00:00
Doug
ac233a9145 Simplify ClassicAppAccount loading (only load what we need). 2026-03-11 17:42:53 +00:00
Mauro Romito
44303bdee7 Add support for reading accounts from Element Classic. 2026-03-11 17:42:53 +00:00
Andy Balaam
e6a8ca11fd Call the new recoverAndFixBackup method to fix key storage if it's broken 2026-03-10 15:11:43 +02:00
Mauro Romito
91105db2ae update SDK to 26.03.10 2026-03-10 12:35:11 +01:00
Mauro Romito
0bb86a1edc improved location sheets presentations and addressed some pr suggestions 2026-03-09 18:14:41 +01:00
Mauro Romito
5642841712 advising sim issue 2026-03-09 18:14:41 +01:00
Mauro Romito
219c5676b1 added back the share sheet popover 2026-03-09 18:14:41 +01:00
Mauro Romito
4633b0b140 implementing static location sheet 2026-03-09 18:14:41 +01:00
Mauro
2b0771c43c 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
5e41016d5e Fix new redundantSendable and redundantSwiftTestingSuite swiftformat errors 2026-03-04 17:02:11 +02:00
Stefan Ceriu
2ed469dab4 Fix missing QRCodeLoginErrors after cherry picking from draft PR. 2026-03-02 18:14:21 +02:00