* Switch back to macos-12 and see if the tests work
* Fix unit tests, add default invited, joined and active member counts to the mock room proxy
* Try running UI tests on 14.3 but on an existing iPad simulator
* Revert "Try running UI tests on 14.3 but on an existing iPad simulator"
This reverts commit b075e7fa384330a9070dc35ed4dded57e0af26e1.
* Cleanup how we use message timeline items in preparation for rich reply rendering
* Expose reply details up to the UI level
* Render replies in the timeline (textual for now). Remove now unused AttributedStringBuilderComponent isReply flag.
* Move reply detail loading to when the item appears instead of when it's created.
* Fix unit tests
* Fetch event details also when the reply details are in the error state
* Tweaks following code review
* Localise emote bodies
* Fix replies not loading sometimes, use the current event identifier instead of the one being replied to
* Adopt new sliding sync list interaction APIs
* Re-enable summary providers, be more leninent in the list proxy and remove now unnecessary restartSync method
* Rename all sliding sync views to lists
* Bump the SDK to v1.0.61-alpha
* MediaUploadingPreprocessor - Prevent images without any GPS metadata from being changed
* Add support for sending images
* Add support for sending video, audio and file attachments
* Rename MediaPickerPreview to MediaUploadPreview
* Move media uploading to the MediaUploadPreviewScreen, add waiting indicators and error handling
* Add support for pasting and drag&dropping in media for upload
* Adopt new media picker source UI, remove developer flag
* Set minimum heights for timeline loadable images
* Fix invalid camera picker file names
* Fix flakey MediaUploadingPreprocessor image tests, improve gps metadata stripping
* UITests: Update existing screenshots and add new step for the room attachment picker
* Switch all github action runners to macos-13
* Cleanup enter key and paste message composer handlers
* 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
* #748 - Implement methods for processing various media types and preparing them for upload
* Various tweaks following code review:
- added blurhash generation
- changed thumbnails to jpeg
- throwing if file size cannot be retrieved
- move MediaProvider files to separate folder so they can cleanly be imported in the NSE
- added audio file processing
- switched all image resizing methods to ImageIO
- various renames
* Fix blurhash formatting issues, `swift-format-ignore-file` doesn't work
* Processing all media within unique folders to avoid conflicts
* Fix various warnings
* Rename `sizeForItemAt(_ url: URL)` to `sizeForItem(at url: URL)`
* Remove unnecessary resizeImage(UIImage) method, start by copying not moving the file to the unique location
* Add back warning for roomDetails.avatarURL
* Add log to know why HomeScreenViewModel.roomListMode is .skeletons
To better understand issue #796
* Display the room list even if the room count is not exact
This is a workaround for #796
* Basic implementation completed but it requires some bug fixing and polishing (+4 squashed commits)
Squashed commits:
[43f0064e] now the content of the room details reflects the expected dm details content when the conditions are met
[fe6f2b5e] replaced existing headers with a composable and reusable HeaderView
[3c00120a] now the members are fetched every time the room is opened
[421d539b] refactored the members fetching to be immediate in case the room could be a direct chat
* polished the code and fixed some bugs that prevented the updated state of the members to be displayed in the room details view (+1 squashed commit)
Squashed commits:
[6bf98473] fix for the button not being destructive in room details screen
* removed copy button and updated copy
* moved a file and renamed header view
* addressed all PR comments
* sdk bump
* UI tests
* unit tests
* changelog
* updated mocks
* removed a duplicated signature in a mock
- room composer contextual menu for selecting source
- coordinator for presenting the different sources
- system picker handling and URL passback
- file preview after selection
- feature flag
* 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>
* created the row in the view and the alert, and added the new function to the RoomProxy
* fixed an issue with the alert function
* handling the navigation
* fixed a bug with the detail coordinators being dismissed incorrectly when inside a stack
* implementation completed
* replaced UI screenshots
* added a test for the fixed bug of the coordinators
* trying to increase the wait time for the expectation
* improved the test
* improved the buttons UI
* uploading artifacts for unit tests
* added result bundle true
* improved the tests
* added a new test
* pr suggestions
* updating mock
* PR suggestions
* improved tests
* fixed UI tests
* pr should be ready now
* removed testing code
* reduced complexity
* fixed test
* added a an assert to the new test case
* more tests and messages cases
* pr comments addressed
* completed
* updated the tests
* updated ui tests
* removed unused files
* fixed a bug that prevented the image to be added in the avatar of the rooms from the mock, and improved some UI tests
* swiftformat
* fixed an issue where the room Id was not matching the real room id coming from the timelineController, also updated some tests, and added a test for the case where the RoomAvatar is available.
* added some waitForExistence checks to allow the CI to find the UI elements
* this should make the loading bar always match at the HStack size
* code improvement for the tests
* fix for the max frame of the loading screen
* updated tests
* regenerated and improved some tests
* sonarcloud improvements
* changelog
- 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.
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.
* 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>
* 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