diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/components/transfer/TransferItem.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/components/transfer/TransferItem.kt
index 0aafd71db..50f42c64a 100644
--- a/app/src/main/java/com/infomaniak/swisstransfer/ui/components/transfer/TransferItem.kt
+++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/components/transfer/TransferItem.kt
@@ -43,6 +43,7 @@ import com.infomaniak.swisstransfer.ui.theme.Margin
import com.infomaniak.swisstransfer.ui.theme.SwissTransferTheme
import com.infomaniak.swisstransfer.ui.utils.HumanReadableSizeUtils
import com.infomaniak.swisstransfer.ui.utils.PreviewLightAndDark
+import com.infomaniak.swisstransfer.ui.utils.getFormattedExpiry
import com.infomaniak.swisstransfer.ui.utils.isExpired
@OptIn(ExperimentalLayoutApi::class)
@@ -60,7 +61,7 @@ fun TransferItem(
val (expiryText, expiryColor) = if (transfer.isExpired) {
stringResource(R.string.transferExpired) to SwissTransferTheme.materialColors.error
} else {
- stringResource(R.string.expiresIn, transfer.expiresInDays) to SwissTransferTheme.colors.secondaryTextColor
+ transfer.getFormattedExpiry() to SwissTransferTheme.colors.secondaryTextColor
}
val border = if (isSelected()) {
BorderStroke(width = Dimens.BorderWidth, color = SwissTransferTheme.colors.transferListStroke)
diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/main/transferdetails/components/TransferInfo.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/main/transferdetails/components/TransferInfo.kt
index 34f11bb7c..b22628f4c 100644
--- a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/main/transferdetails/components/TransferInfo.kt
+++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/main/transferdetails/components/TransferInfo.kt
@@ -46,13 +46,13 @@ import com.infomaniak.swisstransfer.ui.theme.Margin
import com.infomaniak.swisstransfer.ui.theme.SwissTransferTheme
import com.infomaniak.swisstransfer.ui.utils.HumanReadableSizeUtils
import com.infomaniak.swisstransfer.ui.utils.PreviewLightAndDark
+import com.infomaniak.swisstransfer.ui.utils.getFormattedExpiry
@Composable
fun TransferInfo(getTransfer: () -> TransferUi) {
val filesCount by remember { derivedStateOf { getTransfer().files.count() } }
val downloadedCount by remember { derivedStateOf { getTransfer().downloadLimit - getTransfer().downloadLeft } }
- val expiresInDays by remember { derivedStateOf { getTransfer().expiresInDays } }
val downloadLimit by remember { derivedStateOf { getTransfer().downloadLimit } }
val sizeUploaded by remember { derivedStateOf { getTransfer().sizeUploaded } }
@@ -74,7 +74,7 @@ fun TransferInfo(getTransfer: () -> TransferUi) {
IconText(
icon = AppIcons.Clock,
- text = stringResource(R.string.expiresIn, expiresInDays),
+ text = getTransfer().getFormattedExpiry(),
)
HorizontalDivider(modifier = Modifier.padding(vertical = Margin.Medium))
diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/utils/TransferUiExt.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/utils/TransferUiExt.kt
index 5ef5d1457..bf62aada2 100644
--- a/app/src/main/java/com/infomaniak/swisstransfer/ui/utils/TransferUiExt.kt
+++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/utils/TransferUiExt.kt
@@ -17,6 +17,16 @@
*/
package com.infomaniak.swisstransfer.ui.utils
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.res.stringResource
import com.infomaniak.multiplatform_swisstransfer.common.interfaces.ui.TransferUi
+import com.infomaniak.swisstransfer.R
val TransferUi.isExpired: Boolean get() = expiresInDays < 0 || downloadLeft <= 0
+
+@Composable
+fun TransferUi.getFormattedExpiry(): String = when (expiresInDays) {
+ 0 -> stringResource(R.string.expiresToday)
+ 1 -> stringResource(R.string.expiresTomorrow)
+ else -> stringResource(R.string.expiresIn, expiresInDays)
+}
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index 5067e4314..73d8e2c25 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -38,6 +38,8 @@
Das Passwort muss zwischen 6 und 25 Zeichen lang sein
Ein Fehler ist aufgetreten
Verfällt in %d Tagen
+ Läuft heute ab
+ Läuft morgen ab
- %d Datei
- %d Dateien
diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml
index d1a9bed43..b06540092 100644
--- a/app/src/main/res/values-es/strings.xml
+++ b/app/src/main/res/values-es/strings.xml
@@ -38,6 +38,8 @@
La contraseña debe tener entre 6 y 25 caracteres
Se ha producido un error
Caduca en %d días
+ Caduca hoy
+ Expira mañana
- %d archivo
- %d archivos
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index ae746c4b5..a32c8b8fc 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -38,6 +38,8 @@
Le mot de passe doit comporter entre 6 et 25 caractères
Une erreur est survenue
Expire dans %d jours
+ Expire aujourd’hui
+ Expire demain
- %d fichier
- %d fichiers
diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml
index ccd469d63..63ca9a8a2 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -38,6 +38,8 @@
La password deve essere compresa tra 6 e 24 caratteri
Si è verificato un errore
Scade tra %d giorni
+ Scade oggi
+ Scade domani
- %d file
- %d file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 72ea7c43e..451c12f49 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -42,6 +42,8 @@
The password must be between 6 and 25 characters
An error has occurred
Expires in %d days
+ Expires today
+ Expires tomorrow
- %d file
- %d files