* generated files
* Revert "generated files"
This reverts commit f62c1dbcd9e505083ad4ff17532e2c054e253187.
* renaming files to RoomMembersList
* completed the renaming of the list files
* added generated files
* basic setup of the view and the mock
* added a new mock with a avatar
* share/copy link
* copyUserLink implemented
* removed unimplemented tests
* block user UI
* navigation to room member details added
* implemented but we require a sync from the Rust side
* adjusted some UI test screens
* alert for unblocking
* completed
* some tests
* changelog
* ignore user ui enabled
* loader inside the button when the request is fetching
* removed unused code
* blocking the button while loading
* improved the code
* changelog
* UI tests
* unit tests
* added collection concurrency kit
* Revert "added collection concurrency kit"
This reverts commit 499fbe129f73a75e903d9f4952fe2ad672930f04.
* replaced the asyncMap with a @MainActor builder function
* pr comments
* added localazy to setup
* sdk bump to 1.0.49
* generated files
* Revert "generated files"
This reverts commit f62c1dbcd9e505083ad4ff17532e2c054e253187.
* renaming files to RoomMembersList
* completed the renaming of the list files
* added generated files
* basic setup of the view and the mock
* added a new mock with a avatar
* share/copy link
* copyUserLink implemented
* removed unimplemented tests
* block user UI
* navigation to room member details added
* implemented but we require a sync from the Rust side
* adjusted some UI test screens
* alert for unblocking
* completed
* some tests
* changelog
* some unit tests
* improved the tests
* removed unused comment
* Update ElementX/Sources/Services/Room/RoomProxy.swift
Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
* optional displayName
* removing toggle
* removed cancel title
* Update UnitTests/Sources/RoomMemberDetailsViewModelTests.swift
Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
* removing Group
* pr suggestion
* better naming
* removed capitalizingFirstLetter
* Update ElementX/Sources/Other/Extensions/Alert.swift
Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
* trailing closure
* removed useless catch clause
* naming conformed to ignore
---------
Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
* updating dependencies
* minor version pinning
* update completed and also added a tool that checks for outdated swiftpm packages
* changelog
* DTCoreText uses exact version
* minor version for analytics
* pushing OutdatedPackages
* package.swift for the repo also using upToNextMinor
* fixing a typo
* Update Tools/Sources/OutdatedPackages.swift
Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
* Update Tools/Sources/SetupProject.swift
Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
* removing unused comment
* removed trailing comma
---------
Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
* loading a cached avatar at first, and then actually doing the request so that the avatar can still be displayed without connection
* improved the code
* fix + changelog
* policy on how to fetch the avatar url added
* code improvements
* addressed al PR comments
* improved the error handling
* improved the async task code
* fixed a typo
* fixed another typo
* Remove isSoftLogout from everywhere except the client delegate
- bump the RustSDK to v1.0.43
- cleanup the app coordinator state machine and login/logout flows
* Merge `succeededSigningIn` and `succeededRestoringSession` into `createdUserSession` in order to simplify the logic
Squashed commits:
[42e45fc] Even more tweaks following code review
[5dcd5be] Add swift-algoritms and switch bubbling detection to its `chunked` method
[4ac70ed] Move the groupBy implementation to Collection instead of Array
[6aeffc3] Tweaks following code review
[0ca5ac2] Bubbles working again, grouping computed closer to the UI level
[3a66030] Refactor how timeline items are built in the RoomTimelineController
[57d51e9] Remove grouping from timeline items
[8608950] Remove the RoomTimelineViewFactory, update the GroupRoomTimelineView
[9e52e61] Add array grouping extension, unit tests and switched the timeline controller to it
[7d213a1] First attempt
[90bb1d7] Remove now unused `RoomTimelineController` `updatedTimelineItem` calback
* Automatic discovery of the sliding sync proxy.
* Handle homeserver detection from a MXID.
* Update sliding sync info link, SDK and bump patch.
Add a migration on the new version. The change in restoration token format requires the user to sign in again, but this will fail with the existing device ID.
There are some bad assumptions about profile changes in here.
* Remove assumption FIXME's
Profile changes that come from other members will be state event of None.
* Bump SDK version.
* 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
* 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>
* 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
* 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
* 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.
* 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
* 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 timeline item and view for video
* Create video timeline items in factory, do not bubble them
* Add changelog
* Update packages
* Revert DTCoreText update
* 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
* Begin adopting new Timeline API.
* Add edited indicator and reactions.
* vector-im/element-x-ios/issues/65 - Sliding sync support
* Fix missing room display name, wrong placeholder avatar text color and various other warnings that would fail the build on the CI
* Various tweaks:
* using release version of the demo branch of the sdk
* enabled home screen last room messages
* switched debug mode rust logging to warn
* enabled redactions
* enabled new logout flows and soft logout
* enabled replies
* Fix room member display name and avatar crashes / race condition, fix unit tests
* Make the ClientProxy and the UserSession MainActors
* Remove unused MatrixRustSDK imports, we should strive to keep these only in top level services and proxies
* Don't start either of the syncs while in soft logout
* #181: Style the session verification banner to match Figma.
* #181: Update verification modal.
* #181: Update snapshot tests.
* Make session verification state machine less pedantic
* Remove unnecessary weak selfs
* Various tweaks following code review:
* add start and stop sync client proxy methods
* move ss proxy url the build settings
* made media provider load results discardable
* added publishers for the roomSummaryProvider's total number of rooms and state
* Fix when sender details are shown
* Disable sync v2, causes duplicates in the timeline (as expected)
* Move ClientProxy media loading off the main queue and into a detached task
* Another attempt at moving image loading off the main queue
* Moved home screen diffing and latest room fetching to the background
* Prevent the timeline composer from becoming the first responder when not needed
* Bump to a newer version of the RustSDK
* Fixes vector-im/element-x-ios/issues/107 - New home screen design
* Implement thumbnail loading instead of full image avatars.
* Revert "Disable sync v2, causes duplicates in the timeline (as expected)"
* Add support for local echoes, dispatching detached tasks to a concurrenc GCD queue
* Move the session verification banner to a List Section to avoid UI glitches
* Optimise room mapping after sliding sync updates and thumbnail fetching
* Replace home screen List with a LazyVStack in an attempt to fix performance. Moved move summary provider room updating to a background thread
* Fixes vector-im/element-x-ios/issues/177 - New Bubbles Design
* Define in group state for timeline items
* Add replies into the bubble
* Add timeline width environment value
* Add `RoundedCorner` shape with specific corners rounding
* Add in group state for previews
* Implement bubble grouping logic
* Timeline avatar layout changes
* Fix placeholder avatars for dark mode
* New bubbles design
* Update mock timeline items
* Update timeline separator design
* Update room screen reference screenshots
* Add changelog
* Formatting fixes
* Add some space before single or beginning outgoing items
* Redesign the message composer
* Handle the msgtype enum.
* Update room name label line limit and incoming bubble background. Disabled syncv2, ss withCommonExtensions and session verification controller checking
* Increase default back pagination limit.
* Stop parsing links and tidy up composer button.
* Also fix the frame of an image whilst loading.
* Bump SDK package version.
* Remove app states about settings
* Add strings
* Use colors on placeholder avatars
* Tiny changes for placeholder avatars
* Update settings screen design
* Provide a user display name from the mock client
* Settings screen presentation logic
* Add changelog
* Update reference screenshots
Co-authored-by: Doug <douglase@element.io>
Co-authored-by: ismailgulek <ismailgulek@users.noreply.github.com>
Co-authored-by: ismailgulek <ismailg@matrix.org>