Updated on 2026-08-14

This commit is contained in:
Tangem 2018-12-07 12:19:48 +03:00
commit bdd27a5dfd
28 changed files with 390 additions and 193 deletions

View file

@ -63,7 +63,7 @@ class ConfirmPaymentActivity : AppCompatActivity(), NfcAdapter.ReaderCallback {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_confirm_payment)
MainActivity.commonInit(applicationContext)
// MainActivity.commonInit(applicationContext)
nfcManager = NfcManager(this, this)

View file

@ -42,7 +42,7 @@ class CreateNewWalletActivity : AppCompatActivity(), NfcAdapter.ReaderCallback,
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_create_new_wallet)
MainActivity.commonInit(applicationContext)
// MainActivity.commonInit(applicationContext)
nfcManager = NfcManager(this, this)

View file

@ -50,7 +50,7 @@ class EmptyWalletActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, Card
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_empty_wallet)
MainActivity.commonInit(applicationContext)
// MainActivity.commonInit(applicationContext)
nfcManager = NfcManager(this, this)

View file

@ -7,6 +7,7 @@ import android.nfc.Tag
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import com.tangem.App
import com.tangem.Constant
import com.tangem.di.Navigator
import com.tangem.domain.wallet.TangemContext
import com.tangem.presentation.fragment.LoadedWallet
@ -21,7 +22,7 @@ class LoadedWalletActivity : AppCompatActivity() {
companion object {
fun callingIntent(context: Context, lastTag: Tag, ctx: TangemContext): Intent {
val intent = Intent(context, LoadedWalletActivity::class.java)
intent.putExtra(MainActivity.EXTRA_LAST_DISCOVERED_TAG, lastTag)
intent.putExtra(Constant.EXTRA_LAST_DISCOVERED_TAG, lastTag)
ctx.saveToIntent(intent)
return intent
}
@ -33,7 +34,7 @@ class LoadedWalletActivity : AppCompatActivity() {
App.getNavigatorComponent().inject(this)
MainActivity.commonInit(applicationContext)
// MainActivity.commonInit(applicationContext)
if (intent.extras!!.containsKey(NfcAdapter.EXTRA_TAG)) {
val tag = intent.getParcelableExtra<Tag>(NfcAdapter.EXTRA_TAG)

View file

@ -1,9 +1,12 @@
package com.tangem.presentation.activity
import android.annotation.SuppressLint
import android.content.Context
import android.content.Intent
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import com.tangem.App
import com.tangem.Constant
import com.tangem.di.Navigator
import com.tangem.wallet.BuildConfig
import com.tangem.wallet.R
@ -15,8 +18,11 @@ class LogoActivity : AppCompatActivity() {
companion object {
val TAG: String = LogoActivity::class.java.simpleName
const val EXTRA_AUTO_HIDE = "extra_auto_hide"
const val MILLIS_AUTO_HIDE = 1000
fun callingIntent(context: Context, autoHide: Boolean): Intent {
val intent = Intent(context, LogoActivity::class.java)
intent.putExtra(Constant.EXTRA_AUTO_HIDE, autoHide)
return intent
}
}
private val hideRunnable = Runnable { this.hide() }
@ -42,8 +48,8 @@ class LogoActivity : AppCompatActivity() {
else
tvAppVersion.text = "BETA v." + BuildConfig.VERSION_NAME
if (intent.getBooleanExtra(EXTRA_AUTO_HIDE, true))
ivLogo.postDelayed(hideRunnable, MILLIS_AUTO_HIDE.toLong())
if (intent.getBooleanExtra(Constant.EXTRA_AUTO_HIDE, true))
ivLogo.postDelayed(hideRunnable, Constant.MILLIS_AUTO_HIDE.toLong())
}
private fun hide() {

View file

@ -25,6 +25,7 @@ import android.widget.RelativeLayout
import android.widget.Toast
import com.scottyab.rootbeer.RootBeer
import com.tangem.App
import com.tangem.Constant
import com.tangem.data.Logger
import com.tangem.tangemcard.data.local.PINStorage
import com.tangem.data.network.ServerApiCommon
@ -55,25 +56,18 @@ class MainActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtoco
companion object {
val TAG: String = MainActivity::class.java.simpleName
private const val REQUEST_CODE_SEND_EMAIL = 3
private const val REQUEST_CODE_ENTER_PIN_ACTIVITY = 2
const val REQUEST_CODE_SHOW_CARD_ACTIVITY = 1
private const val REQUEST_CODE_REQUEST_CAMERA_PERMISSIONS = 3
const val EXTRA_LAST_DISCOVERED_TAG = "extra_last_tag"
fun callingIntent(context: Context) = Intent(context, MainActivity::class.java)
fun commonInit(context: Context) {
if (PINStorage.needInit())
PINStorage.init(context)
if (Issuer.needInit())
Issuer.init(context)
if (Firmwares.needInit())
Firmwares.init(context)
}
// fun commonInit(context: Context) {
// if (PINStorage.needInit())
// PINStorage.init(context)
//
// if (Issuer.needInit())
// Issuer.init(context)
//
// if (Firmwares.needInit())
// Firmwares.init(context)
// }
}
private var nfcManager: NfcManager? = null
@ -110,7 +104,7 @@ class MainActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtoco
requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_NOSENSOR
commonInit(applicationContext)
// commonInit(applicationContext)
setNfcAdapterReaderCallback(this)
@ -158,7 +152,7 @@ class MainActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtoco
// check if root device
val rootBeer = RootBeer(this)
if (rootBeer.isRootedWithoutBusyBoxCheck && !BuildConfig.DEBUG)
RootFoundDialog().show(fragmentManager, RootFoundDialog.TAG)
RootFoundDialog().show(supportFragmentManager, RootFoundDialog.TAG)
// set listeners
fab.setOnClickListener { showMenu(it) }
@ -183,19 +177,19 @@ class MainActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtoco
NfcManager.verifyPermissions(this)
if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
Log.e("QRScanActivity", "User hasn't granted permission to use camera")
ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.CAMERA), REQUEST_CODE_REQUEST_CAMERA_PERMISSIONS)
ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.CAMERA), Constant.REQUEST_CODE_REQUEST_CAMERA_PERMISSIONS)
}
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
when (requestCode) {
REQUEST_CODE_SEND_EMAIL -> {
Constant.REQUEST_CODE_SEND_EMAIL -> {
if (zipFile != null) {
zipFile!!.delete()
zipFile = null
}
}
REQUEST_CODE_ENTER_PIN_ACTIVITY -> {
Constant.REQUEST_CODE_ENTER_PIN_ACTIVITY -> {
if (resultCode == Activity.RESULT_OK && lastTag != null)
onTagDiscovered(lastTag!!)
else
@ -219,7 +213,6 @@ class MainActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtoco
override fun onOptionsItemSelected(item: MenuItem): Boolean {
val id = item.itemId
when (id) {
R.id.sendLogs -> {
var f: File? = null
@ -240,17 +233,17 @@ class MainActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtoco
return true
}
R.id.managePIN -> {
showSavePinActivity()
navigator.showPinSave(this, false)
return true
}
R.id.managePIN2 -> {
showSavePin2Activity()
navigator.showPinSave(this, true)
return true
}
R.id.about -> {
showLogoActivity()
navigator.showLogo(this, false)
return true
}
}
@ -311,6 +304,7 @@ class MainActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtoco
}
override fun onReadProgress(protocol: CardProtocol, progress: Int) {
}
override fun onReadFinish(cardProtocol: CardProtocol?) {
@ -355,7 +349,7 @@ class MainActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtoco
unsuccessReadCount++
if (cardProtocol.error is CardProtocol.TangemException_InvalidPIN)
doEnterPIN()
navigator.showPinRequest(this, PinRequestActivity.Mode.RequestPIN.toString())
else {
if (cardProtocol.error is CardProtocol.TangemException_ExtendedLengthNotSupported)
if (!NoExtendedLengthSupportDialog.allReadyShowed)
@ -406,13 +400,6 @@ class MainActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtoco
onNfcReaderCallback = callback
}
private fun showLogoActivity() {
val intent = Intent(baseContext, LogoActivity::class.java)
intent.putExtra(LogoActivity.TAG, true)
intent.putExtra(LogoActivity.EXTRA_AUTO_HIDE, false)
startActivity(intent)
}
private fun animate() {
val lp = llHand.layoutParams as RelativeLayout.LayoutParams
val lp2 = llNfc.layoutParams as RelativeLayout.LayoutParams
@ -433,18 +420,6 @@ class MainActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtoco
llHand.startAnimation(a)
}
private fun showSavePinActivity() {
val intent = Intent(baseContext, PinSaveActivity::class.java)
intent.putExtra("PIN2", false)
startActivity(intent)
}
private fun showSavePin2Activity() {
val intent = Intent(baseContext, PinSaveActivity::class.java)
intent.putExtra("PIN2", true)
startActivity(intent)
}
private fun showMenu(v: View) {
val popup = PopupMenu(this, v)
val inflater = popup.menuInflater
@ -460,10 +435,4 @@ class MainActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtoco
popup.show()
}
private fun doEnterPIN() {
val intent = Intent(this, PinRequestActivity::class.java)
intent.putExtra("mode", PinRequestActivity.Mode.RequestPIN.toString())
startActivityForResult(intent, REQUEST_CODE_ENTER_PIN_ACTIVITY)
}
}

View file

@ -19,6 +19,7 @@ import android.text.TextUtils
import android.util.Log
import android.view.View
import android.widget.Button
import com.tangem.Constant
import com.tangem.data.fingerprint.StartFingerprintReaderTask
import com.tangem.tangemcard.reader.NfcManager
import com.tangem.data.fingerprint.FingerprintHelper
@ -34,6 +35,12 @@ class PinRequestActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, Finge
companion object {
const val KEY_ALIAS = "pinKey"
const val KEYSTORE = "AndroidKeyStore"
fun callingIntent(context: Activity, mode: String): Intent {
val intent = Intent(context, PinRequestActivity::class.java)
intent.putExtra(Constant.EXTRA_MODE, mode)
return intent
}
}
lateinit var mode: Mode
@ -53,7 +60,7 @@ class PinRequestActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, Finge
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_pin_request)
MainActivity.commonInit(applicationContext)
// MainActivity.commonInit(applicationContext)
nfcManager = NfcManager(this, this)

View file

@ -6,6 +6,7 @@ import android.annotation.TargetApi
import android.app.Dialog
import android.app.KeyguardManager
import android.content.Context
import android.content.Intent
import android.content.pm.PackageManager
import android.hardware.fingerprint.FingerprintManager
import android.os.Build
@ -19,6 +20,7 @@ import android.text.TextUtils
import android.view.View
import android.widget.Button
import android.widget.Toast
import com.tangem.Constant
import com.tangem.data.fingerprint.ConfirmWithFingerprintTask
import com.tangem.data.fingerprint.FingerprintHelper
import com.tangem.tangemcard.data.local.PINStorage
@ -38,6 +40,16 @@ import javax.crypto.spec.IvParameterSpec
class PinSaveActivity : AppCompatActivity(), FingerprintHelper.FingerprintHelperListener {
companion object {
val TAG: String = PinSaveActivity::class.java.simpleName
fun callingIntent(context: Context, hasPin2: Boolean): Intent {
val intent = Intent(context, PinSaveActivity::class.java)
intent.putExtra(Constant.EXTRA_PIN2, hasPin2)
return intent
}
}
private var confirmWithFingerprintTask: ConfirmWithFingerprintTask? = null
private var keyStore: KeyStore? = null
private var cipher: Cipher? = null
@ -56,9 +68,9 @@ class PinSaveActivity : AppCompatActivity(), FingerprintHelper.FingerprintHelper
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_pin_save)
MainActivity.commonInit(applicationContext)
// MainActivity.commonInit(applicationContext)
usePIN2 = intent.getBooleanExtra("PIN2", false)
usePIN2 = intent.getBooleanExtra(Constant.EXTRA_PIN2, false)
if (usePIN2)
tvPinPrompt.text = getString(R.string.enter_pin2_and_use_fingerprint_to_save_it)

View file

@ -1,6 +1,7 @@
package com.tangem.presentation.activity
import android.app.Activity
import android.content.Context
import android.content.Intent
import android.content.res.ColorStateList
import android.graphics.Color
@ -12,6 +13,7 @@ import android.support.v7.app.AppCompatActivity
import android.view.View
import android.widget.ProgressBar
import android.widget.Toast
import com.tangem.Constant
import com.tangem.tangemcard.tasks.SwapPINTask
import com.tangem.tangemcard.reader.CardProtocol
import com.tangem.tangemcard.reader.NfcManager
@ -27,6 +29,13 @@ class PinSwapActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProt
companion object {
val TAG: String = PinSwapActivity::class.java.simpleName
fun callingIntent(context: Context, newPIN: String, newPIN2: String): Intent {
val intent = Intent(context, PinSwapActivity::class.java)
intent.putExtra(Constant.EXTRA_NEW_PIN, newPIN)
intent.putExtra(Constant.EXTRA_NEW_PIN_2, newPIN2)
return intent
}
const val RESULT_INVALID_PIN = Activity.RESULT_FIRST_USER
}
@ -44,15 +53,15 @@ class PinSwapActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProt
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_pin_swap)
MainActivity.commonInit(applicationContext)
// MainActivity.commonInit(applicationContext)
nfcManager = NfcManager(this, this)
card = TangemCard(intent.getStringExtra(TangemCard.EXTRA_UID))
card!!.loadFromBundle(intent.extras!!.getBundle(TangemCard.EXTRA_CARD))
newPIN = intent.getStringExtra("newPIN")
newPIN2 = intent.getStringExtra("newPIN2")
newPIN = intent.getStringExtra(Constant.EXTRA_NEW_PIN)
newPIN2 = intent.getStringExtra(Constant.EXTRA_NEW_PIN_2)
tvCardID.text = card!!.cidDescription

View file

@ -38,7 +38,7 @@ class PrepareCryptonitOtherApiWithdrawalActivity : AppCompatActivity(), NfcAdapt
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_prepare_cryptonit_other_api_withdrawal)
MainActivity.commonInit(applicationContext)
// MainActivity.commonInit(applicationContext)
nfcManager = NfcManager(this, this)
@ -57,7 +57,7 @@ class PrepareCryptonitOtherApiWithdrawalActivity : AppCompatActivity(), NfcAdapt
tvCurrency.text = engine!!.balanceCurrency
etAmount.setText(engine.convertToAmount(engine.convertToInternalAmount(ctx.card!!.denomination)).toValueString())
etAmount.filters=engine.amountInputFilters
etAmount.filters = engine.amountInputFilters
// set listeners
btnLoad.setOnClickListener {
@ -66,7 +66,7 @@ class PrepareCryptonitOtherApiWithdrawalActivity : AppCompatActivity(), NfcAdapt
val strAmount: String = etAmount.text.toString().replace(",", ".")
// if (!engine.checkAmount(card, strAmount))
// etAmount.error = getString(R.string.unknown_amount_format)
var dblAmount: Double = strAmount.toDouble()
val dblAmount: Double = strAmount.toDouble()
rlProgressBar.visibility = View.VISIBLE
tvProgressDescription.text = getString(R.string.cryptonit_request_withdrawal)
@ -177,8 +177,8 @@ class PrepareCryptonitOtherApiWithdrawalActivity : AppCompatActivity(), NfcAdapt
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") ) {
when(requestCode) {
if (resultCode == Activity.RESULT_OK && data != null && data.extras!!.containsKey("QRCode")) {
when (requestCode) {
REQUEST_CODE_SCAN_QR_KEY -> {
cryptonit!!.key = data.getStringExtra("QRCode")
tvKey!!.text = cryptonit!!.key

View file

@ -39,7 +39,7 @@ class PrepareCryptonitWithdrawalActivity : AppCompatActivity(), NfcAdapter.Reade
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_prepare_cryptonit_withdrawal)
MainActivity.commonInit(applicationContext)
// MainActivity.commonInit(applicationContext)
nfcManager = NfcManager(this, this)

View file

@ -45,7 +45,7 @@ class PrepareKrakenWithdrawalActivity : AppCompatActivity(), NfcAdapter.ReaderCa
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_prepare_kraken_withdrawal)
MainActivity.commonInit(applicationContext)
// MainActivity.commonInit(applicationContext)
nfcManager = NfcManager(this, this)

View file

@ -37,7 +37,7 @@ class PreparePaymentActivity : AppCompatActivity(), NfcAdapter.ReaderCallback {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_prepare_payment)
MainActivity.commonInit(applicationContext)
// MainActivity.commonInit(applicationContext)
nfcManager = NfcManager(this, this)

View file

@ -41,7 +41,7 @@ class PurgeActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtoc
nfcManager = NfcManager(this, this)
MainActivity.commonInit(applicationContext)
// MainActivity.commonInit(applicationContext)
ctx = TangemContext.loadFromBundle(this, intent.extras)

View file

@ -38,7 +38,7 @@ class SendTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallback {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_send_transaction)
MainActivity.commonInit(applicationContext)
// MainActivity.commonInit(applicationContext)
nfcManager = NfcManager(this, this)

View file

@ -27,7 +27,6 @@ import com.tangem.tangemcard.util.Util
import com.tangem.wallet.R
import kotlinx.android.synthetic.main.activity_sign_payment.*
class SignPaymentActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtocol.Notifications {
companion object {
@ -61,7 +60,7 @@ class SignPaymentActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, Card
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_sign_payment)
MainActivity.commonInit(applicationContext)
// MainActivity.commonInit(applicationContext)
nfcManager = NfcManager(this, this)

View file

@ -33,7 +33,7 @@ class VerifyCardActivity : AppCompatActivity() {
App.getNavigatorComponent().inject(this)
MainActivity.commonInit(applicationContext)
// MainActivity.commonInit(applicationContext)
}
override fun onBackPressed() {