Commit Graph

23 Commits

Author SHA1 Message Date
dkadrikj 519765b9bd Rename ServerConnectionListener.kt to ApiConnectionListener.kt,
ServerConnectionHandler.kt to ApiConnectionHandler.kt and
ServerConnectionException.kt to ApiConnectionException.kt
2021-11-22 15:01:26 +00:00
Mateusz Armatys f0bee56b9f Put all API error codes in `ResponseCodes` class 2021-11-22 11:11:12 +01:00
Benjamin Monjoie bd78d8069d Delay OkHttp's initialization
OkHttp's cache initialization is blocking the UI.
As per this trick: https://www.zacsweers.dev/dagger-party-tricks-deferred-okhttp-init/,
it should be better to initialize OkHttp in Retrofit's `callFactory` method.

This currently doesn't solve the issue with coroutines but has no downside either.
Indeed, the `callFactory` SAM is called on the `Dispatcher` which initiate the call.
It's often the `viewModelScope` which is using `Dispatchers.Main`.
Hopefully, an update to Retrofit will solve this issue.
2021-10-07 15:39:19 +00:00
Neil Marietta ae9280d50b KeyStoreCrypto fallback if Android KeyStore is not properly working. 2021-09-21 16:25:03 +02:00
Neil Marietta a122d9e893 Added optional OkHttp Cache.
Removed isConnectedToNetwork check before trying a call.
2021-08-19 09:15:15 +00:00
Neil Marietta a5bcf95dae Network: Added TooManyRequest error handling per Session. 2021-08-13 15:19:12 +02:00
Neil Marietta 4784644591 Added ServerTimeListener/ServerTimeInterceptor, updating PGPCrypto time. 2021-06-21 14:11:04 +02:00
Neil Marietta e1c07f1741 Added Force Update error 5005 (API too old). 2021-06-10 11:13:24 +02:00
Neil Marietta 1b7e6eb9e9 Fixed ClientId initialisation issue.
Added ClientIdProvider (rely on ProtonCookieStore).
2021-06-03 17:18:11 +02:00
Neil Marietta 646183da63 Refactored HumanVerification.
Never delete HumanVerification tokens except on Invalid Verification Code (error 12087).

HumanVerification Network Handlers:
- HumanVerificationNeededHandler: call onHumanVerificationNeeded on error 9001 (last of error handler list).
- HumanVerificationInvalidHandler: call onHumanVerificationInvalid (which delete token) on error 12087.
2021-06-03 17:18:11 +02:00
dkadrikj d41e19e28c Change network module to support refactored Human Verification module. 2021-05-12 17:57:14 +00:00
Neil Marietta 305c3a67f2 Fixed Human Verification race condition. 2021-03-25 16:06:55 +01:00
Neil Marietta 09c4afe41f Fixed Network refresh token race condition. 2021-03-25 16:05:59 +01:00
dkadrikj 7b5ebaa9e2 Add persistent cookie support. 2020-12-01 11:00:39 +01:00
Neil Marietta bf33818a5a Integrated AccountManager with modules. 2020-11-02 10:38:21 +01:00
Neil Marietta 0fa57dff20 Removed ExperimentalCoroutinesApi annotation (see build.gradle.kts, kotlinCompilerArgs). 2020-11-02 10:33:09 +01:00
Neil Marietta 53f8b0107f Integrated SessionListener/SessionProvider/SessionId into network modules.
Added ApiProvider (create ApiManager instance given a sessionId).
Adapted HumanVerification modules to use ApiProvider.
2020-10-20 11:22:27 +02:00
dkadrikj 3a52601942 Human verification support in the network module
Includes also changes needed in the Human Verification module
2020-08-04 15:18:43 +02:00
Mateusz Markowicz b0b16eef9a Log and include original exception in ApiResult.Error 2020-07-07 17:26:34 +02:00
Mateusz Markowicz ca85c626fb Introducing API block avoidance based on DoH 2020-07-03 11:24:18 +00:00
Mateusz Markowicz 619f7e65bc Prepare module factory interface to support DoH
CP-405
2020-07-02 14:09:36 +00:00
Mateusz Markowicz d14e896863 Refactor handling of proton error data in json response
- use deserializer from kotlin-utils
- merge Proton and Http ApiResult errors
2020-07-02 14:09:36 +00:00
Algirdas Pundzius 265a5a0205 Initial commit
Co-authored-by: Davide Giuseppe Farella <4face91@protonmail.com>
Co-authored-by: Dino Kadrikj <kadrikj@protonmail.ch>
Co-authored-by: Mateusz Markowicz <poniekad@protonmail.com>
2020-07-01 13:58:49 +03:00