Commit Graph

117 Commits

Author SHA1 Message Date
Jorge Martín f421f94639 Fix session verification incorrectly displaying as 'not verified' when the user opened the app with no network connection.
It turns out `encryptionService.verificationState()` runs a network request that will cause a deadlock when it fails.

Also fixed another deadlock that caused the screen to remain blank sometimes after logging in, because DataStore got stuck when checking the `skipVerification` state for some reason I don't fully understand.
2024-06-28 11:35:08 +02:00
Benoit Marty 849f64f4aa Merge pull request #3044 from element-hq/feature/bma/testDefaultClearCacheUseCase
Add test on DefaultClearCacheUseCase
2024-06-18 10:27:45 +02:00
Jorge Martin Espinosa b741c32e91 Add full screen intent permissions banner (#3024)
* Add full screen intent permissions banner, creating `:libraries:fullscreenintent` modules.
* Add it to notification settings too:
    - Create `libraries:fullscreenintent` modules for the permission presenter and associated data.
    - Add the presenter and states to `NotificationSettingsPresenter` and `NotificationSettingsView`.
* Use the right API to check for full screen intent permissions.
- Use the right package name for `:libraries:permission` contents.
* Fix broken tests (flaky?)
* Ignore coverage verification for fake and small presenters

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2024-06-18 07:41:10 +00:00
Benoit Marty b68b08300a Add test on DefaultFtueService.reset(). 2024-06-17 15:04:20 +02:00
Benoit Marty 03a197e530 Rename method and val. 2024-06-17 14:56:56 +02:00
bmarty f3d286911c Sync Strings from Localazy 2024-06-10 00:17:04 +00:00
Benoit Marty aec579d757 Remove strings screen_qr_code_login_.* from the ftue module. 2024-06-04 09:42:00 +02:00
bmarty 66636ea967 Sync Strings from Localazy 2024-06-03 00:24:07 +00:00
Jorge Martin Espinosa c8bd04ceb1 Sign in with QR code (#2793)
* Add QR code login.
* Add FF to disable it in release mode.
* Force portrait orientation on the login flow.
* Create `NumberedList` UI components.
* Improve camera permission dialog.
* Make nodes in qrcode feature use `QrCodeLoginScope` instead of `AppScope`
* Bump SDK version.
* Fix maestro tests

---------

Co-authored-by: Benoit Marty <benoit@matrix.org>
Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2024-05-31 14:38:27 +02:00
Benoit Marty ade3b5de4f Fix naming issue. 2024-05-31 10:20:43 +02:00
Benoit Marty 3fa508f1fe Add Konsist test Class with 'ContributeBinding' annotation should have allowed prefix and fix exissting issues.
Also remove annotation `DefaultPreferences`, we only have one implementation.
2024-05-31 10:18:08 +02:00
Benoit Marty ec8cb2e32f Change Test class suffix. 2024-05-30 10:11:18 +02:00
Benoit Marty f5a0e83cb2 Merge pull request #2941 from element-hq/sync-localazy
Sync Strings
2024-05-29 16:27:17 +02:00
bmarty ca5bc71057 Sync Strings from Localazy 2024-05-29 12:44:57 +00:00
Benoit Marty 37d9a9f5a9 Lambda parameters in a composable function should be in present tense, not past tense.
https://mrmans0n.github.io/compose-rules/rules/#naming-parameters-properly
2024-05-29 12:18:23 +02:00
Benoit Marty 3a39e2a3ec Merge pull request #2921 from element-hq/sync-localazy
Sync Strings
2024-05-27 15:52:38 +02:00
Benoit Marty b3e0f6e843 Translations: pt -> pt-rBR 2024-05-27 14:51:32 +02:00
Benoit Marty 1988c4c4da Sync string again (fix lint issue) 2024-05-27 14:47:14 +02:00
bmarty f24e537580 Sync Strings from Localazy 2024-05-27 00:17:53 +00:00
Benoit Marty d79fcb3aaa Rename class (code quality) 2024-05-23 14:38:48 +02:00
ganfra ac123bdcd8 Merge pull request #2874 from element-hq/feature/fga/fix_2692
Fix modal contents overlapping screen lock pin #2692
2024-05-21 15:53:51 +02:00
ganfra 73905fa695 Pin : clean up after PR review #2692 2024-05-20 16:34:26 +02:00
bmarty 83a8a631f2 Sync Strings from Localazy 2024-05-20 00:23:05 +00:00
bmarty 0910da0a14 Sync Strings from Localazy 2024-05-13 12:47:48 +00:00
Jorge Martin Espinosa 5c59f6c20f Enforce mandatory session verification only for new logins (#2811)
* Enforce mandatory session verification only for new logins

- Creates `AppMigration` base interface as a way to isolate migration logic, app migrations must implement this interface.
- Creates `AppMigration01` with the existing logs removal migration and `AppMigration02` with the logic to allow existing sessions to skip verification.
- Add `DefaultSessionPreferencesStoreFactory.remove(sessionId)` to allow a ephemeral session store access to exist outside the `SessionScope` for this new migration.

* Fix tests

* Add more tests.

This also includes creating several abstractions.

* Review changes.

- Make `orderedMigrations` a class property, `migrations` just a constructor parameter to avoid incorrect usages.
- Create `lastMigration` property too, use it instead of `MIGRATION_VERSION`.
2024-05-07 14:06:34 +00:00
bmarty 68fdaef8b8 Sync Strings from Localazy 2024-05-06 00:19:35 +00:00
Benoit Marty 0476bd95c8 Open user profile and room with event from permalink 2024-05-02 12:25:21 +02:00
Benoit Marty 528e7b390b Remove the FtueEntryPoint.Callback, LoggedInFlowNode is already observing the Ftue state to change the root target. 2024-05-01 13:49:57 +02:00
bmarty 4f82baa2b0 Sync Strings from Localazy 2024-04-29 00:18:59 +00:00
Jorge Martin Espinosa 7397df806b Always display 'lost recovery key?' option (#2745)
* Always display 'lost recovery key?' option

* Use `isLastDevice` it to display only 'enter recovery key' option for verification.

* Update strings. This should fix the wrong term 'passcode' being used in the recovery key screen title.

* Disable 'lost your recovery key?' button while the screen is in a loading state

* Update screenshots

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2024-04-25 15:28:24 +02:00
Jorge Martin Espinosa 1de6797673 Remove SessionData.needsVerification as the source of truth for session verification status (#2748)
* Remove `SessionData.needsVerification` as the source of truth for session verification status.

- Use the Rust SDK `EncryptionService.verificationState()` instead, but always waiting for the first 'known' result (either verified or not, discarding 'unknown').
- Add a workaround in the super rare case when reading this value gets stuck somehow. We'll assume the user is not verified in that case.
- Make `DefaultFtueService.getNextStep` and dependent checks `suspend`.
- Make the `skip` button use a value in the session preferences instead.

* Log exception when the verification status can't be loaded

Co-authored-by: Benoit Marty <benoit@matrix.org>

* Fix review comments

---------

Co-authored-by: Benoit Marty <benoit@matrix.org>
2024-04-24 13:55:25 +00:00
Benoit Marty e0d40ec0a4 Merge pull request #2733 from element-hq/feature/bma/disableKnock
Disable knock
2024-04-22 16:22:48 +02:00
bmarty 68631af9a6 Sync Strings from Localazy 2024-04-22 00:18:11 +00:00
Benoit Marty 6b2a4f8cc0 Move OnboardingBackground to a sub package 2024-04-19 18:11:14 +02:00
bmarty 8f6a1b410e Sync Strings from Localazy 2024-04-15 11:40:19 +00:00
Benoit Marty 810e4919bc Sync strings. 2024-04-10 12:36:41 +02:00
Jorge Martin Espinosa cf072fa1e1 Improve session recovery screens (#2657)
* Improve enter recovery key screen UI

* Add instructions to reset the encryption of the logged in account.

* Update screenshots

* Fix maestro flow

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2024-04-09 17:01:06 +00:00
Jorge Martin Espinosa 1045f99d18 Add SessionData.needsVerification field (#2672)
* Add `SessionData.needsVerification`:
  - Allows us to add a skip button for debug builds.
  - We can have the verification state almost instantly.
  - It doesn't depend on network availability to know the verification state and display the UI.
* Add DB migration.
- Make the skip button in the verification flow skip the whole flow including the completed screen.
- Save the session as verified in `RustEncryptionService.recover(recoveryKey)`.
* Enforce session verification for existing users too.
* Fix verification confirmed screen subtitle (typo in id, was using the wrong string)
* Update screenshots

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2024-04-09 17:28:12 +02:00
Jorge Martin Espinosa b6ceb8c697 Improve UI for notification permission screen in onboarding (#2660)
* Improve UI for notification permission screen in onboarding

* Update screenshots

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2024-04-08 10:58:37 +02:00
Jorge Martin Espinosa 41287c5f59 Move session verification to FTUE flow, make it mandatory (#2594)
* Move session verification to the FTUE
* Allow session verification flow to be restarted
* Use `EncryptionService` to display session verification faster
* Remove session verification item from settings
* Remove session verification banner from room list
* Remove 'verification needed' variant from the `TimelineEncryptedHistoryBanner`
* Improve verification flow UI and UX
* Remove 'verification successful' snackbar message
* Only register push provider after the session has been verified
* Hide room list while the session hasn't been verified
* Prevent deep links from changing the navigation if the session isn't verified
* Update screenshots
* Renamed `FtueState` to `FtueService`, created an actual `FtueState`.

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2024-04-03 14:53:17 +00:00
Jorge Martín f0533be5c6 Remove Welcome screen from the FTUE
Keep the screen UI + logic around in case we want to reuse it in the future.
2024-03-21 16:26:00 +01:00
ElementBot f2169aaaa8 Sync Strings (#2484)
Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
2024-03-05 09:10:47 +01:00
bmarty 5c8be8f61f Sync Strings from Localazy 2024-02-26 18:17:16 +00:00
Benoit Marty a7e38f0925 Sync Localazy strings.
./tools/localazy/downloadStrings.sh --all
2024-02-23 12:23:11 +01:00
Jorge Martin Espinosa b69cb8175a Update Compound to v0.0.5 and update icons (#2380)
Update Compound to `v0.0.5`:

- Make sure we fix all the breaking changes.
- Update some icons to use the compound version instead.
-Replace icons with their Compound counterparts when possible.
- Clean up unused icons.
- Fix issues with incorrect icons or sizes being used after replacing the temporary icons with the Compound ones.

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2024-02-12 16:41:58 +00:00
bmarty a614b0d91e Sync Strings from Localazy 2024-02-12 00:10:26 +00:00
Benoit Marty b104dba845 Remove Modifier parameter in private function when only default value is used.
This will improve the code coverage metrics, and this also fixes a few potential bug, where the Modifier was used several times.
2024-02-08 11:06:06 +01:00
Jorge Martin Espinosa d06e5c23cb Move migration screen to within the room list (#2361)
* Rename migration bg drawable and add night variant
* Move `migration` package from `ftue` to `messages:impl` module
* Update `SunsetPage` with light and dark modes
* Fix bloom colors when nested theme is used
* Integrate the migration screen in the room list
* Fix `WaitListView` cancel button color
* Clear migration store when removing the app's cache

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2024-02-08 10:01:08 +00:00
bmarty 03c95555e3 Sync Strings from Localazy 2024-02-05 00:09:59 +00:00
Benoit Marty eb51b49aef Always use the latest... fix. 2024-01-23 18:13:33 +01:00