summaryrefslogtreecommitdiffhomepage
path: root/android/lib
diff options
context:
space:
mode:
authorJonatan Rhodin <jonatan.rhodin@mullvad.net>2024-07-23 09:04:12 +0200
committerAlbin <albin@mullvad.net>2024-08-23 09:44:47 +0200
commitca9457348155930527f22209df7a237efa5cf125 (patch)
tree615b40aa57e6e77e7376f66204364914c603212d /android/lib
parent67486d316b94262cb2e478765f4234b5d12afcba (diff)
downloadmullvadvpn-ca9457348155930527f22209df7a237efa5cf125.tar.xz
mullvadvpn-ca9457348155930527f22209df7a237efa5cf125.zip
Wrap missing external calls in either catch
Diffstat (limited to 'android/lib')
-rw-r--r--android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/ManagementService.kt35
-rw-r--r--android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/ClearAccountHistoryError.kt5
-rw-r--r--android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/LogoutAccountError.kt5
3 files changed, 29 insertions, 16 deletions
diff --git a/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/ManagementService.kt b/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/ManagementService.kt
index 36460ae1fa..1ea2e8a251 100644
--- a/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/ManagementService.kt
+++ b/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/ManagementService.kt
@@ -53,6 +53,7 @@ import net.mullvad.mullvadvpn.lib.model.ApiAccessMethodId
import net.mullvad.mullvadvpn.lib.model.ApiAccessMethodSetting
import net.mullvad.mullvadvpn.lib.model.AppId
import net.mullvad.mullvadvpn.lib.model.AppVersionInfo as ModelAppVersionInfo
+import net.mullvad.mullvadvpn.lib.model.ClearAccountHistoryError
import net.mullvad.mullvadvpn.lib.model.ClearAllOverridesError
import net.mullvad.mullvadvpn.lib.model.ConnectError
import net.mullvad.mullvadvpn.lib.model.Constraint
@@ -78,6 +79,7 @@ import net.mullvad.mullvadvpn.lib.model.GetDeviceStateError
import net.mullvad.mullvadvpn.lib.model.GetVersionInfoError
import net.mullvad.mullvadvpn.lib.model.LoginAccountError
import net.mullvad.mullvadvpn.lib.model.NameAlreadyExists
+import net.mullvad.mullvadvpn.lib.model.LogoutAccountError
import net.mullvad.mullvadvpn.lib.model.NewAccessMethodSetting
import net.mullvad.mullvadvpn.lib.model.ObfuscationSettings
import net.mullvad.mullvadvpn.lib.model.Ownership as ModelOwnership
@@ -276,9 +278,13 @@ class ManagementService(
Either.catch { grpc.connectTunnel(Empty.getDefaultInstance()).value }
.mapLeft(ConnectError::Unknown)
- suspend fun disconnect(): Boolean = grpc.disconnectTunnel(Empty.getDefaultInstance()).value
+ suspend fun disconnect(): Either<ConnectError, Boolean> =
+ Either.catch { grpc.disconnectTunnel(Empty.getDefaultInstance()).value }
+ .mapLeft(ConnectError::Unknown)
- suspend fun reconnect(): Boolean = grpc.reconnectTunnel(Empty.getDefaultInstance()).value
+ suspend fun reconnect(): Either<ConnectError, Boolean> =
+ Either.catch { grpc.reconnectTunnel(Empty.getDefaultInstance()).value }
+ .mapLeft(ConnectError::Unknown)
private suspend fun getTunnelState(): ModelTunnelState =
grpc.getTunnelState(Empty.getDefaultInstance()).toDomain()
@@ -298,9 +304,13 @@ class ManagementService(
Either.catch { grpc.getVersionInfo(Empty.getDefaultInstance()).toDomain() }
.mapLeft { GetVersionInfoError.Unknown(it) }
- suspend fun logoutAccount() {
- grpc.logoutAccount(Empty.getDefaultInstance())
- }
+ private suspend fun getCurrentApiAccessMethod(): ApiAccessMethodSetting =
+ grpc.getCurrentApiAccessMethod(Empty.getDefaultInstance()).toDomain()
+
+ suspend fun logoutAccount(): Either<LogoutAccountError, Unit> =
+ Either.catch { grpc.logoutAccount(Empty.getDefaultInstance()) }
+ .mapLeft(LogoutAccountError::Unknown)
+ .mapEmpty()
suspend fun loginAccount(accountNumber: AccountNumber): Either<LoginAccountError, Unit> =
Either.catch { grpc.loginAccount(StringValue.of(accountNumber.value)) }
@@ -315,9 +325,10 @@ class ManagementService(
}
.mapEmpty()
- suspend fun clearAccountHistory() {
- grpc.clearAccountHistory(Empty.getDefaultInstance())
- }
+ suspend fun clearAccountHistory(): Either<ClearAccountHistoryError, Unit> =
+ Either.catch { grpc.clearAccountHistory(Empty.getDefaultInstance()) }
+ .mapLeft(ClearAccountHistoryError::Unknown)
+ .mapEmpty()
suspend fun getAccountHistory(): Either<GetAccountHistoryError, AccountNumber?> =
Either.catch {
@@ -424,11 +435,6 @@ class ManagementService(
.mapLeft(SetWireguardQuantumResistantError::Unknown)
.mapEmpty()
- // Todo needs to be more advanced
- suspend fun setRelaySettings(value: RelaySettings) {
- grpc.setRelaySettings(value.fromDomain())
- }
-
suspend fun setObfuscation(
value: SelectedObfuscation
): Either<SetObfuscationOptionsError, Unit> =
@@ -649,9 +655,6 @@ class ManagementService(
.mapLeft(::UnknownApiAccessMethodError)
.mapEmpty()
- private suspend fun getCurrentApiAccessMethod(): ApiAccessMethodSetting =
- grpc.getCurrentApiAccessMethod(Empty.getDefaultInstance()).toDomain()
-
suspend fun testCustomApiAccessMethod(
customProxy: ApiAccessMethod.CustomProxy
): Either<TestApiAccessMethodError, Unit> =
diff --git a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/ClearAccountHistoryError.kt b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/ClearAccountHistoryError.kt
new file mode 100644
index 0000000000..bd5cff4002
--- /dev/null
+++ b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/ClearAccountHistoryError.kt
@@ -0,0 +1,5 @@
+package net.mullvad.mullvadvpn.lib.model
+
+interface ClearAccountHistoryError {
+ data class Unknown(val t: Throwable) : ClearAccountHistoryError
+}
diff --git a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/LogoutAccountError.kt b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/LogoutAccountError.kt
new file mode 100644
index 0000000000..da92b9216c
--- /dev/null
+++ b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/LogoutAccountError.kt
@@ -0,0 +1,5 @@
+package net.mullvad.mullvadvpn.lib.model
+
+interface LogoutAccountError {
+ data class Unknown(val t: Throwable) : LogoutAccountError
+}