From a7e2964c53b2e018dab669708eba0d45dfd181ae Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 4 Feb 2019 12:26:56 +0300 Subject: [PATCH] Updated on 2026-08-14 --- app/src/main/java/com/tangem/data/Logger.java | 2 +- .../com/tangem/domain/wallet/CoinEngine.java | 4 +- .../activity/CreateNewWalletActivity.kt | 86 +++++-------------- .../presentation/activity/MainActivity.kt | 60 ++----------- .../presentation/activity/PurgeActivity.kt | 54 ++---------- .../activity/SignTransactionActivity.kt | 79 +++-------------- .../main/java/com/tangem/util/CryptoUtil.java | 2 +- .../res/layout/activity_create_new_wallet.xml | 1 - app/src/main/res/layout/layout_touch_card.xml | 8 +- .../android/nfc/DeviceNFCAntennaLocation.kt | 63 +++++++++++++- 10 files changed, 117 insertions(+), 242 deletions(-) diff --git a/app/src/main/java/com/tangem/data/Logger.java b/app/src/main/java/com/tangem/data/Logger.java index ad6f408d07..3c1aece038 100644 --- a/app/src/main/java/com/tangem/data/Logger.java +++ b/app/src/main/java/com/tangem/data/Logger.java @@ -226,7 +226,7 @@ public class Logger { // // verifyStoragePermissions(activity); // initLogFile(activity.getApplicationContext()); -// t.start(); +// t.init(); // } catch (Exception e) { // e.printStackTrace(); // } diff --git a/app/src/main/java/com/tangem/domain/wallet/CoinEngine.java b/app/src/main/java/com/tangem/domain/wallet/CoinEngine.java index 1f53e9b4bd..a234d6be10 100644 --- a/app/src/main/java/com/tangem/domain/wallet/CoinEngine.java +++ b/app/src/main/java/com/tangem/domain/wallet/CoinEngine.java @@ -247,10 +247,10 @@ public abstract class CoinEngine { * Transaction processing sequence: * 1. User enter transaction attributes * 2. Application create instance of {@link SignTask.TransactionToSign} by call {@see constructTransaction} - * 3. Application set notification when transaction were prepared {@see setOnNeedSendTransaction} and start {@link SignTask} + * 3. Application set notification when transaction were prepared {@see setOnNeedSendTransaction} and init {@link SignTask} * 4. User tap card and card sign transaction * 5. Application receive {@link OnNeedSendTransaction} notification with prepared raw transaction - * 6. Application show user information that transaction ready for sending and start sending procedure by call {@see requestSendTransaction} + * 6. Application show user information that transaction ready for sending and init sending procedure by call {@see requestSendTransaction} * 7. Application receive notification of sending result through {@link CoinEngine.BlockchainRequestsCallbacks} and show result to user * * @param amountValue - amount of desired transaction diff --git a/app/src/main/java/com/tangem/presentation/activity/CreateNewWalletActivity.kt b/app/src/main/java/com/tangem/presentation/activity/CreateNewWalletActivity.kt index d3a208d258..2d658484a7 100644 --- a/app/src/main/java/com/tangem/presentation/activity/CreateNewWalletActivity.kt +++ b/app/src/main/java/com/tangem/presentation/activity/CreateNewWalletActivity.kt @@ -31,6 +31,7 @@ import com.tangem.tangemcard.tasks.CreateNewWalletTask import com.tangem.tangemcard.util.Util import com.tangem.wallet.R import kotlinx.android.synthetic.main.activity_create_new_wallet.* +import kotlinx.android.synthetic.main.layout_progress_horizontal.* import kotlinx.android.synthetic.main.layout_touch_card.* class CreateNewWalletActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtocol.Notifications { @@ -46,13 +47,11 @@ class CreateNewWalletActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, private lateinit var nfcManager: NfcManager private lateinit var ctx: TangemContext - private lateinit var antenna: DeviceNFCAntennaLocation + private lateinit var nfcAntenna: DeviceNFCAntennaLocation private var createNewWalletTask: CreateNewWalletTask? = null private var lastReadSuccess = true - private var progressBar: ProgressBar? = null - override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_create_new_wallet) @@ -61,36 +60,13 @@ class CreateNewWalletActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, ctx = TangemContext.loadFromBundle(this, intent.extras) + // init NFC Antenna + nfcAntenna = DeviceNFCAntennaLocation(this, ivHandCardHorizontal, ivHandCardVertical, llHand, llNfc) + nfcAntenna.init() + tvCardId.text = ctx.card!!.cidDescription - - progressBar = findViewById(R.id.progressBar) - progressBar!!.progressTintList = ColorStateList.valueOf(Color.DKGRAY) - progressBar!!.visibility = View.INVISIBLE - - // get NFC Antenna - antenna = DeviceNFCAntennaLocation() - antenna.getAntennaLocation() - - // set card orientation - when (antenna.orientation) { - DeviceNFCAntennaLocation.CARD_ORIENTATION_HORIZONTAL -> { - ivHandCardHorizontal.visibility = View.VISIBLE - ivHandCardVertical.visibility = View.GONE - } - - DeviceNFCAntennaLocation.CARD_ORIENTATION_VERTICAL -> { - ivHandCardVertical.visibility = View.VISIBLE - ivHandCardHorizontal.visibility = View.GONE - } - } - - // set card z position - when (antenna.z) { - DeviceNFCAntennaLocation.CARD_ON_BACK -> llHand.elevation = 0.0f - DeviceNFCAntennaLocation.CARD_ON_FRONT -> llHand.elevation = 30.0f - } - - animate() + progressBar.progressTintList = ColorStateList.valueOf(Color.DKGRAY) + progressBar.visibility = View.INVISIBLE } override fun onTagDiscovered(tag: Tag) { @@ -141,11 +117,11 @@ class CreateNewWalletActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, } override fun onReadStart(cardProtocol: CardProtocol) { - rlProgressBar.post { rlProgressBar.visibility = View.VISIBLE } + rlProgressBar?.post { rlProgressBar.visibility = View.VISIBLE } - progressBar!!.post { - progressBar!!.visibility = View.VISIBLE - progressBar!!.progress = 5 + progressBar?.post { + progressBar?.visibility = View.VISIBLE + progressBar?.progress = 5 } } @@ -210,11 +186,11 @@ class CreateNewWalletActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, } }, 500) - progressBar!!.postDelayed({ + progressBar?.postDelayed({ try { - progressBar!!.progress = 0 - progressBar!!.progressTintList = ColorStateList.valueOf(Color.DKGRAY) - progressBar!!.visibility = View.INVISIBLE + progressBar?.progress = 0 + progressBar?.progressTintList = ColorStateList.valueOf(Color.DKGRAY) + progressBar?.visibility = View.INVISIBLE } catch (e: Exception) { e.printStackTrace() } @@ -222,17 +198,17 @@ class CreateNewWalletActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, } override fun onReadProgress(protocol: CardProtocol, progress: Int) { - progressBar!!.post { progressBar!!.progress = progress } + progressBar?.post { progressBar?.progress = progress } } override fun onReadCancel() { createNewWalletTask = null - progressBar!!.postDelayed({ + progressBar?.postDelayed({ try { - progressBar!!.progress = 0 - progressBar!!.progressTintList = ColorStateList.valueOf(Color.DKGRAY) - progressBar!!.visibility = View.INVISIBLE + progressBar?.progress = 0 + progressBar?.progressTintList = ColorStateList.valueOf(Color.DKGRAY) + progressBar?.visibility = View.INVISIBLE } catch (e: Exception) { e.printStackTrace() } @@ -251,24 +227,4 @@ class CreateNewWalletActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, WaitSecurityDelayDialog.onReadAfterRequest(this) } - private fun animate() { - val lp = llHand.layoutParams as RelativeLayout.LayoutParams - val lp2 = llNfc.layoutParams as RelativeLayout.LayoutParams - val dp = resources.displayMetrics.density - val lm = dp * (69 + antenna.x * 75) - lp.topMargin = (dp * (-100 + antenna.y * 250)).toInt() - lp2.topMargin = (dp * (-125 + antenna.y * 250)).toInt() - llNfc.layoutParams = lp2 - - val a = object : Animation() { - override fun applyTransformation(interpolatedTime: Float, t: Transformation) { - lp.leftMargin = (lm * interpolatedTime).toInt() - llHand.layoutParams = lp - } - } - a.duration = 2000 - a.interpolator = DecelerateInterpolator() - llHand.startAnimation(a) - } - } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/presentation/activity/MainActivity.kt b/app/src/main/java/com/tangem/presentation/activity/MainActivity.kt index fe9567b33d..f3bae0bdf9 100644 --- a/app/src/main/java/com/tangem/presentation/activity/MainActivity.kt +++ b/app/src/main/java/com/tangem/presentation/activity/MainActivity.kt @@ -18,10 +18,6 @@ import android.util.Log import android.view.Menu import android.view.MenuItem import android.view.View -import android.view.animation.Animation -import android.view.animation.DecelerateInterpolator -import android.view.animation.Transformation -import android.widget.RelativeLayout import android.widget.Toast import com.scottyab.rootbeer.RootBeer import com.tangem.App @@ -34,7 +30,6 @@ import com.tangem.domain.wallet.TangemContext import com.tangem.presentation.dialog.NoExtendedLengthSupportDialog import com.tangem.presentation.dialog.RootFoundDialog import com.tangem.presentation.dialog.WaitSecurityDelayDialog -import com.tangem.presentation.dialog.WaitSecurityDelayDialogNew import com.tangem.tangemcard.android.nfc.DeviceNFCAntennaLocation import com.tangem.tangemcard.android.reader.NfcManager import com.tangem.tangemcard.android.reader.NfcReader @@ -67,7 +62,7 @@ class MainActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtoco private lateinit var nfcManager: NfcManager private var zipFile: File? = null - private lateinit var antenna: DeviceNFCAntennaLocation + private lateinit var nfcAntenna: DeviceNFCAntennaLocation private var unsuccessReadCount = 0 private var lastTag: Tag? = null private var readCardInfoTask: ReadCardInfoTask? = null @@ -100,34 +95,13 @@ class MainActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtoco rippleBackgroundNfc.startRippleAnimation() - // get NFC Antenna - antenna = DeviceNFCAntennaLocation() - antenna.getAntennaLocation() - - // set card orientation - when (antenna.orientation) { - DeviceNFCAntennaLocation.CARD_ORIENTATION_HORIZONTAL -> { - ivHandCardHorizontal.visibility = View.VISIBLE - ivHandCardVertical.visibility = View.GONE - } - - DeviceNFCAntennaLocation.CARD_ORIENTATION_VERTICAL -> { - ivHandCardVertical.visibility = View.VISIBLE - ivHandCardHorizontal.visibility = View.GONE - } - } - - // set card z position - when (antenna.z) { - DeviceNFCAntennaLocation.CARD_ON_BACK -> llHand.elevation = 0.0f - DeviceNFCAntennaLocation.CARD_ON_FRONT -> llHand.elevation = 30.0f - } - - animate() + // init NFC Antenna + nfcAntenna = DeviceNFCAntennaLocation(this, ivHandCardHorizontal, ivHandCardVertical, llHand, llNfc) + nfcAntenna.init() // set phone name - if (antenna.fullName != "") - tvNFCHint.text = String.format(getString(R.string.scan_banknote), antenna.fullName) + if (nfcAntenna.fullName != "") + tvNFCHint.text = String.format(getString(R.string.scan_banknote), nfcAntenna.fullName) else tvNFCHint.text = String.format(getString(R.string.scan_banknote), getString(R.string.phone)) @@ -267,7 +241,7 @@ class MainActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtoco public override fun onResume() { super.onResume() - animate() + nfcAntenna.animate() ReadCardInfoTask.resetLastReadInfo() nfcManager.onResume() } @@ -385,26 +359,6 @@ class MainActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtoco onNfcReaderCallback = callback } - private fun animate() { - val lp = llHand.layoutParams as RelativeLayout.LayoutParams - val lp2 = llNfc.layoutParams as RelativeLayout.LayoutParams - val dp = resources.displayMetrics.density - val lm = dp * (69 + antenna.x * 75) - lp.topMargin = (dp * (-100 + antenna.y * 250)).toInt() - lp2.topMargin = (dp * (-125 + antenna.y * 250)).toInt() - llNfc.layoutParams = lp2 - - val a = object : Animation() { - override fun applyTransformation(interpolatedTime: Float, t: Transformation) { - lp.leftMargin = (lm * interpolatedTime).toInt() - llHand.layoutParams = lp - } - } - a.duration = 2000 - a.interpolator = DecelerateInterpolator() - llHand.startAnimation(a) - } - private fun showMenu(v: View) { val popup = PopupMenu(this, v) val inflater = popup.menuInflater diff --git a/app/src/main/java/com/tangem/presentation/activity/PurgeActivity.kt b/app/src/main/java/com/tangem/presentation/activity/PurgeActivity.kt index 29a952eb7f..2db65fc008 100644 --- a/app/src/main/java/com/tangem/presentation/activity/PurgeActivity.kt +++ b/app/src/main/java/com/tangem/presentation/activity/PurgeActivity.kt @@ -59,7 +59,7 @@ class PurgeActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtoc private lateinit var nfcManager: NfcManager private lateinit var ctx: TangemContext - private lateinit var antenna: DeviceNFCAntennaLocation + private lateinit var nfcAntenna: DeviceNFCAntennaLocation private var purgeTask: PurgeTask? = null @@ -75,34 +75,13 @@ class PurgeActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtoc ctx = TangemContext.loadFromBundle(this, intent.extras) + // init NFC Antenna + nfcAntenna = DeviceNFCAntennaLocation(this, ivHandCardHorizontal, ivHandCardVertical, llHand, llNfc) + nfcAntenna.init() + tvCardID.text = ctx.card!!.cidDescription progressBar.progressTintList = ColorStateList.valueOf(Color.DKGRAY) progressBar.visibility = View.INVISIBLE - - // get NFC Antenna - antenna = DeviceNFCAntennaLocation() - antenna.getAntennaLocation() - - // set card orientation - when (antenna.orientation) { - DeviceNFCAntennaLocation.CARD_ORIENTATION_HORIZONTAL -> { - ivHandCardHorizontal.visibility = View.VISIBLE - ivHandCardVertical.visibility = View.GONE - } - - DeviceNFCAntennaLocation.CARD_ORIENTATION_VERTICAL -> { - ivHandCardVertical.visibility = View.VISIBLE - ivHandCardHorizontal.visibility = View.GONE - } - } - - // set card z position - when (antenna.z) { - DeviceNFCAntennaLocation.CARD_ON_BACK -> llHand.elevation = 0.0f - DeviceNFCAntennaLocation.CARD_ON_FRONT -> llHand.elevation = 30.0f - } - - animate() } public override fun onResume() { @@ -126,7 +105,8 @@ class PurgeActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtoc override fun onTagDiscovered(tag: Tag) { try { // get IsoDep handle and run cardReader thread - val isoDep = IsoDep.get(tag) ?: throw CardProtocol.TangemException(getString(R.string.wrong_tag_err)) + val isoDep = IsoDep.get(tag) + ?: throw CardProtocol.TangemException(getString(R.string.wrong_tag_err)) val uid = tag.id val sUID = Util.byteArrayToHexString(uid) LOG.d(TAG, "UID: $sUID") @@ -274,24 +254,4 @@ class PurgeActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtoc }, 500) } - private fun animate() { - val lp = llHand.layoutParams as RelativeLayout.LayoutParams - val lp2 = llNfc.layoutParams as RelativeLayout.LayoutParams - val dp = resources.displayMetrics.density - val lm = dp * (69 + antenna.x * 75) - lp.topMargin = (dp * (-100 + antenna.y * 250)).toInt() - lp2.topMargin = (dp * (-125 + antenna.y * 250)).toInt() - llNfc.layoutParams = lp2 - - val a = object : Animation() { - override fun applyTransformation(interpolatedTime: Float, t: Transformation) { - lp.leftMargin = (lm * interpolatedTime).toInt() - llHand.layoutParams = lp - } - } - a.duration = 2000 - a.interpolator = DecelerateInterpolator() - llHand.startAnimation(a) - } - } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/presentation/activity/SignTransactionActivity.kt b/app/src/main/java/com/tangem/presentation/activity/SignTransactionActivity.kt index c2669e7d1b..2e20915f48 100644 --- a/app/src/main/java/com/tangem/presentation/activity/SignTransactionActivity.kt +++ b/app/src/main/java/com/tangem/presentation/activity/SignTransactionActivity.kt @@ -8,15 +8,11 @@ import android.nfc.NfcAdapter import android.nfc.Tag import android.nfc.tech.IsoDep import android.os.Bundle -import androidx.appcompat.app.AppCompatActivity import android.view.KeyEvent import android.view.View -import android.view.animation.Animation -import android.view.animation.DecelerateInterpolator -import android.view.animation.Transformation import android.widget.ProgressBar -import android.widget.RelativeLayout import android.widget.Toast +import androidx.appcompat.app.AppCompatActivity import com.tangem.App import com.tangem.Constant import com.tangem.domain.wallet.CoinEngine @@ -34,6 +30,7 @@ import com.tangem.tangemcard.util.Util import com.tangem.util.LOG import com.tangem.wallet.R import kotlinx.android.synthetic.main.activity_sign_transaction.* +import kotlinx.android.synthetic.main.layout_progress_horizontal.* import kotlinx.android.synthetic.main.layout_touch_card.* class SignTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtocol.Notifications { @@ -45,7 +42,7 @@ class SignTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, private lateinit var nfcManager: NfcManager private lateinit var ctx: TangemContext - private lateinit var antenna: DeviceNFCAntennaLocation + private lateinit var nfcAntenna: DeviceNFCAntennaLocation private var signTransactionTask: SignTask? = null @@ -55,8 +52,6 @@ class SignTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, private var outAddressStr: String? = null private var lastReadSuccess = true - private var progressBar: ProgressBar? = null - override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_sign_transaction) @@ -65,41 +60,18 @@ class SignTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, ctx = TangemContext.loadFromBundle(this, intent.extras) + // init NFC Antenna + nfcAntenna = DeviceNFCAntennaLocation(this, ivHandCardHorizontal, ivHandCardVertical, llHand, llNfc) + nfcAntenna.init() + amount = CoinEngine.Amount(intent.getStringExtra(Constant.EXTRA_AMOUNT), intent.getStringExtra(Constant.EXTRA_AMOUNT_CURRENCY)) fee = CoinEngine.Amount(intent.getStringExtra(Constant.EXTRA_FEE), intent.getStringExtra(Constant.EXTRA_FEE_CURRENCY)) isIncludeFee = intent.getBooleanExtra(Constant.EXTRA_FEE_INCLUDED, true) outAddressStr = intent.getStringExtra(Constant.EXTRA_TARGET_ADDRESS) tvCardID.text = ctx.card!!.cidDescription - - progressBar = findViewById(R.id.progressBar) - progressBar!!.progressTintList = ColorStateList.valueOf(Color.DKGRAY) - progressBar!!.visibility = View.INVISIBLE - - // get NFC Antenna - antenna = DeviceNFCAntennaLocation() - antenna.getAntennaLocation() - - // set card orientation - when (antenna.orientation) { - DeviceNFCAntennaLocation.CARD_ORIENTATION_HORIZONTAL -> { - ivHandCardHorizontal.visibility = View.VISIBLE - ivHandCardVertical.visibility = View.GONE - } - - DeviceNFCAntennaLocation.CARD_ORIENTATION_VERTICAL -> { - ivHandCardVertical.visibility = View.VISIBLE - ivHandCardHorizontal.visibility = View.GONE - } - } - - // set card z position - when (antenna.z) { - DeviceNFCAntennaLocation.CARD_ON_BACK -> llHand.elevation = 0.0f - DeviceNFCAntennaLocation.CARD_ON_FRONT -> llHand.elevation = 30.0f - } - - animate() + progressBar.progressTintList = ColorStateList.valueOf(Color.DKGRAY) + progressBar.visibility = View.INVISIBLE } public override fun onResume() { @@ -194,14 +166,14 @@ class SignTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, override fun onReadStart(cardProtocol: CardProtocol) { rlProgressBar.post { rlProgressBar.visibility = View.VISIBLE } - progressBar!!.post { - progressBar!!.visibility = View.VISIBLE - progressBar!!.progress = 5 + progressBar?.post { + progressBar?.visibility = View.VISIBLE + progressBar?.progress = 5 } } override fun onReadProgress(protocol: CardProtocol, progress: Int) { - progressBar!!.post { progressBar!!.progress = progress } + progressBar?.post { progressBar!!.progress = progress } } override fun onReadFinish(cardProtocol: CardProtocol?) { @@ -311,7 +283,6 @@ class SignTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, // val readBeforeRequest = ReadBeforeRequest() // readBeforeRequest.timeout = timeout // EventBus.getDefault().post(readBeforeRequest) - } override fun onReadAfterRequest() { @@ -320,7 +291,6 @@ class SignTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, // val readAfterRequest = ReadAfterRequest() // EventBus.getDefault().post(readAfterRequest) - } override fun onReadWait(msec: Int) { @@ -330,29 +300,6 @@ class SignTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, // val readWait = ReadWait() // readWait.msec = msec // EventBus.getDefault().post(readWait) - - } - private fun animate() { - val lp = llHand.layoutParams as RelativeLayout.LayoutParams - val lp2 = llNfc.layoutParams as RelativeLayout.LayoutParams - val dp = resources.displayMetrics.density - val lm = dp * (69 + antenna.x * 75) - lp.topMargin = (dp * (-100 + antenna.y * 250)).toInt() - lp2.topMargin = (dp * (-125 + antenna.y * 250)).toInt() - llNfc.layoutParams = lp2 - - val a = object : Animation() { - override fun applyTransformation(interpolatedTime: Float, t: Transformation) { - lp.leftMargin = (lm * interpolatedTime).toInt() - llHand.layoutParams = lp - } - } - a.duration = 2000 - a.interpolator = DecelerateInterpolator() - llHand.startAnimation(a) - } - - } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/util/CryptoUtil.java b/app/src/main/java/com/tangem/util/CryptoUtil.java index 495c29175e..9e5c5d08d1 100644 --- a/app/src/main/java/com/tangem/util/CryptoUtil.java +++ b/app/src/main/java/com/tangem/util/CryptoUtil.java @@ -155,7 +155,7 @@ public class CryptoUtil { // See Bitcoin Core's IsCanonicalSignature, https://bitcointalk.org/index.php?topic=8392.msg127623#msg127623 // A canonical signature exists of: <30> <02> <02> // Where R and S are not negative (their first byte has its highest bit not set), and not - // excessively padded (do not start with a 0 byte, unless an otherwise negative number follows, + // excessively padded (do not init with a 0 byte, unless an otherwise negative number follows, // in which case a single 0 byte is necessary and even required). if (signature.length < 9 || signature.length > 73) return false; diff --git a/app/src/main/res/layout/activity_create_new_wallet.xml b/app/src/main/res/layout/activity_create_new_wallet.xml index 070774ae38..9776ceca9e 100644 --- a/app/src/main/res/layout/activity_create_new_wallet.xml +++ b/app/src/main/res/layout/activity_create_new_wallet.xml @@ -58,7 +58,6 @@ \ No newline at end of file diff --git a/app/src/main/res/layout/layout_touch_card.xml b/app/src/main/res/layout/layout_touch_card.xml index fce12a51f3..592067c9dd 100644 --- a/app/src/main/res/layout/layout_touch_card.xml +++ b/app/src/main/res/layout/layout_touch_card.xml @@ -24,7 +24,7 @@ - - + - - + { + ivHandCardHorizontal.visibility = View.VISIBLE + ivHandCardVertical.visibility = View.GONE + } + + CARD_ORIENTATION_VERTICAL -> { + ivHandCardVertical.visibility = View.VISIBLE + ivHandCardHorizontal.visibility = View.GONE + } + } + + // set card z position + when (z) { + DeviceNFCAntennaLocation.CARD_ON_BACK -> llHand.elevation = 0.0f + DeviceNFCAntennaLocation.CARD_ON_FRONT -> llHand.elevation = 30.0f + } + } + } \ No newline at end of file