* audio timeline item support
* improved the code to reduce cognitive complexity
* no need anymore for this swiftlint disabling of a rule
* pr comments
* Pass full attributed string to TimelineItems and let the UI level handle blockquote coalescing
* Add permalink detection and attribute embedding within the attributed string
- Decryption banner on the timeline
- Bubble colours
- Background insets
- Multiline composer corner radius
- Read marker
- GIF indicator
- Reactions shape
- Use RoomTimelineViewLabelStyle everywhere possible
- Only set a line limit on reply quotes, allow all the lines for regular quotes.
- Message label icons
- Yes/No button casing
- Make sender profiles immutable.
- Enable copy link and invite buttons.
- Fix layout loop detecting multiline composer text.
- Add animation to the encryption banner.
* Use an imageProvider directly from the view in the home screen
* Add support for media request coalescing
* Rename MediaProxy to MediaLoader
* Add new image loading mechanism to the room details screen avatar.
* Use the `SettingsScreen` prefix for all settings screen related components
* Add new image loading mechanism to the room header
* Add new image loading mechanism to the room member details screen
* Introduce a LoadableImage SwiftUI view that will automatically handle image loading
* Adopt the new LoadableImage where possible
* Fix LoadableImage not using/storing loaded images properly
* Simplify media loader enqueueing
* Made LodableImage load content after mediaSource updates. Adopt it on the home and settings screens
* Introduce a LoadableAvatarImage component and reuse it throughout the app
* Small logging tweaks, made some LoadableImage properties private
* Fix redacted skeletons avatar background color
* Fix placeholder avatars changing when backgrounding the app
* PR comments.
- Trim the @ sign off of mxid placeholders.
- Only expose AvatarSize on the avatar image, use CGSize elsewhere.
Co-authored-by: Doug <douglase@element.io>
* 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
* State events in the timeline WIP
* Implement membership change strings.
* Add other state event types and use in RoomSummaryProvider.
Co-authored-by: Stefan Ceriu <stefanc@matrix.org>
* Adopt timeline item sender profiles for displaying user avatars and display names
* Prevent images from automatically being evicted from the in-memory cache when entering background
* Get rid of all the `urlString: String`s and start using proper URLs
* Add back manual display name loading as the sender profiles aren't working properly yet
* Implement a sender profile.
* Bump the RustSDK to v1.0.32-alpha
Co-authored-by: Doug <douglase@element.io>
* 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.
* 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
* Add signalling between UI tests and the app.
* Fix navigationStack on roomLayout screens and update screenshots
Co-authored-by: Stefan Ceriu <stefanc@matrix.org>
* 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>
* 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