From e84bb2f96c5874172dea644b4c85eea63de3ce5b Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 29 Sep 2020 18:43:04 +0300 Subject: [PATCH 1/3] Updated on 2026-08-14 --- .../com/tangem/tap/features/wallet/redux/WalletReducer.kt | 4 ++-- .../java/com/tangem/tap/features/wallet/redux/WalletState.kt | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletReducer.kt b/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletReducer.kt index f326c96c1d..d362a40a2d 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletReducer.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletReducer.kt @@ -144,9 +144,9 @@ private fun internalReduce(action: Action, state: AppState): WalletState { val cardPublicKey = action.card.cardPublicKey?.toHexString() val artworkUrl = if (cardPublicKey != null && action.artworkId != null) { TangemService.getUrlForArtwork(cardId, cardPublicKey, action.artworkId) - } else if (action.card.cardData?.batchId == Artwork.SERGIO_BATCH) { + } else if (action.card.cardId.startsWith(Artwork.SERGIO_CARD_ID)) { Artwork.SERGIO_CARD_URL - } else if (action.card.cardData?.batchId == Artwork.MARTA_BATCH) { + } else if (action.card.cardId.startsWith(Artwork.MARTA_CARD_ID)) { Artwork.MARTA_CARD_URL } else { Artwork.DEFAULT_IMG_URL diff --git a/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletState.kt b/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletState.kt index 818956e16e..be5c2fad71 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletState.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletState.kt @@ -73,7 +73,7 @@ data class Artwork( const val DEFAULT_IMG_URL = "https://app.tangem.com/cards/card_default.png" const val SERGIO_CARD_URL = "https://app.tangem.com/cards/card_tg059.png" const val MARTA_CARD_URL = "https://app.tangem.com/cards/card_tg083.png" - const val SERGIO_BATCH = "tg059" - const val MARTA_BATCH = "tg083" + const val SERGIO_CARD_ID = "BC01" + const val MARTA_CARD_ID = "BC02" } } \ No newline at end of file From 0cd8e6878d366e989127f12bd2ea5a22ac0b2d4f Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 29 Sep 2020 18:44:14 +0300 Subject: [PATCH 2/3] Updated on 2026-08-14 --- app/build.gradle | 2 +- .../com/tangem/tap/domain/TangemSdkManager.kt | 16 ++++++++++------ .../tap/features/send/redux/SendScreenAction.kt | 3 ++- .../send/redux/middlewares/SendMiddleware.kt | 10 +++++++--- .../tangem/tap/features/send/ui/SendFragment.kt | 8 ++++++-- .../tap/features/wallet/ui/WalletFragment.kt | 2 +- app/src/main/res/values/strings.xml | 8 ++++++++ 7 files changed, 35 insertions(+), 14 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 9b4906b8f9..beacd1853b 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -64,7 +64,7 @@ dependencies { implementation 'com.google.android.material:material:1.2.1' coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.0.10' - implementation 'com.tangem:blockchain:1.57.0' + implementation 'com.tangem:blockchain:1.64.0' implementation 'com.tangem:core:1.63.0' implementation 'com.tangem:sdk:1.63.0' diff --git a/app/src/main/java/com/tangem/tap/domain/TangemSdkManager.kt b/app/src/main/java/com/tangem/tap/domain/TangemSdkManager.kt index c8ec821b08..d122202ca1 100644 --- a/app/src/main/java/com/tangem/tap/domain/TangemSdkManager.kt +++ b/app/src/main/java/com/tangem/tap/domain/TangemSdkManager.kt @@ -10,6 +10,7 @@ import com.tangem.tangem_sdk_new.extensions.init import com.tangem.tap.domain.tasks.CreateWalletAndRescanTask import com.tangem.tap.domain.tasks.ScanNoteResponse import com.tangem.tap.domain.tasks.ScanNoteTask +import com.tangem.wallet.R import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext import java.util.* @@ -22,15 +23,18 @@ class TangemSdkManager(val activity: ComponentActivity) { ) suspend fun scanNote(): CompletionResult { - return runTaskAsyncReturnOnMain(ScanNoteTask()) + return runTaskAsyncReturnOnMain(ScanNoteTask(), + initialMessage = Message(activity.getString(R.string.tap_to_scan))) } suspend fun createWallet(cardId: String?): CompletionResult { - return runTaskAsyncReturnOnMain(CreateWalletAndRescanTask(), cardId) + return runTaskAsyncReturnOnMain(CreateWalletAndRescanTask(), cardId, + initialMessage = Message(activity.getString(R.string.tap_to_create_wallet))) } suspend fun eraseWallet(cardId: String?): CompletionResult { - return runTaskAsyncReturnOnMain(PurgeWalletCommand(), cardId) + return runTaskAsyncReturnOnMain(PurgeWalletCommand(), cardId, + initialMessage = Message(activity.getString(R.string.tap_to_purge_wallet))) } suspend fun setPasscode(cardId: String?): CompletionResult { @@ -38,7 +42,7 @@ class TangemSdkManager(val activity: ComponentActivity) { pinType = PinType.Pin2, newPin1 = tangemSdk.config.defaultPin1.calculateSha256(), newPin2 = null - ), cardId) + ), cardId, initialMessage = Message(activity.getString(R.string.tap_to_change_passcode))) } suspend fun setAccessCode(cardId: String?): CompletionResult { @@ -46,7 +50,7 @@ class TangemSdkManager(val activity: ComponentActivity) { pinType = PinType.Pin1, newPin1 = null, newPin2 = tangemSdk.config.defaultPin2.calculateSha256() - ), cardId) + ), cardId, initialMessage = Message(activity.getString(R.string.tap_to_change_access_code))) } suspend fun setLongTap(cardId: String?): CompletionResult { @@ -54,7 +58,7 @@ class TangemSdkManager(val activity: ComponentActivity) { pinType = PinType.Pin1, newPin1 = tangemSdk.config.defaultPin1.calculateSha256(), newPin2 = tangemSdk.config.defaultPin2.calculateSha256() - ), cardId) + ), cardId, initialMessage = Message(activity.getString(R.string.tap_the_card))) } private suspend fun runTaskAsync( diff --git a/app/src/main/java/com/tangem/tap/features/send/redux/SendScreenAction.kt b/app/src/main/java/com/tangem/tap/features/send/redux/SendScreenAction.kt index 38afa64bf6..67e22baa41 100644 --- a/app/src/main/java/com/tangem/tap/features/send/redux/SendScreenAction.kt +++ b/app/src/main/java/com/tangem/tap/features/send/redux/SendScreenAction.kt @@ -1,5 +1,6 @@ package com.tangem.tap.features.send.redux +import com.tangem.Message import com.tangem.blockchain.common.Amount import com.tangem.tap.common.redux.ErrorAction import com.tangem.tap.common.redux.ToastNotificationAction @@ -102,7 +103,7 @@ sealed class ReceiptAction : SendScreenAction { } sealed class SendActionUi : SendScreenActionUi { - object SendAmountToRecipient : SendScreenActionUi + data class SendAmountToRecipient(val messageForSigner: Message) : SendScreenActionUi } sealed class SendAction : SendScreenAction { diff --git a/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/SendMiddleware.kt b/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/SendMiddleware.kt index a0cf8f4c46..3b790cb554 100644 --- a/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/SendMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/SendMiddleware.kt @@ -35,14 +35,17 @@ val sendMiddleware: Middleware = { dispatch, appState -> is AddressPayIdActionUi -> AddressPayIdMiddleware().handle(action, appState(), dispatch) is AmountActionUi -> AmountMiddleware().handle(action, appState(), dispatch) is RequestFee -> RequestFeeMiddleware().handle(appState(), dispatch) - is SendActionUi.SendAmountToRecipient -> verifyAndSendTransaction(appState(), dispatch) + is SendActionUi.SendAmountToRecipient -> + verifyAndSendTransaction(action, appState(), dispatch) } nextDispatch(action) } } } -private fun verifyAndSendTransaction(appState: AppState?, dispatch: (Action) -> Unit) { +private fun verifyAndSendTransaction( + action: SendActionUi.SendAmountToRecipient, appState: AppState?, dispatch: (Action) -> Unit +) { val sendState = appState?.sendState ?: return val walletManager = appState.globalState.scanNoteResponse?.walletManager ?: return val recipientAddress = sendState.addressPayIdState.recipientWalletAddress ?: return @@ -61,7 +64,8 @@ private fun verifyAndSendTransaction(appState: AppState?, dispatch: (Action) -> val txData = walletManager.createTransaction(amountToSend, feeAmount, recipientAddress) scope.launch { walletManager.update() - val result = (walletManager as TransactionSender).send(txData, Signer(tangemSdk)) + val signer = Signer(tangemSdk, action.messageForSigner) + val result = (walletManager as TransactionSender).send(txData, signer) withContext(Dispatchers.Main) { when (result) { is Result.Success -> { diff --git a/app/src/main/java/com/tangem/tap/features/send/ui/SendFragment.kt b/app/src/main/java/com/tangem/tap/features/send/ui/SendFragment.kt index d5fca9bcf3..2e2e4b9ed2 100644 --- a/app/src/main/java/com/tangem/tap/features/send/ui/SendFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/send/ui/SendFragment.kt @@ -9,6 +9,7 @@ import android.view.inputmethod.EditorInfo import android.widget.EditText import androidx.core.view.postDelayed import androidx.core.widget.addTextChangedListener +import com.tangem.Message import com.tangem.merchant.common.toggleWidget.ToggleWidget import com.tangem.tangem_sdk_new.extensions.hideSoftKeyboard import com.tangem.tap.common.KeyboardObserver @@ -65,7 +66,9 @@ class SendFragment : BaseStoreFragment(R.layout.fragment_send) { setupFeeLayout() btnSend.setOnClickListener { - store.dispatch(SendActionUi.SendAmountToRecipient) + store.dispatch(SendActionUi.SendAmountToRecipient( + Message(getString(R.string.tap_to_sign)) + )) } } @@ -205,7 +208,8 @@ class SendFragment : BaseStoreFragment(R.layout.fragment_send) { val sp = requireContext().getSharedPreferences("SendScreen", Context.MODE_PRIVATE) val mainCurrency = sp.getString("mainCurrency", TapCurrency.DEFAULT_FIAT_CURRENCY) val foundType = MainCurrencyType.values() - .firstOrNull { it.name.toLowerCase() == mainCurrency!!.toLowerCase() } ?: MainCurrencyType.FIAT + .firstOrNull { it.name.toLowerCase() == mainCurrency!!.toLowerCase() } + ?: MainCurrencyType.FIAT return foundType } diff --git a/app/src/main/java/com/tangem/tap/features/wallet/ui/WalletFragment.kt b/app/src/main/java/com/tangem/tap/features/wallet/ui/WalletFragment.kt index 13c4366fef..c337a895b8 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/ui/WalletFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/ui/WalletFragment.kt @@ -215,8 +215,8 @@ class WalletFragment : Fragment(R.layout.fragment_wallet), StoreSubscriber { if (dialog == null) dialog = PayIdDialog(requireContext()).apply { this.show() - this.stopProgress() } + (dialog as? PayIdDialog)?.stopProgress() } CreatingPayIdState.Waiting -> (dialog as? PayIdDialog)?.showProgress() } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 23ca3ebfbf..5a63464c76 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -8,6 +8,14 @@ and Warning + Tap to scan + Tap the card + Tap to sign + Tap to purge wallet + Tap to create wallet + Tap to change passcode + Tap to change access code + Address was successfully copied No internet connection @string/generic_retry From 7a1067c5adf2bf13388e7350fd511fb839c1a2bc Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 29 Sep 2020 18:45:02 +0300 Subject: [PATCH 3/3] Updated on 2026-08-14 --- app/src/main/java/com/tangem/tap/MainActivity.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/tangem/tap/MainActivity.kt b/app/src/main/java/com/tangem/tap/MainActivity.kt index df17c344a8..ffa1f2aa54 100644 --- a/app/src/main/java/com/tangem/tap/MainActivity.kt +++ b/app/src/main/java/com/tangem/tap/MainActivity.kt @@ -5,6 +5,7 @@ import android.content.pm.ActivityInfo import android.nfc.NfcAdapter import android.nfc.Tag import android.os.Bundle +import android.os.Handler import androidx.appcompat.app.AppCompatActivity import com.tangem.CardFilter import com.tangem.Config @@ -77,7 +78,7 @@ class MainActivity : AppCompatActivity() { override fun onNewIntent(intent: Intent?) { super.onNewIntent(intent) - handleBackgroundScan(intent) + Handler(mainLooper).postDelayed( { handleBackgroundScan(intent) } , 200) } private fun handleBackgroundScan(intent: Intent?) {