summaryrefslogtreecommitdiffhomepage
path: root/android/app
diff options
context:
space:
mode:
authorKalle Lindström <karl.lindstrom@mullvad.net>2024-10-04 12:03:06 +0200
committerDavid Göransson <david.goransson@mullvad.net>2024-10-07 08:34:52 +0200
commitcd084f800055a344262e5100d24ebeb500860e83 (patch)
tree5b5d00686dd2e4241d99aefb1d80ab2035b8ff81 /android/app
parent2912d6f8c9b535711a98a52e0c1285f4db6d6a48 (diff)
downloadmullvadvpn-cd084f800055a344262e5100d24ebeb500860e83.tar.xz
mullvadvpn-cd084f800055a344262e5100d24ebeb500860e83.zip
Use Duration instead of Period
Diffstat (limited to 'android/app')
-rw-r--r--android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/ConnectScreenTest.kt10
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/notificationbanner/NotificationBanner.kt4
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/extensions/ResourcesExtensions.kt21
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/repository/InAppNotificationController.kt4
-rw-r--r--android/app/src/test/kotlin/net/mullvad/mullvadvpn/InAppNotificationControllerTest.kt4
-rw-r--r--android/app/src/test/kotlin/net/mullvad/mullvadvpn/usecase/AccountExpiryInAppNotificationUseCaseTest.kt11
6 files changed, 29 insertions, 25 deletions
diff --git a/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/ConnectScreenTest.kt b/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/ConnectScreenTest.kt
index ea0d79e319..f55e07c1cf 100644
--- a/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/ConnectScreenTest.kt
+++ b/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/ConnectScreenTest.kt
@@ -29,7 +29,7 @@ import net.mullvad.mullvadvpn.lib.model.TunnelState
import net.mullvad.mullvadvpn.repository.InAppNotification
import net.mullvad.mullvadvpn.ui.VersionInfo
import org.joda.time.DateTime
-import org.joda.time.Period
+import org.joda.time.Duration
import org.junit.jupiter.api.AfterEach
import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.Test
@@ -572,7 +572,9 @@ class ConnectScreenTest {
deviceName = "",
daysLeftUntilExpiry = null,
inAppNotification =
- InAppNotification.AccountExpiry(Period(DateTime.now(), expiryDate)),
+ InAppNotification.AccountExpiry(
+ Duration(DateTime.now(), expiryDate)
+ ),
isPlayBuild = false,
)
)
@@ -633,7 +635,9 @@ class ConnectScreenTest {
deviceName = "",
daysLeftUntilExpiry = null,
inAppNotification =
- InAppNotification.AccountExpiry(Period(DateTime.now(), expiryDate)),
+ InAppNotification.AccountExpiry(
+ Duration(DateTime.now(), expiryDate)
+ ),
isPlayBuild = false,
),
)
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/notificationbanner/NotificationBanner.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/notificationbanner/NotificationBanner.kt
index d20d9cfcd9..a2485f2e99 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/notificationbanner/NotificationBanner.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/notificationbanner/NotificationBanner.kt
@@ -36,7 +36,7 @@ import net.mullvad.mullvadvpn.lib.theme.color.warning
import net.mullvad.mullvadvpn.repository.InAppNotification
import net.mullvad.mullvadvpn.ui.VersionInfo
import net.mullvad.mullvadvpn.ui.notification.StatusLevel
-import org.joda.time.Period
+import org.joda.time.Duration
@Preview
@Composable
@@ -48,7 +48,7 @@ private fun PreviewNotificationBanner() {
InAppNotification.UnsupportedVersion(
versionInfo = VersionInfo(currentVersion = "1.0", isSupported = false)
),
- InAppNotification.AccountExpiry(expiry = Period.ZERO),
+ InAppNotification.AccountExpiry(expiry = Duration.ZERO),
InAppNotification.TunnelStateBlocked,
InAppNotification.NewDevice("Courageous Turtle"),
InAppNotification.TunnelStateError(
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/extensions/ResourcesExtensions.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/extensions/ResourcesExtensions.kt
index 3291542297..11b41dd27a 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/extensions/ResourcesExtensions.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/extensions/ResourcesExtensions.kt
@@ -2,17 +2,20 @@ package net.mullvad.mullvadvpn.compose.extensions
import android.content.res.Resources
import net.mullvad.mullvadvpn.R
+import org.joda.time.DateTime
+import org.joda.time.Duration
import org.joda.time.Period
-fun Resources.getExpiryQuantityString(accountExpiry: Period): String {
- return if (accountExpiry.isNegative() || accountExpiry == Period.ZERO) {
+fun Resources.getExpiryQuantityString(accountExpiry: Duration): String {
+ val expiryPeriod = Period(DateTime.now(), accountExpiry)
+ return if (accountExpiry.millis <= 0) {
getString(R.string.out_of_time)
- } else if (accountExpiry.years > 0) {
- getRemainingText(this, R.plurals.years_left, accountExpiry.years)
- } else if (accountExpiry.months >= 3) {
- getRemainingText(this, R.plurals.months_left, accountExpiry.months)
- } else if (accountExpiry.months > 0 || accountExpiry.days >= 1) {
- getRemainingText(this, R.plurals.days_left, accountExpiry.days)
+ } else if (expiryPeriod.years > 0) {
+ getRemainingText(this, R.plurals.years_left, expiryPeriod.years)
+ } else if (expiryPeriod.months >= 3) {
+ getRemainingText(this, R.plurals.months_left, expiryPeriod.months)
+ } else if (expiryPeriod.months > 0 || expiryPeriod.days >= 1) {
+ getRemainingText(this, R.plurals.days_left, expiryPeriod.days)
} else {
getString(R.string.less_than_a_day_left)
}
@@ -21,5 +24,3 @@ fun Resources.getExpiryQuantityString(accountExpiry: Period): String {
private fun getRemainingText(resources: Resources, pluralId: Int, quantity: Int): String {
return resources.getQuantityString(pluralId, quantity, quantity)
}
-
-fun Period.isNegative() = toStandardDuration().millis < 0
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/repository/InAppNotificationController.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/repository/InAppNotificationController.kt
index 45cfdd2bb1..1608e3689e 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/repository/InAppNotificationController.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/repository/InAppNotificationController.kt
@@ -11,7 +11,7 @@ import net.mullvad.mullvadvpn.usecase.AccountExpiryInAppNotificationUseCase
import net.mullvad.mullvadvpn.usecase.NewDeviceNotificationUseCase
import net.mullvad.mullvadvpn.usecase.TunnelStateNotificationUseCase
import net.mullvad.mullvadvpn.usecase.VersionNotificationUseCase
-import org.joda.time.Period
+import org.joda.time.Duration
enum class StatusLevel {
Error,
@@ -38,7 +38,7 @@ sealed class InAppNotification {
override val priority: Long = 999
}
- data class AccountExpiry(val expiry: Period) : InAppNotification() {
+ data class AccountExpiry(val expiry: Duration) : InAppNotification() {
override val statusLevel = StatusLevel.Warning
override val priority: Long = 1001
}
diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/InAppNotificationControllerTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/InAppNotificationControllerTest.kt
index 07c6c2ed13..74b599da97 100644
--- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/InAppNotificationControllerTest.kt
+++ b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/InAppNotificationControllerTest.kt
@@ -20,7 +20,7 @@ import net.mullvad.mullvadvpn.usecase.AccountExpiryInAppNotificationUseCase
import net.mullvad.mullvadvpn.usecase.NewDeviceNotificationUseCase
import net.mullvad.mullvadvpn.usecase.TunnelStateNotificationUseCase
import net.mullvad.mullvadvpn.usecase.VersionNotificationUseCase
-import org.joda.time.Period
+import org.joda.time.Duration
import org.junit.jupiter.api.AfterEach
import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.Test
@@ -81,7 +81,7 @@ class InAppNotificationControllerTest {
val unsupportedVersion = InAppNotification.UnsupportedVersion(mockk())
versionNotifications.value = listOf(unsupportedVersion)
- val accountExpiry = InAppNotification.AccountExpiry(Period.ZERO)
+ val accountExpiry = InAppNotification.AccountExpiry(Duration.ZERO)
accountExpiryNotifications.value = listOf(accountExpiry)
inAppNotificationController.notifications.test {
diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/usecase/AccountExpiryInAppNotificationUseCaseTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/usecase/AccountExpiryInAppNotificationUseCaseTest.kt
index 344d2fe701..0749cc62b4 100644
--- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/usecase/AccountExpiryInAppNotificationUseCaseTest.kt
+++ b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/usecase/AccountExpiryInAppNotificationUseCaseTest.kt
@@ -117,7 +117,7 @@ class AccountExpiryInAppNotificationUseCaseTest {
advanceTimeBy(ACCOUNT_EXPIRY_IN_APP_NOTIFICATION_UPDATE_INTERVAL.millis)
// Advance past the delay after the while loop:
advanceTimeBy(ACCOUNT_EXPIRY_IN_APP_NOTIFICATION_UPDATE_INTERVAL.millis)
- assertEquals(Period.ZERO, getExpiryNotificationPeriod(expectMostRecentItem()))
+ assertEquals(Duration.ZERO, getExpiryNotificationDuration(expectMostRecentItem()))
expectNoEvents()
}
}
@@ -134,16 +134,15 @@ class AccountExpiryInAppNotificationUseCaseTest {
expiry: DateTime,
notifications: List<InAppNotification>,
) {
- val notificationPeriod = getExpiryNotificationPeriod(notifications)
+ val notificationDuration = getExpiryNotificationDuration(notifications)
val periodNow = Period(DateTime.now(), expiry)
- assertTrue(periodNow.toStandardDuration() <= notificationPeriod.toStandardDuration())
+ assertTrue(periodNow.toStandardDuration() <= notificationDuration)
assertTrue(
- periodNow.toStandardDuration().plus(Duration.standardSeconds(5)) >
- notificationPeriod.toStandardDuration()
+ periodNow.toStandardDuration().plus(Duration.standardSeconds(5)) > notificationDuration
)
}
- private fun getExpiryNotificationPeriod(notifications: List<InAppNotification>): Period {
+ private fun getExpiryNotificationDuration(notifications: List<InAppNotification>): Duration {
assertTrue(notifications.size == 1, "Expected a single notification")
val n = notifications[0]
if (n !is InAppNotification.AccountExpiry) {