Commit Graph

44 Commits

Author SHA1 Message Date
Benoit Marty
2b016227e9 Migrate license to AGPL.
Run script `uv run license-editor --repository ../element-x-android`
2024-09-06 17:19:19 +02:00
Benoit Marty
b062431f1b Fix test compilation issue. 2024-09-03 10:01:45 +02:00
Benoit Marty
93cace6954 Provide distinct cache directory to the Rust SDK. 2024-08-30 18:36:20 +02:00
ganfra
056cf0a884 Session : fix sessionPath missing 2024-06-12 15:42:30 +02:00
Jorge Martín
841558c3b4 Add session path migration to SessionData 2024-06-06 17:06:57 +02:00
Benoit Marty
cdf6f48112 Change Test class suffix. 2024-05-30 10:11:18 +02:00
Jorge Martin Espinosa
822705195f Fix crash when creating an EncryptedFile in Android 6 (#2853) 2024-05-15 16:10:16 +00: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
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
Benoit Marty
142338be07 An interface is enough. 2024-02-27 14:42:43 +01:00
Benoit Marty
0c8631417a Add test for DatabaseSessionStore.getAllSessions(), and update data when session is not found. 2024-02-27 12:04:59 +01:00
Benoit Marty
0c6a26f6c1 Add test on DefaultSessionObserver. 2024-02-27 11:39:17 +01:00
Benoit Marty
ca35c0a800 Remove useless log. 2024-02-27 10:41:14 +01:00
Benoit Marty
5e5eddd537 Merge pull request #2244 from element-hq/feature/bma/encryptedDb2
Encrypted db
2024-01-19 17:40:23 +01:00
Jorge Martin Espinosa
b755a2584b Try mitigating unexpected logouts (#2251)
* Try mitigating unexpected logouts.

Try making getting/storing session data use a Mutex for synchronization.

Also added some more logs so we can understand exactly where it's failing.
2024-01-18 16:22:25 +01:00
Benoit Marty
95e228a993 Fix test. 2024-01-18 12:44:20 +01:00
Benoit Marty
d04f76e8cf SessionData: add the passphrase. 2024-01-18 11:50:05 +01:00
Benoit Marty
378692f743 Fix moar ktlint issues 2024-01-11 10:02:10 +01:00
renovate[bot]
7e9cda3aa9 Update plugin ktlint to v12.1.0 (#2200)
* Update plugin ktlint to v12.1.0

* Run `./gradlew ktlintFormat` and fix some issues manually.

* Fix other issues reproted by Ktlint

* Limit false positives, KtLint removes unnecessary curly brace in String templates.

* Remove useless Unit

* Minor improvements over ktlint changes

* Restore `AlertDialogContent` behaviour

* Update screenshots

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Benoit Marty <benoit@matrix.org>
Co-authored-by: Jorge Martín <jorgem@element.io>
Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2024-01-10 16:22:24 +01:00
Marco Romano
f32817e71f Other fixes as per https://cashapp.github.io/sqldelight/2.0.0/upgrading-2.0/ 2023-10-13 15:17:12 +02:00
Marco Romano
0e1a8d506d Find and replace 2023-10-13 14:55:12 +02:00
Benoit Marty
3583aed69a Improve comment. 2023-10-12 15:48:13 +02:00
Benoit Marty
11ddb4a8cc Add some comment in the files manipulating the session DB 2023-10-12 14:59:06 +02:00
Benoit Marty
8e8821ca1c Add DB versions to test all migrations 2023-10-12 14:53:14 +02:00
Benoit Marty
7797b4c48a Fix DB migration test. Does not require a migration apparently. 2023-10-12 14:53:00 +02:00
Benoit Marty
0ca144117a Fix test. 2023-10-10 10:20:49 +02:00
Benoit Marty
920626d260 Database version 4: add isTokenValid and loginType fields
Generate database with model version 4
2023-10-10 10:20:49 +02:00
Benoit Marty
4a79d1f7b2 Fix test compilation 2023-10-10 10:20:49 +02:00
Benoit Marty
5faf706264 Add SignedOutNode, to handle session behind deleted from outside (no support for soft-logout) 2023-10-10 10:20:31 +02:00
Benoit Marty
0b3fcecbed SignedOut mode - WIP 2023-10-10 10:20:31 +02:00
Benoit Marty
fea1fe0f3c Map the new fields of SessionData. 2023-10-10 10:20:31 +02:00
Benoit Marty
b930a1a573 Generate database with model version 3, to unit test database migration.
https://cashapp.github.io/sqldelight/1.5.4/multiplatform_sqlite/migrations/
2023-10-10 10:20:31 +02:00
Benoit Marty
10e8517766 Implement didRefreshTokens(): update database with updated SessionData. 2023-08-23 14:42:46 +02:00
Benoit Marty
06a9b129d0 Restore OIDC support. 2023-08-23 12:18:42 +02:00
Jorge Martin Espinosa
280b7e32e0 Hide encryption history + FTUE flow (#839)
* First attempt at implementing encrypted history banner and removing old UTDs

* Get the right behavior in the timeline

* Implement the designs

* Extract post-processing logic, add tests

* Add encryption banner to timeline screenshots

* Create FTUE feature to handle welcome screen and analytics

* Move classes to their own packages, add tests for `DefaultFtueState`.

* Remove unnecessary private MutableStateFlow

* Move some FTUE related methods and classes back to the `impl` module

* Handle back press at each FTUE step

* Remove unneeded `TestScope` receiver for `createState` in tests.

* Use light & dark previews for the banner view.

* Move color customization from `TextStyle` to `Text` component.

* Rename `InfoList` design components, use them in `AnalyticsOptInView` too.

* Cleanup MatrixClient.

* Fix copy&paste error

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

* Fix typo

* Fix Maestro tests

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
Co-authored-by: Benoit Marty <benoit@matrix.org>
2023-07-17 18:34:36 +02:00
Benoit Marty
8cf61eaa55 Fix detected forbidden pattern. 2023-05-31 15:31:05 +02:00
Florian Renaud
c22d181d8c Remove useless OptIn in tests 2023-05-12 10:05:39 +02:00
Benoit Marty
c0ef4804a1 Persist notification data. Note that it will break the key storage for the session database. 2023-04-05 16:59:17 +02:00
Benoit Marty
a2dc4db684 Bad copy/paste 2023-04-05 16:59:17 +02:00
Benoit Marty
c52ad084e9 Observe session database to be able to detect new user and removed user. 2023-04-05 16:59:17 +02:00
Benoit Marty
b2ce80da69 Add a db query to get all the Sessions. 2023-04-05 16:31:09 +02:00
ganfra
6da72e2461 Fix test on SessionStore 2023-03-20 13:19:35 +01:00
ganfra
b73ff7aa45 Update code so it compiles 2023-03-20 13:07:50 +01:00
Benoit Marty
a66312d9e2 Split module session-storage into api and impl. 2023-03-06 13:10:27 +01:00