2134 Commits

Author SHA1 Message Date
Mauro
bd4ecdd060
Knock and knocked state for the join room screen (#3424)
* 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

---------

Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
2024-10-17 14:00:51 +00:00
Stefan Ceriu
6265217246 Remove superfluous media request upload handle cancellation call. 2024-10-17 14:24:44 +03:00
Stefan Ceriu
0651314e3e
Adopt various rust side Timeline API additions (#3423)
* Adopt new reaction toggling API introduced in matrix-org/matrix-rust-sdk/pull/4127

* Adopt the changes introduced in matrix-org/matrix-rust-sdk/pull/4111: use the new `TimelineUniqueId` type instead of `String` for unique timeline identifiers.

* Bump the RustSDK to v1.0.58.

* Fix unit tests
2024-10-16 19:08:34 +03:00
Doug
5a89219f9a
Fix the pinned identity banner to always show the user ID regardless of ambiguity. (#3415) 2024-10-16 14:51:29 +01:00
Doug
6078398ad3
Allow image uploads to be optimised to reduce bandwidth. (#3412)
* Use typed throws for intermediate media upload preprocessing steps.

* Remove unnecessary async/await usages.

* Resize images when optimizedMediaUploads is enabled.

* Reduce the JPEG quality.

* Add tests for PNG and HEIC, fix mimetypes for these.

* Add special handling for GIFs.

* Test the files to make sure their mime types match the info.

* Update the filename when converting formats.

* Extend test timeout for video encoding.
2024-10-16 14:50:24 +01:00
Stefan Ceriu
35d49c4d85 Refactor theTimelineItemIdentifier handling; stop relying on optional EventOrTransactionIds and be explicit when setting composer modes from the draft service. 2024-10-16 16:37:47 +03:00
Doug
3d797ccabb
Only subscribe to identity updates if the room is encrypted. (#3414) 2024-10-16 10:40:29 +01:00
Doug
718774dc36
Fix some warnings. (#3416) 2024-10-16 08:54:34 +01:00
Doug
98a5ee5b48
Add a toggle in the developer options to optimise the media uploads. (#3408) 2024-10-14 14:48:59 +01:00
Doug
b1b2297972
Update the SDK. (#3407)
Fixes a bug where we couldn't open images sent by EXA with a mimetype of image/*
2024-10-14 14:59:09 +02:00
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
ElementRobot
25037a67ee
Translations update (#3406)
Co-authored-by: Velin92 <34335419+Velin92@users.noreply.github.com>
2024-10-14 11:29:14 +02:00
Doug
71d6fcda26
Fix identity pinning link. (#3395) 2024-10-10 16:46:09 +01:00
Doug
8e03cc862d
Show the Login with QR Code button. (#3392) 2024-10-10 14:39:10 +01:00
Stefan Ceriu
4d697a3a49 Introduce a feature flag for the new identity pinning violation notifications feature. 2024-10-10 16:13:34 +03:00
Doug
13bc3a1dd4
Update the secondary button stroke colour. (#3393)
* Update Compound which changes the secondary button stroke colour.

* Remove old UI test snapshots and update Acknowledgements.
2024-10-10 12:46:42 +01:00
Doug
cd59e497fb
Tweak EncryptionReset, IdentityConfirmation and SecureBackupRecovery screens. (#3391) 2024-10-10 11:27:53 +01:00
Doug
429ce4fe61
Ask the iPad to reveal the keyboard in UI Tests when it's hidden. (#3389) 2024-10-10 08:38:40 +01:00
Doug
2194908ee5
Add a subtitle to the QR login instructions. (#3386) 2024-10-09 17:54:01 +01:00
Valere
cf81072ff3
crypto: Configure decryption trustRequirement based on config flag (#3358)
* crypto: Configure decryption trustRequirement based on config flag

* quick review
2024-10-08 14:25:34 +00: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
ElementRobot
70652ed7be
Translations update (#3371) 2024-10-07 10:51:59 +01:00
Doug
e6f4dd33a0
Add developer option to hide media in the timeline. (#3366) 2024-10-03 17:59:39 +01:00
Stefan Ceriu
4f29821306 Workaround for #1786 - Disable auto correction when running on the Mac 2024-10-03 13:49:37 +03: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
Mauro
e0ee4be834
use element-hq RTE version (#3360) 2024-10-02 14:30:07 +00: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
Velin92
46263cca42 Translations update 2024-09-30 09:07:33 +03: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
Stefan Ceriu
8a3994016d
Allow focusing the different avatars making up a DM details cluster separately. (#3341) 2024-09-27 15:23:20 +03:00
Stefan Ceriu
9d23dec2e9
Tracing and integration test tweaks (#3336)
* Disable image and document picker integration tests as they randomly fail to load and are flakey.

* Delete any pre-existing log files

* Various tracing tweaks and fixes:
- delete the custom tracing log levels as we can't control their ouput
- implement comparable on them
- change default levels only if the new chosen level increases their verbosity

* Make logging targets mandatory and fix their logging levels

* Switch back to using the `run_tests` reset simulator flag as `fastlane snapshot reset_simulators` was too generic and slow

* Switch all integration test taps to `tapCenter` (nee forceTap) after noticing missed taps on CI.

* Make the logging file prefix explicit, let the main app not use one.

* Rename tracing configuration `target` to `currentTarget`
2024-09-27 15:08:47 +03: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 7818fa626ae0c8ccacca1ccaeffe6998359dd38d
- seems the default behavior changed and we now need to manually configure the AudioSession
2024-09-27 13:38:08 +03:00
Doug
2184081bc5
Make sure the room header takes up as much space as possible (to hide the back button). (#3335)
* Make sure the room header takes up as much space as possible (to hide the back button).

* Ignore coverage on the developer options screen.
2024-09-26 18:07:50 +01:00
Doug
4d7d687954
Start fixing flakey tests ❄️ (#3329)
* Wait longer on authentication flow tests.

* Move default perceptualPrecision value into the snapshot preferences.

* Delay snapshots *before* setting up the test.

* Reset the simulators on GitHub before running?

* Remove a test that is now handled by Rust.

* Fix a test that was yielding.
2024-09-26 16:09:01 +01:00
Valere
23ab453a1e
crypto: rename invisible crypto flag to deviceIsolationMode (#3331) 2024-09-26 12:24:46 +01:00
Stefan Ceriu
dc6d7f2985
Integration test improvements (#3330)
* Send a message from integration tests and check that it doesn't show up in the app logs
* Increase photo library timeout

* Wait for image tapping to process

* Send a message using the rich text editor too

* Wait for the various pickers to finish loading

* Set all logs to `trace` in integration tests

* Close formatting options after sending the second message

* Make sure logs are actually sent to tracing and get redirected to the right file

* Switch from using a custom `trace` log configuration to the lowest level `TracingConfiguration` we support
2024-09-26 10:15:09 +03: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
Doug
864bd23d35
Use a plain view for reactions instead of a TabView. (#3328)
We don't use any of the TabView features and it shows a tab bar at the bottom when the list is long.
2024-09-25 11:00:18 +01:00
Doug
f772849d2e
Don't use the new iPad modal presentation mode for the timeline item menu. (#3325) 2024-09-24 14:42:45 +01:00
Doug
c264e9e590
Use the UIColors directly instead of wrapping the SwiftUI Colors. (#3324) 2024-09-24 12:24:03 +01:00
Doug
83b0670503
Fix a regression where you can't scroll the timeline on iOS 17 (#3320)
It was caused by a fix for the same bug on iOS 18 🤦‍♂️
2024-09-23 19:00:05 +01:00
Valere
69009a899a
Fix: confusion of lab flags for invisible crypto (#3319) 2024-09-23 16:43:02 +01:00
Doug
4996137006 Fix various flakey tests. 2024-09-23 16:25:49 +01:00