From 608d576b8d370298814c0e3820a583c67b1eabd1 Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 19 Sep 2022 22:41:59 +0300 Subject: [PATCH 1/2] Updated on 2026-08-14 --- .../com/tangem/tap/common/extensions/UI.kt | 28 +++++++++++-------- .../wallet/ui/wallet/MultiWalletView.kt | 6 ++-- .../wallet/ui/wallet/SingleWalletView.kt | 3 +- .../main/res/values-de/strings_plurals.xml | 6 ++++ .../main/res/values-fr/strings_plurals.xml | 7 +++++ .../main/res/values-it/strings_plurals.xml | 6 ++++ app/src/main/res/values-ru/strings.xml | 1 - .../main/res/values-ru/strings_plurals.xml | 8 ++++++ app/src/main/res/values/strings_plurals.xml | 8 ++++++ .../main/res/values/strings_untranslated.xml | 1 - 10 files changed, 57 insertions(+), 17 deletions(-) create mode 100644 app/src/main/res/values-de/strings_plurals.xml create mode 100644 app/src/main/res/values-fr/strings_plurals.xml create mode 100644 app/src/main/res/values-it/strings_plurals.xml create mode 100644 app/src/main/res/values-ru/strings_plurals.xml create mode 100644 app/src/main/res/values/strings_plurals.xml 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.xml b/app/src/main/res/values-de/strings_plurals.xml new file mode 100644 index 0000000000..fa02d656a3 --- /dev/null +++ b/app/src/main/res/values-de/strings_plurals.xml @@ -0,0 +1,6 @@ + + + %d card + %d cards + + diff --git a/app/src/main/res/values-fr/strings_plurals.xml b/app/src/main/res/values-fr/strings_plurals.xml new file mode 100644 index 0000000000..f7ce3f895b --- /dev/null +++ b/app/src/main/res/values-fr/strings_plurals.xml @@ -0,0 +1,7 @@ + + + %d card + %d cards + %d cards + + diff --git a/app/src/main/res/values-it/strings_plurals.xml b/app/src/main/res/values-it/strings_plurals.xml new file mode 100644 index 0000000000..fa02d656a3 --- /dev/null +++ b/app/src/main/res/values-it/strings_plurals.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.xml b/app/src/main/res/values-ru/strings_plurals.xml new file mode 100644 index 0000000000..53720a4bb6 --- /dev/null +++ b/app/src/main/res/values-ru/strings_plurals.xml @@ -0,0 +1,8 @@ + + + %d карта + %d карты + %d карт + %d карт + + diff --git a/app/src/main/res/values/strings_plurals.xml b/app/src/main/res/values/strings_plurals.xml new file mode 100644 index 0000000000..530ada144e --- /dev/null +++ b/app/src/main/res/values/strings_plurals.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 From 6510ea4caf79765f9275d15a34932619f5c399e0 Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 19 Sep 2022 22:44:53 +0300 Subject: [PATCH 2/2] Updated on 2026-08-14 --- .../values-de/{strings_plurals.xml => strings_plurals_final.xml} | 0 .../values-fr/{strings_plurals.xml => strings_plurals_final.xml} | 0 .../values-it/{strings_plurals.xml => strings_plurals_final.xml} | 0 .../values-ru/{strings_plurals.xml => strings_plurals_final.xml} | 0 .../res/values/{strings_plurals.xml => strings_plurals_final.xml} | 0 5 files changed, 0 insertions(+), 0 deletions(-) rename app/src/main/res/values-de/{strings_plurals.xml => strings_plurals_final.xml} (100%) rename app/src/main/res/values-fr/{strings_plurals.xml => strings_plurals_final.xml} (100%) rename app/src/main/res/values-it/{strings_plurals.xml => strings_plurals_final.xml} (100%) rename app/src/main/res/values-ru/{strings_plurals.xml => strings_plurals_final.xml} (100%) rename app/src/main/res/values/{strings_plurals.xml => strings_plurals_final.xml} (100%) diff --git a/app/src/main/res/values-de/strings_plurals.xml b/app/src/main/res/values-de/strings_plurals_final.xml similarity index 100% rename from app/src/main/res/values-de/strings_plurals.xml rename to app/src/main/res/values-de/strings_plurals_final.xml diff --git a/app/src/main/res/values-fr/strings_plurals.xml b/app/src/main/res/values-fr/strings_plurals_final.xml similarity index 100% rename from app/src/main/res/values-fr/strings_plurals.xml rename to app/src/main/res/values-fr/strings_plurals_final.xml diff --git a/app/src/main/res/values-it/strings_plurals.xml b/app/src/main/res/values-it/strings_plurals_final.xml similarity index 100% rename from app/src/main/res/values-it/strings_plurals.xml rename to app/src/main/res/values-it/strings_plurals_final.xml diff --git a/app/src/main/res/values-ru/strings_plurals.xml b/app/src/main/res/values-ru/strings_plurals_final.xml similarity index 100% rename from app/src/main/res/values-ru/strings_plurals.xml rename to app/src/main/res/values-ru/strings_plurals_final.xml diff --git a/app/src/main/res/values/strings_plurals.xml b/app/src/main/res/values/strings_plurals_final.xml similarity index 100% rename from app/src/main/res/values/strings_plurals.xml rename to app/src/main/res/values/strings_plurals_final.xml