* 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
* add users provider with test
* add ui test for search users
* add changelog
* Update ElementX/Sources/Services/Users/UsersProvider.swift
Co-authored-by: Alfonso Grillo <alfogrillo@gmail.com>
* add error handling in usersprovider
* remove empty section
* add search in invite users
* add CancellableTask, add setup App Settings in UnitTest, screenshots
* rename of UserDiscoveryService
* Update ElementX/Sources/Other/Extensions/Publisher.swift
Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
* new error management for User Discovery Service
* Update ElementX/Sources/Other/CancellableTask.swift
Co-authored-by: Alfonso Grillo <alfogrillo@gmail.com>
* Update ElementX/Sources/Services/Users/UserDiscoveryService.swift
Co-authored-by: Alfonso Grillo <alfogrillo@gmail.com>
* fix invite users and start chat errors
* use only one task to fetch user profile
---------
Co-authored-by: Alfonso Grillo <alfogrillo@gmail.com>
Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
* Removing the about section title
updated tests
* fixed a bug that made the app crash when tapping
a notification in an unhandled state
* missing screenshots
* 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
* Update snapshots.
* Fix timeline grouping and UI tests.
* Remove German UI tests with double-length pseudolanguage.
Avoids tests breaking when translations are updated.
* 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
* add start chat flow with UI
* add feature flag for start chat
* add changelog
* fix naming and tests
* fix empty display name in user cell
* Update ElementX/Sources/Application/AppSettings.swift
Co-authored-by: Alfonso Grillo <alfogrillo@element.io>
* add screenshots from UI test
* fix swiftFormat and add identifiers
* fix warnings
---------
Co-authored-by: Alfonso Grillo <alfogrillo@element.io>
* Update the layout of HomeScreenRoomCell.
- Make sure the separator always aligns to the text when dynamic type changes.
- Use vertical padding for the minimum height to display more cells at smaller dynamic type sizes.
---------
Co-authored-by: Mauro <34335419+Velin92@users.noreply.github.com>
* created the empty files
* set up the view content
* connected the Room Coordinator to the ReportContent Coordinator
* added the loading indicators and the dismiss behaviour
* almost completed but I need to display the success indicator when the report is sent succesfully
* completed
* added an untranslated string
* tests
* Update ElementX/Sources/Screens/RoomScreen/RoomScreenCoordinator.swift
Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
* Update ElementX/Sources/Screens/ReportContent/View/ReportContentScreen.swift
Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
* pr comment
* pr suggestion
* removing unused identifiers
* fixing compilation error
* added a form text editor view
* changelog
---------
Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
* Fixed UI test problems introduced after the accessibility identifier changes
* Disable parallel UITests, they don't seem to work properly
* Fix UITests `elementFallbackLanguage`
* 127 Attach Screenshot in Bug Report Screen
* #127 code improvement
* #127 Code improvements, and changed the loading... label to sending...
* using a statically defined identifier for the new defined ui element
* added the RowLabelStyle and improved the design of the view
* code improvement
* code improvement
* making alignment private
* synthesised init
* 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.
* 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
* Fix OnboardingScreen UI Tests
Disable the swipe tests for now as there is only a single page.
* Fix BugReportScreen UI Tests.
Use snapshots more and remove manual validation method.
* Fix ServerSelectionScreen UI Tests.
* Fix SessionVerificationScreen UI Tests.
* Fix UserSessionFlows UI Tests
* 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>
* Fix race condition on session verification tests.
* Fix clear button on text field.
* Add a timeout to UI test signalling.
* Use snapshot testing for login screen.
* 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.