* 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
* Add signposts to performance tests.
- Update flow to include support for the migration screen.
* If the welcome screen shows, click on the button.
* Ensure a clean simulator each run.
* Add accessibility identifier for migration screen if required.
* Handle walking into the room and back out again.
* use iphone 14 pro to match what's used in xcode.
* Remove ApplicationTests as duplicated in LoginTests.
We measure app startup time in LoginTests as part of the flow - we may as well avoid spending 60s doing only that measurement in ApplicationTests
* Sleep 10s, the ui is otherwise showing up in random order.
* Revert "Remove ApplicationTests as duplicated in LoginTests."
This reverts commit 8670710315bcd0d6c3c3046f534b32b4c728b837.
* Update script to parse out correct values from results file.
* Allow cancellation of password prompt in any order.
* Remove test timeout, performance tests will always take a while.
* Adjust parsing further
* Remove ApplicationTests.
* Move to a more elegant way to wait for something to disappear.
* Linting.
* Fix unit tests.
---------
Co-authored-by: Doug <douglase@element.io>
Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
* Structured logging support
* Bump the SDK, fix breaking changes
* Enabled more logging of timeline diffs
* Keep only source file last path components in logs
* Bump the SDK, tweaks following code review
* Rename onboarding and login user/pass accessibility ids.
* Refactor remaining server change accessibility IDs
* Avoid accessibilityIdentifier spreading to all decorations on the textBox.
Required because otherwise there are multiple items tagged with the accessibilityId
which means we can't click on "the" item.
* Move all accessibility identifiers to `AccessibilityIdentifiers.swft`
- use same naming convention on all of them
- remove the unused ones
- fix build errors in integration tests and invalid identifiers (still broken until autodiscovery lands on rosa)
---------
Co-authored-by: Stefan Ceriu <stefanc@matrix.org>
* Store and reuse room list placeholder avatars and last messages
* Cache and reuse HomeScreenRooms
* Reduce RoomSummaryProvider diff collection time
* Promote more logs to info
* Slighty tweak RustTracing to make it easier to configure
* Move TimelineProvider and RoomTimelineController item processing to background queues
* Prevent the timeline from stopping an ogoing decelerating scroll when starting backpaginating
* 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
* 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
* 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