Commit Graph

606 Commits

Author SHA1 Message Date
Mauro
7af09b5902 SDK Bump to 1.0.74 (#1059)
* testing improvements

* code improvements and sdk bump

* improved the stencil file

* improved the build sdk function

* code improvement

* also added the tearDown
2023-06-09 16:27:08 +00:00
Alfonso Grillo
3830ee0936 Room details: improve members count UX (#1050)
* 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
2023-06-09 16:21:01 +02:00
Mauro
de3997f6c4 RTL and LTR mixed languages fix for optimal timestamp support (#1055)
* 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>
2023-06-09 11:49:02 +00:00
Mauro
fd53d729e2 Timestamp for media messages (#1057)
* timestamp for media messages

* changelog
2023-06-08 19:03:51 +02:00
Mauro
46397ba6ce Read Receipts display with the user avatar (#1038)
* 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
2023-06-08 10:05:56 +00:00
Stefan Ceriu
442f4f5796 Disable allowsEditing on the camera picker, stop showing weird cropping box in the resulting image UI. 2023-06-08 12:25:09 +03:00
Stefan Ceriu
74ce89e232 Prevent multiple file selection callbacks coming from the media upload pickers and generating incorrect transitions in the RoomFlowCoordinator state machine 2023-06-08 12:25:09 +03:00
Stefan Ceriu
8381c1dac3 Fixes #974 - Replace the timeline item contex menu with a bottom sheet
(+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
2023-06-07 19:42:21 +03:00
Stefan Ceriu
49cc2a8c73 Settings about section (#1041)
* Fixes #1011 - Add legal information screen in settings, move all settings related screens under Source/Screen/Settings
* Fix warnings after sliding sync api change
2023-06-07 17:04:42 +03:00
Mauro
3e0e4d02cf SDK Bump to 1.0.73-alpha (#1043)
* sdk bump

* moved the bump event types to the sliding sync list builder

* removed sync growing mode from notifications even if we are not really using it anymore

* recency order is also for the all room list

* removed the local notification code entirely

* removed unused function

* fixed the code placement for the ordering
2023-06-07 15:22:54 +02:00
ElementRobot
c9ce18507a Translations update (#1013)
* Translations update

* fix for notification invite body

---------

Co-authored-by: Velin92 <Velin92@users.noreply.github.com>
Co-authored-by: Mauro Romito <mauro.romito@element.io>
2023-06-07 11:01:05 +00:00
Alfonso Grillo
d8ef43c258 Remove feature flags for the rooms epic (#1042)
* Delete rooms feature flags

* Rename suggestions feature flag

* Cleanup test targets
2023-06-07 12:43:24 +02:00
Alfonso Grillo
a795ba4b1c Improve UserDiscoveryService behavior (#1039)
* Refactor UserDiscoveryService

* Add UTs
2023-06-07 11:58:00 +02:00
Alfonso Grillo
2b50f4213b Update the "remove avatar" logic in edit room details (#1032)
* Refactor remove avatar logic

* Add test
2023-06-06 16:14:34 +02:00
Mauro
4e0dd5d2d9 Tapping on user avatar/name in the timeline opens the room member details (#1020)
* Implementation completed

* changelog

* code improvement

* Apply suggestions from code review

Co-authored-by: Stefan Ceriu <stefanc@matrix.org>

* pr suggestions

---------

Co-authored-by: Stefan Ceriu <stefanc@matrix.org>
2023-06-06 08:46:04 +00:00
Doug
edbef54243 Improved bug report error handling (#1018)
* Improve rageshake error handling.

* Add a max file size and exclude older files one the limit is hit.

* Zip log files as smaller chunks.
2023-06-06 11:24:01 +03:00
Alfonso Grillo
199f5248af Create & Join rooms UI/UX tweaks (#1005)
* Fix people icon size

* Disable dismiss when loading in StartChatScreen

* Reduce debounce on search

* Add padding to invite button

* Add show/hide bottom bar behaviour

* Fix bg color in StartChatScreen form

* Update localisations

* Update search users results to 10

* Fix form background in InviteUsersScreen

* Fix invites list bg color

* Add mxid in InvitesScreenCell

* Refactor InvitesScreenCell design

* Fix separator spacing

* Add more design fixes

* Refine InvitesScreenCell layout

* Refactor UserProfileCell design

* Refactor FormRowAccessory

* Update localisations

* Fix camera size and security section padding

* Change create button style

* Refine InviteUsersScreenSelectedItem

* Refine CreateRoomScreen

* Refine UserProfileCell padding

* Amend preview name

* delete test code

* Add separator in security section

* Fix spacing in InviteUsersScreenSelectedItem

* Revert confirmationAction in CreateRoomScreen

* Refine HomeScreenInvitesButton

* Add dismiss keyboard in InviteUsersScreen

* Refactor FormRowAccessory

* Remove isDisabled from FormButtonStyles

* Update localisations

* Cleanup RoomDetailsEditScreen

* UI fixes on horizontal user carousel

* Refactor InviteUsersScreenSelectedItem

* Try fix flaky tests

* Fix typo

* Update snapshot tests

* Fix flaky UTs

* Fix HomeScreen ui tests

* Fix scroll on selection

* Refactor RoomFlowCoordinatorTests
2023-06-06 08:03:38 +00:00
Doug
eb1f1baed6 Fix authentication UI tests. (#1010)
* Fix authentication flow UI tests.

* Fix analytics prompt snapshot.
2023-06-02 12:41:45 +01:00
Doug
61f870def7 Backport base Form style from Compound. (#1009)
Apply to all screens using the formBackground colour.
2023-06-02 11:39:03 +01:00
Doug
87d20702e1 Fix the background colour when replying. (#1007) 2023-06-02 09:58:28 +01:00
Doug
aa0b8110b4 Authentication Layouts (#994)
* Remove unused code in OnboardingScreen.
* Add FullscreenDialog layout and use in auth flow.

Bump minimum OS to 16.4/13.3.

* Add dynamic layout based on dynamic type size.
2023-05-31 18:39:53 +01:00
Stefan Ceriu
5a7ffa761d Bump the RustSDK, adopt latest sliding sync changes and fixes 2023-05-31 20:31:20 +03:00
Stefan Ceriu
b1a64f5611 Cleanup the stored timelineController when dismissing a room 2023-05-31 20:31:20 +03:00
Stefan Ceriu
9ec66278bb Remove duplicates from the reachability monitor 2023-05-31 20:31:20 +03:00
Alfonso Grillo
f2c1f8fdea Fix navigation back from room's details (#988)
* Fix navigation to room details

* Improve tests

* Delete unused action in RoomDetailsScreen

* Cleanup

* Try fix flaky tests
2023-05-31 16:24:12 +00:00
Stefan Ceriu
6ab78fb03b 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
90f48e9303 Add UserIndicator.disableInteractiveDismiss (#993) 2023-05-31 12:56:58 +02:00
Stefan Ceriu
b8b0d69891 Bump the RustSDK to v1.0.71-alpha, adopt latest sliding sync range API 2023-05-30 20:05:18 +03:00
Doug
e1498e895b 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
2ea8fe0254 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
5df4e32fef 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
7c4d0631df Server Confirmation Screen (#959)
* Add ServerConfirmationScreen.
2023-05-30 10:31:18 +01:00
Mauro
7338fc998b 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
Alfonso Grillo
13a0bd4ac2 Fix update on LoadableImage (#973)
* Refactor LoadableImage

* Cleanup
2023-05-29 10:53:23 +00:00
Mauro
3885f234d0 Logging the failed device token registration (#969)
* logging the failed registration

* Update ElementX/Sources/Services/Notification/Manager/NotificationManager.swift

Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>

---------

Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
2023-05-29 08:58:12 +00:00
Mauro
6897ca94eb Showing the iOS default silhoutte when the user/room avatar is missing (#965)
* fix

* Element X app name

* project update

* improvement
2023-05-29 08:41:01 +00:00
Stefan Ceriu
4857c1c26a Notification deep linking fix (#972)
* Fixed unused animated parameter

* Wait for lists to load before querying rooms if the cold cache isn't available

* Fix a couple of unused result warnings in the ExpiringTaskRunner unit tests
2023-05-29 11:21:01 +03:00
Velin92
ac546e90ea Translations update 2023-05-29 11:03:28 +03:00
Stefan Ceriu
3888536163 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
d10647628c Prevent race conditions when adding timeline listeners between the timeline provider and other screens 2023-05-26 17:42:39 +03:00
Stefan Ceriu
b0ef79bbe8 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
980e113a98 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
Stefan Ceriu
73e7369b68 Revert "Adopt async uniffi in the RoomSummaryProvider and ensure diffs are still processed serially"
This reverts commit 59922983a2.
2023-05-26 15:01:17 +03:00
Mauro
36a82750e7 Fix for flaky corner radius path generation (#958)
* fixed the flaky corner radius path generation

* format
2023-05-25 11:15:12 +00:00
Alfonso Grillo
61dcf6ec72 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
db2b2b7e34 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
b8545ebd0f Disable background app refreshes until we understand the deadlocks and crashes we've been seeing 2023-05-24 17:51:55 +03:00
Stefan Ceriu
4c4764fc5d Start using the new synchronous stopSync method 2023-05-24 16:07:23 +03:00
Stefan Ceriu
59922983a2 Adopt async uniffi in the RoomSummaryProvider and ensure diffs are still processed serially 2023-05-24 16:07:23 +03:00
Stefan Ceriu
39cb509c32 Convert the SessionVerificationProxy to async-uniffi 2023-05-24 16:07:23 +03:00