* Refactor SS configuration and add (unfinished) support for adding views dynamically.
* Implement pop and clear support on the room summary provider
* Register views against sliding sync
* Read invalidated vislbeRoomsSummaryProvider from the allRoomSummaryProvider
* Switch SS window range setting from the ScrollViewAdapter to a publisher debounce
* Tweak allRoomsView addition: switch from listening the visibleRoomsView's state to when it publishes the first diff update
* Cleanup client delegate and sliding sync observers and lifecycle
* Bump the RustSDK to 1.0.30-alpha
* Reuse startSync within restartSync
* Only use Client for UI test signalling.
Make the server listen and return a client.
* Refactor to Listener and Connection.
Matches Network.framework naming.
* Wait until the connection is ready before setting the established connection.
* Docs and fix method name.
* Fix CI issues.
- Use Bonjour to allow multiple devices running simultaneously.
- Sleep after establishing the connection to fix issues on Intel.
* Cleanup session verification state machine configuration
* Add support for new timeline items: loading indicators, stickers and invalid/unsupported events
* Add sticker accessibility label, fix session verification ones
* Add support for the new TimelineStart timeline item and new pagination API. Remove identifiers from individual timeline items and only set them in the TimelineTableViewController
* Add changelog
* Media provider tests
* Moved classes to separate files
* Moved image file
* Removed unused image file
* Rebase and refactor.
Replace removed error type.
Refactor XYZMock to MockXYZ.
Co-authored-by: Doug <douglase@element.io>
* Add signalling between UI tests and the app.
* Fix navigationStack on roomLayout screens and update screenshots
Co-authored-by: Stefan Ceriu <stefanc@matrix.org>
* NotificationManager tests
* More unit tests
* More tests, moved classes to separate files
* Removed warnings
* UserNotificationCenterProtocol as AnyObject
* Reverted back Package.resolved
* Add the message delivery status to the plain timeline styler and display it outside of the main content
* Fix glitchy timeline scroll to bottom button
* Fixed bubbled reactions padding
* Simplified the emoji picker, double tapping a timeline item directly opens it now and added a context menu option. Linked it to rust side reaction sending
* Fix the sliding sync cold cache: treat invalidated rooms as filled
* Make splash screen view full screen
* Fix the offline indicator popping up when first setting up the network monitor
* Expose presentationDetents on the NavigationStackCoordinator and start using them for the EmojiPicker
* Fix link tint color
* Linked TimelineReactionsView reaction sending
* Remove now unused/unnecessary classes
* Add changelog
* Fix formatting issue
* Create screen module
* Display details on header tap
* Add strings
* Add room avatar size on details
* Update members method signature
* Use room proxy values
* Create room members screen
* Display room members on tap
* Update previews and mock room proxy
* Commit project file
* Various tweaks and cleanup following code review
* More small tweaks + UI and screenshot tests
Co-authored-by: Stefan Ceriu <stefanc@matrix.org>
* Switch back to using slidingSync rooms for timeline listeners
* Expose 2 types of slidingSync views from the clientProxy and combine their results for the roomList
* Fix breaking api changes
* Remove sender mxids from the room list (until rust provides resolved display names)
* Bump RustSDK to v1.0.22-alpha
* Rename originServerTs to timestamp throughout
* Simplified sliding sync view list merging
* Rollback some SS changes as things still don't work properly
* Revert "Switch back to using slidingSync rooms for timeline listeners"
This reverts commit 1d6a6c09d8ddf386edefbe0ac6beaf52cc333fba.
* Fixes#361 - Reset everything if the app has been deleted since the last run
* Cleaned up and renamed the ElementSettings to ApplicationSettings. Removed its singleton and moved it to the service locator.
* Moved the ApplicationSettings to the Application folder
* Merged together the BuildSettings and ApplicationSettings
* Reset the UserDefaults too when resetting the application state
* Rename ServiceLocator.applicationSettings to just settings
* Fix indentation
* Rename ApplicationSettings to AppSettings
* Various tweaks following code review
* Fix unit tests
* Increase integration tests time limits again as they're still ocasionally failing
* Fixed NavigationRootCoordinator name in logs
* Refactor UI tests hierarchy and introduce new userFlowScreen
* Introduce a RoomTimelineControllerFactory so that it can be mocked in the UserFlow UI tests
* Start using a mock timeline controller for the UserSession flows
* Remove the WeakDictionary dependency and replce it with a plain NSMapTable in the BackgroundTaskService
* Allow multiple UITests screenshots per screen
* Prevent the view hierarchy changing when taking screenshots
* Add UserSessionScreen UI tests
* Fix label triaging workflow project identifier as per vector-im/element-ios/pull/7150
* Fix settings screen tests
* Fix roomPlainNoAvatar and roomEncryptedWithAvatar UI tests
* Fix modal server selection screen UI tests
* Fix bug report and login screen UI tests
* Fix text typing missing characters on UI tests
* Fix sliding sync configuration on integration tests
* Stop crashing if not finding a particular room through the MockClientProxy
Rename navigation components: SplitScreenCoordinator -> NavigationSplitCoordinator, StackScreenCoordinator -> NavigationStackCoordinator and SingleScreenCoordinator -> NavigationRootCoordinator
[0c161039] Tweak navigation logging
[826c19cf] Move the navigation dismissal callbacks to the NavigationModule, add SingleScreenCoordinator tests
[b8830d9c] Add tests
[252ad119] Merge the StackScreenCoordinator and SplitScreenCoordinators into a single file and stop publicly exposing their internal workings. Add more documentation.
[37671699] Cleanup navigation logging
[51406184] Use the parent SplitScreenCoordinator to present embedded StackScreenCoordinator sheets
[b94b04c9] Retract the room "syncing" indicator when dismissing a room
[1467b0ac] Correctly move to the no room selected state when popping in compact layouts
[10bf2ad8] Allow nilling root coordinators, replace present/dismiss sheet with setSheetCoordinator(?)
[33716784] Add single screen coordinator fade transition animation
[3cbe65e7] Prevent the timeline table view from being reused between different rooms
[9c94c50b] Move files around
[c10b6bc5] Adapt the user session state machine to the split layout
[7115a319] Fix unit and UI tests
[1ece59e8] Fix login flows
[6884dc3b] Use modules everywhere the underlying object is a NavigationModule
[ab08d44c] Rename navigation components to: SingleScreenCoordinator, SplitScreenCoordinator and StackScreenCoordinator
[ada2be57] Add SplitNavigationController
* Remove the navigationRootCoordinator from the UserSessionFlowCoordinator
* Screens template
* Loading and parsing
* Gridview
* New json
* Search method
* Unit tests
* Added emoji provider state
* Removed containsIgnoringCase
* Added plus icon, added double tap gesture, dismiss sheet after selecting emoji
* Renamed EmojisProvider to EmojiProvider
* Renamed EmojiPickerScreenScreen
* Extra padding
* Renamed EmojisLoaderProtocol
* Category names
* Moved method into public section of the class
* Return all categories when search string is empty
* Added cancel button and tittle
* Removed empty lines
* Removed swiftlint warning
* Resume other app's music when video playback finished
* Remove old media player
* Add `isModallyPresented` into the video player screen
* Create image viewer screen
* Add test screen identifier
* Display image viewer when message tapped
* Fix template script unit test path
* Tweaks on scaling
* Commit project file
* Add changelog
* Ignore safe areas on the file preview screen
* Display images in preview
* Remove image viewer screen
Co-authored-by: Stefan Ceriu <stefanc@matrix.org>
* Set visible ranges on the home screen sliding sync view
* Prevent the visible items from being updated while in search mode
* Enable diffs on invalidations as they seem to fix duplicated events in the home screen room list
* Promoted some diffing logs to info from verbose
* Add diffing logs and be more aggresive about unexpected states
* Move diff collection on a serial queue
* Handle now optional `addTimelineListener` result
* Treat RoomSummaryProvider invalidations separately
* Bump RustSDK to v0.0.9-demo
* Remove status bars when running UITests
* Remove simulator OS versions from screenshot names, be less lenient with image diffing
* Rename UITests splash screen to onboarding
* Switch tests to Xcode 14.1, remove version names for used simulators and switched from iPhone 13 Pro Max to iPhone 14
* Fix ServiceLocator and fallbackLaguage for UI tests
* Drop snapshot diffing precision to 0.99 as 0.999 triggers false negatives
* Fix server selection UI tests after exposing the sliding sync proxy configuration
* Update reference screenshots
* Use a VStack for the timeline.
Replace edge publishers with a binding.
* Allow both top and bottom edges to be detected.
* Fix scrolling with frame changes.
* Updated md files
* Changelog
* Update CONTRIBUTING.md
Co-authored-by: Stefan Ceriu <stefanc@matrix.org>
* PR fixes
* Sending state in the timeline
* Changelog
* Formating
* Project file
* Make MessageTimelineItemDeliveryStatus Equatable
* Renamed seconds ago to elepsed time
* Moved show/hide logic into TimelineDeliveryStatusView
* Hide view when unknown status
* Added delivery status for other items
* Cleanup
Co-authored-by: Stefan Ceriu <stefanc@matrix.org>
* Fixes#286 - Adopted the new SwiftUI NavigationStack based NavigationController throughout the application
* Fixes#315 - Implemented new user notification components on top of SwiftUI and the new navigation flows
* Add home screen fade animation between skeletons and real rooms
* Bump the danger-swift version used on the CI and swiftlint with it
* Renamed Splash to Onboarding, Empty to Splash