953 Commits

Author SHA1 Message Date
Doug
8c07ee35c4 Update the SDK.
Handles changes that removed support for the sliding sync proxy.
2025-02-18 11:55:20 +00:00
Stefan Ceriu
f77faee981
User verification state indicators (#3793)
* Introduce a `UserIdentityProxy` and have it combine upstream methods into an easy to digest  `UserIdentityVerificationState`. Use it in a dedicated `VerificationBadge` UI component

* Show a DMs counterpart verification state in the room header

* Show a warning on the room details `People` entry when there are identity verification state violations on any of the members.

* Show verification badges in the room member list

* Show a withdraw verification section on the room member details for users that have pinning violations.

* Remove the verification section from the profile screen as there's no reliable way to keep it up to date
- the underlying Rust SDK Olm Machine can be rebuilt without notice which would break any existing user identity change streams.

* Update preview test snapshots
2025-02-18 08:37:34 +02:00
Stefan Ceriu
8680d8437b
Add support for initiating and responding to user verification requests (#3759) 2025-02-10 18:07:11 +00:00
Stefan Ceriu
2515cdeb15 Bump the RustSDK to v25.02.06 2025-02-06 21:28:26 +02:00
Mauro
f86a5a2bb9
Added the banned room proxy (#3744)
* added the banned room proxy

and a way to have a consistent loading + a retry alert

* trailing closure

* indent a comment

* push package.resolved

* updated test case
2025-02-06 10:15:36 +01:00
Mauro
3839025caa
Knocking feature polishing part 2 (#3738)
* improved implementation of the unknown state

* forget button in the banned state

* error handling for forbidden access

* added the forget function

fixed DMs, and updated preview tests

* removed banned room proxy

* code polishing and test improvement
2025-02-05 14:48:24 +01:00
Mauro
921d1c627d
Bottom Sheet to confirm DM creation (#3739)
* created the view to hold the bottom sheet

* added the sheet to the start chat screen

* switched the alert with the bottom sheet

in the room member details

* add a small delay to not always show the loader

* suggested PR changes

* pr suggestions and updated tests
2025-02-05 12:28:00 +00:00
Mauro
6c190cf735
updated the SDK (#3737) 2025-02-04 16:57:39 +00:00
Doug
d195e603c9
RoomTimeline… refactor (drop the Room). (#3728)
* Add the timeline controller factory to the timeline view model.

In preparation for building a timeline to swipe through media in QuickLook.

* Refactor RoomTimelineControllerFactory.

* Refactor RoomTimelineController.

* Refactor RoomTimelineProvider.
2025-02-03 14:14:01 +00:00
Doug
6cd583d904
Revert back to UIKit for the presentation of the timeline media preview. (#3719)
* Revert back to UIKit for the presentation of the timeline media preview.

* Fix a presentation issue where the media is clipped until the animation finishes.

* Workaround for the preview controller replacing the info button when swiping.

* Use a self-sizing detent on the media info sheet.
2025-01-31 17:28:14 +00:00
Element CI
4856ffd3b2 Prepare next release 2025-01-31 07:00:01 -08:00
Mauro
d5fb72c16c
Do not handle offline mode yet (#3715)
* do not handle offline mode yet

* fix brew

* updated sdk
2025-01-31 11:23:38 +00:00
Stefan Ceriu
d585e208a1
Bump the RustSDK to 25.01.27, adopt the new emoji boosting API. (#3708)
* Bump the RustSDK to v27.01.22, adopt the new emoji boosting API.

* SDK version 25.01.22 😅

---------

Co-authored-by: Doug <douglase@element.io>
2025-01-27 17:49:44 +00:00
Doug
c6338064b6
Media Browser: Listen to the timeline in the preview screen (#3707)
* Listen to the timeline to load more items in the media preview screen.

* Fix the view model tests.

* Fix tests
2025-01-27 16:22:49 +00:00
Doug
381fd659bb
Switch to CalVer (manually). (#3705) 2025-01-27 09:39:09 +00:00
Stefan Ceriu
88e63b297e Bump the RustSDK to v25.01.22 and use the new timeline building API 2025-01-23 08:55:00 +02:00
Stefan Ceriu
8577f53613
Refactor the JoinRoom screen to take advantage of newer APIs and support more joinRule/membership combinations (i.e. invite required, restricted, banned) (#3685)
- expose the full RoomPreview and RoomMembershipDetails through their own proxies
- implement standard mocks for all the different combinations
- converge on a single room info provider
- rebuild all the previews
- prioritise the preview data over the room one.
2025-01-20 19:07:11 +02:00
Stefan Ceriu
0bcc59ae0a Bump the RustSDK to v25.01.15 and fix (most) concurrency sendability warnings in the generated mocks. 2025-01-15 14:59:54 +02:00
Mauro
e3ad925285
Security and privacy part 2 (#3637)
* handling the history visibility flag

* better logic to handle visibility

* better handling of the visibility options state

* added some copies, and the public room directory

visibility state

* completed the UI

added also the preview tests

* improved the handling of the directory visibility

* added the space users case

and improved handling of the access -> vsibility reaction. Also added a simple error handling for the public directory toggle

* added the edit room address view

but is missing its full implementation

* implement the UI for the edit room address screen

* implemented error checking

when editing the address

* updated preview tests and improved code

* typo fix

* Fix various issues after rebasing.

* Fix build errors and broken snapshot tests

* Adopt latest room privacy and canonical alias setting APIs

* Add support for creating and editing the room's alias.

* Add support for saving room privacy setting changes.

* Fix room alias screen snapshot tests following recent changes.

---------

Co-authored-by: Stefan Ceriu <stefanc@matrix.org>
2025-01-15 11:50:08 +02:00
Stefan Ceriu
ab334e90af Bump the SDK to v25.01.10-2, fix breaking API changes around sending media and mentions 2025-01-10 19:09:52 +02:00
Stefan Ceriu
57b85d2650 Move tracing configuration to the rust side. 2025-01-10 19:09:52 +02: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
Stefan Ceriu
9a00b983c3 Bump the RustSDK to version 24.12.20 2024-12-20 16:22:03 +02: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
Element CI
98c57b60d3 Prepare next release 2024-12-19 06:59:50 -08:00
Doug
3aa7edc508
Enable the media browser feature 🖼️ (#3642)
* Overlay a progress indicator for downloads instead of using a toast indicator.

* Update the SDK.

* Remove the feature flag for the media browser.

* Remove the media captions feature flag too.

* Add unit test cases for download failure and swiping between items.

* Snapshots (with the media browser visible in the screen).
2024-12-19 14:15:31 +00:00
Doug
2a865ce5bf
Implement the save action when previewing media. (#3630)
* Implement the save action on the media preview.

* Update Compound and use the correct icon.

Also fixes an icon that has been renamed.

* Update the add to photo library usage description to match the designs.

* PR comments.
2024-12-17 16:35:51 +00:00
Mauro
2b82b94500
updated sdk to 1.0.82 (#3631) 2024-12-17 14:42:24 +01:00
Mauro
1496d477a4
updated details design (#3626) 2024-12-17 11:50:01 +00:00
Doug
3a82b88859
Rework the presentation of the media browser quick look view to use SwiftUI. (#3619)
* Embed the media preview quick look inside a full screen cover

With a zoom transition on iOS 18.

* Use a the representable coordinator properly.

* Fix a bug with the toolbar appearance.

* Format

* Try prevent the zoom transition being upside down.

* Fix the snapshot test configuration.
2024-12-16 15:27:50 +00: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
Mauro
b11fbc6cce
Security and privacy part 1 (#3617)
* added the security and settings button in details

* added content to the view

* added enable encryption alert

* updated preview tests and the UI

* removed wrong plists committed by mistake

* pr suggestions
2024-12-13 18:29:17 +01:00
Stefan Ceriu
56ffe40e97 Bump the RustSDK to v1.0.80 2024-12-13 12:56:35 +02:00
Stefan Ceriu
256ae4d2cc
Custom media gallery views for files and voice messages (#3610)
* Extract the timeline item background from the BubbledStyler.
* Use different views for files and voices messages, reuse the timeline content but only keep the bubble background instead of the whole TimelineStyler.
* Add back max voice message width and add missing accessibility label
2024-12-12 17:48:41 +02:00
Stefan Ceriu
114255c5ec
Media gallery - support for files and voice messages (#3605)
* Move the voice message views to where they belong
* Add separate struct for each media events timeline view
* Add support for all the different media gallery message types and get the files section working
2024-12-12 10:02:10 +02:00
Mauro
9856e3e5b4
Fix tap knockable room and custom keyboard did show scrolling (#3603)
* making knockable rooms tappable

* added a way to customise the keyboard scrolling

in case we want the focussed view/textview to display something outside its content

* better documentation
2024-12-11 16:09:52 +01:00
Stefan Ceriu
df3e5976ce Bump the RustSDK to v1.0.79; add a feature flag for the new rust side ClientBuilder::useEventCachePersistentStorage 2024-12-10 18:19:31 +02:00
Doug
e59a705459
Use TimelineMediaQuickLook in the MediaEventsTimelineScreen. (#3598) 2024-12-10 14:56:51 +02:00
Doug
b5605a52e3
Update the timeline media QuickLook modifier. (#3593)
Not hooked up to any flows yet.
2024-12-09 15:23:12 +00: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
Element CI
176a8b880a Prepare next release 2024-12-05 08:28:20 -08:00
Doug
40d739f7ed
Use the new SendButton v2 design. (#3589) 2024-12-05 16:08:15 +00:00
Mauro
7cf88a16bd
Update sdk to 1.0.78 (#3586)
* updated sdk

* added cases

* correct error tracking

* right error label
2024-12-05 10:55:49 +01:00
Doug
4966083b58
Add new development assets and use in mocks/previews. (#3581) 2024-12-03 17:14:05 +00:00
Element CI
7e5624f9c0 Prepare next release 2024-12-03 03:45:37 -08:00
Mauro
4372048c61
Update SDK 1.0.77 (#3578)
* update SDK

* added new cause case

* added historical message
2024-12-03 12:18:16 +01:00
Doug
fdbacbc22d
Add the unit test media files as development assets. (#3569)
Move UnitTests/Resources/Media into a top-level DevelopmentAssets directory.
2024-11-28 17:30:26 +00:00
Element CI
000073c7a0 Prepare next release 2024-11-28 07:03:12 -08: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
Stefan Ceriu
ed4063a222 Bump the RustSDK to v1.0.75 2024-11-27 08:28:28 +02:00