* Add support for the new RoomList API
Squashed commits:
[8c2625a] Re-enable invites
[339e59b5] Add automatic syncing restarts after entering the terminated state for whatever reason
[b5498e96] Reimplemented room list state management and usage
[8154b0cf] Fix visible rooms range setting after scrolling stops
[5155c44d] Hook up initial loading idicator and session verification banner to room list service states
[700a5a2e] Enable back room subscriptions, timeline listeners and unread notifications / counts
[9df383bc] Enable last messages and timestamps, they don't crash on release builds
[7c4da9da] Add back certain fields now that the "full room" is available
[9f6534a7] Adopt interfaces to new RoomList API, untested as requests don't go to the right URL
* Tweaks following code review
* Bump the RustSDK to v1.0.76-alpha
* Fixes#1011 - Add legal information screen in settings, move all settings related screens under Source/Screen/Settings
* Fix warnings after sliding sync api change
* sdk bump
* moved the bump event types to the sliding sync list builder
* removed sync growing mode from notifications even if we are not really using it anymore
* recency order is also for the all room list
* removed the local notification code entirely
* removed unused function
* fixed the code placement for the ordering
* image media upload for room creation
* fix remove duplicate logic
* use Async Image, add Focusable Fields in create room
* remove alert message which doesn't have a copy
* add remove duplicates on crete room image
* add button style for preventing undesired touches
* add changelog, add error case for file too large
* Fix iPad sheet presentation
* add error media preprocess
* dismissing focus on image picker
* Fixed unused animated parameter
* Wait for lists to load before querying rooms if the cold cache isn't available
* Fix a couple of unused result warnings in the ExpiringTaskRunner unit tests
* 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