Commit Graph

528 Commits

Author SHA1 Message Date
Letro Bot
1896637645 Add a mechanism to customize app icons and colors 2026-04-10 01:07:36 +04:00
Letro Bot
6d68517328 Force light theme 2026-04-10 01:07:36 +04:00
Letro Bot
310cfc530e Change default account provider (server address) 2026-04-10 01:07:36 +04:00
Letro Bot
7a60a278de Implement login page redesign 2026-04-10 01:07:36 +04:00
Mauro Romito
b5b459d947 PR Suggestions 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
Valere
2afac7857e call: Support voice only incoming call 2026-03-30 17:49:46 +02:00
Mauro Romito
9c043eb2b8 added an FF for the floating date 2026-03-30 14:05:31 +02: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
Mauro Romito
44303bdee7 Add support for reading accounts from Element Classic. 2026-03-11 17:42:53 +00: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
Mauro Romito
465f832ba5 remove space FFs 2026-02-26 16:29:52 +01:00
Mauro Romito
5e5fb19f42 pr suggestions 2026-02-19 22:40:31 +01:00
Mauro Romito
a0be508691 improved the code so that we can use the AudioPlayerState directly to check the playback speed and added localization 2026-02-19 22:40:31 +01:00
Florian
5f724941ee Voice message: variable play back speed (#5121)
* Implement voice message variable playback speed

* Move playback speed string to Untranslated

https://github.com/element-hq/element-x-ios/pull/5121#discussion_r2822631371

* Address review feedback for voice message playback speed

- Persist voice message playback speed as an enum in AppSettings instead of storing an index.
- Update playback speed cycling to derive from enum allCases and safely fall back to `.default` if the stored value cannot be resolved.
- Apply runtime speed updates in AudioPlayer only when the player is in the `.playing` state.
- Keep MediaPlayerProviderTests formatting/indentation style intact while retaining mock playback speed setup.
- Regenerate preview snapshots for:
  - PlaybackSpeedButton
  - VoiceMessageRoomPlaybackView
  - VoiceMessageRoomTimelineView

* Move VoiceMessagePlaybackSpeed outside AppSettings, remove speedRatio

* Stabilize PlaybackSpeedButton width

* Sync voice-message speed label

- Add voiceMessagePlaybackSpeed to TimelineViewState and bind it from appSettings.$voiceMessagePlaybackSpeed.
- Pass that timeline-level speed into VoiceMessageRoomPlaybackView and use it for PlaybackSpeedButton, so labels update consistently across items.
- Use @EnvironmentObject in VoiceMessageRoomTimelineContent so the view re-renders when timeline context state changes.
- In WaveformInteractionModifier, add .allowsHitTesting(showCursor) to the cursor interaction view so hidden pre-playback cursor hit area does not steal taps from the speed button.
2026-02-19 22:40:31 +01:00
Doug
46be78bc75 Define the notification sound name in AppSettings. (#5106) 2026-02-13 16:36:45 +00:00
Stefan Ceriu
4ec2516d55 Update the RustSDK and adopt the new tracing configuration that allows maximum size and age limits on all logs.
Set that 100Mb and a week and remove previous rageshake uploading checks as they are no longer required.
2026-02-13 18:00:23 +02:00
Mauro
56eec826df Fix A11y tests (#5104)
* replace NavigationStack with ElementNavigationStack to allow the content to be rendered without a NavigationStack in a11y tests

* fix a11y tests

* update xcodeproject

* swiftformat fix

* use iOS 26.1 for CI

* use a wrapper to solve the issue for a11y tests

* ElementNavigationStack only uses the trick in DEBUG mode, and added a swiftlint rule to prevent the usage of NavigationStack
2026-02-13 16:45:58 +01:00
Doug
6dc66ec777 Remove the global UserIndicatorController.alertInfo, replacing it with local alertInfo usage. (#5087) 2026-02-10 17:16:11 +00:00
Mauro Romito
334f4903e4 make the FFs volatile and initialised to true by default 2026-02-10 17:08:07 +01:00
Mauro Romito
e64dd38f99 Enable spaces second iteration FFs 2026-02-10 17:08:07 +01:00
Stefan Ceriu
b49bf20c2c Make the PassthroughWindow work correctly on iOS 26
As opposed to passing through all the touches; as per https://stackoverflow.com/a/79768998/730924
2026-02-10 12:17:16 +02:00
Doug
9b6324b295 Add boot detection in the NSE and use this to inform the user that there may be more notifications. (#5054)
* Add an initial implementation of the receivedWhileOfflineNotification.

* Only deliver a single receivedWhileOffline notification per boot and clarify the API.

* Add a 15-minute threshold for the receiveWhileOfflineNotification.
2026-02-06 15:18:09 +00:00
Doug
dd8f51e065 Fix notification delivery after powering on a device. (#5035)
* Debugging with Notifications.

* Don't run the NSE until the device is unlocked.

* Let the NSE run long enough to deliver the default notification content.

Turns out that exit(0) results in the notification be discarded when you have the notification filtering entitlement.

* Remove debugging notifications.

---------

Co-authored-by: Stefan Ceriu <stefanc@matrix.org>
2026-02-03 11:04:32 +00:00
Stefan Ceriu
fcee23d519 Clean up the Signposter implementation and align on new metrics 2026-01-30 13:19:05 +02:00
Stefan Ceriu
290721ad90 Align with android on sentry settings. 2026-01-30 13:19:05 +02:00
Stefan Ceriu
04053ae69b Update files following swiftformat upgrade 2026-01-27 12:50:57 +02:00
Stefan Ceriu
b08da80e18 Fix incorrect empty lines in doc comments 2026-01-27 12:50:57 +02:00
Skye Elliot
67497408b4 Remove "history may be shared banner" (#4999)
* Revert "Do not show history visible banner when the user cannot send messages. (#4892)"

This reverts commit 6117ee3a2b.

* Revert "Add a banner to encrypted rooms with visible history. (#4851)"

This reverts commit ae38dc54d4.
2026-01-26 14:59:48 +00:00
Stefan Ceriu
d1f1a598d5 Space filters (#4977)
* Add support for SpaceFilters on the SpaceServiceProxy level and a screen that renders them

* Add aliases to a couple of space room mocks

* Update translations and related snapshots

* Add a feature flag for space filters

* Add a new room summary provider filter that takes a list of room identifiers next to the normal state filters

This will take the SpaceFilter's descendants and combine it with the normal filters to reduce the rooms shown

* Add a new space filter button to the home screen and link it to the SpaceFiltersScreen and the actual RoomSummaryProvider room list filters

* Bump the RustSDK to v26.01.20-2 for SpaceFilter support.

* Add a cancellation button to the space filters screen

* Make the filter presentation mode liquidy, move the sheet to within the home screen.

* Address PR comments
2026-01-21 20:19:39 +00:00
Doug
99805c0932 Fake an actual title bar on macOS Tahoe. (#4971) 2026-01-19 18:56:59 +00:00
Doug
52d823fb03 Update dependencies. (#4940)
* Minor dependency updates.

Plus SwiftSyntax 509 → 601

* Update MapLibre to v6.

* Update Sentry to v9.
2026-01-09 16:48:03 +00:00
Mauro
2d1d62552a Empty spaces list screen (#4936)
* Added an FF to create spaces + empty spaces list state

* removed learn more button and improved spacing

* updated toolbar for chats and spaces to match ios 26 designs
2026-01-09 15:17:43 +01:00
Skye Elliot
ae38dc54d4 Add a banner to encrypted rooms with visible history. (#4851)
* Add a banner to encrypted rooms with visible history. (#4738)

* feat: Add history visible alert.

- Adds a dismissable alert that is displayed whenever the user
  opens a room with `history_visibility` != `joined`. When cleared,
  this is recorded in the app's data store.
- When opening a room with `history_visibility` = `joined`, this
  flag is cleared.

Issue: element-hq/element-meta#2875

* tests: Add unit tests for history sharing in `RoomScreenFooterView`.

* feat: Rename flag to `hasSeenHistoryVisibleBannerRooms`, document.

* refactor: Merge enum variants, use function for banner description.

* feat: Use `AppSettings.historyVisibleDetailsURL` over hard-coded value.

* tests: Correct potential race condition with deferred assertion.

* chore: Use Localazy translation string over project-defined.

* fix: Final tweaks and review comments.

* chore: Checkout `Enterprise` submodule.

* tests: Final fixes.

* fix: Condition banner visibility on feature flag state.

* fix: Prioritise identity violations over history visibility banner.

* tests: Add snapshots for history visible banner.

* tests: Use deferred failure timeout for improved test power.

* chore: Tweaks to spelling, simplify state logic.

* fix: Remove "g".

* fix: Show banner for shared/world-readable rooms, not invited.

* refactor: Use `else-if` instead of `if`.
2025-12-19 15:26:45 +00:00
Stefan Ceriu
2880ee9135 Perform client store optimizations when migrating versions. 2025-12-19 11:12:36 +02:00
Stefan Ceriu
b762ce4fc0 Update history visible settings (#4861)
* Fixes #4852 - Update history visible settings

* Address PR comments and move attributed strings to the view state
2025-12-17 15:04:02 +02:00
Doug
e9d6116c5f Revert "Add a banner to encrypted rooms with visible history. (#4738)" (#4850)
This reverts commit 1e0bbce3c4.
2025-12-12 11:44:13 +00:00
Skye Elliot
1e0bbce3c4 Add a banner to encrypted rooms with visible history. (#4738)
* feat: Add history visible alert.

- Adds a dismissable alert that is displayed whenever the user
  opens a room with `history_visibility` != `joined`. When cleared,
  this is recorded in the app's data store.
- When opening a room with `history_visibility` = `joined`, this
  flag is cleared.

Issue: element-hq/element-meta#2875

* tests: Add unit tests for history sharing in `RoomScreenFooterView`.

* feat: Rename flag to `hasSeenHistoryVisibleBannerRooms`, document.

* refactor: Merge enum variants, use function for banner description.

* feat: Use `AppSettings.historyVisibleDetailsURL` over hard-coded value.

* tests: Correct potential race condition with deferred assertion.

* chore: Use Localazy translation string over project-defined.

* fix: Final tweaks and review comments.

* chore: Checkout `Enterprise` submodule.

* tests: Final fixes.
2025-12-11 17:07:57 +00:00
Doug
fe9aa48aab Add a Link New Device screen (behind a feature flag). (#4811) 2025-12-11 11:45:23 +00:00
Doug
27ce6d94df Favour network over homeserver reachability when computing the offline indicator. (#4805)
For a whole host of reasons we don't support air-gapped operation anyway and as the SDK is super slow to tell us about the homeserver's reachability the indicator wasn't really working.
2025-12-02 11:21:47 +00:00
Mauro Romito
24febbeaee drop iOS 17 and removed all #available and #unavaible checks for 17 and 18 2025-12-01 14:19:52 +01:00
Doug
ecd5ee426f Enable the latest event sorter. 2025-11-27 16:43:48 +00:00
Doug
3852711c84 Disable the cross-fade animation on the split view detail. (#4737) 2025-11-13 10:52:32 +00:00
Mauro Romito
5b4a3af1c7 pr suggestions and implemented a simpler way to clear the route, that always brings back to the initial coordinator 2025-11-06 12:57:39 +01:00
Mauro Romito
76d24b9972 FF to enable/disable focussing the event on notification tap 2025-11-04 15:32:09 +01:00
Mauro Romito
943e550658 implemented the basics of the flow coordinator, the logic and the navigation flow to get to the space settings view 2025-10-30 15:23:03 +01:00
Mauro Romito
0002065833 added animated to the start of a flow coordinator 2025-10-28 14:56:36 +01:00
Stefan Ceriu
ec15d06154 Remove the first version of the AttributedString builder
Remvoe test stuf

# Conflicts:
#	ElementX/Sources/Other/HTMLParsing/AttributedStringBuilder.swift
#	ElementX/Sources/Other/HTMLParsing/AttributedStringBuilderV1.swift
#	ElementX/Sources/Other/HTMLParsing/DTHTMLElement+AttributedStringBuilder.swift
2025-10-28 09:53:15 +00:00
Mauro
dfa5214136 Threaded notifications (#4644)
* implemented grouping

* implemented presenting the thread

* improved the implementation by reusing the presentation action

* add Thread group to DMs to differentiate from non threaded messages of the same DM

* name for a threaded notification in group room

* focus event when tapping on a notification

* pr suggestions

* document
2025-10-23 15:28:45 +02:00
Mauro
6160c44d67 Update copyright holding and dates (#4640)
* Update copyright holding and dates

* compound IDE Macros updated

* update copyright

* update copyrights done

* update templates and README
2025-10-21 14:34:56 +02:00