diff --git a/app/build.gradle b/app/build.gradle
index 0419d814a4..9a0201b554 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -44,12 +44,15 @@ android {
}
dependencies {
+ def lifecycle_version = "2.0.0"
+
implementation project(':tangemcard-common')
implementation project(':tangemcard-android')
implementation project(':tangemserver-android')
implementation 'androidx.appcompat:appcompat:1.1.0-alpha01'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
+ implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version"
implementation 'com.google.android.material:material:1.1.0-alpha02'
implementation 'com.google.dagger:dagger:2.16'
implementation 'com.google.zxing:core:3.3.3'
diff --git a/app/src/main/java/com/tangem/presentation/activity/ConfirmTransactionActivity.kt b/app/src/main/java/com/tangem/presentation/activity/ConfirmTransactionActivity.kt
index aa7826c36f..290d86db93 100644
--- a/app/src/main/java/com/tangem/presentation/activity/ConfirmTransactionActivity.kt
+++ b/app/src/main/java/com/tangem/presentation/activity/ConfirmTransactionActivity.kt
@@ -44,6 +44,7 @@ class ConfirmTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallbac
setContentView(R.layout.activity_confirm_transaction)
nfcManager = NfcManager(this, this)
+ lifecycle.addObserver(NfcLifecycleObserver(nfcManager))
ctx = TangemContext.loadFromBundle(this, intent.extras)
@@ -185,21 +186,6 @@ class ConfirmTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallbac
amount)
}
- public override fun onResume() {
- super.onResume()
- nfcManager.onResume()
- }
-
- public override fun onPause() {
- super.onPause()
- nfcManager.onPause()
- }
-
- public override fun onStop() {
- super.onStop()
- nfcManager.onStop()
- }
-
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == Constant.REQUEST_CODE_SIGN_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 2d658484a7..97da6ec7c5 100644
--- a/app/src/main/java/com/tangem/presentation/activity/CreateNewWalletActivity.kt
+++ b/app/src/main/java/com/tangem/presentation/activity/CreateNewWalletActivity.kt
@@ -9,14 +9,9 @@ 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.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.TangemContext
@@ -57,6 +52,7 @@ class CreateNewWalletActivity : AppCompatActivity(), NfcAdapter.ReaderCallback,
setContentView(R.layout.activity_create_new_wallet)
nfcManager = NfcManager(this, this)
+ lifecycle.addObserver(NfcLifecycleObserver(nfcManager))
ctx = TangemContext.loadFromBundle(this, intent.extras)
@@ -96,26 +92,11 @@ class CreateNewWalletActivity : AppCompatActivity(), NfcAdapter.ReaderCallback,
}
}
- public override fun onResume() {
- super.onResume()
- nfcManager.onResume()
- }
-
public override fun onPause() {
- nfcManager.onPause()
- if (createNewWalletTask != null)
- createNewWalletTask!!.cancel(true)
+ createNewWalletTask?.cancel(true)
super.onPause()
}
- public override fun onStop() {
- // dismiss enable NFC dialog
- nfcManager.onStop()
- if (createNewWalletTask != null)
- createNewWalletTask!!.cancel(true)
- super.onStop()
- }
-
override fun onReadStart(cardProtocol: CardProtocol) {
rlProgressBar?.post { rlProgressBar.visibility = View.VISIBLE }
diff --git a/app/src/main/java/com/tangem/presentation/activity/EmptyWalletActivity.kt b/app/src/main/java/com/tangem/presentation/activity/EmptyWalletActivity.kt
index 25218e0f0f..7aaa9aadde 100644
--- a/app/src/main/java/com/tangem/presentation/activity/EmptyWalletActivity.kt
+++ b/app/src/main/java/com/tangem/presentation/activity/EmptyWalletActivity.kt
@@ -64,6 +64,7 @@ class EmptyWalletActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, Card
App.getNavigatorComponent().inject(this)
nfcManager = NfcManager(this, this)
+ lifecycle.addObserver(NfcLifecycleObserver(nfcManager))
ctx = TangemContext.loadFromBundle(this, intent.extras)
@@ -99,21 +100,6 @@ class EmptyWalletActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, Card
}
}
- public override fun onResume() {
- super.onResume()
- nfcManager.onResume()
- }
-
- public override fun onPause() {
- super.onPause()
- nfcManager.onPause()
- }
-
- public override fun onStop() {
- super.onStop()
- nfcManager.onStop()
- }
-
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
if (requestCode == Constant.REQUEST_CODE_CREATE_NEW_WALLET_ACTIVITY) {
if (resultCode == Activity.RESULT_OK) {
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 f3bae0bdf9..d4fe8a6c5b 100644
--- a/app/src/main/java/com/tangem/presentation/activity/MainActivity.kt
+++ b/app/src/main/java/com/tangem/presentation/activity/MainActivity.kt
@@ -86,6 +86,7 @@ class MainActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtoco
requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
nfcManager = NfcManager(this, this)
+ lifecycle.addObserver(NfcLifecycleObserver(nfcManager))
verifyPermissions()
@@ -243,18 +244,14 @@ class MainActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtoco
super.onResume()
nfcAntenna.animate()
ReadCardInfoTask.resetLastReadInfo()
- nfcManager.onResume()
}
public override fun onPause() {
- nfcManager.onPause()
readCardInfoTask?.cancel(true)
super.onPause()
}
public override fun onStop() {
- // dismiss enable NFC dialog
- nfcManager.onStop()
readCardInfoTask?.cancel(true)
super.onStop()
}
diff --git a/app/src/main/java/com/tangem/presentation/activity/NfcLifecycleObserver.kt b/app/src/main/java/com/tangem/presentation/activity/NfcLifecycleObserver.kt
new file mode 100644
index 0000000000..73d9b6dccf
--- /dev/null
+++ b/app/src/main/java/com/tangem/presentation/activity/NfcLifecycleObserver.kt
@@ -0,0 +1,25 @@
+package com.tangem.presentation.activity
+
+import androidx.lifecycle.Lifecycle
+import androidx.lifecycle.LifecycleObserver
+import androidx.lifecycle.OnLifecycleEvent
+import com.tangem.tangemcard.android.reader.NfcManager
+
+class NfcLifecycleObserver(private var nfcManager: NfcManager) : LifecycleObserver {
+
+ @OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
+ fun onResume() {
+ nfcManager.onResume()
+ }
+
+ @OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
+ fun onPause() {
+ nfcManager.onPause()
+ }
+
+ @OnLifecycleEvent(Lifecycle.Event.ON_STOP)
+ fun onStop() {
+ nfcManager.onStop()
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/tangem/presentation/activity/PinRequestActivity.kt b/app/src/main/java/com/tangem/presentation/activity/PinRequestActivity.kt
index ec5851e00c..25f9e20784 100644
--- a/app/src/main/java/com/tangem/presentation/activity/PinRequestActivity.kt
+++ b/app/src/main/java/com/tangem/presentation/activity/PinRequestActivity.kt
@@ -100,6 +100,7 @@ class PinRequestActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, Finge
setContentView(R.layout.activity_pin_request)
nfcManager = NfcManager(this, this)
+ lifecycle.addObserver(NfcLifecycleObserver(nfcManager))
mode = Mode.valueOf(intent.getStringExtra(Constant.EXTRA_MODE))
@@ -171,7 +172,6 @@ class PinRequestActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, Finge
override fun onPause() {
super.onPause()
-
if (fingerprintHelper != null)
fingerprintHelper!!.cancel()
@@ -179,8 +179,6 @@ class PinRequestActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, Finge
startFingerprintReaderTask!!.cancel(true)
startFingerprintReaderTask = null
}
-
- nfcManager.onPause()
}
override fun onStop() {
@@ -192,13 +190,10 @@ class PinRequestActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, Finge
startFingerprintReaderTask!!.cancel(true)
startFingerprintReaderTask = null
}
-
- nfcManager.onStop()
}
override fun onResume() {
super.onResume()
- nfcManager.onResume()
if (allowFingerprint)
startFingerprintReader()
}
diff --git a/app/src/main/java/com/tangem/presentation/activity/PinSwapActivity.kt b/app/src/main/java/com/tangem/presentation/activity/PinSwapActivity.kt
index 95272c5346..49aa637d0e 100644
--- a/app/src/main/java/com/tangem/presentation/activity/PinSwapActivity.kt
+++ b/app/src/main/java/com/tangem/presentation/activity/PinSwapActivity.kt
@@ -56,6 +56,7 @@ class PinSwapActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProt
setContentView(R.layout.activity_pin_swap)
nfcManager = NfcManager(this, this)
+ lifecycle.addObserver(NfcLifecycleObserver(nfcManager))
card = TangemCard(intent.getStringExtra(EXTRA_TANGEM_CARD_UID))
card!!.loadFromBundle(intent.extras!!.getBundle(EXTRA_TANGEM_CARD))
@@ -92,23 +93,13 @@ class PinSwapActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProt
}
}
- public override fun onResume() {
- super.onResume()
- nfcManager.onResume()
- }
-
public override fun onPause() {
- nfcManager.onPause()
- if (swapPinTask != null)
- swapPinTask!!.cancel(true)
+ swapPinTask?.cancel(true)
super.onPause()
}
public override fun onStop() {
- // dismiss enable NFC dialog
- nfcManager.onStop()
- if (swapPinTask != null)
- swapPinTask!!.cancel(true)
+ swapPinTask?.cancel(true)
super.onStop()
}
diff --git a/app/src/main/java/com/tangem/presentation/activity/PrepareCryptonitOtherApiWithdrawalActivity.kt b/app/src/main/java/com/tangem/presentation/activity/PrepareCryptonitOtherApiWithdrawalActivity.kt
index 9d13b3c9e4..4450912190 100644
--- a/app/src/main/java/com/tangem/presentation/activity/PrepareCryptonitOtherApiWithdrawalActivity.kt
+++ b/app/src/main/java/com/tangem/presentation/activity/PrepareCryptonitOtherApiWithdrawalActivity.kt
@@ -44,6 +44,7 @@ class PrepareCryptonitOtherApiWithdrawalActivity : AppCompatActivity(), NfcAdapt
App.getNavigatorComponent().inject(this)
nfcManager = NfcManager(this, this)
+ lifecycle.addObserver(NfcLifecycleObserver(nfcManager))
ctx = TangemContext.loadFromBundle(this, intent.extras)
@@ -129,47 +130,6 @@ class PrepareCryptonitOtherApiWithdrawalActivity : AppCompatActivity(), NfcAdapt
doRequestBalance()
}
- private fun doRequestBalance() {
- if (cryptonit!!.havaAccountInfo()) {
- rlProgressBar.visibility = View.VISIBLE
- tvProgressDescription.text = getString(R.string.cryptonit_request_balance)
- tvError.visibility = View.INVISIBLE
- cryptonit!!.requestBalance(ctx.blockchain.currency, "USD")
- } else {
- tvError.visibility = View.VISIBLE
- tvError.text = getString(R.string.cryptonit_not_enough_account_data)
- }
- }
-
-// private fun EditText.afterTextChanged(afterTextChanged: (String) -> Unit) {
-// this.addTextChangedListener(object : TextWatcher {
-// override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
-// }
-//
-// override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
-// }
-//
-// override fun afterTextChanged(editable: Editable?) {
-// afterTextChanged.invoke(editable.toString())
-// }
-// })
-// }
-
- public override fun onResume() {
- super.onResume()
- nfcManager.onResume()
- }
-
- public override fun onPause() {
- super.onPause()
- nfcManager.onPause()
- }
-
- public override fun onStop() {
- super.onStop()
- nfcManager.onStop()
- }
-
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (resultCode == Activity.RESULT_OK && data != null && data.extras!!.containsKey("QRCode")) {
@@ -198,7 +158,18 @@ class PrepareCryptonitOtherApiWithdrawalActivity : AppCompatActivity(), NfcAdapt
} catch (e: IOException) {
e.printStackTrace()
}
+ }
+ private fun doRequestBalance() {
+ if (cryptonit!!.havaAccountInfo()) {
+ rlProgressBar.visibility = View.VISIBLE
+ tvProgressDescription.text = getString(R.string.cryptonit_request_balance)
+ tvError.visibility = View.INVISIBLE
+ cryptonit!!.requestBalance(ctx.blockchain.currency, "USD")
+ } else {
+ tvError.visibility = View.VISIBLE
+ tvError.text = getString(R.string.cryptonit_not_enough_account_data)
+ }
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/tangem/presentation/activity/PrepareCryptonitWithdrawalActivity.kt b/app/src/main/java/com/tangem/presentation/activity/PrepareCryptonitWithdrawalActivity.kt
index 18737def81..7f90e8e0b4 100644
--- a/app/src/main/java/com/tangem/presentation/activity/PrepareCryptonitWithdrawalActivity.kt
+++ b/app/src/main/java/com/tangem/presentation/activity/PrepareCryptonitWithdrawalActivity.kt
@@ -28,8 +28,8 @@ class PrepareCryptonitWithdrawalActivity : AppCompatActivity(), NfcAdapter.Reade
val TAG: String = PrepareCryptonitWithdrawalActivity::class.java.simpleName
}
- private lateinit var nfcManager: NfcManager
private lateinit var ctx: TangemContext
+ private lateinit var nfcManager: NfcManager
private var cryptonit: Cryptonit? = null
@@ -38,10 +38,11 @@ class PrepareCryptonitWithdrawalActivity : AppCompatActivity(), NfcAdapter.Reade
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_prepare_cryptonit_withdrawal)
- nfcManager = NfcManager(this, this)
-
ctx = TangemContext.loadFromBundle(this, intent.extras)
+ nfcManager = NfcManager(this, this)
+ lifecycle.addObserver(NfcLifecycleObserver(nfcManager))
+
cryptonit = Cryptonit(this)
etUsername.setText(cryptonit!!.username)
@@ -56,9 +57,9 @@ class PrepareCryptonitWithdrawalActivity : AppCompatActivity(), NfcAdapter.Reade
tvFeeCurrency.text = engine.feeCurrency
etAmount.setText(engine.convertToAmount(engine.convertToInternalAmount(ctx.card!!.denomination)).toValueString())
- etAmount.filters=engine.amountInputFilters
+ etAmount.filters = engine.amountInputFilters
- etAmount.setOnEditorActionListener { lv, actionId, event ->
+ etAmount.setOnEditorActionListener { lv, actionId, _ ->
if (actionId == EditorInfo.IME_ACTION_DONE) {
val imm = lv.context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
imm.hideSoftInputFromWindow(lv.windowToken, 0)
@@ -125,7 +126,7 @@ class PrepareCryptonitWithdrawalActivity : AppCompatActivity(), NfcAdapter.Reade
cryptonit!!.setWithdrawalListener { response ->
rlProgressBar.visibility = View.INVISIBLE
if (response.success != null && response.success!!) {
- Toast.makeText(this, "Withdrawal successful!", Toast.LENGTH_LONG).show();
+ Toast.makeText(this, R.string.withdrawal_successful, Toast.LENGTH_LONG).show();
finish()
} else {
tvError.visibility = View.VISIBLE
@@ -136,6 +137,14 @@ class PrepareCryptonitWithdrawalActivity : AppCompatActivity(), NfcAdapter.Reade
doRequestBalance()
}
+ override fun onTagDiscovered(tag: Tag) {
+ try {
+ nfcManager.ignoreTag(tag)
+ } catch (e: IOException) {
+ e.printStackTrace()
+ }
+ }
+
private fun doRequestBalance() {
if (cryptonit!!.haveAccountInfo()) {
rlProgressBar.visibility = View.VISIBLE
@@ -148,28 +157,4 @@ class PrepareCryptonitWithdrawalActivity : AppCompatActivity(), NfcAdapter.Reade
}
}
- public override fun onResume() {
- super.onResume()
- nfcManager.onResume()
- }
-
- public override fun onPause() {
- super.onPause()
- nfcManager.onPause()
- }
-
- public override fun onStop() {
- super.onStop()
- nfcManager.onStop()
- }
-
- override fun onTagDiscovered(tag: Tag) {
- try {
- nfcManager.ignoreTag(tag)
- } catch (e: IOException) {
- e.printStackTrace()
- }
-
- }
-
}
\ No newline at end of file
diff --git a/app/src/main/java/com/tangem/presentation/activity/PrepareKrakenWithdrawalActivity.kt b/app/src/main/java/com/tangem/presentation/activity/PrepareKrakenWithdrawalActivity.kt
index b99dfa531c..74f190c552 100644
--- a/app/src/main/java/com/tangem/presentation/activity/PrepareKrakenWithdrawalActivity.kt
+++ b/app/src/main/java/com/tangem/presentation/activity/PrepareKrakenWithdrawalActivity.kt
@@ -38,7 +38,8 @@ class PrepareKrakenWithdrawalActivity : AppCompatActivity(), NfcAdapter.ReaderCa
}
private lateinit var ctx: TangemContext
- private var nfcManager: NfcManager? = null
+ private lateinit var nfcManager: NfcManager
+
private var kraken: Kraken? = null
private var fee: BigDecimal? = null
@@ -52,10 +53,11 @@ class PrepareKrakenWithdrawalActivity : AppCompatActivity(), NfcAdapter.ReaderCa
App.getNavigatorComponent().inject(this)
- nfcManager = NfcManager(this, this)
-
ctx = TangemContext.loadFromBundle(this, intent.extras)
+ nfcManager = NfcManager(this, this)
+ lifecycle.addObserver(NfcLifecycleObserver(nfcManager))
+
kraken = Kraken(this)
tvKey.text = kraken!!.key
@@ -68,7 +70,7 @@ class PrepareKrakenWithdrawalActivity : AppCompatActivity(), NfcAdapter.ReaderCa
tvCurrency.text = engine!!.balanceCurrency
etAmount.setText(engine.convertToAmount(engine.convertToInternalAmount(ctx.card!!.denomination)).toValueString())
- etAmount.filters=engine.amountInputFilters
+ etAmount.filters = engine.amountInputFilters
etAmount.setOnEditorActionListener { lv, actionId, event ->
if (actionId == EditorInfo.IME_ACTION_DONE) {
@@ -167,7 +169,7 @@ class PrepareKrakenWithdrawalActivity : AppCompatActivity(), NfcAdapter.ReaderCa
val builder = AlertDialog.Builder(this)
// Set a title for alert dialog
- builder.setTitle("Please confirm withdraw")
+ builder.setTitle(R.string.please_confirm_withdraw)
// Set a message for alert dialog
builder.setMessage(String.format("Continue with fee %s %s?", fee!!.toString().trimEnd('0'), ctx.blockchain.currency))
@@ -186,23 +188,22 @@ class PrepareKrakenWithdrawalActivity : AppCompatActivity(), NfcAdapter.ReaderCa
rlProgressBar.visibility = View.VISIBLE
tvProgressDescription.text = getString(R.string.kraken_request_withdrawal)
- //Toast.makeText(this, String.format("Withdraw %s!",dblAmount.toString()), Toast.LENGTH_LONG).show()
kraken!!.requestWithdraw(ctx.blockchain.currency, dblAmount.toString(), ctx.coinData!!.wallet)
} catch (e: Exception) {
etAmount.error = getString(R.string.unknown_amount_format)
}
}
DialogInterface.BUTTON_NEGATIVE -> {
- Toast.makeText(this, "Operation canceled!", Toast.LENGTH_LONG).show()
+ Toast.makeText(this, R.string.operation_canceled, Toast.LENGTH_LONG).show()
}
}
}
// Set the alert dialog positive/yes button
- builder.setPositiveButton("YES", dialogClickListener)
+ builder.setPositiveButton(R.string.yes, dialogClickListener)
// Set the alert dialog negative/no button
- builder.setNegativeButton("NO", dialogClickListener)
+ builder.setNegativeButton(R.string.no, dialogClickListener)
// Initialize the AlertDialog using builder object
@@ -224,21 +225,6 @@ class PrepareKrakenWithdrawalActivity : AppCompatActivity(), NfcAdapter.ReaderCa
}
}
- public override fun onResume() {
- super.onResume()
- nfcManager!!.onResume()
- }
-
- public override fun onPause() {
- super.onPause()
- nfcManager!!.onPause()
- }
-
- public override fun onStop() {
- super.onStop()
- nfcManager!!.onStop()
- }
-
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (resultCode == Activity.RESULT_OK && data != null && data.extras!!.containsKey("QRCode")) {
@@ -262,12 +248,10 @@ class PrepareKrakenWithdrawalActivity : AppCompatActivity(), NfcAdapter.ReaderCa
override fun onTagDiscovered(tag: Tag) {
try {
-// Log.w(javaClass.name, "Ignore discovered tag!")
- nfcManager!!.ignoreTag(tag)
+ nfcManager.ignoreTag(tag)
} catch (e: IOException) {
e.printStackTrace()
}
-
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/tangem/presentation/activity/PrepareTransactionActivity.kt b/app/src/main/java/com/tangem/presentation/activity/PrepareTransactionActivity.kt
index 6050ead283..3cb2c6db29 100644
--- a/app/src/main/java/com/tangem/presentation/activity/PrepareTransactionActivity.kt
+++ b/app/src/main/java/com/tangem/presentation/activity/PrepareTransactionActivity.kt
@@ -47,6 +47,7 @@ class PrepareTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallbac
App.getNavigatorComponent().inject(this)
nfcManager = NfcManager(this, this)
+ lifecycle.addObserver(NfcLifecycleObserver(nfcManager))
ctx = TangemContext.loadFromBundle(this, intent.extras)
@@ -129,21 +130,6 @@ class PrepareTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallbac
ivCamera.setOnClickListener { navigator.showQrScanActivity(this, Constant.REQUEST_CODE_SCAN_QR) }
}
- public override fun onResume() {
- super.onResume()
- nfcManager.onResume()
- }
-
- public override fun onPause() {
- super.onPause()
- nfcManager.onPause()
- }
-
- public override fun onStop() {
- super.onStop()
- nfcManager.onStop()
- }
-
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == Constant.REQUEST_CODE_SCAN_QR && resultCode == Activity.RESULT_OK && data != null && data.extras!!.containsKey("QRCode")) {
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 2db65fc008..7fc331f2be 100644
--- a/app/src/main/java/com/tangem/presentation/activity/PurgeActivity.kt
+++ b/app/src/main/java/com/tangem/presentation/activity/PurgeActivity.kt
@@ -10,28 +10,21 @@ 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.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 androidx.appcompat.app.AppCompatActivity
import com.tangem.App
-import com.tangem.tangemcard.tasks.PurgeTask
-import com.tangem.tangemcard.reader.CardProtocol
-import com.tangem.tangemcard.android.reader.NfcManager
import com.tangem.domain.wallet.TangemContext
import com.tangem.presentation.dialog.NoExtendedLengthSupportDialog
import com.tangem.presentation.dialog.WaitSecurityDelayDialog
import com.tangem.presentation.dialog.WaitSecurityDelayDialogNew
import com.tangem.presentation.event.DeletingWalletFinish
-import com.tangem.presentation.event.ReadAfterRequest
-import com.tangem.presentation.event.ReadBeforeRequest
-import com.tangem.presentation.event.ReadWait
import com.tangem.tangemcard.android.nfc.DeviceNFCAntennaLocation
+import com.tangem.tangemcard.android.reader.NfcManager
import com.tangem.tangemcard.android.reader.NfcReader
import com.tangem.tangemcard.data.asBundle
+import com.tangem.tangemcard.reader.CardProtocol
+import com.tangem.tangemcard.tasks.PurgeTask
import com.tangem.tangemcard.util.Util
import com.tangem.util.LOG
import com.tangem.wallet.R
@@ -72,6 +65,7 @@ class PurgeActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtoc
requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
nfcManager = NfcManager(this, this)
+ lifecycle.addObserver(NfcLifecycleObserver(nfcManager))
ctx = TangemContext.loadFromBundle(this, intent.extras)
@@ -84,20 +78,12 @@ class PurgeActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtoc
progressBar.visibility = View.INVISIBLE
}
- public override fun onResume() {
- super.onResume()
- nfcManager.onResume()
- }
-
public override fun onPause() {
- nfcManager.onPause()
purgeTask?.cancel(true)
super.onPause()
}
public override fun onStop() {
- // dismiss enable NFC dialog
- nfcManager.onStop()
purgeTask?.cancel(true)
super.onStop()
}
diff --git a/app/src/main/java/com/tangem/presentation/activity/SendTransactionActivity.kt b/app/src/main/java/com/tangem/presentation/activity/SendTransactionActivity.kt
index dc568af6ae..866da0588c 100644
--- a/app/src/main/java/com/tangem/presentation/activity/SendTransactionActivity.kt
+++ b/app/src/main/java/com/tangem/presentation/activity/SendTransactionActivity.kt
@@ -31,6 +31,7 @@ class SendTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallback {
setContentView(R.layout.activity_send_transaction)
nfcManager = NfcManager(this, this)
+ lifecycle.addObserver(NfcLifecycleObserver(nfcManager))
ctx = TangemContext.loadFromBundle(this, intent.extras)
tx = intent.getByteArrayExtra(Constant.EXTRA_TX)
@@ -67,21 +68,6 @@ class SendTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallback {
return super.onKeyDown(keyCode, event)
}
- public override fun onResume() {
- super.onResume()
- nfcManager.onResume()
- }
-
- public override fun onPause() {
- super.onPause()
- nfcManager.onPause()
- }
-
- public override fun onStop() {
- super.onStop()
- nfcManager.onStop()
- }
-
override fun onTagDiscovered(tag: Tag) {
try {
nfcManager.ignoreTag(tag)
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 2e20915f48..959c6e1f8c 100644
--- a/app/src/main/java/com/tangem/presentation/activity/SignTransactionActivity.kt
+++ b/app/src/main/java/com/tangem/presentation/activity/SignTransactionActivity.kt
@@ -10,7 +10,6 @@ import android.nfc.tech.IsoDep
import android.os.Bundle
import android.view.KeyEvent
import android.view.View
-import android.widget.ProgressBar
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import com.tangem.App
@@ -57,6 +56,7 @@ class SignTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallback,
setContentView(R.layout.activity_sign_transaction)
nfcManager = NfcManager(this, this)
+ lifecycle.addObserver(NfcLifecycleObserver(nfcManager))
ctx = TangemContext.loadFromBundle(this, intent.extras)
@@ -74,23 +74,13 @@ class SignTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallback,
progressBar.visibility = View.INVISIBLE
}
- public override fun onResume() {
- super.onResume()
- nfcManager.onResume()
- }
-
public override fun onPause() {
- nfcManager.onPause()
- if (signTransactionTask != null)
- signTransactionTask!!.cancel(true)
+ signTransactionTask?.cancel(true)
super.onPause()
}
public override fun onStop() {
- // dismiss enable NFC dialog
- nfcManager.onStop()
- if (signTransactionTask != null)
- signTransactionTask!!.cancel(true)
+ signTransactionTask?.cancel(true)
super.onStop()
}
diff --git a/app/src/main/java/com/tangem/presentation/fragment/LoadedWallet.kt b/app/src/main/java/com/tangem/presentation/fragment/LoadedWallet.kt
index 941929df51..fe2dd54a87 100644
--- a/app/src/main/java/com/tangem/presentation/fragment/LoadedWallet.kt
+++ b/app/src/main/java/com/tangem/presentation/fragment/LoadedWallet.kt
@@ -27,10 +27,7 @@ import com.tangem.domain.wallet.BalanceValidator
import com.tangem.domain.wallet.CoinEngine
import com.tangem.domain.wallet.CoinEngineFactory
import com.tangem.domain.wallet.TangemContext
-import com.tangem.presentation.activity.LoadedWalletActivity
-import com.tangem.presentation.activity.PinRequestActivity
-import com.tangem.presentation.activity.PrepareCryptonitWithdrawalActivity
-import com.tangem.presentation.activity.PrepareKrakenWithdrawalActivity
+import com.tangem.presentation.activity.*
import com.tangem.presentation.dialog.NoExtendedLengthSupportDialog
import com.tangem.presentation.dialog.PINSwapWarningDialog
import com.tangem.presentation.dialog.ShowQRCodeDialog
@@ -97,10 +94,11 @@ class LoadedWallet : androidx.fragment.app.Fragment(), NfcAdapter.ReaderCallback
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
- nfcManager = NfcManager(activity, this)
-
ctx = TangemContext.loadFromBundle(activity, activity?.intent?.extras)
+ nfcManager = NfcManager(activity, this)
+ lifecycle.addObserver(NfcLifecycleObserver(nfcManager))
+
lastTag = activity?.intent?.getParcelableExtra(Constant.EXTRA_LAST_DISCOVERED_TAG)
}
@@ -276,14 +274,8 @@ class LoadedWallet : androidx.fragment.app.Fragment(), NfcAdapter.ReaderCallback
startVerify(lastTag)
}
- override fun onResume() {
- super.onResume()
- nfcManager.onResume()
- }
-
override fun onPause() {
super.onPause()
- nfcManager.onPause()
if (timerHideErrorAndMessage != null) {
timerHideErrorAndMessage!!.cancel()
timerHideErrorAndMessage = null
@@ -296,11 +288,6 @@ class LoadedWallet : androidx.fragment.app.Fragment(), NfcAdapter.ReaderCallback
EventBus.getDefault().register(this)
}
- override fun onStop() {
- super.onStop()
- nfcManager.onStop()
- }
-
override fun onDestroy() {
EventBus.getDefault().unregister(this)
super.onDestroy()
diff --git a/app/src/main/java/com/tangem/presentation/fragment/VerifyCard.kt b/app/src/main/java/com/tangem/presentation/fragment/VerifyCard.kt
index 35c5a8cf01..dc8403a612 100644
--- a/app/src/main/java/com/tangem/presentation/fragment/VerifyCard.kt
+++ b/app/src/main/java/com/tangem/presentation/fragment/VerifyCard.kt
@@ -50,8 +50,10 @@ class VerifyCard : androidx.fragment.app.Fragment(), NfcAdapter.ReaderCallback {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
- nfcManager = NfcManager(activity, this)
ctx = TangemContext.loadFromBundle(activity, activity?.intent?.extras)
+
+ nfcManager = NfcManager(activity, this)
+ lifecycle.addObserver(NfcLifecycleObserver(nfcManager))
}
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
@@ -60,7 +62,6 @@ class VerifyCard : androidx.fragment.app.Fragment(), NfcAdapter.ReaderCallback {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
-
updateViews()
srlVerifyCard.setOnRefreshListener { srlVerifyCard.isRefreshing = false }
@@ -210,21 +211,6 @@ class VerifyCard : androidx.fragment.app.Fragment(), NfcAdapter.ReaderCallback {
}
}
- override fun onResume() {
- super.onResume()
- nfcManager.onResume()
- }
-
- override fun onPause() {
- super.onPause()
- nfcManager.onPause()
- }
-
- override fun onStop() {
- super.onStop()
- nfcManager.onStop()
- }
-
override fun onTagDiscovered(tag: Tag?) {
try {
nfcManager.ignoreTag(tag)
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index c56cbf03da..d490e04416 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -2,6 +2,8 @@
OK
Cancel
+ Yes
+ No
No connection with blockchain nodes
Continue
Not found
@@ -247,6 +249,7 @@
Get balance
Withdrawal
operation fee
+ Withdrawal successful!
KRAKEN payment
@@ -256,5 +259,7 @@
Please enter account data
Get balance
Withdrawal
+ Operation canceled!
+ Please confirm withdraw
\ No newline at end of file