From 2412cc8094c7119c1e30b41b96b8250622de4590 Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 5 Jul 2019 11:24:34 +0300 Subject: [PATCH] Updated on 2026-08-14 --- app/build.gradle | 8 ++-- .../java/com/tangem/data/dp/PrefsManager.kt | 6 +++ .../ui/fragment/LoadedWalletFragment.kt | 48 ++++++++++++------- app/src/main/res/values/strings.xml | 2 + 4 files changed, 42 insertions(+), 22 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 09713384e7..733a2d0e75 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -84,10 +84,10 @@ dependencies { implementation 'com.madgag.spongycastle:core:1.56.0.0' implementation 'com.madgag.spongycastle:prov:1.56.0.0' implementation 'com.scottyab:rootbeer-lib:0.0.7' - implementation 'com.squareup.retrofit2:converter-gson:2.5.0' - implementation 'com.squareup.retrofit2:retrofit:2.5.0' - implementation 'com.squareup.retrofit2:converter-scalars:2.5.0' - implementation 'com.squareup.retrofit2:converter-jackson:2.5.0' + implementation 'com.squareup.retrofit2:converter-gson:2.6.0' + implementation 'com.squareup.retrofit2:retrofit:2.6.0' + implementation 'com.squareup.retrofit2:converter-scalars:2.6.0' + implementation 'com.squareup.retrofit2:converter-jackson:2.6.0' implementation 'com.squareup.okhttp3:logging-interceptor:3.11.0' implementation 'com.skyfishjy.ripplebackground:library:1.0.1' implementation 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0' diff --git a/app/src/main/java/com/tangem/data/dp/PrefsManager.kt b/app/src/main/java/com/tangem/data/dp/PrefsManager.kt index 29bc85c94d..a37c609121 100644 --- a/app/src/main/java/com/tangem/data/dp/PrefsManager.kt +++ b/app/src/main/java/com/tangem/data/dp/PrefsManager.kt @@ -41,4 +41,10 @@ class PrefsManager { Hawk.delete(Constant.PREF_LAST_WALLET_ADDRESS) } + fun appendCid(newCid: String) { + val prevCids: String = Hawk.get("CID_Key", "") + if (!prevCids.contains(newCid)) Hawk.put("CID_Key", "$prevCids$newCid, ") + } + + fun getAllCids(): String = Hawk.get("CID_Key", "") } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/ui/fragment/LoadedWalletFragment.kt b/app/src/main/java/com/tangem/ui/fragment/LoadedWalletFragment.kt index b908c578a2..7e9dbce382 100644 --- a/app/src/main/java/com/tangem/ui/fragment/LoadedWalletFragment.kt +++ b/app/src/main/java/com/tangem/ui/fragment/LoadedWalletFragment.kt @@ -13,7 +13,6 @@ import android.nfc.tech.IsoDep import android.os.Build import android.os.Bundle import android.text.Html -import android.util.Log import android.view.Gravity import android.view.LayoutInflater import android.view.View @@ -25,12 +24,21 @@ import androidx.lifecycle.Observer import androidx.lifecycle.ViewModelProviders import com.tangem.App import com.tangem.Constant +import com.tangem.card_android.android.nfc.NfcLifecycleObserver +import com.tangem.card_android.android.reader.NfcManager +import com.tangem.card_android.android.reader.NfcReader +import com.tangem.card_android.data.EXTRA_TANGEM_CARD +import com.tangem.card_android.data.EXTRA_TANGEM_CARD_UID +import com.tangem.card_android.data.loadFromBundle +import com.tangem.card_common.data.TangemCard +import com.tangem.card_common.reader.CardProtocol +import com.tangem.card_common.tasks.VerifyCardTask +import com.tangem.card_common.util.Util import com.tangem.data.Blockchain +import com.tangem.data.dp.PrefsManager import com.tangem.data.network.ServerApiCommon -import com.tangem.wallet.BalanceValidator -import com.tangem.wallet.CoinEngine -import com.tangem.wallet.CoinEngineFactory -import com.tangem.wallet.TangemContext +import com.tangem.server_android.ServerApiTangem +import com.tangem.server_android.model.CardVerifyAndGetInfo import com.tangem.ui.activity.LoadedWalletActivity import com.tangem.ui.activity.PinRequestActivity import com.tangem.ui.activity.PrepareCryptonitWithdrawalActivity @@ -42,21 +50,9 @@ import com.tangem.ui.dialog.WaitSecurityDelayDialog import com.tangem.ui.event.DeletingWalletFinish import com.tangem.ui.event.TransactionFinishWithError import com.tangem.ui.event.TransactionFinishWithSuccess -import com.tangem.card_android.android.nfc.NfcLifecycleObserver -import com.tangem.card_android.android.reader.NfcManager -import com.tangem.card_android.android.reader.NfcReader -import com.tangem.card_android.data.EXTRA_TANGEM_CARD -import com.tangem.card_android.data.EXTRA_TANGEM_CARD_UID -import com.tangem.card_android.data.loadFromBundle -import com.tangem.card_common.data.TangemCard -import com.tangem.card_common.reader.CardProtocol -import com.tangem.card_common.tasks.VerifyCardTask -import com.tangem.card_common.util.Util -import com.tangem.server_android.ServerApiTangem -import com.tangem.server_android.model.CardVerifyAndGetInfo import com.tangem.util.LOG import com.tangem.util.UtilHelper -import com.tangem.wallet.R +import com.tangem.wallet.* import kotlinx.android.synthetic.main.fr_loaded_wallet.* import kotlinx.android.synthetic.main.layout_btn_details.* import kotlinx.android.synthetic.main.layout_tangem_card.* @@ -681,6 +677,8 @@ class LoadedWalletFragment : androidx.fragment.app.Fragment(), NfcAdapter.Reader LOG.e(TAG, "requestBalanceAndUnspentTransactions ctx.error: " + ctx.error) } updateViews() + + if (coinEngine.isBalanceNotZero) showWarningIfPendingTransactionIsPossible() } override fun onProgress() { @@ -705,6 +703,20 @@ class LoadedWalletFragment : androidx.fragment.app.Fragment(), NfcAdapter.Reader } } + private fun showWarningIfPendingTransactionIsPossible() { + if (ctx.card.signedHashes > 0 && isNewCid(ctx.card.cidDescription)) { + AlertDialog.Builder(context) + .setTitle(R.string.warning) + .setMessage(R.string.card_signed_transactions_warning) + .setPositiveButton(R.string.ok) { _, _ -> } + .create() + .show() + } + PrefsManager.getInstance().appendCid(ctx.card.cidDescription) + } + + private fun isNewCid(cid: String): Boolean = !PrefsManager.getInstance().getAllCids().contains(cid) + private fun requestVerifyAndGetInfo() { if (UtilHelper.isOnline(context as Activity)) { if ((ctx.card!!.isOnlineVerified == null || !ctx.card!!.isOnlineVerified)) { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 9d013d2f3b..40918738b2 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -151,6 +151,8 @@ Details New scan Verifying in blockchain… + Warning: This card has been already topped up and signed transactions in the past. + Consider immediate withdrawal of all funds if you have received this card from an untrusted source. Now touch the banknote with ID