* 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
* 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>
Add locale to signalling service name.
Type strings character by character.
Add a default test timeout of 1 minute.
* Directly set UI Tests screens as the root screen.
Speeds up test runs by removing scrolling and searching for buttons.
* Parallelise test runs from Xcode (not fastlane).
* Disable signalling based tests.
* 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
* Use pagination and start items for view state.
isBackPaginating and canBackPaginate are updated each time the timeline is rebuilt
* Update some timeline snapshots
The top section has gone, which has altered the layout slightly.
* Add signalling between UI tests and the app.
* Fix navigationStack on roomLayout screens and update screenshots
Co-authored-by: Stefan Ceriu <stefanc@matrix.org>
* 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
* 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
* Fix UI test simulator versions
* Pin the used Xcode version used by fastlane to `~> 14.0.1`, as simctl status_bar overrides don't work on the Xcode14.1 RC
* Update base screenshots, fix status bar script warning, fix settings screen test
* moved NSRegularExpression outside of the AttributedString builder into the MatrixEntityRegex
* fixed eventId v3 regex
* added permalink builders for users, room identifiers and aliases, and events
* added timeline item permalink contextual menu actions and error alerts
* added an app wide ServiceLocator and moved the top level userIndicatorPresenter to it.
* added URL constructor that takes a StaticString and returns an non-optional
* Include Unit and UI tests in the swiftlint search paths
* #35 Create `ElementNavigationController` subclass
* #35 Add encryption icons
* #35 Add avatar and encryption badge image to the room screen view model
* #35 Create `RoomHeaderView` class
* #35 Replace room title with a RoomHeaderView instance in the toolbar
* #35 Add changelog
* #35 Introduce `UITestScreenIdentifier` and refactor ui tests
* #35 Fix old tests
* #35 add some tests for room screen
* #35 Use svgs instead of pngs
* #35 Fix PR remarks
* #37 Remove sign out button from home screen
* #37 Move crash button visibility flag to BuildSettings, import BuildSettings from test targets
* #37 Add log out button into the settings screen
* #37 Add version into the settings screen
* #37 enhance bug report parameters
* #37 Remove sign out button from home screen
* #37 Move crash button visibility flag to BuildSettings, import BuildSettings from test targets
* #37 Add log out button into the settings screen
* #37 Add version into the settings screen
* #37 enhance bug report parameters
* #37 Add changelog
* #37 Fix code smells and PR remarks