* checking if the stop taskHandle is finished before stopping the bg task
* stopping the sync in background now works properly
* this will prevent the case in which if the app suspends and then is immediately foregrounded again, we do not start the sync
* now works as intended
* code improvement
* improved the code a bit
* Add background app refresh support
* Cleanup: move methods around so delegates are implemented above privates and privates are ordered better
* Add discardableResult on the userSessionStore's refreshRestorationToken
* disabled local pushes and fixed the issue with the image rendering
* disabled local notifications for now and started implementing invite notificatons
* disabled local notifications for now and started implementing invite notificatons
* removed code that should not have changed
* removed useless comment
* refactored name for category
* fixed a test
* fix
* fix for missing try await
* pr comments
* Adopt new sliding sync list interaction APIs
* Re-enable summary providers, be more leninent in the list proxy and remove now unnecessary restartSync method
* Rename all sliding sync views to lists
* Bump the SDK to v1.0.61-alpha
* refactored the NSE to use the client function
* removed unused imports in the target.yml
* some code improvements
* changelog
* code improvement
* code improvement
* more code improvements
* separated the client and the media provider in a dedicated NSEUserSession
* Update ElementX/Sources/Services/Client/ClientProxy.swift
Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
* pr suggestions
* logging the error
---------
Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
* added timestamp control of the local notification
* improved the code, and implemented the solution, just needs some testing
* sdk bump
* UserPreference init with initialValue instead of defaultValue
* pr suggestions
* changelog
* notifications sliding sync view added
* changed how the notifications are handled
* local notifications can be decrypted and shown!
* Improved the handling for the mock and for the normal messages
* Avatar images are also displayed
* pr ready, commented some code that is not supposed to be releaaed yet, adjusted some tests and added some source code in the targets
* fixing some swiftlint complaints and removed an unused function
* better swiftlint disable
* addressing PR comments
* Adopt the bump event types sliding sync proxy API. Allow only `m.room.message` and `m.room.encrypted` to reorder the room list
- matrix-org/matrix-rust-sdk/pull/1812
- matrix-org/matrix-rust-sdk/issues/1728
- matrix-org/sliding-sync/pull/34
* Allow `m.sticker`s to reorder the room list
* add users provider with test
* add ui test for search users
* add changelog
* Update ElementX/Sources/Services/Users/UsersProvider.swift
Co-authored-by: Alfonso Grillo <alfogrillo@gmail.com>
* add error handling in usersprovider
* remove empty section
* add search in invite users
* add CancellableTask, add setup App Settings in UnitTest, screenshots
* rename of UserDiscoveryService
* Update ElementX/Sources/Other/Extensions/Publisher.swift
Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
* new error management for User Discovery Service
* Update ElementX/Sources/Other/CancellableTask.swift
Co-authored-by: Alfonso Grillo <alfogrillo@gmail.com>
* Update ElementX/Sources/Services/Users/UserDiscoveryService.swift
Co-authored-by: Alfonso Grillo <alfogrillo@gmail.com>
* fix invite users and start chat errors
* use only one task to fetch user profile
---------
Co-authored-by: Alfonso Grillo <alfogrillo@gmail.com>
Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
* add start chat flow with UI
* add feature flag for start chat
* add changelog
* fix naming and tests
* fix empty display name in user cell
* Update ElementX/Sources/Application/AppSettings.swift
Co-authored-by: Alfonso Grillo <alfogrillo@element.io>
* add screenshots from UI test
* fix swiftFormat and add identifiers
* fix warnings
* add the create or open already existing direct room feature
* add changelog
* add UserProfile object, add loading indicator in start chat flow
* fix test
* add new section for user profile in start chat
* fix duplicates input on search bar
* Update ElementX/Sources/Services/Client/ClientProxy.swift
Co-authored-by: Alfonso Grillo <alfogrillo@element.io>
* Update ElementX/Sources/Services/Client/ClientProxy.swift
Co-authored-by: Alfonso Grillo <alfogrillo@element.io>
---------
Co-authored-by: Alfonso Grillo <alfogrillo@element.io>
* created the row in the view and the alert, and added the new function to the RoomProxy
* fixed an issue with the alert function
* handling the navigation
* fixed a bug with the detail coordinators being dismissed incorrectly when inside a stack
* implementation completed
* replaced UI screenshots
* added a test for the fixed bug of the coordinators
* trying to increase the wait time for the expectation
* improved the test
* improved the buttons UI
* uploading artifacts for unit tests
* added result bundle true
* improved the tests
* added a new test
* pr suggestions
* updating mock
* PR suggestions
* improved tests
* fixed UI tests
* pr should be ready now
* removed testing code
* reduced complexity
* fixed test
* added a an assert to the new test case
* more tests and messages cases
* pr comments addressed
* completed
* updated set_pusher function from the SDK
* this fixes a crash and allows for the navigation to work by using the threadIdentifier of the notification
* adding NCE target
* project setup completed with xcodegen
* no need for those ugly storyboards
* code improvement
* removing unused outlet
* mocks generated with the comment instead of the marker protocol
* updated stencil
* fixed unit tests
* updated swiftformat
* pr comments
* loading a cached avatar at first, and then actually doing the request so that the avatar can still be displayed without connection
* improved the code
* fix + changelog
* policy on how to fetch the avatar url added
* code improvements
* addressed al PR comments
* improved the error handling
* improved the async task code
* fixed a typo
* fixed another typo
* fix
* removed useless code
* loading a cached avatar at first, and then actually doing the request so that the avatar can still be displayed without connection
* improved the code
* fix + changelog
* policy on how to fetch the avatar url added
* code improvements
* addressed al PR comments
* improved the error handling
* improved the async task code
* fixed a typo
* fixed another typo
* Remove isSoftLogout from everywhere except the client delegate
- bump the RustSDK to v1.0.43
- cleanup the app coordinator state machine and login/logout flows
* Merge `succeededSigningIn` and `succeededRestoringSession` into `createdUserSession` in order to simplify the logic
* Automatic discovery of the sliding sync proxy.
* Handle homeserver detection from a MXID.
* Update sliding sync info link, SDK and bump patch.
Add a migration on the new version. The change in restoration token format requires the user to sign in again, but this will fail with the existing device ID.
* Use an imageProvider directly from the view in the home screen
* Add support for media request coalescing
* Rename MediaProxy to MediaLoader
* Add new image loading mechanism to the room details screen avatar.
* Use the `SettingsScreen` prefix for all settings screen related components
* Add new image loading mechanism to the room header
* Add new image loading mechanism to the room member details screen
* Introduce a LoadableImage SwiftUI view that will automatically handle image loading
* Adopt the new LoadableImage where possible
* Fix LoadableImage not using/storing loaded images properly
* Simplify media loader enqueueing
* Made LodableImage load content after mediaSource updates. Adopt it on the home and settings screens
* Introduce a LoadableAvatarImage component and reuse it throughout the app
* Small logging tweaks, made some LoadableImage properties private
* Fix redacted skeletons avatar background color
* Fix placeholder avatars changing when backgrounding the app
* PR comments.
- Trim the @ sign off of mxid placeholders.
- Only expose AvatarSize on the avatar image, use CGSize elsewhere.
Co-authored-by: Doug <douglase@element.io>