1477 Commits

Author SHA1 Message Date
Element CI 7f04c8841f added an alert before creating a new DM 2025-02-03 16:44:12 +01: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
Stefan Ceriu 97069850f5 Ensure multiple mandatory verification flows can be ran consecutively (e.g. following encryption resets) (#3722)
* Ensure multiple mandatory verification flows can be ran consecutively (e.g. following encryption resets)

* Disabled the back button on the verification screen only when verified and waiting for the security state publisher
2025-01-31 17:31:21 +02: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
Doug d412c10352 Detect the timeline start/end when swiping through media files. (#3714) 2025-01-29 15:07:23 +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 62611be006 Show a blank topic as removed. (#3706) 2025-01-27 11:44:21 +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
Mauro 48e530fec9 DM Design Tweaks (#3693)
* dm design tweaks

* adding equatable conformance

* topic will now be shown in DMs

* code suggestion

* updated details

* better check

* code improvement
2025-01-22 13:32:39 +00: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
Valere f20847f62b Warn and block sending on verification violation (#3679)
* feat(crypto): Warn and block sending on verification violation

* fixup: Fix ComposerToolbar previews

* fixup! add ComposerToolBarViewModelTests for canSend

* add new preview tests for verification violations

* Use `deferFulfillment`s in the unit tests.

---------

Co-authored-by: Stefan Ceriu <stefanc@matrix.org>
2025-01-20 18:29:34 +02:00
Stefan Ceriu 0fd8df52ab Improve how alias settings are handled, add unit tests (#3686) 2025-01-20 15:43:47 +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 435dfb8e46 Automatically retry decryptions in the active room when the app becomes active again just in case the NSE received keys we're not aware of (#3628) 2024-12-18 11:10:56 +02:00
Mauro 2b82b94500 updated sdk to 1.0.82 (#3631) 2024-12-17 14:42:24 +01:00
Stefan Ceriu 598e604851 Fix state change commented by mistake and simplify snapshot test setup (+ a couple of warnings) 2024-12-17 11:06:33 +02:00
Valere 52463cdf8f feat(crypto): Support for new UtdCause for historical messages 2024-12-17 10:15:35 +02:00
Stefan Ceriu 60e94120cc Implement frequency tracking for frequently used emojis 2024-12-16 19:21:28 +02:00
Stefan Ceriu e04c87445e Fix #3620 - Fix frequently used emojis, stop relying on Apple's keyboard values and store everything app side instead. 2024-12-16 19:21:28 +02:00
Stefan Ceriu f9be39eb4f Fix the media gallery's empty state showing up at wrong times. 2024-12-16 19:21:28 +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
Valere 40714f32fd feat(posthog): wire support for extra utd error properties 2024-12-13 12:56:35 +02:00
Doug 88b5426e97 Hook up the actions in the media details sheet. (#3607) 2024-12-12 09:22:36 +00: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 89b9259b76 Design Tweaks (#3606)
* updated the order of the room details

also...
- removed the bloom bg from the join room screen
- now DMs do not necessarily need to be encrypted rooms
- changed bg of the knock banner

* removed unnecessary disabled

* updated join room screen tests
2024-12-11 17:42:33 +00:00
Doug c827ab9165 Configure the media preview screen based on the event and presentation. (#3604)
* Configure media previews based on the presenting screen.

* Switch on TimelineKind instead of having an isPinnedEventsTimeline Bool.
2024-12-11 15:40:31 +00: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 0b85964f73 Monthly media gallery separators (#3601)
* Fix the order of the items in the media grid.
* Add media gallery timeline separators.
* Change the `SeparatorRoomTimelineItem` to have it expose a Date timestamp instead of a text string.
2024-12-11 13:32:29 +02: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 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
Doug a9e4837b62 Use a Date for the timestamp in all timeline items. (#3590)
* Use a Date for the timestamp in all timeline items.

* UI test snapshots.

* Update snapshots

---------

Co-authored-by: Stefan Ceriu <stefanc@matrix.org>
2024-12-06 13:55:29 +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
fkwp 0085c20c64 increase ringing timeout from 15 seconds to 90 seconds 2024-12-04 10:40:11 +02:00
Doug 4966083b58 Add new development assets and use in mocks/previews. (#3581) 2024-12-03 17:14:05 +00:00
Mauro c566c64c78 added historical message error label string (#3580) 2024-12-03 17:21:02 +01:00
Doug 4187155159 Enable local echoes for media uploads for all builds. (#3579)
* Enable local echoes for media uploads for all builds.

* Update a string.
2024-12-03 11:28:21 +00: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 671e675412 Fix a compile error. 2024-11-29 13:11:14 +00:00
Doug 49a94e0bdb Handle media source validation more gracefully. (#3571)
* Handle media source validation more gracefully.

* Fix unit tests.
2024-11-29 12:42:27 +00:00
Doug c8627cfd64 Add support for copying a caption. (#3563)
* Add timeline item action for copying a media caption.

* Fix the action colours when long pressing a timeline item.

Nice side effect: Reasonable sized buttons when button shapes are enabled.

* Re-arrange the Timeline Item Menu.

* Add timeline item menu snapshots for media items.
2024-11-29 12:26:59 +00:00
Doug 4869dcfe97 Wait until the sync has stopped before marking the task as complete. (#3564) 2024-11-28 17:30:07 +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
Stefan Ceriu be8c1477c0 Stop delaying ElementCall until the next sync loop and only notify other participants when presumed to already be up to date. (#3559) 2024-11-27 09:57:18 +02:00
Stefan Ceriu 36980840ed Move timeline item tap gestures to the items themselves instead of the bubbled styler (#3553)
* Stop observing the timeline context where not necessary.
* Rename the timeline `itemTapped` action to `mediaTapped`
2024-11-26 16:25:46 +02:00
Doug 03aaf849ee Update how file captions are rendered (#3554)
* Update the File/Audio captions layout to match Figma.

* Fix caption sizing issues.

The send info label was being added incorrectly.

* Update icon size and regenerate snapshots.

* Fix a regression in the location timeline item layout.
2024-11-26 10:36:46 +00:00