* 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
* Create media player screen
* Introduce `FileCache` to cache message attachments
* Add file loading functionality into the media provider
* Process tap action on timeline items
* Pass item taps to view model
* Navigate to media player on view model callback
* Commit project file
* Add changelog
* Add file messages into the timeline
* Create file preview screen
* Display files in the preview screen
* Commit project file
* Update Rust SDK to 1.0.19-alpha
* Add changelog
* Bump the RustSDK to `v1.0.20-alpha`
* Configure audio session on video playback
Co-authored-by: Stefan Ceriu <stefanc@matrix.org>
* Create media player screen
* Introduce `FileCache` to cache message attachments
* Add file loading functionality into the media provider
* Process tap action on timeline items
* Pass item taps to view model
* Navigate to media player on view model callback
* Commit project file
* Add changelog
* Rename media to video
* Add a loader when large videos being processed
* Add back button explicitly on video screen, fixes for light scheme
* Handle right swipe to dismiss video
* Create timeline item and view for video
* Create video timeline items in factory, do not bubble them
* Add changelog
* Update packages
* Revert DTCoreText update
* Fixes#292 - Added a timeline item context menu option for printing and showing their debug description
* Fixes#291 - Add support for non-decryptable timeline items
* Fixes#271 - Allow bubbles to horizontally fill the available space
* Set the existing timelineItems on the timeline when appearing. This fixes UI tests in which items exists without the need for backpagination. It also presumably will fix the timeline when having cached data.
* Review places where MainActor used
* Adapt to MainActor changes, avoid redundant task detachments
* Move Rust client operations into a dedicated concurrent queue, make init async
* Add changelog
* Fixed small working for awaiting non-async method
* Remove some redundant tasks
* Put back some main actors
* Fix tests
* Fixed timeline updates when the number of items doesn't change. Keeps more previous home screen room data between reloads
Co-authored-by: Stefan Ceriu <stefanc@matrix.org>
* Fixes#276 - Rebuilt room timeline:
- Removed the need for the ListCollectionViewAdapter
- Rewrote the TimelineItemList without using introspection
- Added ReversedScrollView for laying out items at the bottom/trailing
- Rewrote TimelineProvider diffing through CollectionDifference (similar to the RoomSummaryProvider)
- Added back `scrollDismissesKeyboard` behavior
- Various other tweaks and fixes
- Fixed various warnings:
- removed async AttributedStringBuilder as AttributedString is non-sendable, made the RoomTimelineItemFactory synchronous
- removed unused virtual timeline items
- removed unused isOutgoing property from the FormattedBodyText
* Make TimelineItemContextMenuActions indentifiable and specify contextMenu identifiers
* Bump the matrix-rust-components-swift to v1.0.16-alpha
* Add changes file and changelog contribution guide
* Fix attributed string builder unit tests
* Set a proper user agent
* Add fallback when UA comes out nil
* Remove unused Bundle extension
* Return nil when asciification fails
* Add whitespace handling and further emoji test case
* Explicitly check if string is already in ASCII
* Rename factory to builder
* Use allSatisfy instead of reduce
* Use key path syntax
* Enable sliding sync common extensions and session verification banner display; fix user session flow coordinator state machine
* Fixed a couple of deprecation warnings
* Add missing `m.room.encryption` required state
* Switch to rust-sdk v1.0.15-alpha and add changelog
* Fix Timeline on Xcode 14/iOS 16
Raise requirement to iOS 16+
Reduce pagination jumping.
Sonarcloud fixes.
Fix verification test.
Adopt if let optional { syntax.
* Remove unused ScrollViewReader
The ScrollViewReader didn't appear to change the behaviour.
* Fix warnings on Run Scripts.
Run script build phase 'SwiftLint' will be run during every build because it does not specify any outputs. To address this warning, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase.