Updated on 2026-08-14
This commit is contained in:
commit
ca8eaab04b
238 changed files with 1746 additions and 806 deletions
|
|
@ -14,5 +14,13 @@
|
|||
{
|
||||
"name": "REDESIGNED_WALLET_SCREEN_ENABLED",
|
||||
"version": "undefined"
|
||||
},
|
||||
{
|
||||
"name": "1INCH_LEARN_2_EARN_ENABLED",
|
||||
"version": "undefined"
|
||||
},
|
||||
{
|
||||
"name": "REDESIGNED_TOKEN_DETAIL_SCREEN_ENABLED",
|
||||
"version": "undefined"
|
||||
}
|
||||
]
|
||||
]
|
||||
|
|
|
|||
1
core/navigation/.gitignore
vendored
Normal file
1
core/navigation/.gitignore
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
/build
|
||||
14
core/navigation/build.gradle.kts
Normal file
14
core/navigation/build.gradle.kts
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
plugins {
|
||||
alias(deps.plugins.android.library)
|
||||
alias(deps.plugins.kotlin.android)
|
||||
id("configuration")
|
||||
}
|
||||
|
||||
android {
|
||||
namespace = "com.tangem.core.navigation"
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation(deps.material)
|
||||
implementation(deps.reKotlin)
|
||||
}
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
package com.tangem.core.navigation
|
||||
|
||||
import android.view.View
|
||||
import androidx.transition.TransitionSet
|
||||
import java.lang.ref.WeakReference
|
||||
|
||||
/**
|
||||
[REDACTED_AUTHOR]
|
||||
*/
|
||||
data class FragmentShareTransition(
|
||||
val shareElements: List<ShareElement>,
|
||||
val enterTransitionSet: TransitionSet,
|
||||
val exitTransitionSet: TransitionSet,
|
||||
)
|
||||
|
||||
/**
|
||||
* For ease of use, the name is used as transitionName\name into the FragmentTransaction.addSharedElement
|
||||
*/
|
||||
class ShareElement(view: View, name: String? = null) {
|
||||
|
||||
val wView: WeakReference<View>
|
||||
val elementName: String
|
||||
|
||||
init {
|
||||
name?.let { view.transitionName = it }
|
||||
elementName = view.transitionName
|
||||
?: throw UnsupportedOperationException("ShareElement require the name")
|
||||
wView = WeakReference(view)
|
||||
}
|
||||
|
||||
companion object {
|
||||
const val imvFrontCard = "imv_front_card"
|
||||
const val imvBackCard = "imv_back_card"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
package com.tangem.core.navigation
|
||||
|
||||
import android.net.Uri
|
||||
import android.os.Bundle
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import org.rekotlin.Action
|
||||
import java.lang.ref.WeakReference
|
||||
|
||||
sealed class NavigationAction : Action {
|
||||
|
||||
data class NavigateTo(
|
||||
val screen: AppScreen,
|
||||
val fragmentShareTransition: FragmentShareTransition? = null,
|
||||
val addToBackstack: Boolean = true,
|
||||
val bundle: Bundle? = null,
|
||||
) : NavigationAction()
|
||||
|
||||
data class PopBackTo(val screen: AppScreen? = null, val inclusive: Boolean = false) : NavigationAction()
|
||||
|
||||
data class OpenUrl(val url: String) : NavigationAction()
|
||||
|
||||
data class OpenDocument(val url: Uri) : NavigationAction()
|
||||
|
||||
object OpenBiometricsSettings : NavigationAction()
|
||||
|
||||
data class Share(val data: String) : NavigationAction()
|
||||
|
||||
data class ActivityCreated(val activity: WeakReference<AppCompatActivity>) : NavigationAction()
|
||||
|
||||
data class ActivityDestroyed(val activity: WeakReference<AppCompatActivity>) : NavigationAction()
|
||||
}
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
package com.tangem.core.navigation
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import org.rekotlin.StateType
|
||||
import java.lang.ref.WeakReference
|
||||
|
||||
data class NavigationState(
|
||||
val backStack: List<AppScreen> = emptyList(),
|
||||
val activity: WeakReference<AppCompatActivity>? = null,
|
||||
) : StateType
|
||||
|
||||
enum class AppScreen(val isDialogFragment: Boolean = false) {
|
||||
Home,
|
||||
Shop,
|
||||
Disclaimer,
|
||||
OnboardingNote,
|
||||
OnboardingWallet,
|
||||
OnboardingTwins,
|
||||
OnboardingOther,
|
||||
Wallet,
|
||||
WalletDetails,
|
||||
Send,
|
||||
Details,
|
||||
DetailsSecurity,
|
||||
CardSettings,
|
||||
AppSettings,
|
||||
ResetToFactory,
|
||||
AccessCodeRecovery,
|
||||
AddTokens,
|
||||
AddCustomToken,
|
||||
WalletConnectSessions,
|
||||
QrScan,
|
||||
ReferralProgram,
|
||||
Swap,
|
||||
Welcome,
|
||||
SaveWallet(isDialogFragment = true),
|
||||
WalletSelector(isDialogFragment = true),
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
package com.tangem.core.navigation
|
||||
|
||||
/**
|
||||
* Navigation state holder
|
||||
*
|
||||
[REDACTED_AUTHOR]
|
||||
*/
|
||||
interface NavigationStateHolder {
|
||||
|
||||
/** Navigate by [action] */
|
||||
fun navigate(action: NavigationAction)
|
||||
}
|
||||
|
|
@ -68,6 +68,7 @@
|
|||
<string name="common_exchange">Обменять</string>
|
||||
<string name="common_explore_transaction_history">Посмотреть историю транзакций</string>
|
||||
<string name="common_explorer">Обозреватель</string>
|
||||
<string name="common_learn_and_earn">Учись и получай бонусы!</string>
|
||||
<string name="common_like">Нравится</string>
|
||||
<string name="common_main_network">Основная сеть</string>
|
||||
<string name="common_no">Нет</string>
|
||||
|
|
@ -160,21 +161,19 @@
|
|||
<string name="initial_message_tap_header">Приложите карту</string>
|
||||
<string name="internal_error_wallet_manager_not_found">Внутренняя ошибка: не удается найти менеджер кошельков</string>
|
||||
<string name="key_invalidated_warning_description">Вы обновили данные биометрии, отсканируйте свою карту для входа</string>
|
||||
<string name="main_get_bonus_subtitle">Вы завершили обучение и можете получить свои токены 1inch</string>
|
||||
<string name="main_get_bonus_title">Получите бонус</string>
|
||||
<string name="main_get_bonus_subtitle">Вы успешно прошли все уроки и теперь можете получить 1INCH токены</string>
|
||||
<plurals name="main_learn_subtitle">
|
||||
<item quantity="one">Пройдите обучение и получите %d токен 1inch на свой кошелек</item>
|
||||
<item quantity="few">Пройдите обучение и получите %d токена 1inch на свой кошелек</item>
|
||||
<item quantity="many">Пройдите обучение и получите %d токена 1inch на свой кошелек</item>
|
||||
<item quantity="other">Пройдите обучение и получите %d токенов 1inch на свой кошелек</item>
|
||||
<item quantity="one">Пройдите 3 урока и получите %d 1INCH токен на свой кошелек</item>
|
||||
<item quantity="few">Пройдите 3 урока и получите %d 1INCH токена на свой кошелек</item>
|
||||
<item quantity="many">Пройдите 3 урока и получите %d 1INCH токена на свой кошелек</item>
|
||||
<item quantity="other">Пройдите 3 урока и получите %d 1INCH токенов на свой кошелек</item>
|
||||
</plurals>
|
||||
<string name="main_learn_title">Бонус за обучение</string>
|
||||
<string name="main_manage_tokens">Управление токенами</string>
|
||||
<string name="main_no_backup_warning_subtitle">Чтобы защитить свои активы, мы советуем вам выполнить эту процедуру</string>
|
||||
<string name="main_no_backup_warning_title">Бэкап кошелька не был произведен</string>
|
||||
<string name="main_page_balance">Баланс</string>
|
||||
<string name="main_processing_full_amount">В сумме учтены не все монеты</string>
|
||||
<string name="main_promotion_credited">Токены 1inch будут зачислены на адрес вашего кошелька в течение 2 дней</string>
|
||||
<string name="main_promotion_credited">1INCH токены будут зачислены на адрес вашего кошелька в сети %s в течение 24 часов</string>
|
||||
<string name="main_promotion_no_purchase">По вашему промокоду не было покупки кошелька, а значит вы не можете получить бонус. Купите кошелек Tangem, отсканируйте его в приложении и получите бонус.</string>
|
||||
<string name="main_scan_card_warning_view_subtitle">Чтобы получить доступ ко всем сетям, вам необходимо отсканировать карту</string>
|
||||
<string name="main_scan_card_warning_view_title">Отсканируйте карту</string>
|
||||
|
|
@ -355,9 +354,8 @@
|
|||
<string name="story_currencies_title">Тысячи криптовалют</string>
|
||||
<string name="story_finish_description">Используйте его на ходу, в любом месте, в любое время. Без проводов и батареек. Как только понадобится крипта, просто приложите карту к телефону.</string>
|
||||
<string name="story_finish_title">Кошелек для каждого</string>
|
||||
<string name="story_learn_description">Пройдите обучение и получите возможность купить кошелек Tangem со скидкой и токены 1inch в качестве бонуса</string>
|
||||
<string name="story_learn_description">Пройдите 3 урока, получите скидку на покупку Tangem Wallet и 1INCH токены</string>
|
||||
<string name="story_learn_learn">Пройти обучение</string>
|
||||
<string name="story_learn_title">Получите свой бонус</string>
|
||||
<string name="story_meet_borrow">Занимайте</string>
|
||||
<string name="story_meet_buy">Покупайте</string>
|
||||
<string name="story_meet_exchange">Обменивайте</string>
|
||||
|
|
@ -493,6 +491,8 @@
|
|||
<string name="wallet_error_no_account">Аккаунт не создан</string>
|
||||
<string name="wallet_error_unsupported_blockchain">Эта карта не поддерживается</string>
|
||||
<string name="wallet_error_unsupported_blockchain_subtitle">Ваша карта Tangem предназначена для работы с другим приложением. Пожалуйста, ознакомьтесь с названием и инструкциями на вашей карте и установите правильное приложение.</string>
|
||||
<string name="wallet_marketplace_block_title">Рыночная цена %s</string>
|
||||
<string name="wallet_marketprice_block_update_time">за 24 часа</string>
|
||||
<string name="wallet_network_group_title">Сеть %s</string>
|
||||
<string name="wallet_notification_address_copied">Адрес скопирован в буфер обмена</string>
|
||||
<string name="wallet_notification_no_internet">Нет соединения с интернетом</string>
|
||||
|
|
|
|||
|
|
@ -66,6 +66,7 @@
|
|||
<string name="common_exchange">Exchange</string>
|
||||
<string name="common_explore_transaction_history">Explore transaction history</string>
|
||||
<string name="common_explorer">Explorer</string>
|
||||
<string name="common_learn_and_earn">Learn & Earn</string>
|
||||
<string name="common_like">Like</string>
|
||||
<string name="common_main_network">Main network</string>
|
||||
<string name="common_no">No</string>
|
||||
|
|
@ -158,19 +159,17 @@
|
|||
<string name="initial_message_tap_header">Tap the card</string>
|
||||
<string name="internal_error_wallet_manager_not_found">Internal error: wallet manager not found</string>
|
||||
<string name="key_invalidated_warning_description">You have updated biometrics, scan your card to enter</string>
|
||||
<string name="main_get_bonus_subtitle">You have completed the training and can get your 1inch tokens</string>
|
||||
<string name="main_get_bonus_title">Get a bonus</string>
|
||||
<string name="main_get_bonus_subtitle">You have completed all of the lessons, and are now eligible to receive your 1INCH tokens</string>
|
||||
<plurals name="main_learn_subtitle">
|
||||
<item quantity="one">Complete the training and get %d 1inch token on your wallet</item>
|
||||
<item quantity="other">Complete the training and get %d 1inch tokens on your wallet</item>
|
||||
<item quantity="one">Complete three lessons and receive %d 1INCH token to your wallet</item>
|
||||
<item quantity="other">Complete three lessons and receive %d 1INCH tokens to your wallet</item>
|
||||
</plurals>
|
||||
<string name="main_learn_title">Learn & Earn</string>
|
||||
<string name="main_manage_tokens">Manage tokens</string>
|
||||
<string name="main_no_backup_warning_subtitle">To protect your assets, we advise you to carry out this procedure</string>
|
||||
<string name="main_no_backup_warning_title">Your wallet has not been backed up</string>
|
||||
<string name="main_page_balance">Total balance</string>
|
||||
<string name="main_processing_full_amount">The amount does not include some of your funds</string>
|
||||
<string name="main_promotion_credited">1inch tokens will be credited to your wallet address within 2 days</string>
|
||||
<string name="main_promotion_credited">1INCH tokens will be credited to your %s wallet address within 24 hours</string>
|
||||
<string name="main_promotion_no_purchase">There was no purchase of a wallet using your promo code, which means you cannot receive a bonus. Buy Tangem wallet, scan it in the app, and get the bonus.</string>
|
||||
<string name="main_scan_card_warning_view_subtitle">To access all the networks you need to scan the card</string>
|
||||
<string name="main_scan_card_warning_view_title">Scan your card</string>
|
||||
|
|
@ -351,9 +350,8 @@
|
|||
<string name="story_currencies_title">Thousands of Currencies</string>
|
||||
<string name="story_finish_description">Use it on the go, anywhere, anytime. No wires or batteries. Just tap the card to your phone when you need your crypto.</string>
|
||||
<string name="story_finish_title">The Wallet for Everyone</string>
|
||||
<string name="story_learn_description">Complete the training, get the opportunity to buy Tangem wallet with a discount and receive 1inch tokens on your wallet</string>
|
||||
<string name="story_learn_description">Take three lessons, get a discount on your Tangem Wallet, and receive 1INCH tokens to your wallet</string>
|
||||
<string name="story_learn_learn">Learn</string>
|
||||
<string name="story_learn_title">Learn and get a bonus</string>
|
||||
<string name="story_meet_borrow">Borrow</string>
|
||||
<string name="story_meet_buy">Buy</string>
|
||||
<string name="story_meet_exchange">Exchange</string>
|
||||
|
|
@ -485,6 +483,8 @@
|
|||
<string name="wallet_error_no_account">Account is not created</string>
|
||||
<string name="wallet_error_unsupported_blockchain">This card is not supported</string>
|
||||
<string name="wallet_error_unsupported_blockchain_subtitle">Your Tangem card was made to work with a different application. Please see the name and instructions on your card, and install the correct app</string>
|
||||
<string name="wallet_marketplace_block_title">%s Market Price</string>
|
||||
<string name="wallet_marketprice_block_update_time">last 24h</string>
|
||||
<string name="wallet_network_group_title">%s network</string>
|
||||
<string name="wallet_notification_address_copied">Address was copied to clipboard</string>
|
||||
<string name="wallet_notification_no_internet">No internet connection</string>
|
||||
|
|
|
|||
|
|
@ -41,6 +41,7 @@ fun getActiveIconRes(blockchainId: String): Int {
|
|||
"terra-2", "terra-luna-2" -> R.drawable.img_terra2_22
|
||||
"cronos" -> R.drawable.img_cronos_22
|
||||
"TELOS", "TELOS/test" -> R.drawable.img_telos_22
|
||||
"aleph-zero", "aleph-zero/test" -> R.drawable.img_azero_22
|
||||
else -> R.drawable.ic_alert_24
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@ data class TangemDimens internal constructor(
|
|||
val radius8: Dp = 8.dp,
|
||||
val radius10: Dp = 10.dp,
|
||||
val radius12: Dp = 12.dp,
|
||||
val radius14: Dp = 14.dp,
|
||||
val radius16: Dp = 16.dp,
|
||||
val radius18: Dp = 18.dp,
|
||||
val radius24: Dp = 24.dp,
|
||||
|
|
@ -74,6 +75,7 @@ data class TangemDimens internal constructor(
|
|||
val size116: Dp = 116.dp,
|
||||
val size120: Dp = 120.dp,
|
||||
val size142: Dp = 142.dp,
|
||||
val size158: Dp = 158.dp,
|
||||
val size164: Dp = 164.dp,
|
||||
val size200: Dp = 200.dp,
|
||||
// endregion Size
|
||||
|
|
|
|||
12
core/ui/src/main/res/drawable/img_azero_22.xml
Normal file
12
core/ui/src/main/res/drawable/img_azero_22.xml
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="22dp"
|
||||
android:height="22dp"
|
||||
android:viewportWidth="22"
|
||||
android:viewportHeight="22">
|
||||
<path
|
||||
android:pathData="M11,0L11,0A11,11 0,0 1,22 11L22,11A11,11 0,0 1,11 22L11,22A11,11 0,0 1,0 11L0,11A11,11 0,0 1,11 0z"
|
||||
android:fillColor="#14202A"/>
|
||||
<path
|
||||
android:pathData="M14.927,11.319H16.829C16.874,11.319 16.918,11.302 16.95,11.271C16.982,11.24 17,11.198 17,11.154V9.834C17,9.79 16.982,9.748 16.95,9.717C16.918,9.686 16.874,9.669 16.829,9.669H14.164L12.064,5.131C12.046,5.092 12.017,5.059 11.98,5.035C11.943,5.012 11.9,5 11.856,5H10.144C10.1,5 10.057,5.012 10.02,5.035C9.983,5.059 9.954,5.092 9.936,5.131L7.836,9.669H5.171C5.126,9.669 5.082,9.686 5.05,9.717C5.018,9.748 5,9.79 5,9.834V11.154C5,11.198 5.018,11.24 5.05,11.271C5.082,11.302 5.126,11.319 5.171,11.319H7.073L5.015,15.768C5.003,15.793 4.998,15.821 5.001,15.848C5.003,15.875 5.012,15.902 5.028,15.925C5.043,15.948 5.065,15.967 5.09,15.98C5.115,15.993 5.143,16 5.172,16H6.702C6.746,16 6.79,15.988 6.827,15.965C6.864,15.941 6.893,15.908 6.911,15.87L11,7.03L15.089,15.87C15.107,15.908 15.136,15.941 15.173,15.965C15.21,15.988 15.254,16 15.298,16H16.828C16.857,16 16.885,15.993 16.91,15.98C16.935,15.967 16.957,15.948 16.972,15.925C16.988,15.902 16.997,15.875 16.999,15.848C17.001,15.821 16.997,15.793 16.985,15.768L14.927,11.319Z"
|
||||
android:fillColor="#ffffff"/>
|
||||
</vector>
|
||||
Loading…
Add table
Add a link
Reference in a new issue