* Add support for message forwarding
* Move the TimelineProvider within the RoomProxy to avoid it going out of sync and have it automatically register for timeline updates on init
* Implement single selection form button style for message forwarding
* Add searching and filter out the source room from the list
* Fixed emoji screen initial search bar height
* Add view models tests
* Add changelog
* Update strings
* Tweaks following code review
- Fix sheet backgrounds in dark mode.
- Fix background colours for reaction buttons.
- Reply view layout.
- Update separator colours.
- Don't show sender name/avatar in DMs.
- Fix inconsistent line heights with formatted body text.
- Use plain text for reply
- Increase tappable size of collapsed state changes button.
- Blockquote layout and text colour.
- Tap to expand the topic in room details.
- Change the topic and security font size in room details.
- Add cancel button when inviting someone to an existing room.
- Reword Add Friends to Add People in start chat screen.
- Update compound.
* Tweak invites button frame and padding
* Implement persistent selections on the room list
* Stop showing rooms when focusing the room list search field with an empty query
* Tweaks after code review
* Improve invite button UI
* Fix unit tests
* App polish
- Skeleton avatar colour on app switching.
- Bug report icon and string.
- Semi-bold font on room list timestamps.
- Room attachments button spacing and alignment.
- Replace link tint with semi-bold font in AnalyticsSettingsScreen.
- Semi-bold font on Invites button.
- Add padding to media attachment sheet.
- Message composer header layout tweaks.
- Remove indicator after changing homeserver with an MXID.
- Change copy permalink string.
- Formatting of link in Analytics Prompt.
- Remove indicator after changing homeserver with an MXID.
- Change copy permalink string.
- Formatting of link in Analytics Prompt.
- Only semi-bold the room timestamp when unread.
- Tweak the colour of the date separator.
- Add activity indicator to toast style user indicator.
* Add support for the new RoomList API
Squashed commits:
[8c2625a] Re-enable invites
[339e59b5] Add automatic syncing restarts after entering the terminated state for whatever reason
[b5498e96] Reimplemented room list state management and usage
[8154b0cf] Fix visible rooms range setting after scrolling stops
[5155c44d] Hook up initial loading idicator and session verification banner to room list service states
[700a5a2e] Enable back room subscriptions, timeline listeners and unread notifications / counts
[9df383bc] Enable last messages and timestamps, they don't crash on release builds
[7c4da9da] Add back certain fields now that the "full room" is available
[9f6534a7] Adopt interfaces to new RoomList API, untested as requests don't go to the right URL
* Tweaks following code review
* Bump the RustSDK to v1.0.76-alpha
* Delete deprecated font tokens.
* Migrate from primaryContent to textPrimary/iconPrimary.
* Migrate from links to textLinkExternal.
* Migrate from secondaryContent to textSecondary/iconSecondary.
* Migrate from accent to textActionPrimary.
- Some uses changed to textPrimary or iconPrimary as necessary.
- Some manual tints removed now that that Sentry is fixed.
* Migrate alert to textCriticalPrimary/iconCriticalPrimary.
* Migrate from brand to textActionAccent/iconAccentTertiary.
* Migrate from background to bgCanvasDefault or text/iconOnSolidPrimary
* Migrate system to bgSubtleSecondary.
* Remove ElementUIColors and obsolete migrated colours.
* Migrate tertiaryContent/quaternaryContent/quinaryContent to Compound.
* Migrate bubblesYou/bubblesNotYou to use Compound.
* Update Compound.
* is now possible to open the confirmation dialog and pass the transaction id
* task completed added some tests
* changelog
* title visibility set to .visible
* refactored alert info to not use the soon to be deprecated API
* missing files and changelog
* updated some tests
* Update ElementX/Sources/Screens/RoomMemberDetailsScreen/View/RoomMemberDetailsScreen.swift
Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
---------
Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
* testing improvements
* code improvements and sdk bump
* improved the stencil file
* improved the build sdk function
* code improvement
* also added the tearDown
* fix
* fixed RTL and LTR timestamp for all the cases! also improved the testing
* changelog
* better and less convoluted solution
* Update ElementX/Sources/Screens/RoomScreen/View/Timeline/FormattedBodyText.swift
Co-authored-by: Alfonso Grillo <alfogrillo@gmail.com>
* pr suggestion and removed prefix in reality it creates more issues than improvements, and is not really needed
---------
Co-authored-by: Alfonso Grillo <alfogrillo@gmail.com>
* added the read receipt into the code
* fixed some things lost during merge
* implemented the status view to be always at the trailing side
* preview code for better testing
* removed timelineStyle modifier
* removed also the group style
* added some UI tests for the read receipts
(+10 squashed commits)
[ba1d3160] Update timeline item action menu reaction UI
[410315ac] Move away from item bound action meus plus various tweaks following code review
[c25cd998] Add emoji reactions to the new timeline item action menu
[57001f49] Prevent timeline view layouts from dismissing the action menu
[d1e70538] Various UI tweaks
[652f4143] Switch to a long press gesture, move the header outside of the scroll view
[569a485c] Workaround timeline item action menu presentation state not being stored
[80c29567] Add currently selected item information in the TimelineItemMenu
[ff7790ec] Fixes#974 - Replace the timeline item contex menu with a bottom sheet
[ba1d3160] Rename TimelineItemContextMenu to TimelineIteMenu so that git correctly interprets it
* Fixes#975 - Update editing message UI
* Fixes#976 - Update reply composer mode UI to include message being replied to
* Use different icon corner radii in the timeline reply view depending on its placement
* Fixed unstored weak reference warning
* Prevent the timeline from jumping whenever we access XCUIApplication properties
* Prevent UI tests from causing side effects on the timeline
* Update userSession reference screenshots
* Fix create room UI tests
* Update inviteUsers UI test reference screenshots
* Allow certain tests to enable timeline accessibility
* Fix roomLayout tests and update reference screenshots
* Disable the testTimelineLayoutInMiddle test because of flakiness
* Update screenshots following timestamp addition
* Another attempt
* Yet another attempt, replace XCUIScreen screenshots with XCUIApplication ones, decrease delay to 1 second
* Allow tests to retry up to 3 times before failing the run
Squashed commits:
Add unit tests and move the state machine into the FlowCoordinator
[bb686861] Replace the RoomFlowCoordinator's public interface with just `handleAppRoute`
[0d9a4f8d] Remove the navigationStackCoordinator dependency from the roomScreenCoordinator
[4b5fbdf2] Allow rooms to be selected from any other state
[41dbd127] Move all missing coordinators to the RoomFlowCoordinator and state machines
[f32431b7] The UserSessionFlowCoordinator does not need to conform to the CoordinatorProtocol
[0f07e87d] Fix leaving a room dismissing the currently selected one when different
[138385a2] Rewind the navigation stack when re-selecting the same room (iPad)
[0727eb93] Fix presenting different room details from the side menu on iPads
[faf4cc60] Fix selecting the same room multiple times
[fb3391da] Move room details presentation responsibility to the RoomFlowCoordinator. Fixed invitation flows.
[fa2a68d9] Rename RoomTimelineFlowCoordinator -> RoomFlowCoordinator
[0c9c06b5] Start moving things away from the RoomScreenCoordinator and into the RoomTimelineFlowCoordinator
[86cbbdcc] Introduce a RoomTimelineFlowCoordinator to deal with timeline related operations
[9b2381be] Introduce the FlowCoordinatorProtocol
* web-like solution
* not super polished but working implementation
* polishing the spacing and sizes
* removing unused code
* code improvements
* adding a test case in the preview for RTL
* addressing some PR comments
* added some tests and polished the code
* better naming
* code improvement
* RTL fix
* Revert "RTL fix"
This reverts commit 14e4468a5358769daa57891f4991e9e32da1c985.
* better RTL fix
* updated UI tests
* separated some files
* addressed some PR comments
* some more tests
* 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
* 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
* #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
- 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.
* 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