Commit graph

131 commits

Author SHA1 Message Date
Benoit Marty
f61df38e55 Migrate license to AGPL.
Run script `uv run license-editor --repository ../element-x-android`
2024-09-06 17:19:19 +02:00
Benoit Marty
f32e7c7e02 Properly skip the FTUE verification screen if verification is not needed. 2024-09-04 16:41:34 +02:00
SpiritCroc
107b29545d Fix login navigation getting stuck with no-op analytics provider
Change-Id: Icac04e1193e12943c2b8598f48d79ac6e7cef3a5
2024-08-24 22:22:10 +02:00
bmarty
3e67448006 Sync Strings from Localazy 2024-08-19 00:25:36 +00:00
Jorge Martín
4ab0b1074d Initial implementation of the reset identity feature 2024-08-13 08:55:05 +02:00
bmarty
76804d9e48 Sync Strings from Localazy 2024-07-29 00:26:27 +00:00
ElementBot
1f01bd73c4
Sync Strings (#3232)
Co-authored-by: bmarty <3940906+bmarty@users.noreply.github.com>
2024-07-22 08:59:47 +00:00
Benoit Marty
5ccf95018d Fix test compilation 2024-07-08 17:49:39 +02:00
Benoit Marty
e48b958d52 When clearing cache, ensure that SessionPreferencesStore is removed from the cache.
Fixes blank screen after clear cache.
Also cleanup the codebase.
2024-07-08 16:48:40 +02:00
Benoit Marty
fbe70ddf5d Use session coroutine scope instead of application coroutine scope. 2024-07-08 16:47:17 +02:00
jmartinesp
dabaa2d265 Sync Strings from Localazy 2024-07-03 11:21:27 +00:00
Jorge Martin Espinosa
b0cebf5ca0
Improve screenshot testing with ComposablePreviewScanner (#3125)
* Use ComposablePreviewScanner to rework how screenshot testing works
* Add test sharding
* Update screenshots
* Fixes for Element Gallery

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
Co-authored-by: Benoit Marty <benoit@matrix.org>
2024-07-03 13:05:06 +02:00
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
d3cf140501 Create test module with FakeFtueService 2024-06-17 15:12:08 +02: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