summaryrefslogtreecommitdiffhomepage
path: root/android
diff options
context:
space:
mode:
authorAlbin <albin@mullvad.net>2024-06-13 12:36:42 +0200
committerAlbin <albin@mullvad.net>2024-06-13 12:36:42 +0200
commit889af23e04e9f26e501f392c21472c14b10ee3e0 (patch)
treebcbb7dac56d9dcb40e755231076e9d0e72f66f6a /android
parent4b0f4388fd95d2354b23785472934136c0af8da4 (diff)
parent83667f4f95ab34fe8a58d72f5d1d966ace545332 (diff)
downloadmullvadvpn-889af23e04e9f26e501f392c21472c14b10ee3e0.tar.xz
mullvadvpn-889af23e04e9f26e501f392c21472c14b10ee3e0.zip
Merge branch 'fix-missing-device-refresh-droid-1058'
Diffstat (limited to 'android')
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/ConnectViewModel.kt1
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/OutOfTimeViewModel.kt1
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/WelcomeViewModel.kt1
-rw-r--r--android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/ConnectViewModelTest.kt4
-rw-r--r--android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/ManagementService.kt4
-rw-r--r--android/lib/shared/src/main/kotlin/net/mullvad/mullvadvpn/lib/shared/DeviceRepository.kt6
6 files changed, 17 insertions, 0 deletions
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/ConnectViewModel.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/ConnectViewModel.kt
index c98ce4fa59..a27ed9adbd 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/ConnectViewModel.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/ConnectViewModel.kt
@@ -118,6 +118,7 @@ class ConnectViewModel(
viewModelScope.launch { accountRepository.getAccountData() }
}
}
+ viewModelScope.launch { deviceRepository.updateDevice() }
}
fun onDisconnectClick() {
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/OutOfTimeViewModel.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/OutOfTimeViewModel.kt
index 66e9a719eb..7784181466 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/OutOfTimeViewModel.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/OutOfTimeViewModel.kt
@@ -59,6 +59,7 @@ class OutOfTimeViewModel(
}
verifyPurchases()
fetchPaymentAvailability()
+ viewModelScope.launch { deviceRepository.updateDevice() }
}
fun onSitePaymentClick() {
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/WelcomeViewModel.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/WelcomeViewModel.kt
index 208c9d871b..4b61468f8e 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/WelcomeViewModel.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/WelcomeViewModel.kt
@@ -59,6 +59,7 @@ class WelcomeViewModel(
}
verifyPurchases()
fetchPaymentAvailability()
+ viewModelScope.launch { deviceRepository.updateDevice() }
}
private fun hasAddedTimeEffect() =
diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/ConnectViewModelTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/ConnectViewModelTest.kt
index 2de7724c69..a2fd9e38fb 100644
--- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/ConnectViewModelTest.kt
+++ b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/ConnectViewModelTest.kt
@@ -3,9 +3,11 @@ package net.mullvad.mullvadvpn.viewmodel
import androidx.lifecycle.viewModelScope
import app.cash.turbine.test
import arrow.core.right
+import io.mockk.Runs
import io.mockk.coEvery
import io.mockk.coVerify
import io.mockk.every
+import io.mockk.just
import io.mockk.mockk
import io.mockk.mockkStatic
import io.mockk.unmockkAll
@@ -102,6 +104,8 @@ class ConnectViewModelTest {
every { mockDeviceRepository.deviceState } returns device
+ coEvery { mockDeviceRepository.updateDevice() } just Runs
+
every { mockInAppNotificationController.notifications } returns notifications
every { mockConnectionProxy.tunnelState } returns tunnelState
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 6cc6d25c36..f8073323c8 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
@@ -210,6 +210,10 @@ class ManagementService(
.map { it.toDomain() }
.mapLeft { GetDeviceStateError.Unknown(it) }
+ suspend fun updateDevice() {
+ grpc.updateDevice(Empty.getDefaultInstance())
+ }
+
suspend fun getDeviceList(token: AccountNumber): Either<GetDeviceListError, List<Device>> =
Either.catch { grpc.listDevices(StringValue.of(token.value)) }
.map { it.devicesList.map(ManagementInterface.Device::toDomain) }
diff --git a/android/lib/shared/src/main/kotlin/net/mullvad/mullvadvpn/lib/shared/DeviceRepository.kt b/android/lib/shared/src/main/kotlin/net/mullvad/mullvadvpn/lib/shared/DeviceRepository.kt
index f518dc02d1..1c971e8069 100644
--- a/android/lib/shared/src/main/kotlin/net/mullvad/mullvadvpn/lib/shared/DeviceRepository.kt
+++ b/android/lib/shared/src/main/kotlin/net/mullvad/mullvadvpn/lib/shared/DeviceRepository.kt
@@ -1,5 +1,6 @@
package net.mullvad.mullvadvpn.lib.shared
+import android.util.Log
import arrow.core.Either
import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.CoroutineScope
@@ -33,4 +34,9 @@ class DeviceRepository(
suspend fun deviceList(accountNumber: AccountNumber): Either<GetDeviceListError, List<Device>> =
managementService.getDeviceList(accountNumber)
+
+ suspend fun updateDevice() {
+ Log.d("mullvad", "Update device")
+ managementService.updateDevice()
+ }
}