diff --git a/app/src/main/java/com/tangem/tap/common/extensions/UI.kt b/app/src/main/java/com/tangem/tap/common/extensions/UI.kt
index 617f69c36d..4be902ebf7 100644
--- a/app/src/main/java/com/tangem/tap/common/extensions/UI.kt
+++ b/app/src/main/java/com/tangem/tap/common/extensions/UI.kt
@@ -1,7 +1,12 @@
package com.tangem.tap.common.extensions
import android.app.Activity
-import android.content.*
+import android.content.ActivityNotFoundException
+import android.content.ClipData
+import android.content.ClipboardManager
+import android.content.Context
+import android.content.ContextWrapper
+import android.content.Intent
import android.content.res.Resources
import android.graphics.drawable.Drawable
import android.os.Build
@@ -21,7 +26,6 @@ import androidx.fragment.app.Fragment
import com.google.android.material.card.MaterialCardView
import com.tangem.common.extensions.VoidCallback
-
fun Fragment.getDrawable(@DrawableRes drawableResId: Int): Drawable? {
return ContextCompat.getDrawable(requireContext(), drawableResId)
}
@@ -53,6 +57,10 @@ fun View.getString(@StringRes id: Int, vararg formatArgs: String): String {
return context.getString(id, *formatArgs)
}
+fun View.getQuantityString(@StringRes id: Int, quantity: Int): String {
+ return context.resources.getQuantityString(id, quantity, quantity)
+}
+
fun View.getResourceName(): String {
return try {
resources.getResourceEntryName(id)
@@ -89,15 +97,13 @@ fun View.invisible(invisible: Boolean = true, invokeBeforeStateChanged: (() -> U
} else {
this.show(invokeBeforeStateChanged)
}
-
}
fun Context.dpToPixels(dp: Int): Int =
TypedValue.applyDimension(
- TypedValue.COMPLEX_UNIT_DIP, dp.toFloat(), this.resources.displayMetrics
+ TypedValue.COMPLEX_UNIT_DIP, dp.toFloat(), this.resources.displayMetrics,
).toInt()
-
fun Context.pixelsToDp(pixels: Int): Int {
return (pixels.toFloat() /
(resources.displayMetrics.densityDpi.toFloat() / DisplayMetrics.DENSITY_DEFAULT))
@@ -107,7 +113,6 @@ fun Context.pixelsToDp(pixels: Int): Int {
fun Context.dpToPixels(dp: Float): Float =
TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, this.resources.displayMetrics)
-
fun Context.pixelsToDp(pixels: Float): Float =
(pixels / (resources.displayMetrics.densityDpi.toFloat() / DisplayMetrics.DENSITY_DEFAULT))
@@ -118,14 +123,14 @@ fun MaterialCardView.setMargins(
marginLeftDp: Int = 16,
marginTopDp: Int = 8,
marginRightDp: Int = 16,
- marginBottomDp: Int = 8
+ marginBottomDp: Int = 8,
) {
val params = this.layoutParams
(params as ViewGroup.MarginLayoutParams).setMargins(
context.dpToPixels(marginLeftDp),
context.dpToPixels(marginTopDp),
context.dpToPixels(marginRightDp),
- context.dpToPixels(marginBottomDp)
+ context.dpToPixels(marginBottomDp),
)
this.layoutParams = params
}
@@ -144,7 +149,8 @@ fun Activity.setSystemBarTextColor(setTextDark: Boolean) {
}
fun View.hideKeyboard() {
- val inputMethodManager = context.getSystemService(android.content.Context.INPUT_METHOD_SERVICE) as? InputMethodManager
+ val inputMethodManager =
+ context.getSystemService(android.content.Context.INPUT_METHOD_SERVICE) as? InputMethodManager
inputMethodManager?.hideSoftInputFromWindow(this.windowToken, 0)
}
@@ -182,7 +188,7 @@ fun Context.safeStartActivity(
intent: Intent,
options: Bundle? = null,
fallback: ((ActivityNotFoundException) -> Unit)? = null,
- finally: VoidCallback? = null
+ finally: VoidCallback? = null,
) {
try {
this.startActivity(intent, options)
@@ -200,7 +206,7 @@ fun View.getString(resId: Int, vararg formatArgs: Any?): String {
fun View.animateVisibility(
show: Boolean,
durationMillis: Long = SHORT_ANIMATION_DURATION,
- hiddenVisibility: Int = View.GONE
+ hiddenVisibility: Int = View.GONE,
) {
if (show) {
this.animate()
diff --git a/app/src/main/java/com/tangem/tap/features/wallet/ui/wallet/MultiWalletView.kt b/app/src/main/java/com/tangem/tap/features/wallet/ui/wallet/MultiWalletView.kt
index 73504ddbfc..19c1eb1c8a 100644
--- a/app/src/main/java/com/tangem/tap/features/wallet/ui/wallet/MultiWalletView.kt
+++ b/app/src/main/java/com/tangem/tap/features/wallet/ui/wallet/MultiWalletView.kt
@@ -8,6 +8,7 @@ import com.tangem.domain.common.TapWorkarounds.derivationStyle
import com.tangem.domain.common.TapWorkarounds.isTestCard
import com.tangem.tap.common.extensions.animateVisibility
import com.tangem.tap.common.extensions.formatAmountAsSpannedString
+import com.tangem.tap.common.extensions.getQuantityString
import com.tangem.tap.common.extensions.hide
import com.tangem.tap.common.extensions.show
import com.tangem.tap.common.redux.navigation.AppScreen
@@ -27,7 +28,9 @@ import com.tangem.wallet.R
import com.tangem.wallet.databinding.FragmentWalletBinding
class MultiWalletView : WalletView() {
+
private lateinit var walletsAdapter: WalletAdapter
+
override fun changeWalletView(fragment: WalletFragment, binding: FragmentWalletBinding) {
setFragment(fragment, binding)
onViewCreated()
@@ -51,8 +54,7 @@ class MultiWalletView : WalletView() {
if (card?.backupStatus is Card.BackupStatus.Active) {
val cardCount = (card.backupStatus as Card.BackupStatus.Active).cardCount + 1
tvTwinCardNumber.show()
- tvTwinCardNumber.text =
- fragment?.getString(R.string.wallet_twins_chip_format, 1, cardCount)
+ tvTwinCardNumber.text = tvTwinCardNumber.getQuantityString(R.plurals.card_label_card_count, cardCount)
} else {
tvTwinCardNumber.hide()
}
diff --git a/app/src/main/java/com/tangem/tap/features/wallet/ui/wallet/SingleWalletView.kt b/app/src/main/java/com/tangem/tap/features/wallet/ui/wallet/SingleWalletView.kt
index ab271db8fb..9b8a2e759f 100644
--- a/app/src/main/java/com/tangem/tap/features/wallet/ui/wallet/SingleWalletView.kt
+++ b/app/src/main/java/com/tangem/tap/features/wallet/ui/wallet/SingleWalletView.kt
@@ -89,8 +89,7 @@ class SingleWalletView : WalletView() {
TwinCardNumber.First -> 1
TwinCardNumber.Second -> 2
}
- tvTwinCardNumber.text =
- fragment?.getString(R.string.wallet_twins_chip_format, number, 2)
+ tvTwinCardNumber.text = fragment?.getString(R.string.wallet_twins_chip_format, number, 2)
}
if (twinCardsState?.cardNumber == null) {
tvTwinCardNumber.hide()
diff --git a/app/src/main/res/values-de/strings_plurals_final.xml b/app/src/main/res/values-de/strings_plurals_final.xml
new file mode 100644
index 0000000000..fa02d656a3
--- /dev/null
+++ b/app/src/main/res/values-de/strings_plurals_final.xml
@@ -0,0 +1,6 @@
+
+
+ - %d card
+ - %d cards
+
+
diff --git a/app/src/main/res/values-fr/strings_plurals_final.xml b/app/src/main/res/values-fr/strings_plurals_final.xml
new file mode 100644
index 0000000000..f7ce3f895b
--- /dev/null
+++ b/app/src/main/res/values-fr/strings_plurals_final.xml
@@ -0,0 +1,7 @@
+
+
+ - %d card
+ - %d cards
+ - %d cards
+
+
diff --git a/app/src/main/res/values-it/strings_plurals_final.xml b/app/src/main/res/values-it/strings_plurals_final.xml
new file mode 100644
index 0000000000..fa02d656a3
--- /dev/null
+++ b/app/src/main/res/values-it/strings_plurals_final.xml
@@ -0,0 +1,6 @@
+
+
+ - %d card
+ - %d cards
+
+
diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml
index 9c7aef46d4..ca3e7e93f1 100644
--- a/app/src/main/res/values-ru/strings.xml
+++ b/app/src/main/res/values-ru/strings.xml
@@ -314,7 +314,6 @@
Основная карта
Сканировать основную карту
Перейти к моему кошельку
- Карта %1s из %2s
Отправка %s
Подготовьте резервную карту с номером %s
Подготовьте основную карту с номером %s
diff --git a/app/src/main/res/values-ru/strings_plurals_final.xml b/app/src/main/res/values-ru/strings_plurals_final.xml
new file mode 100644
index 0000000000..53720a4bb6
--- /dev/null
+++ b/app/src/main/res/values-ru/strings_plurals_final.xml
@@ -0,0 +1,8 @@
+
+
+ - %d карта
+ - %d карты
+ - %d карт
+ - %d карт
+
+
diff --git a/app/src/main/res/values/strings_plurals_final.xml b/app/src/main/res/values/strings_plurals_final.xml
new file mode 100644
index 0000000000..530ada144e
--- /dev/null
+++ b/app/src/main/res/values/strings_plurals_final.xml
@@ -0,0 +1,8 @@
+
+
+ - %d card
+ - %d card
+ - %d cards
+ - %d cards
+
+
diff --git a/app/src/main/res/values/strings_untranslated.xml b/app/src/main/res/values/strings_untranslated.xml
index cc9e1a3cf3..afdc44412f 100644
--- a/app/src/main/res/values/strings_untranslated.xml
+++ b/app/src/main/res/values/strings_untranslated.xml
@@ -286,7 +286,6 @@
Primary card
Scan the primary card
Continue to my wallet
- Card %1s of %2s
Sending %s
Prepare the backup card with number %s
Prepare the primary card with number %s