Commit graph

118 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
Benoit Marty
7c18133bb3 Fix wrong dependency.
implementation -> testImplementation
2024-06-14 10:29:59 +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