Commit Graph

119 Commits

Author SHA1 Message Date
Jorge Martín
16545ce60e 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
038b60a271 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
feef0f6976 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
f1229c582d Create test module with FakeFtueService 2024-06-17 15:12:08 +02:00
Benoit Marty
cb07ccdeb9 Add test on DefaultFtueService.reset(). 2024-06-17 15:04:20 +02:00
Benoit Marty
2b062f217b Rename method and val. 2024-06-17 14:56:56 +02:00
Benoit Marty
6a7d6fa631 Fix wrong dependency.
implementation -> testImplementation
2024-06-14 10:29:59 +02:00
bmarty
57510316ec Sync Strings from Localazy 2024-06-10 00:17:04 +00:00
Benoit Marty
b3b58f14d7 Remove strings screen_qr_code_login_.* from the ftue module. 2024-06-04 09:42:00 +02:00
bmarty
f501f27d27 Sync Strings from Localazy 2024-06-03 00:24:07 +00:00
Jorge Martin Espinosa
35702c04e9 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
17c35885c4 Fix naming issue. 2024-05-31 10:20:43 +02:00
Benoit Marty
a00ee18f96 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
cdf6f48112 Change Test class suffix. 2024-05-30 10:11:18 +02:00
Benoit Marty
0e4b30e58d Merge pull request #2941 from element-hq/sync-localazy
Sync Strings
2024-05-29 16:27:17 +02:00
bmarty
46b6ae6251 Sync Strings from Localazy 2024-05-29 12:44:57 +00:00
Benoit Marty
87689d787e 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
9065e9d2eb Merge pull request #2921 from element-hq/sync-localazy
Sync Strings
2024-05-27 15:52:38 +02:00
Benoit Marty
bbb44db297 Translations: pt -> pt-rBR 2024-05-27 14:51:32 +02:00
Benoit Marty
9b07e1cf71 Sync string again (fix lint issue) 2024-05-27 14:47:14 +02:00
bmarty
52be64fe73 Sync Strings from Localazy 2024-05-27 00:17:53 +00:00
Benoit Marty
1459ff0f77 Rename class (code quality) 2024-05-23 14:38:48 +02:00
ganfra
509e080fc2 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
a1081b39bd Pin : clean up after PR review #2692 2024-05-20 16:34:26 +02:00
bmarty
0241014932 Sync Strings from Localazy 2024-05-20 00:23:05 +00:00
bmarty
602b3988e4 Sync Strings from Localazy 2024-05-13 12:47:48 +00:00
Jorge Martin Espinosa
9aadec8435 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
d2eb0d9820 Sync Strings from Localazy 2024-05-06 00:19:35 +00:00
Benoit Marty
66cfaf97c9 Open user profile and room with event from permalink 2024-05-02 12:25:21 +02:00
Benoit Marty
76bbbe57ba 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
7383ac6678 Sync Strings from Localazy 2024-04-29 00:18:59 +00:00
Jorge Martin Espinosa
fe9b3f7cdb 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
2cc124bda2 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
d7f0d23634 Merge pull request #2733 from element-hq/feature/bma/disableKnock
Disable knock
2024-04-22 16:22:48 +02:00
bmarty
e37cbad059 Sync Strings from Localazy 2024-04-22 00:18:11 +00:00
Benoit Marty
875890f503 Move OnboardingBackground to a sub package 2024-04-19 18:11:14 +02:00
bmarty
f81dca8238 Sync Strings from Localazy 2024-04-15 11:40:19 +00:00
Benoit Marty
4916baadd8 Sync strings. 2024-04-10 12:36:41 +02:00
Jorge Martin Espinosa
3436351619 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
c8b5458878 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
5a08a4b5a3 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
8b335a9125 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
1eaae2def5 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
bd85def8fa Sync Strings (#2484)
Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
2024-03-05 09:10:47 +01:00
bmarty
54ef435d9c Sync Strings from Localazy 2024-02-26 18:17:16 +00:00
Benoit Marty
9119a7b7fb Sync Localazy strings.
./tools/localazy/downloadStrings.sh --all
2024-02-23 12:23:11 +01:00
Jorge Martin Espinosa
973c57d401 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
0224d036c7 Sync Strings from Localazy 2024-02-12 00:10:26 +00:00
Benoit Marty
72b89338b3 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
6f082232d3 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