Commit Graph

314 Commits

Author SHA1 Message Date
Doug d325adb4fc Hide the unread dot after previewing an invite. (#3800)
* Hide the unread dot when previewing an invite.

* Remove an invited room ID when accepting/rejecting.

* Remove the unread badge from knocked room cells.

* Update snapshots.

* Address PR comments.

Refactor KnockRequestType to JoinRequestType.
2025-02-18 12:22:13 +00:00
Doug 8c07ee35c4 Update the SDK.
Handles changes that removed support for the sliding sync proxy.
2025-02-18 11:55:20 +00:00
manuroe 3950cac085 Dual licensing: AGPL + Element Commercial (#3657)
* New LICENSE-COMMERCIAL file

* Apply dual licenses: AGPL + Element Commercial to file headers

* Update README with dual licensing
2025-01-06 11:27:37 +01:00
Doug b8106f36ba Fix the overlapping scrollbars on macOS. (#3646) 2024-12-20 13:54:41 +00:00
Stefan Ceriu 536f01abbd Retrofit deferFulfillment onto snapshot tests. (#3641)
* Retrofit `deferFulfillment` onto snapshot tests.

* Convert a bunch of preview tests to the new fulfillment publisher

* Convert more tests

* Remove unneeded delays from the remaining tests

* Remove snapshotting delay option.
2024-12-20 15:30:59 +02:00
Mauro 45a630dd85 Implement Knock Logic (#3573)
* 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
2024-12-16 15:32:45 +01:00
Stefan Ceriu caaa89af62 Media gallery - part 1(#3588)
* Introduce a `MediaEventsTimelineFlowCoordinator`
* Update SDK API and architecture
* Add a feature flag, add translations
* Move the media events timeline presentation under the room flow coordinator state machine
* Rename `TimelineViewState.timelineViewState` of type `TimelineState` to `timelineState`
* Enabled SwiftLint's `trailing_closure` rule and fix the warnings.
2024-12-06 16:58:14 +02:00
Doug 4966083b58 Add new development assets and use in mocks/previews. (#3581) 2024-12-03 17:14:05 +00:00
Doug 751be7b3a7 Update the SDK. (#3565)
* Update the SDK.

* Add mockMXC URLs to fix all the crashes during tests.

* Refactor Voice Messages to not use a MediaSource for local files.
2024-11-28 08:34:38 +00:00
Doug bef1eda533 Fix a bug where the security banner has the wrong state when out of sync. (#3511) 2024-11-18 11:38:20 +00:00
Doug c888a5b4aa Update compound (#3519)
* Update compound

textPlaceholder is now textSecondary.

* Update compound again with support for button shapes on the plain button style.
2024-11-15 13:42:53 +00:00
Doug f3a15f7937 Fix the Setup Recovery flow from the home screen banner. (#3483) 2024-11-05 10:52:51 +00:00
Doug 6190a03afc Directly show Recovery Key and Encryption Reset screens from the home screen banner. (#3482) 2024-11-04 17:21:36 +00:00
Doug 0da225205b Update the strings for out of sync Key Storage. (#3468)
* Update the banner strings for out of sync key storage.

* Update string on SecureBackupScreen.

* Update snapshots

* Update an alert string we weren't using on iOS, and use it at the same place as Android.
2024-10-31 11:33:11 +00:00
Doug c11e49f962 Tweak the flow for setting up a recovery key. (#3463)
* Remove unwanted title.

* Update SecureBackupScreen strings.

* Update SecureBackupRecoveryKeyScreen.

* Show the recovery banner when recovery needs setting up.

* Fix SecureBackupScreen title.

* Fix timeout on MP4 encoding tests
2024-10-29 15:59:22 +00:00
Mauro 2511c98090 Knocked Preview implementation (#3426)
* JoinRoomScreen ui for knocking

* code improvement

* updated previews

* added knocked state with tests

* send knock request

* Apply suggestions from code review

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

* pr comments

* update tests

* new API

* knock implementation and cancel knock

* update strings

* added a knocked cell in the home screen

* design update

* updated SDK

* simplified the invite case code

* pr comments

* updated previews

* added message as reason

* updated strings

* fixing tests

---------

Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
2024-10-24 17:23:06 +02:00
Mauro 7d373c07a3 remove iOS 16 support (#3443)
* remove iOS 16 support

* remove iOS 16 support

* test updates

* added more delay

* revert

* adding waiting time on the CI
2024-10-24 17:21:28 +02:00
Stefan Ceriu bef892451e Add a banner that offers the user to transition to native sliding sync (#3252)
* Fixes #2508 - Offer user to transition to SSS

* Rename `HomeScreenBannerMode.shown` to `HomeScreenBannerMode.show`

* Generate and use preview tests for the migration banner

* Bump the RustSDK to v1.0.46

* Address PR review comment
2024-09-11 08:21:27 +03:00
Stefan Ceriu 2f6fea29f3 Replace Prefire with a very similar but simpler and more direct approach (#3232)
* Replace Prefire with a very similar but simpler and more direct approach

* Move PreviewTest snapshots to their new location (snapshotting default, mirrors UITests)

* Update acknowledgements

* Switch snapshot configuration extensions to a custom version

* Exclude snapshots from the PreviewTests target

* Fix acknowledgements

* Rename snapshotting preference keys

* Remove `skipPackagePluginValidation`
2024-09-09 15:07:41 +03:00
Stefan Ceriu 6759a66533 Fixes #3146 - Remove the account migration screen 2024-09-09 12:41:28 +03:00
Stefan Ceriu 664e87fe87 Switch license to AGPL (#3237)
* Switch license file to AGPL

* Update file copyright headers

* Update the default project file header
2024-09-06 16:34:30 +03:00
Stefan Ceriu 288b1e7896 Update subscriptions if visible range rooms change without the range itself changing (#3220)
* Remove room list range deduplication and allow subscribing to rooms when then update to come into the visible range.

* Fixes #3088 - Update subscriptions if visible range rooms change without the range itself changing
- we switched from range based subscribing with duplicate suppression to id based, but ids can change without ranges changing
- the all rooms list fetches at least 1 event per rooms and can cause rooms to come in and out of the visible range without user interaction
2024-09-02 18:35:31 +03:00
Stefan Ceriu f89c3e54b4 Automatically try reloading failed images on network changes (#3170)
* Add the networkMonitor to the NSE and delete the old MockMediaLoader

* Generate a MediaLoaderMock through AutoMockable and use it in the MediaProviderTests

* Implement an ImageProvider mechanism that automatically tries reloading images when connectivity is established again and use it for LoadableImages

* Merge the ImageProvider protocol back into the MediaProvider

* Address PR review comments

* Provide a default sdk client request configuration

* Address tasks not automatically cancelling themselves when views get deallocated
2024-08-15 18:20:19 +03:00
Stefan Ceriu e5c97ec9a4 Addition to #3122 - Force the room list search text field to always be displayed
- while looking into fixes we noticed that we can more easily break the layout when the search field is automatically hidden
2024-08-07 17:54:28 +03:00
Stefan Ceriu edbf816447 Fixes #3026, fixes #2386 - Force update the home screen every time the room list changes by manually moving the inner scrollview 2024-08-06 21:30:40 +03:00
Doug e667be0f43 Add Encryption Authenticity explanations. (#3116) 2024-08-06 10:45:46 +01:00
Doug 0fab3a8afc Add the inviter to JoinRoomScreen when it's an invite. (#3093)
* Add inviter property to RoomProxyProtocol.

* Extract the room cell inviter label into it's own view.

* Use the new RoomInviterLabel in the JoinRoomScreen.

* Fix bug with invite to a public room.
2024-07-29 09:57:49 +01:00
Doug c92c6a28ae Upgrade the project to use Xcode 15.4 (#3027)
* Update snapshots for Xcode 15.4

* Update CI.

* Fix crashing UI test.

* Fix compile error in Integration Tests.

* Try putting UI tests on GH runners again.
2024-07-11 17:38:32 +01:00
Stefan Ceriu d71c8c4e83 Use local room list sorting from Rust. (#2978)
* Switch to the new local room list sorting API

* Get rid of the RoomSummary enum, replace it by the inner RoomSummaryDetails

* And finally, rename RoomSummaryDetails to RoomSummary

* Fix a bunch of warnings

* Small tidy up post rebase/review.

- Remove unused invalidated property.
- Rename some RoomSummary instances to summary instead of details.
- Fix tests with missing roomListItem's.

* Update snapshots

---------

Co-authored-by: Doug <douglase@element.io>
2024-07-05 10:10:53 +01:00
Stefan Ceriu 3c500887ab Setup Sentry instrumentation on top of the existing Signposter (#2985)
* Move Sentry setup outside of the BugReportService

* Setup Sentry SwiftUI tracing for the homeScreen and roomScreen roots

* Setup Sentry instrumentation on top of the existing Signposter

* Various tweaks
2024-06-28 18:15:57 +03:00
Doug 834260c144 Use the room heroes when computing a DM avatar. (#2900)
* Use room heroes for DM avatar content ID.

* Use RoomAvatar.heroes for the DM Details stack.
2024-06-19 10:27:10 +00:00
Doug 8a52ed0cb6 Update Compound. (#2906)
* Update Compound.

* Remove LFS hack from the docs.

* Fix preview tests

---------

Co-authored-by: Stefan Ceriu <stefanc@matrix.org>
2024-06-07 12:25:24 +03:00
Stefan Ceriu 3a904ebc9d Replace the old MockUserSession with the generated UserSessionMock 2024-05-27 17:05:01 +03:00
Stefan Ceriu 986eb23b2a Exclude invites when using room list filters 2024-05-13 15:49:14 +03:00
Stefan Ceriu a401976b2b Enable room list invites by default and remove old code paths 2024-05-09 19:01:57 +03:00
Stefan Ceriu 89927f1357 Fix #2652 - Room list looping and fighting scrolling after filtering
- also fixes filtering empty state vertical centering
2024-04-23 12:18:00 +03:00
Stefan Ceriu effe3b6a9b Membership aware room routes (#2709)
* Remove the invites button when room list invites are enabled

* element-hq/element-x-ios/issues/2632 - Handle room permalinks based on their membership state and show the according room joining screens:
- modify the room flow coordinator to only take a roomID and be able to decide its own room flows (especially for unjoined rooms)
- add support for the new room preview API
- have RoomDirectorySearch go through the same paths
2024-04-19 17:04:18 +03:00
Doug f8920d4d11 Initial implementation of the JoinRoomScreen. (#2684)
* Update Compound and use super button for room directory.
2024-04-12 13:13:22 +01:00
Stefan Ceriu 064626fbbe element-hq/element-x-ios/issues/2670 - Show invites as part of the room list 2024-04-09 18:18:11 +03:00
Mauro 562e5e739d Public Search View (#2585)
Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
2024-03-21 14:34:35 +00:00
Stefan Ceriu a62c96f1c5 Onboarding flow coordinator and FTUE changes (#2578)
Fixes #2595, fixes #2594, fixes #2593, fixes #2592, fixes #2591
2024-03-21 14:01:23 +02:00
Stefan Ceriu 9e6b6ba60a Remove pinned views from the home screen room list header, potential fix for various layout issues. 2024-03-21 13:36:17 +02:00
Mauro c001b65353 Possible fix for filters view sticking in the middle of the room list (#2570) 2024-03-13 16:21:39 +00:00
Mauro c66ddfb71e Filters, Mark Unread/Read/Favourites FF removals + code and tests clean up (#2541) 2024-03-07 17:56:09 +01:00
Mauro 82a5d34dd7 New filters ordering and faster animation (#2536) 2024-03-07 10:13:34 +01:00
Mauro 7754b9b8dc Searching disables the filters (#2530) 2024-03-06 11:02:30 +01:00
Mauro 8c68f5a591 Room List Filters Empty State View (#2522) 2024-03-05 15:15:07 +01:00
Mauro 4320e5c9e0 Filters UI Update and ordering (#2521) 2024-03-04 18:32:59 +01:00
Stefan Ceriu 932ba75550 Replace the existing RoomSummaryProviderMock with a generated one 2024-02-29 10:14:37 +02:00
Stefan Ceriu c8f728ca23 Replace the existing MockClientProxy with a generated one + special configuration options 2024-02-28 17:18:01 +02:00