Commit Graph

61 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
dkadrikj b69d40f9fb Update CHANGELOG.md and rename ServerConnectionListener.kt function. 2021-11-22 15:01:26 +00:00
dkadrikj 42b21ec123 renamed guesthole package into server connection 2021-11-22 15:01:26 +00:00
dkadrikj 5857b20674 Fix HV not showing when GH is active.
Address code review comments.
2021-11-22 15:01:26 +00:00
dkadrikj baf1e45f5e Fix for null path and query. 2021-11-22 15:01:26 +00:00
dkadrikj 7421141d26 Fix tests. 2021-11-22 15:01:26 +00:00
dkadrikj cb493af7a7 Add gues hole support into the network module. 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
Mateusz Armatys 18c3f298ca Move `ResponseCodes` into network-domain, since the API response codes are exposed in `ProtonData` class, which belongs to network-domain. 2021-11-22 11:11:12 +01:00
Mateusz Armatys 976b765024 Update default network timeout to 30 seconds 2021-11-22 11:11:12 +01:00
Vincent Brison 3197cb6570 Not throw if contact does not exist 2021-10-12 10:12:15 +02: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
Jorge Martín 102f40d3d6 Add Atlas Proxy for testing, ExtraHeaderProvider to add arbitrary headers to all requests 2021-10-06 09:31:42 +02:00
Jorge Martín 2680f84a34 Add log in ServerTimeInterceptor on Date parse failure 2021-10-05 09:18:28 +02:00
Jorge Martín 043f33c9d2 Add CacheOverride Tag for clients 2021-10-04 09:24:34 +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 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 98ca99f9a6 Various improvements for Signup and Presentation.
Various improvements for User, Human Verification and Presentation modules.
Various improvements for User, Human Verification and Presentation modules.
Remove PayloadRequest.kt.
Update tests suite.
Remove not used files NewUser.kt and NewExternalEmailUser.kt
Take out create address from UserManager.kt
User emailSplit extension instead.
Introduce CreateUserType.kt
Move HumanVerificationResult handler into the ViewModel.
Fix wait to DB write HV ViewModel.
Improve SetupPrimaryKeys.kt.
Fix HV tests.
2021-05-12 21:07:28 +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 6f7b15f65b Add support for nullable UserId in ApiProvider getter. 2021-03-22 18:17:02 +01:00
Neil Marietta dbfa709923 Added ApiResult Extensions. 2021-03-22 18:17:02 +01:00
Neil Marietta 44d678acbb Moved Crypto/Key/User/Address classes from Auth to new modules. 2021-02-11 10:34:22 +01:00
dkadrikj 6f83b48e36 Add support for the client to turn on or off support for cookies by passing null for the ApiFactory cookie store property. 2020-12-23 12:14:19 +01:00
dkadrikj 41d5cb8bf0 Refactor cert pins (npe on calendar). 2020-12-18 14:35:55 +01:00
dkadrikj 61ede449a8 Improve the way a client can pass different cert pins throughout a constructor. 2020-12-17 14:25:20 +01:00
dkadrikj 6af3cf0553 Refactor ApiProvider so that client is able to inject cert pins. 2020-12-15 13:48:02 +01:00
dkadrikj 7b5ebaa9e2 Add persistent cookie support. 2020-12-01 11:00:39 +01:00
Neil Marietta fe864413e3 Reverted to default Kotlin Serialization "encodeDefaults = false" value. 2020-11-19 14:33:51 +01:00
Neil Marietta 8eba195ae0 Fixed Refresh Token missing serialized properties. 2020-11-18 13:47:32 +01:00
Neil Marietta c4280ecf1b Changed ProtonErrorException visibility to public. 2020-11-18 13:47:32 +01:00
dkadrikj aadbe43ba9 Add acess token type 2020-11-13 10:17:14 +01:00
Neil Marietta 16952477b0 Added levels to Logger API. 2020-11-11 18:26:30 +01:00
Neil Marietta bf33818a5a Integrated AccountManager with modules. 2020-11-02 10:38:21 +01:00
Davide Farella 4e0d9d3dd5 Update Kotlin, Serialization and Coroutines
* Kotlin [1.3.72] -> [1.4.10]
* Serialization [0.20.0] -> [1.0.0]
* Coroutines [1.3.4] -> [1.4.0-M1]

CP-994
2020-10-21 18:23:54 +02: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
Mateusz Markowicz 0bbad22cf5 Enable API request logging for release 2020-08-26 16:36:08 +02:00
Mateusz Markowicz 0d3d2241f9 network: Log API calls with core Logger 2020-08-24 16:22:42 +00: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
dkadrikj 0b4faae768 Human Verification data module
Network module update included
2020-07-24 16:39:01 +02:00
Mateusz Markowicz fa4e784000 network: let client override pins for alternative routing proxies
CP-405
2020-07-24 14:41:57 +02:00
Mateusz Markowicz 8c26e0dd4c network: fix path of ping endpoint 2020-07-23 16:27:17 +02:00
Mateusz Markowicz f8818f84cd Add testing for certificate pinning 2020-07-16 11:06:39 +02:00
Mateusz Markowicz a3d051101c Expose OkHttpClient for tests
e.g. for Espresso idling resource
2020-07-15 12:58:31 +02:00
Mateusz Markowicz ce61c97a70 Logging improvements of API errors 2020-07-15 12:55:08 +02:00