diff options
Diffstat (limited to 'android/lib')
2 files changed, 9 insertions, 2 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 7f1ae90b45..95679cb43d 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 @@ -77,6 +77,7 @@ import net.mullvad.mullvadvpn.lib.model.GetDeviceListError 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.NewAccessMethodSetting import net.mullvad.mullvadvpn.lib.model.ObfuscationSettings import net.mullvad.mullvadvpn.lib.model.Ownership as ModelOwnership @@ -492,7 +493,12 @@ class ManagementService( suspend fun updateCustomList(customList: ModelCustomList): Either<UpdateCustomListError, Unit> = Either.catch { grpc.updateCustomList(customList.fromDomain()) } - .mapLeft(::UnknownCustomListError) + .mapLeftStatus { + when (it.status.code) { + Status.Code.ALREADY_EXISTS -> NameAlreadyExists(customList.name) + else -> UnknownCustomListError(it) + } + } .mapEmpty() suspend fun deleteCustomList(id: CustomListId): Either<DeleteCustomListError, Unit> = diff --git a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/UpdateCustomListError.kt b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/UpdateCustomListError.kt index ef49018dca..e666ca3f59 100644 --- a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/UpdateCustomListError.kt +++ b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/UpdateCustomListError.kt @@ -22,7 +22,8 @@ sealed interface UpdateCustomListLocationsError { sealed interface UpdateCustomListError -data class NameAlreadyExists(val name: String) : UpdateCustomListError, UpdateCustomListNameError +data class NameAlreadyExists(val name: CustomListName) : + UpdateCustomListError, UpdateCustomListNameError data class UnknownCustomListError(val throwable: Throwable) : UpdateCustomListError, |
