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