Commit Graph

1802 Commits

Author SHA1 Message Date
Mauro
69d32502fd 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
21ee694014 Remove superfluous media request upload handle cancellation call. 2024-10-17 14:24:44 +03:00
Stefan Ceriu
51751606ca 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
61c0a500c6 Fix the pinned identity banner to always show the user ID regardless of ambiguity. (#3415) 2024-10-16 14:51:29 +01:00
Doug
e742f8803e 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
2c31885355 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
2f10a74836 Only subscribe to identity updates if the room is encrypted. (#3414) 2024-10-16 10:40:29 +01:00
Doug
4cc186be0c Fix some warnings. (#3416) 2024-10-16 08:54:34 +01:00
Doug
79c0822ef5 Add a toggle in the developer options to optimise the media uploads. (#3408) 2024-10-14 14:48:59 +01:00
Doug
a0159aac6b 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
5648a87b7a 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
d2f6ff42d3 Translations update (#3406)
Co-authored-by: Velin92 <34335419+Velin92@users.noreply.github.com>
2024-10-14 11:29:14 +02:00
Doug
92f58377bf Fix identity pinning link. (#3395) 2024-10-10 16:46:09 +01:00
Doug
02e60a5de8 Show the Login with QR Code button. (#3392) 2024-10-10 14:39:10 +01:00
Stefan Ceriu
a79aad7c54 Introduce a feature flag for the new identity pinning violation notifications feature. 2024-10-10 16:13:34 +03:00
Doug
431d88b6c1 Tweak EncryptionReset, IdentityConfirmation and SecureBackupRecovery screens. (#3391) 2024-10-10 11:27:53 +01:00
Doug
2e9df064ca Ask the iPad to reveal the keyboard in UI Tests when it's hidden. (#3389) 2024-10-10 08:38:40 +01:00
Doug
fbccf7ff06 Add a subtitle to the QR login instructions. (#3386) 2024-10-09 17:54:01 +01:00
Valere
8756e97640 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
09a6febc71 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
7655b33f5d 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
7b31d183aa Translations update (#3371) 2024-10-07 10:51:59 +01:00
Doug
74ff86695e Add developer option to hide media in the timeline. (#3366) 2024-10-03 17:59:39 +01:00
Stefan Ceriu
481111193a Workaround for #1786 - Disable auto correction when running on the Mac 2024-10-03 13:49:37 +03:00
Stefan Ceriu
318786762f Remove spammy typing notification sending log 2024-10-03 13:49:37 +03:00
Doug
33c172b0f2 MockMediaProvider → MediaProviderMock. 2024-10-03 10:58:59 +01:00
Doug
d132568d13 Use the new @Entry macro everywhere.
Fix analytics service optionality.
2024-10-03 10:58:59 +01:00
Stefan Ceriu
45d59c57d6 Bump the RustSDK to v1.0.53: adopt latest record based timeline item APIs (#3356) 2024-10-01 18:50:11 +03:00
Doug
e95fb7c27e Move the core logic in LoginScreenCoordinator into the ViewModel. (#3348) 2024-10-01 13:09:45 +01:00
Mauro
98d7654a1d Remove message pinning FF (#3318) 2024-09-30 12:32:35 +00:00
Velin92
c595e63238 Translations update 2024-09-30 09:07:33 +03:00
Doug
aec4e3e8ca 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
2c10dfdb7f Allow focusing the different avatars making up a DM details cluster separately. (#3341) 2024-09-27 15:23:20 +03:00
Stefan Ceriu
e918dc66ae 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
ec9f6e21a8 Log any failures when creating a call widget. (#3339) 2024-09-27 11:40:43 +01:00
Stefan Ceriu
69ce39bbc3 Have ElementCall always default to the speaker; prevent the lock button from ending the call
- previously handled in 81d669e5ce
- seems the default behavior changed and we now need to manually configure the AudioSession
2024-09-27 13:38:08 +03:00
Doug
1f44a7eb63 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
0274cf3cd5 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
5516743886 crypto: rename invisible crypto flag to deviceIsolationMode (#3331) 2024-09-26 12:24:46 +01:00
Stefan Ceriu
79e3758887 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
94f5879639 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
f52ed2f929 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
d03a3ae428 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
ba0a0a0c05 Don't use the new iPad modal presentation mode for the timeline item menu. (#3325) 2024-09-24 14:42:45 +01:00
Doug
bb1686f501 Use the UIColors directly instead of wrapping the SwiftUI Colors. (#3324) 2024-09-24 12:24:03 +01:00
Doug
a172436052 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
c833730909 Fix: confusion of lab flags for invisible crypto (#3319) 2024-09-23 16:43:02 +01:00
Doug
830f8e9db7 Fix various flakey tests. 2024-09-23 16:25:49 +01:00
Doug
fa76508788 Update Preview tests for Xcode 16. 2024-09-23 16:25:49 +01:00
Doug
dcf380749a 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