Commit Graph

2098 Commits

Author SHA1 Message Date
Stefan Ceriu 83e3d828cd Composer mode UI updates (#984)
* 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
2023-05-31 14:51:51 +03:00
Alfonso Grillo 87075eecfd Add UserIndicator.disableInteractiveDismiss (#993) 2023-05-31 12:56:58 +02:00
Doug 6b6ea118e2 Update OIDC presentation (#987)
* Present OIDC directly on the ServerConfirmationScreen.

Read the actual window from the view.

* Pop back to the confirmation screen when a user enters an MXID that needs OIDC.

* Remove OIDC error handling from the login screen.
2023-05-30 16:51:00 +01:00
Flescio 03ba211e6c Flescio/add room image (#961)
* image media upload for room creation

* fix remove duplicate logic

* use Async Image, add Focusable Fields in create room

* remove alert message which doesn't have a copy

* add remove duplicates on crete room image

* add button style for preventing undesired touches

* add changelog, add error case for file too large

* Fix iPad sheet presentation

* add error media preprocess

* dismissing focus on image picker
2023-05-30 12:55:29 +00:00
Alfonso Grillo eba0fe5ce3 Add indicator after leaving a room (#981)
* Refactor UserIndicatorModalView to support no progress

* Add room left indicator in HomeScreenViewModel

* Apply PR suggestion
2023-05-30 12:32:07 +02:00
Doug 74b36ce870 Server Confirmation Screen (#959)
* Add ServerConfirmationScreen.
2023-05-30 10:31:18 +01:00
Mauro 088ca622a1 Generating SDK Mocks through the usage of swift run tools generate-sdk-mocks (#982)
* basic implementation, that works for now only with the local SDK

* replaced a handmade mock with a generated mock
2023-05-30 09:48:55 +02:00
Stefan Ceriu a1fdfd068a Fix UI tests (#950)
* 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
2023-05-26 17:43:38 +03:00
Stefan Ceriu 0082aba9d4 Fixes #918, #919 - Introduce a RoomTimelineFlowCoordinator and related FlowCoordinator protocol
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
2023-05-26 17:42:39 +03:00
Alfonso Grillo f2b7faa183 Room's details edit screen (#956)
* Add RoomDetailsEditScreen template

* Add navigation to the edit screen

* Delete template code

* Start RoomDetailsEditScreen UI

* Manage power levels in RoomDetailsScreen

* Start RoomDetailsEditScreenViewModel logic

* Inject initial room state

* Add cancel action

* Expose set name/topic APIs in RoomProxy

* Refine RoomDetailsEditScreen UI

* Add save logic

* Add localisations

* Fix avatar image

* Update localisations

* Add “Add topic” button

* Add feature flag

* Add dismiss on save logic

* Reduce throttling

* Improve form logic

* Fix UT build errors

* Add media sheet

* Add media preprocessing

* Add LoadableEditableAvatarImage

* Add condition on delete image

* Add avatar save button logic

* Add remove avatar logic

* Cleanup

* Fix edit bug in DM

* Add upload avatar

* Add focus

* Add RoomDetailsViewModel UTs

* Fix button style

* Add UTs

* Add empty topic ui test

* Fix iPad sheet presentation

* Revert topic appearance in room’s details

* Address PR comments

* Add UI tests
2023-05-26 13:47:12 +00:00
Alfonso Grillo bf2102e5d1 Add room's update publisher (#952)
* Add room update publisher

* Cleanup

* Update room’s title

* Add refresh logic in RoomDetailsScreenViewModel

* Fix UTs

* Add UT

* Update timeline listener in RoomProxy

* Fix caching in LoadableAvatarImage

* Cleanup

* Update RoomProxy api

* Inject room proxy in RoomScreenViewModel

* Cleanup

* Fix UTs
2023-05-25 10:42:58 +00:00
Mauro c59921103d Inlined Timestamp in bubble style for messages that have a bubble (#947)
* 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
2023-05-25 10:13:45 +00:00
Stefan Ceriu 59f60a14a2 Prevent room navigation back button from jumping while animating 2023-05-23 16:51:58 +03:00
Alfonso Grillo 3ff61f5158 Re-apply changes (#940) 2023-05-22 16:23:03 +00:00
Flescio beb61d109f Flescio/create room action (#925)
* fix invites users screen

* add create room action

* add a task runner with timeout, add fetch room summary after creation

* rename Runner, add Unit Test, separate UserProfile form client proxy

* change to all room summary publisher
2023-05-22 15:27:39 +00:00
Alfonso Grillo d9e0f36aeb Invite people in an existing room (#915)
* Handle power levels

* Add “invite” button in RoomMembersListScreen

* Refactor DI in RoomDetailsScreenCoordinator

* Add navigation to “select people” coordinator

* Add InviteUsersScreenRoomContext

* Add invite user by id api

* Updare InviteUsersScreenRoomContext

* Support disabled state on FormButtonStyles

* Handle membership in UserProfileCell

* Fix conflicts

* Refactor RoomContext -> RoomType

* Refactor UserProfileCell

* Add invite action

* Setup navigation to user flow coordinator

* Add invite logic

* Fix test build errors

* Address comments

* Fix localisations

* Update required state

* Handle error

* Move invite logic in RoomDetailsScreenCoordinator

* Add navigation from room’s members list

* Fix UTs

* Fix missing display name in RoomMemberDetails

* Add user indicator

* Add feature flag

* Add RoomDetailsViewModel UTs

* Add room details ui tests

* Add InviteUsersViewModelTests UTs

* Add UI tests

* Update UI tests

* Empty commit
2023-05-22 14:03:07 +00:00
Mauro 8ed8cf6f0c Delivery Status Redesign (#931) 2023-05-22 15:17:06 +02:00
Alfonso Grillo d15ed1f6a3 Add share link in start chat flow (#926) 2023-05-19 15:34:35 +00:00
Stefan Ceriu 0066761380 Fix styling post code review 2023-05-17 16:17:48 +03:00
Stefan Ceriu 6ec5922956 Update blockquote styling to latest designs 2023-05-17 16:17:48 +03:00
Stefan Ceriu 0608c68aee Added custom reply views for all message types as well as a loading state 2023-05-17 16:17:48 +03:00
Flavio Alescio 8b746fcd33 UI section title fix 2023-05-16 18:23:23 +02:00
Flavio Alescio 1b0948d618 remove keyboard from screenshots 2023-05-16 18:23:23 +02:00
Flescio 9fee8e7558 Update ElementX/Sources/Screens/CreateRoom/View/CreateRoomScreen.swift
Co-authored-by: Alfonso Grillo <alfogrillo@gmail.com>
2023-05-16 18:23:23 +02:00
Flescio 8cfb4c70ce Update ElementX/Sources/Screens/CreateRoom/CreateRoomViewModel.swift
Co-authored-by: Alfonso Grillo <alfogrillo@gmail.com>
2023-05-16 18:23:23 +02:00
Flavio Alescio 6723da16c6 remove create room parameters by reference and use coordinator flow instead 2023-05-16 18:23:23 +02:00
Flavio Alescio 372a2d5360 change accesibility identifiers, remove single selection button style, use Picker instead, 2023-05-16 18:23:23 +02:00
Flavio Alescio 41094cb293 fix throwing task compile error 2023-05-16 18:23:23 +02:00
Flavio Alescio da0b35ea6f add screenshots for UI test 2023-05-16 18:23:23 +02:00
Flavio Alescio f8b7b86641 add UI test, separate model class in Services, UI fix for button with single selection style 2023-05-16 18:23:23 +02:00
Flavio Alescio 2bcefd31e9 UI on create room screen 2023-05-16 18:23:23 +02:00
Flavio Alescio 7ad302e5e7 persisting create room parameter in volatile memory 2023-05-16 18:23:23 +02:00
Flavio Alescio 4eb8906b6b Create room: add selectable state for security, add navigation to screen 2023-05-16 18:23:23 +02:00
Flavio Alescio a4334ebb0d work on text input for room creation 2023-05-16 18:23:23 +02:00
Flavio Alescio 06147cd99c add files for create room screen, add selected users section with test 2023-05-16 18:23:23 +02:00
Alfonso Grillo 1981270840 Invited members in room's members list (#880)
* Add invited people in RoomMembersListScreen

* Optimize main thread perfomance in RoomDetailsScreenViewModel

* Fix member count in RoomDetailsScreenViewModel

* Add warning

* Add performance warnings

* Build members in RoomMembersListScreenViewModel in global queue

* Refactor RoomDetailsScreenViewModel build members process

* Localize strings

* Cleanup

* Fix RoomDetailsScreenViewModelTests UTs

* Fix UI tests

* Add RoomMembersListScreenViewModel UTs

* Add UI tests

* Amend UI tests

* Use clearAndTypeText
2023-05-12 13:12:59 +00:00
Doug edc9fe4612 Use the existing quote bubble layout with TimelineReplyView. 2023-05-12 14:44:05 +03:00
Doug 185710adf4 Remove AppAuth and prepare for Rust OIDC. (#870) 2023-05-11 16:46:36 +01:00
Stefan Ceriu 59314cd3c0 Force room list updates to not animate 2023-05-11 17:31:44 +03:00
Stefan Ceriu 3468ed2a02 Various test fixes (#873)
* 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.
2023-05-11 16:28:35 +03:00
Stefan Ceriu 0d27ed1bbd Low effort fix for timeline date separator glitches 2023-05-09 18:19:33 +03:00
Alfonso Grillo faefb00626 Optimize leaving a room from home screen (#868)
* Use joinedMembersCount in HomeScreenViewModel

* Update matrix-rust-sdk to 1.0.62-alpha
2023-05-09 17:06:19 +02:00
Stefan Ceriu 1bd6e461ed Reply rendering (#861)
* 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
2023-05-09 16:09:38 +03:00
Stefan Ceriu 061e66ff57 Improve media uploading content type selection. Fix pasting in screenshots not working 2023-05-09 12:45:09 +03:00
Stefan Ceriu abc3523e7f Fix live photos failing to upload 2023-05-05 19:42:25 +03:00
Stefan Ceriu 574424024c Add developer option for clearing the application cache (#852)
* Add developer option for clearing the application cache

* Tweaks following code review
2023-05-05 19:41:21 +03:00
Stefan Ceriu 93e3a1a80b Media uploading (#851)
* 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
2023-05-04 16:09:29 +03:00
Alfonso Grillo e9c07c9f8f Contextual menu for rooms (#842)
* Add room contextual menu

* Add room context menu view actions

* Add navigation to room’s detail

* Show leave alert in HomeScreen

* Implement leave logic

* Refine leave navigation for iPad

* Optimize leave from homescreen

* Refactor roomSettings -> roomDetails

* Refactor room for id mock

* Add UTs

* Cleanup

* Fix alert presentation in RoomDetailsScreenViewModel

* Fix animation flag
2023-05-04 10:02:18 +00:00
Doug 18766d5852 Use search field style from Compound. (#839) 2023-04-28 11:59:40 +01:00
Doug 5bb2ceedf4 Compound Fonts (#834)
* Use CompoundFonts in DesignKit (deprecate ElementFonts).

* Use compound fonts everywhere.

* Update Authentication snapshots.

* Update RoomMembersListScreen snapshots.

Delete unused snapshots.

* Fix tests.
2023-04-25 16:42:06 +01:00