1483 Commits

Author SHA1 Message Date
Mauro a16e1346fe Create Room with knock rule (#3397)
* create knock room implementation (without SDK)

* Apply suggestions from code review

pr suggestions

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

* pr suggestions

---------

Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
2024-10-14 11:52:38 +02:00
Doug 6e51969d27 Update the SDK and use media filename and caption internally. (#3375)
Doesn't render captions (other than in fallback places).
2024-10-08 11:00:58 +01:00
Stefan Ceriu 794d0eead1 Fixes element-hq/element-meta/issues/2525 - Display a warning when a user's pinned identity changes 2024-10-07 20:47:31 +03:00
Doug e6f4dd33a0 Add developer option to hide media in the timeline. (#3366) 2024-10-03 17:59:39 +01:00
Stefan Ceriu 2a2a823861 Remove spammy typing notification sending log 2024-10-03 13:49:37 +03:00
Doug 5522871dd9 MockMediaProvider → MediaProviderMock. 2024-10-03 10:58:59 +01:00
Doug 77e4fae2fb Use the new @Entry macro everywhere.
Fix analytics service optionality.
2024-10-03 10:58:59 +01:00
Stefan Ceriu c79dbe85a0 Bump the RustSDK to v1.0.53: adopt latest record based timeline item APIs (#3356) 2024-10-01 18:50:11 +03:00
Doug 268d9f7479 Move the core logic in LoginScreenCoordinator into the ViewModel. (#3348) 2024-10-01 13:09:45 +01:00
Mauro 5f4c2890f6 Remove message pinning FF (#3318) 2024-09-30 12:32:35 +00:00
Doug 17dfe1359a Selecting a server that doesn't support login now fails instead of letting you continue to a failure later. (#3342)
* Fail configuration of the authentication service if the homeserver doesn't support login.

* Move the ServerSelectionCoordinator logic into the ViewModel.

- Handle the new login alert.
- Add more tests
2024-09-27 13:58:05 +01:00
Doug 605337b748 Log any failures when creating a call widget. (#3339) 2024-09-27 11:40:43 +01:00
Stefan Ceriu 4080ff199f Have ElementCall always default to the speaker; prevent the lock button from ending the call
- previously handled in 7818fa626a
- seems the default behavior changed and we now need to manually configure the AudioSession
2024-09-27 13:38:08 +03:00
Valere 23ab453a1e crypto: rename invisible crypto flag to deviceIsolationMode (#3331) 2024-09-26 12:24:46 +01:00
Doug a8dbda90d9 Configure the AuthenticationService later now that we have 2 flows on the start screen. (#3316)
* Don't query the homeserver until confirming it (or selecting a different one).

* Setup the infrastructure to test AuthenticationService.

Implement basic tests for configuration & password login.

* Use the real AuthenticationService with a mock Client in all of the tests.

* Add tests for the ServerConfirmationScreenViewModel.

* Remove redundant view state and test for it.
2024-09-25 14:40:18 +01:00
Doug af8c16150b Upgrade Kingfisher to fix a bug that prevented GIFs from being tapped. (#3326)
* Upgrade Kingfisher to fix a bug the prevented GIFs from being tapped.

https://github.com/onevcat/Kingfisher/issues/2295

* Fix tests.
2024-09-25 13:10:02 +01:00
Valere 69009a899a Fix: confusion of lab flags for invisible crypto (#3319) 2024-09-23 16:43:02 +01:00
Doug e4736b12bb A bunch of random tweaks. (#3317)
- Fix warning on single case enum.
- Remove unused subjects.
- Fix a lint warning.
- Remove unused success value.
- Fix warning about position of try await.
- Add a note about the common tracing configuration.
- Show an indicator when resolving a send failure fails.
- Make sure the whole row is clickable in the GlobalSearchScreen.
2024-09-23 13:00:40 +01:00
Mauro 943f33b496 Await for room sync only for push notification invites (#3307) 2024-09-19 13:42:58 +00:00
Valere f7d878bac6 crypto: Add configuration flag to enable invisible crypto (#3247) 2024-09-18 16:30:45 +01:00
Stefan Ceriu 9b6470d1f3 Stop delaying subscriptions until after startup (#3294)
- reverts b43797f4bf
- relies on https://github.com/matrix-org/matrix-rust-sdk/pull/3981
2024-09-18 12:16:46 +02:00
Doug 5625e78fc9 Add support for account deactivation when not using OIDC. (#3295) 2024-09-17 20:08:35 +01:00
Mauro efe352c319 Added analytics for message pinning (#3284) 2024-09-17 10:02:26 +02:00
Doug 6cfe09b96d Add a WebRegistrationScreen (not included in the flow yet). (#3281) 2024-09-16 11:03:29 +01:00
Stefan Ceriu 16d3cb6f3f Log where the user's state and caches folders were setup on startup. 2024-09-13 15:25:17 +03:00
Stefan Ceriu d53e185d81 Replace client side room awaiting with the SDKs new awaitRoomRemoteEcho method 2024-09-13 15:25:17 +03:00
Mauro 0d9d8f9fa4 Sdk v1.0.47 (#3265) 2024-09-11 15:55:15 +02:00
Doug af3a6ccbed Make the SessionDirectories type responsible for cleaning up data. (#3261) 2024-09-11 14:32:03 +01:00
Doug cc4942fb78 Require acknowledgement to send to verified users who have unsigned devices or have changed their identity. (#3215)
* Refactor HeroImage style.

* Add a screen to resolve (crypto-related) timeline item send failures.

* Refactor send failures.

* Update the SDK.
2024-09-10 09:56:11 +01:00
Stefan Ceriu c2b9a7f170 Fix wrong durations for uploaded media
At some point Uniffi introduced [automatic conversions](https://github.com/mozilla/uniffi-rs/blob/35140607dce7092f04d619a5d0b07f9ffe98b4ff/uniffi_bindgen/src/bindings/swift/templates/DurationHelper.swift#L19) from Rust's `Duration` to `TimeInterval`s but the original implementation for media uploading was using milliseconds. When the conversion happened there were no breaking changes and iOS kept sending millis instead of seconds, resulting in **very** wrong values.
2024-09-10 11:11:34 +03:00
Stefan Ceriu a4166de502 Add support for showing media playback controls on the lock screen 2024-09-09 14:42:32 +03:00
Stefan Ceriu d0d24e2d09 Remove spammy logs 2024-09-09 14:42:32 +03:00
Stefan Ceriu 37ed7addf5 Fixes #3197 - Allow voice message playback in the background
- inform other audio sessions on deactivation
- let CallKit handle the audioSession for ElementCall
2024-09-09 14:42:32 +03:00
Stefan Ceriu a0eafe26c3 Fixes #3147 - Remove the sliding sync proxy wait list 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 b43797f4bf Delay setting up subscriptions until the RoomListService is running in order to avoid cancelling in flight initial sync requests 2024-09-05 17:26:11 +03:00
Stefan Ceriu 7b03c23baa Bump the RustSDK to v1.0.44 2024-09-04 10:53:30 +03:00
Jorge Martín 3b0f02d2b9 Make pinned events required state in SlidingSync
This is needed to always have the pinned events of a room as soon as we open it.
2024-09-03 18:24:05 +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
Doug 904045f178 Default to native sliding sync discovery. 2024-08-30 14:45:54 +03:00
Doug 015e32d772 SonarCloud: Remove redundant rethrow. 2024-08-30 14:45:54 +03:00
Doug 342ad57ce7 Update the SDK. 2024-08-30 14:45:54 +03:00
Doug 4925884f6c Adopt sliding sync discovery for authentication. 2024-08-30 14:45:54 +03:00
Doug c9603dce55 Adopt sliding sync versions for client Restoration. 2024-08-30 14:45:54 +03:00
Stefan Ceriu b1af4afdcb Fixes #3110 - Manually populate profiles when displaying the timeline. 2024-08-29 16:22:44 +03:00
Doug 812c5d5c61 Update the SDK (#3196)
* Update the SDK.

* Fix API breaks on send failures and propagate the new type.

* Handle new SDK ShieldState.

* Set up the ClientBuilder's `cachePath` option.

* Delete the cacheDirectory during logout/clearCache.

* Add unit tests for RestorationToken decoding and SessionDirectories generation.
2024-08-27 11:06:26 +01:00
Mauro 993fe8cd36 TimelineKind refactor (#3193) 2024-08-22 18:33:21 +00:00
Mauro 4eb1ed5d09 Pinned Events Timeline actions and differentiation (#3182) 2024-08-22 17:35:44 +02:00
Doug 304070e8cc Use native video call picture in picture! (#3190)
* Use native video call picture in picture!

* Handle isSupported, isPossible and web view errors.

* Use new canEnterPip method.

* Hide a room's Call button when already joined to the call.

* Tweak feature flag description.

* PR comments.
2024-08-21 17:48:57 +01:00
Stefan Ceriu 404b78e7c7 Fixes problems processing invites, build rooms differently based on their membership 2024-08-21 18:02:40 +03:00