diff options
| author | Kalle Lindström <karl.lindstrom@mullvad.net> | 2024-10-04 12:03:06 +0200 |
|---|---|---|
| committer | David Göransson <david.goransson@mullvad.net> | 2024-10-07 08:34:52 +0200 |
| commit | cd084f800055a344262e5100d24ebeb500860e83 (patch) | |
| tree | 5b5d00686dd2e4241d99aefb1d80ab2035b8ff81 /android/app | |
| parent | 2912d6f8c9b535711a98a52e0c1285f4db6d6a48 (diff) | |
| download | mullvadvpn-cd084f800055a344262e5100d24ebeb500860e83.tar.xz mullvadvpn-cd084f800055a344262e5100d24ebeb500860e83.zip | |
Use Duration instead of Period
Diffstat (limited to 'android/app')
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) { |
