diff --git a/core/res/src/main/res/values-de/strings.xml b/core/res/src/main/res/values-de/strings.xml
index cc74abea34..d7bd63adac 100644
--- a/core/res/src/main/res/values-de/strings.xml
+++ b/core/res/src/main/res/values-de/strings.xml
@@ -100,6 +100,7 @@
Aktivieren
Aktiviert
Fehler
+ Umtausch
Erkunden
Transaktionsverlauf einsehen
Explorer
@@ -878,6 +879,8 @@
Auf dieser Karte sind nur noch %s Unterschriften übrig. Du musst dein gesamtes Guthaben abheben.
Geringe Anzahl von Unterschriften
Token in verschiedenen Netzwerken können unterschiedliche Adressen haben. Überprüfe bei der Überweisung noch einmal, ob deine Adresse mit der des Netzwerks übereinstimmt.
+ MATIC wird auf POL migriert. Es gibt jedoch keine Frist, und MATIC wird noch nicht abgeschafft. Du kannst MATIC-Token weiterhin verwenden oder sie über eien Exchange gegen POL tauschen.
+ Migration von MATIC zu POL
- Verwende deine Karte, um eine Adresse für das %d-Netz zu erhalten
- Verwende deine Karte, um mehrere Adressen für die %d-Netzwerke zu erhalten
diff --git a/core/res/src/main/res/values/strings.xml b/core/res/src/main/res/values/strings.xml
index 08e26457c7..86185e2839 100644
--- a/core/res/src/main/res/values/strings.xml
+++ b/core/res/src/main/res/values/strings.xml
@@ -114,6 +114,10 @@
Go to provider
Go to token
Import
+
+ - in %d day
+ - in %d days
+
Later
Locked
Main network
@@ -656,12 +660,12 @@
Market rating
Metrics
Minimum Requirement
- No rewards to claim
+ No rewards
Reward claiming
Method of receiving staking rewards.\nIt can be either automatic, where the reward is credited to your address, or manual, where you need to withdraw the reward by creating a transaction to receive it.
Reward schedule
This is a schedule that determines when participants in staking receive their rewards.
- Rewards to claim: %s
+ Rewards: %s
Staking %s
Unbonding Period
The period you must wait after requesting to withdraw funds from staking before the tokens become available.
@@ -674,7 +678,8 @@
Staking allows you to earn %1$s. Your staking rewards arrive every month.
Staking allows you to earn %1$s. Your staking rewards arrive every week.
Earn staking rewards
- Rewards stop accruing immediately after you unstake. The unstaking process takes %s.
+ Rewards stop accruing immediately after you start unstaking. The unstaking process takes %s.
+ Ready to withdraw
Rebond
Restake
Restake rewards
@@ -695,6 +700,7 @@
Stake more
Stake %s
Unstake %s
+ Unbonding
Unlock locked
Unstaked
Check unstaked to claim your assets
@@ -876,6 +882,8 @@
Only %s signatures are left on this card. You must withdraw all of your funds.
Low signature count
Tokens on different networks can have different addresses. Double-check that your address matches the network when you transfer funds.
+ MATIC is being migrated to POL. However there is no deadline set and MATIC isn\'t being deprecated yet. You can safely continue using MATIC token or use exchanges to swap it for POL.
+ MATIC to POL Migration
- Use your card to get an address for %d network
- Use your card to get an addresses for %d networks
diff --git a/data/staking/src/main/java/com/tangem/data/staking/converters/YieldBalanceConverter.kt b/data/staking/src/main/java/com/tangem/data/staking/converters/YieldBalanceConverter.kt
index b1c9d7d47c..ec86b52e73 100644
--- a/data/staking/src/main/java/com/tangem/data/staking/converters/YieldBalanceConverter.kt
+++ b/data/staking/src/main/java/com/tangem/data/staking/converters/YieldBalanceConverter.kt
@@ -26,6 +26,7 @@ internal class YieldBalanceConverter : Converter,
)
diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/converters/YieldBalancesConverter.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/converters/YieldBalancesConverter.kt
index 85b64c0645..9be3086028 100644
--- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/converters/YieldBalancesConverter.kt
+++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/converters/YieldBalancesConverter.kt
@@ -1,10 +1,7 @@
package com.tangem.features.staking.impl.presentation.state.converters
import com.tangem.common.extensions.isZero
-import com.tangem.core.ui.extensions.pluralReference
-import com.tangem.core.ui.extensions.resourceReference
-import com.tangem.core.ui.extensions.stringReference
-import com.tangem.core.ui.extensions.wrappedList
+import com.tangem.core.ui.extensions.*
import com.tangem.core.ui.utils.BigDecimalFormatter
import com.tangem.core.ui.utils.parseBigDecimal
import com.tangem.domain.appcurrency.model.AppCurrency
@@ -18,6 +15,8 @@ import com.tangem.utils.Provider
import com.tangem.utils.converter.Converter
import com.tangem.utils.isNullOrZero
import kotlinx.collections.immutable.toPersistentList
+import org.joda.time.DateTime
+import java.util.Calendar
internal class YieldBalancesConverter(
private val cryptoCurrencyStatusProvider: Provider,
@@ -88,7 +87,7 @@ internal class YieldBalancesConverter(
}
val cryptoAmount = balance.amount
val fiatAmount = cryptoCurrencyStatus.value.fiatRate?.times(cryptoAmount)
- val unbondingPeriod = yield.metadata.cooldownPeriod.days
+ val unbonding = getUnbondingDate(balance.date)
validator?.let {
BalanceState(
validator = validator,
@@ -108,11 +107,7 @@ internal class YieldBalancesConverter(
),
),
rawCurrencyId = balance.rawCurrencyId,
- unbondingPeriod = pluralReference(
- id = R.plurals.common_days,
- count = unbondingPeriod,
- formatArgs = wrappedList(unbondingPeriod),
- ),
+ unbondingPeriod = unbonding,
pendingActions = balance.pendingActions.toPersistentList(),
)
}
@@ -153,4 +148,32 @@ internal class YieldBalancesConverter(
BalanceType.UNKNOWN,
-> false
}
+
+ private fun getUnbondingDate(date: DateTime?): TextReference {
+ val now = DateTime.now().millis
+ val nowCalendar = Calendar.getInstance()
+ nowCalendar.resetHours()
+
+ val endDate = Calendar.getInstance()
+ endDate.timeInMillis = date?.millis ?: now
+ endDate.resetHours()
+
+ val days = ((endDate.timeInMillis - nowCalendar.timeInMillis) / DAY_IN_MILLIS).toInt()
+ return if (days > 0) {
+ pluralReference(R.plurals.common_in_days, days, wrappedList(days))
+ } else {
+ resourceReference(R.string.common_today)
+ }
+ }
+
+ private fun Calendar.resetHours() {
+ this[Calendar.HOUR_OF_DAY] = 0
+ this[Calendar.MINUTE] = 0
+ this[Calendar.SECOND] = 0
+ this[Calendar.MILLISECOND] = 0
+ }
+
+ private companion object {
+ const val DAY_IN_MILLIS = 24 * 60 * 60 * 1000
+ }
}
\ No newline at end of file
diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/ui/StakingInitialInfoContent.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/ui/StakingInitialInfoContent.kt
index 6174dcc79c..8bd4543778 100644
--- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/ui/StakingInitialInfoContent.kt
+++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/ui/StakingInitialInfoContent.kt
@@ -232,31 +232,37 @@ private fun ActiveStakingBlock(groups: ImmutableList, onCli
@Composable
private fun getCaption(balanceType: BalanceType, balance: BalanceState): TextReference {
- return if (balanceType == BalanceType.UNSTAKING) {
- combinedReference(
- resourceReference(R.string.staking_details_unbonding_period),
- annotatedReference {
- appendSpace()
- appendColored(
- text = balance.unbondingPeriod.resolveReference(),
- color = TangemTheme.colors.text.accent,
- )
- },
- )
- } else {
- combinedReference(
- resourceReference(R.string.app_name),
- annotatedReference {
- appendSpace()
- appendColored(
- text = BigDecimalFormatter.formatPercent(
- percent = balance.validator.apr.orZero(),
- useAbsoluteValue = true,
- ),
- color = TangemTheme.colors.text.accent,
- )
- },
- )
+ return when (balanceType) {
+ BalanceType.UNSTAKING -> {
+ combinedReference(
+ resourceReference(R.string.staking_unbonding),
+ annotatedReference {
+ appendSpace()
+ appendColored(
+ text = balance.unbondingPeriod.resolveReference(),
+ color = TangemTheme.colors.text.accent,
+ )
+ },
+ )
+ }
+ BalanceType.UNSTAKED -> {
+ resourceReference(R.string.staking_ready_to_withdraw)
+ }
+ else -> {
+ combinedReference(
+ resourceReference(R.string.staking_details_apr),
+ annotatedReference {
+ appendSpace()
+ appendColored(
+ text = BigDecimalFormatter.formatPercent(
+ percent = balance.validator.apr.orZero(),
+ useAbsoluteValue = true,
+ ),
+ color = TangemTheme.colors.text.accent,
+ )
+ },
+ )
+ }
}
}