3309 Commits

Author SHA1 Message Date
Doug 5ba070d4d0 Add the new bloom style under a feature flag. (#4033)
* Refactor the bloom into a modifier.

It currently depends on the home screen context but that will be removed in the future.

* Add an initial implementation of the new bloom using an image on the navigation item's appearance.

* Add a feature flag to control the new bloom.
2025-04-16 16:36:19 +01:00
Stefan Ceriu 806d676299 Introduce a TimelineItemThreadSummary object (#4032)
* Introduce a `TimelineItemThreadSummary` object to hold details about threads starting from that particular item

This patch introduces a thread summary object that will be available on main timeline messages that are the root for a given thread.
It currently provides the latest message content and sender for that thread but it will grow to provide info on the number of replies, unreads etc.

It also add a new UI component called `TimelineThreadSummaryView` that makes use of this data and is in turn used by the bubbled styler to render it in the timeline.

The rest of the PR is about refactoring on the `RoomTimelineItemFactory` so that replies and thread summaries use similar paths and builders.

* Add a feature flag for threads

* Address PR comments

* Converge on single implementation for message previews
2025-04-16 16:19:29 +03:00
Doug 8c9773e4de Refactor SecureBackupControllerListener into SDKListener and use it everywhere. (#4030) 2025-04-16 08:36:57 +01:00
Doug c5bb960234 Show internet connection warning when uploading keys on log out. (#4027)
* Show the key upload progress when waiting to log out.

Add some basic view model tests too.

* Show a network suggestion if key upload doesn't report any progress during logout.
2025-04-15 16:47:31 +01:00
Mauro Romito a6dadc1cf3 change: specific report copy for DMs 2025-04-14 15:35:08 +02:00
Doug 542dbd82b9 Prefix the user's own messages with 'You' in the room list. (#4022) 2025-04-14 14:00:19 +01:00
Mauro Romito 9d53b29902 sdk: update to 25.04.14 2025-04-14 14:15:42 +02:00
Doug 4f4729b8df Stop showing the canonical alias for invites in the room list. (#4020) 2025-04-14 10:42:21 +01:00
ElementRobot 8254aad579 Translations update (#4018)
Co-authored-by: pixlwave <6060466+pixlwave@users.noreply.github.com>
2025-04-14 08:40:03 +01:00
Doug a5d94a0219 Adopt the new start chat button design. (#4013)
* Update compound and handle plain to tertiary/textLink button style updates.

* Update the start chat button to use the right icon/style.

* Update preview snapshots.

* Fix remaining snapshots.
2025-04-11 17:09:57 +01:00
Doug 511c4d7bf7 Fix authentication activity indicators when the authentication server is being slow
* Fetch the OIDC login URL as part of the Server Confirmation screen.

The loading indicator would show and hide while configuring and then immediately show again while fetching the URL.

* Allow the OIDCAuthenticationPresenter to show its own errors.

We no longer need to present errors in the authentication flow coordinator.
2025-04-11 11:22:39 +01:00
Doug 1557054753 Simplify authentication logic
matrix.org now supports MAS so we don't need the web registration helper anymore.
2025-04-11 11:22:39 +01:00
Mauro Romito b2c647b1af change: decline and block design tweaks 2025-04-11 11:45:44 +02:00
Mauro Romito 88397792cf change: stricter private timeline media visibility 2025-04-11 10:12:25 +02:00
Mauro Romito 2990b7b890 external keyboard support for PIN input 2025-04-11 10:10:55 +02:00
Stefan Ceriu 83136af7c4 Bump the SDK and adopt the new MsgLike timeline item types (#4000)
* Bump the RustSDK to v25.04.09

* Adopt new MsgLike based timeline item structure.

* Move the `replyDetails` and `isThreaded` to the `RoomTimelineItemProperties`

* Restructure the TimelineItemFactory

* Fix line length warning

* Rename `msgLikeContent` to `messageLikeContent` wherever possible.

* Move the `EventTimelineItem` mocks to the SDK mocks folder.
2025-04-10 14:04:16 +03:00
Stefan Ceriu 4af5f7abfe Manually enable the event cache as the default enabling hasn't made it to the RustSDK yet 🤦‍♂️
- https://github.com/matrix-org/matrix-rust-sdk/pull/4308
2025-04-10 12:12:46 +03:00
Doug 9ba4048462 Only use the appGroupTemporaryDirectory to access a file from the share extension. (#4002)
… and switch back to the plain `URL.temporaryDirectory` for everything else.

* Fix documentation

Co-authored-by: Stefan Ceriu <stefan.ceriu@gmail.com>
2025-04-10 09:56:25 +01:00
Mauro Romito 58a0709a1b bump to 25.04.2 and improved migration code 2025-04-09 18:55:34 +02:00
Mauro Romito e5e7fc6c55 updated preview tests 2025-04-09 18:55:34 +02:00
Mauro Romito bf875a23ce change: hiding timeline media has three options 2025-04-09 18:55:34 +02:00
Stefan Ceriu fe9cb2e2f0 Setup the client media retention policy 2025-04-09 16:54:32 +03:00
Mauro Romito 0e7533145a refactor: manage member sheet in timeline
better implementation

updated tests

Update ElementX/Sources/Screens/Timeline/TimelineViewModel.swift

Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>

fix
2025-04-09 15:03:54 +02:00
Stefan Ceriu c2648d3d41 Change recovery screen success indicators from modal to toast to better fit with the new-ish onboarding flows. 2025-04-08 12:23:37 +03:00
Stefan Ceriu c9dc7e63c5 Bump the RustSDK to v25.04.08, fix breaking changes 2025-04-08 12:23:37 +03:00
Mauro Romito d92fecdc7e feat: decline and block screen
fix

improvement

fix conflict

fix tests

tests
2025-04-07 18:52:56 +02:00
Mauro Romito 2ee5c1b403 feat: report a room
updated tests

updated tests

added a feature flag to report room

removed delay

rename
2025-04-07 17:17:08 +02:00
Doug 495e117901 Add support URLs to the app setting overrides. (#3987)
* Add support URLs to the app setting overrides.

* Use a cache for pkl packages.

* Remove the fake secrets from enterprise unit tests.
2025-04-07 15:29:11 +01:00
ElementRobot 7ea3321cf5 Translations update (#3984) 2025-04-07 09:43:59 +01:00
Doug 806816be8a Add a Compound hook. (#3979)
* Rename AppHooksProtocol.configure() to .setUp().

* Add a CompoundHook.
2025-04-04 17:46:31 +01:00
Doug a318c3918d Update the app icon. (#3977) 2025-04-04 17:08:59 +01:00
Doug 574f49d71e Add the build number to rageshakes. (#3978) 2025-04-04 10:36:52 +00:00
Stefan Ceriu 5500cc2335 Remove the event cache feature flag, it's enabled by default on the SDK and we haven't had any bug reports for it. 2025-04-03 18:08:34 +03:00
Stefan Ceriu 62636d8378 Bump the RustSDK to v25.04.02 2025-04-03 18:08:34 +03:00
Doug b8bf2a08f6 Allow overriding the push gateway. (#3970) 2025-04-03 10:42:09 +01:00
Doug 27070f77fd Allow overriding the bug report app ID and analytics cookies URL. (#3969) 2025-04-02 08:41:02 +00:00
Mauro bbfc6c1e17 Add alerts with reason for kick and ban (#3967)
* feat: added alerts with reason for kick and ban

in the room members list screen

* fix tests
2025-04-01 16:06:40 +00:00
Doug 6a8f35db9c Make the secrets optional. (#3966) 2025-04-01 16:14:05 +01:00
Stefan Ceriu d5f9860898 Bring back the background refresh stop sync crash fix, this time with a forced conformance to the main actor.
- follow up to https://github.com/element-hq/element-x-ios/pull/3942 and https://github.com/element-hq/element-x-ios/pull/3946
2025-04-01 17:22:16 +03:00
Stefan Ceriu 901c833c40 Bump the RustSDK to v25.03.31
- adopt new async throwing methods
- use the sdk side TimelineStart virtual timeline item
- remove async from `directRoomForUserID` as it's not async on the rust side
- remove async from `retryDecryption` as it's spawning not blocking on the rust side
2025-04-01 13:12:29 +03:00
Doug 5e50823223 Allow the services that are configured by secrets to be disabled. (#3961)
* Make the map tiler key optional.

* Make the bug report URL optional.

* Make the sentry URL optional.

* Make the analytics configuration optional and handle consent taking Sentry into account.

* Stop prompting users to report crashes when Sentry is disabled.
2025-04-01 09:24:12 +01:00
ElementRobot 36903bf3fb Translations update (#3959) 2025-03-31 10:11:29 +01:00
Mauro Romito f507709626 a11y: better voice over for voice messages 2025-03-28 10:15:30 +01:00
Mauro Romito a4eeb66527 a11y: add profile picture accessibility label 2025-03-28 10:13:23 +01:00
Mauro Romito db6ed2e910 a11y: accessibility labels for calls 2025-03-28 10:01:39 +01:00
Stefan Ceriu 0586c2cf54 Revert "Attempt to prevent crashes after expiring background refreshes."
This reverts commit 418daaa90fd9ed6a9fbcdd9d03ee4cde7888c3cd.
2025-03-27 13:42:26 +02:00
Doug 51886b0c78 Refactor the MapTiler configuration into a single place. (#3944)
* Refactor the MapTiler configuration into a single place.

* Merge the MapAssets catalog into the normal one.
2025-03-26 14:39:09 +00:00
Stefan Ceriu 8b49cf6bdc Attempt to prevent crashes after expiring background refreshes. 2025-03-26 14:24:38 +02:00
Mauro Romito 98a95342d0 EC update and improvements
Use .startCall intent, and always pass rageshakeURL to the widget

Updated EC to 0.9.0-rc.4

rageshakeURL is now a parameter
2025-03-26 13:13:28 +01:00
Mauro 60024c78eb Embed element call (#3939)
* it works but only with the baseURL for now

* works but strings are not referenced properly

and we are using a dummy config.json which maybe is not required at all?

* test with EmbeddedElementCall repo

* updated the version

* ignore our own package

* updated version

removed using EC through the well known URL

* fix for remote URL overriding

* updated version

* fix for microphone and camera using local URL

* better solution

* Use version 0.9.0-release-test.3

* fix project

* removed workaround for emebedded EC url generation

* updated EC

* pr suggestions

* fix

* removed unnecessary configuration flag

---------

Co-authored-by: Hugh Nimmo-Smith <hughns@element.io>
2025-03-25 16:14:23 +00:00