diff --git a/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/mapper/FromDomain.kt b/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/mapper/FromDomain.kt index 817418e1fc72..622e95d9dd0d 100644 --- a/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/mapper/FromDomain.kt +++ b/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/mapper/FromDomain.kt @@ -188,7 +188,11 @@ internal fun ApiAccessMethod.fromDomain(): ManagementInterface.AccessMethod = it.setDirect(ManagementInterface.AccessMethod.Direct.getDefaultInstance()) ApiAccessMethod.Bridges -> it.setBridges(ManagementInterface.AccessMethod.Bridges.getDefaultInstance()) - is ApiAccessMethod.CustomProxy -> it.setCustom(this.fromDomain()) + is ApiAccessMethod.CustomProxy -> it.setCustom(fromDomain()) + is ApiAccessMethod.EncryptedDns -> + it.setEncryptedDnsProxy( + ManagementInterface.AccessMethod.EncryptedDnsProxy.getDefaultInstance() + ) } } .build() @@ -197,8 +201,8 @@ internal fun ApiAccessMethod.CustomProxy.fromDomain(): ManagementInterface.Custo ManagementInterface.CustomProxy.newBuilder() .let { when (this) { - is ApiAccessMethod.CustomProxy.Shadowsocks -> it.setShadowsocks(this.fromDomain()) - is ApiAccessMethod.CustomProxy.Socks5Remote -> it.setSocks5Remote(this.fromDomain()) + is ApiAccessMethod.CustomProxy.Shadowsocks -> it.setShadowsocks(fromDomain()) + is ApiAccessMethod.CustomProxy.Socks5Remote -> it.setSocks5Remote(fromDomain()) } } .build() diff --git a/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/mapper/ToDomain.kt b/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/mapper/ToDomain.kt index bb7fb83fa607..fc4c64942f25 100644 --- a/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/mapper/ToDomain.kt +++ b/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/mapper/ToDomain.kt @@ -557,7 +557,12 @@ internal fun ManagementInterface.PlayPurchasePaymentToken.toDomain(): PlayPurcha PlayPurchasePaymentToken(value = token) internal fun ManagementInterface.ApiAccessMethodSettings.toDomain(): List = - listOf(direct.toDomain(), mullvadBridges.toDomain()).plus(customList.map { it.toDomain() }) + buildList { + add(direct.toDomain()) + add(mullvadBridges.toDomain()) + add(encryptedDnsProxy.toDomain()) + addAll(customList.map { it.toDomain() }) + } internal fun ManagementInterface.AccessMethodSetting.toDomain(): ApiAccessMethodSetting = ApiAccessMethodSetting( @@ -571,6 +576,7 @@ internal fun ManagementInterface.AccessMethod.toDomain(): ApiAccessMethod = when { hasDirect() -> ApiAccessMethod.Direct hasBridges() -> ApiAccessMethod.Bridges + hasEncryptedDnsProxy() -> ApiAccessMethod.EncryptedDns hasCustom() -> custom.toDomain() else -> error("Type not found") } diff --git a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/ApiAccessMethod.kt b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/ApiAccessMethod.kt index 3fdcf8c73009..dde768cfea8b 100644 --- a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/ApiAccessMethod.kt +++ b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/ApiAccessMethod.kt @@ -8,6 +8,8 @@ sealed interface ApiAccessMethod : Parcelable { @Parcelize data object Bridges : ApiAccessMethod + @Parcelize data object EncryptedDns : ApiAccessMethod + sealed interface CustomProxy : ApiAccessMethod { @Parcelize data class Socks5Remote(val ip: String, val port: Port, val auth: SocksAuth?) : CustomProxy