* WIP RequestToJoin struct
* implemented the logic to display the cells
* knock request banner accept flow
* mark all knocks as seen implemented
* details logic
* implemented accept, decline and ban in the list
* added a loader and modified the stacked view
of the banner
* pr suggestions
* updated naming and loading strings
* added the initial loading state
improved code and the tests
* updated a string that has changed
* code improvement
* tests for the room screen view model
* room details tests
and improved the knock requests tests for the room screen
* knock requests list tests
* added error state alerts with retry
* struct has been renamed on the sdk
so I renamed it also on the app side
* update SDK
- proxy errors have been getting repetitive and not particularly useful
- differentiate between sdk and client errors and keep what provides value
- add error logs everywhere a failure occurs
* Infer joined and active member count from the member list, default the members to all mock members
* Address PR comments, fix some tests and screenshots
* Fix flakey emoji provider tests
* Fix flakey RoomScreenViewModel tests
* Fix flakey HomeScreenViewModel tests
* Fix flakey RoomMemberListScreen tests, problem with bindings getting overriden and deferFulfillment cancellable not getting stored
* Fix flakey RoomNotificationSettingsScreen tests and crashes
* Fix flakey RoomMemberDetailsScreen tests
* Deprecate old `deferFulfillment` and `nextViewState` methods
* Convert more files to the new `deferFulfillment`
* Converted the rest of the tests to the new deferFulfillment
* Removed now unused `nextViewState` and `deferFulfillment`
* Remove automatic retries from unit tests
* Reset analytics flag after running unit tests
* Address PR comments
* Introduce a new `deferFulfillment(publisher, keyPath, transitionValues)` method and use it where appropiate
* #750 - Convert the SoftLogoutScreen to combine
* #750 - Convert the UserSessionFlowCoordinator to Combine
* #750 - Convert the AnalyticsPromptScreen to Combine
* #750 - Convert the LoginScreen to Combine
* #750 - Convert the ServerSelectionScreen to Combine
* #750 - Convert the EmojiPickerScreen to Combine
* #750 - Convert the HomeScreen to Combine
* #750 - Convert the MediaUploadPreviewScreen to Combine
* #750 - Convert the OnboardingScreen to Combine
* Rename `Onboarding` to `OnboardingScreen`
* #750 - Convert the ReportContentScreen to Combine
* #750 - Convert the RoomDetailsSscreen to Combine
* #750 - Convert the RoomMemberDetailsScreen to Combine
* #750 - Convert the RoomMembersListScreen to Combine
* #750 - Convert the SessionVerificationScreen to Combine
* #750 - Convert the SettingsScreen to Combine
* #750 - Convert the AdvancedSettingsScreen to Combine
* #750 - Convert the DeveloperOptionsScreen to Combine
* Fix the unit tests
* Use .sink action and the same cancellables constructor everywhere
* Cleanup cancellables when setting up tests
- Randomise test order.
- Use deferred fulfilment in more places.
- Make sure to change something before awaiting the fulfilment.
- Build a fresh AppSettings after reset().
- Retry tests on failure.
Squashed commits:
[d64bb3bb] Stop using the ServiceLocator directly in the ScreenTrackerViewModifier
[37c46ab9] Rename Analytics to AnalyticsService
[8852a371] #920 - Cleanup ServiceLocator usages
* 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
* Inject user id into room’s details
* Refactor member fetch logic in RoomDetailsScreenViewModel
* Refactor DI
* Fetch members in RoomMembersListScreenViewModel
* Fetch members in InviteUsersScreen
* Use joinedMembersCount in room members list
* Cleanup
* Limit members refresh
* Cleanup binding
* Fix UT build errors
* Fix RoomDetailsScreenViewModelTests
* Fix RoomMembersListScreenViewModelTests
* Fix UTs
* Fix RoomDetailsScreenUITests
* Refine RoomDetailsScreenViewModelTests
* Add roomProxy extension
* PR comments
* Refactor room’s counter to Int
* Improve updateMembers() performances
* Fix memory leaks
* 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
* 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
* Create screen module
* Display details on header tap
* Add strings
* Add room avatar size on details
* Update members method signature
* Use room proxy values
* Create room members screen
* Display room members on tap
* Update previews and mock room proxy
* Commit project file
* Various tweaks and cleanup following code review
* More small tweaks + UI and screenshot tests
Co-authored-by: Stefan Ceriu <stefanc@matrix.org>