* Fix various small errors when running in the Swift 6 language mode
* Make the `TargetConfiguration` run on the main actor.
* Fixed a comment
* Add a comment as to why we can't make the whole NSE a main actor.
* Fix the unit tests
* Fix `blankLinesAtStartOfScope` swiftformat error.
- building brand new content is probably interfering with how iOS syncs up delivered and seen notifications between devices
- simplify all the various steps and make the flows easier to follow
- this will undo creating at most one user session pe process as that shoulnd't be a problem anymore
- it also renames some methods and improves the logging
* Bump the RustSDK to v25.03.11
* Replace oidc login prompt with nil following the changes from https://github.com/matrix-org/matrix-rust-sdk/pull/4761
```
/// * `prompt` - The desired user experience in the web UI. No value means
/// that the user wishes to login into an existing account, and a value of
/// `Create` means that the user wishes to register a new account.
```
* Fix trailing closure warnings
* Update the client proxy after making `getNotificationSettings()` and `cachedAvatarUrl()` async (they used to be blocking on the rust side).
* Move `Room.isEncrypted` to the info publisher and manually update the encryption state when creating the room.
* Bump the SDK again to v25.03.12 - This introduces a new way to configure the tokio runtime that we can use to have extensions use less memory
- introduce a new Target struct that takes care of setting up rust services (tracing and tokio) for our various targets
- cleanup MXLog and friends
* Address PR comments
* Bump the SDK again, switch back to using `.consent` as the OIDC login prompt (which was reintroduced in matrix-org/matrix-rust-sdk/pull/4791)
* Setup simple share extension
* Switch the app url scheme to be the full bundle identifier
* Setup a share extension that show a SwiftUI view, uses rust tracing and redirects to the hosting aplication
* Move media as json through the custom scheme into the main app and deep link into the media upload preview screen
* Fix message forwarding and global search screen room summary provider filtering.
* Tweak the message forwarding and global search screen designs.
* Add a room selection screen to use after receiving a share request from the share extension
* Fix share extension entitlements
* Share the temporary directory between the main app and the extensions; rename the caches one.
* Remove the no longer needed notification avatar flipping fix.
* Extract the placeholder avatar image generator from the NSE
* Nest `AvatarSize` within the new `Avatars` enum
* Donate an `INSendMessageIntent` to the system every time we send a message so they appear as share suggestions
* Support suggestions in the share extension itself
* Improve sharing animations and fix presentation when room already on the stack
* Clear all routes when sharing without a preselected room.
* Fix broken unit tests
* Various initial tweaks following code review.
* Correctly clean up and dismiss the share extension for all paths.
* Move the share extension path to a constants enum
* Rename UserSessionFlowCoordinator specific share extension states and events
* Add UserSession and Room flow coordinator share route tests
* Tweak the share extension logic.
* provider can now check the current session
* More testable code
* created the test condition
* it works but not always not sure why, need to dig deeper
* sadly we need to use textkit 1 to solve this issue
* removed developer option screen test
* this experimental solution kinda works but I need a way to pill recomputation is weird
* format
* display improvement
* better and faster solution
* pilished the code
* better coloring
* swift format
* just need to solve the caching issue
* fix caching issue
* tests done!
* changelog
* pr comments addressed
* all pr comments addressed
* docs
* line lenght
* updated tests and fixed a parsing permalink issue
* MentionBuilder
* pr comments
* swiftformat
* code blocks should not have links
* Update ElementX/Sources/FlowCoordinators/RoomFlowCoordinator.swift
Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
* Update ElementX/Sources/Services/Client/ClientProxy.swift
Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
* Update UnitTests/Sources/AttributedStringBuilderTests.swift
Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
* Update ElementX/Sources/UITests/UITestsAppCoordinator.swift
Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
* Update ElementX/Sources/Other/Pills/PillAttachmentViewProvider.swift
Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
* Update ElementX/Sources/Other/Pills/MentionBuilder.swift
Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
* pr comments
* swiftformat
---------
Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
* Extract notification content building outside of the NotificationItemProxy. First step in a bigger refactoring of the NSE
* Import the attributed string buider into the NSE, sort `sources` imports
* Extract message event string building into the RoomMessageEventStringBuilder and reuse it building content for push notifications
* Cleanup
* Add changelog
* Experimental two sync loop solution
* better logging
* improved the code and handled invite notifications display better
* improved invite notifications
* new exerimental branch
* new sync loop
* code updated
* code improvements
* code improvements
* fix typo
* code improvements
* removed some unused code and added a respawn
* fixing some NSE issues
* code improvements
* new version of the branch
* more logging
* running the nse process ONLY IF necessary
* finally works! made also the feature flag
* also the encryption value of the room list api will depend on the flag now
* changelog
* code improvements
* code improvement
* updated proj
* fixing some compilation error after the rebase
* opt-in for the encryption sync
* fix