diff --git a/app/build.gradle b/app/build.gradle index ad5b551653..67a87b0986 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -75,6 +75,6 @@ dependencies { implementation 'me.dm7.barcodescanner:zxing:1.9.8' implementation 'info.hoang8f:android-segmented:1.0.6' implementation 'io.reactivex.rxjava2:rxjava:2.2.0' - implementation 'io.reactivex.rxjava2:rxandroid:2.0.1' + implementation 'io.reactivex.rxjava2:rxandroid:2.0.2' implementation 'io.reactivex.rxjava2:rxkotlin:2.3.0' } \ 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 8a88b1c0b3..bdb47af618 100644 --- a/app/src/main/java/com/tangem/presentation/activity/SignTransactionActivity.kt +++ b/app/src/main/java/com/tangem/presentation/activity/SignTransactionActivity.kt @@ -4,6 +4,7 @@ import android.app.Activity import android.content.Intent import android.content.res.ColorStateList import android.graphics.Color +import android.media.MediaPlayer import android.nfc.NfcAdapter import android.nfc.Tag import android.nfc.tech.IsoDep @@ -41,6 +42,7 @@ class SignTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, private lateinit var nfcManager: NfcManager private lateinit var ctx: TangemContext + private lateinit var mpFinishSignSound: MediaPlayer private lateinit var nfcDeviceAntenna: NfcDeviceAntennaLocation @@ -61,6 +63,8 @@ class SignTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, ctx = TangemContext.loadFromBundle(this, intent.extras) + mpFinishSignSound = MediaPlayer.create(this, R.raw.scan_card_sound) + // init NFC Antenna nfcDeviceAntenna = NfcDeviceAntennaLocation(this, ivHandCardHorizontal, ivHandCardVertical, llHand, llNfc) nfcDeviceAntenna.init() @@ -173,22 +177,24 @@ class SignTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, if (cardProtocol.error == null) { rlProgressBar.post { rlProgressBar.visibility = View.GONE } - progressBar!!.post { - progressBar!!.progress = 100 - progressBar!!.progressTintList = ColorStateList.valueOf(Color.GREEN) + progressBar?.post { + progressBar?.progress = 100 + progressBar?.progressTintList = ColorStateList.valueOf(Color.GREEN) } + + mpFinishSignSound.start() } else { lastReadSuccess = false if (cardProtocol.error.javaClass == CardProtocol.TangemException_InvalidPIN::class.java) { - progressBar!!.post { - progressBar!!.progress = 100 - progressBar!!.progressTintList = ColorStateList.valueOf(Color.RED) + progressBar?.post { + progressBar?.progress = 100 + progressBar?.progressTintList = ColorStateList.valueOf(Color.RED) } - 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 val intent = Intent() intent.putExtra("message", getString(R.string.cannot_sign_transaction_make_sure_you_enter_correct_pin_2)) intent.putExtra("UID", cardProtocol.card.uid) 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 3a0117b6fc..ce1109d0e5 100644 --- a/app/src/main/java/com/tangem/presentation/fragment/LoadedWallet.kt +++ b/app/src/main/java/com/tangem/presentation/fragment/LoadedWallet.kt @@ -6,6 +6,7 @@ import android.content.* import android.content.Context.CLIPBOARD_SERVICE import android.content.pm.PackageManager import android.content.res.ColorStateList +import android.media.MediaPlayer import android.nfc.NfcAdapter import android.nfc.Tag import android.nfc.tech.IsoDep @@ -69,6 +70,7 @@ class LoadedWallet : androidx.fragment.app.Fragment(), NfcAdapter.ReaderCallback private lateinit var ctx: TangemContext private lateinit var nfcManager: NfcManager + private lateinit var mpSecondScanSound: MediaPlayer private var serverApiCommon: ServerApiCommon = ServerApiCommon() private var serverApiTangem: ServerApiTangem = ServerApiTangem() private var lastTag: Tag? = null @@ -105,6 +107,7 @@ class LoadedWallet : androidx.fragment.app.Fragment(), NfcAdapter.ReaderCallback srl.isRefreshing = true } + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) ctx = TangemContext.loadFromBundle(activity, activity?.intent?.extras) @@ -113,6 +116,8 @@ class LoadedWallet : androidx.fragment.app.Fragment(), NfcAdapter.ReaderCallback lifecycle.addObserver(NfcLifecycleObserver(nfcManager)) lastTag = activity?.intent?.getParcelableExtra(Constant.EXTRA_LAST_DISCOVERED_TAG) + + mpSecondScanSound = MediaPlayer.create(activity, R.raw.scan_card_sound) } override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { @@ -142,6 +147,7 @@ class LoadedWallet : androidx.fragment.app.Fragment(), NfcAdapter.ReaderCallback val engine = CoinEngineFactory.create(ctx) startActivity(Intent(Intent.ACTION_VIEW, engine?.walletExplorerUri)) } + btnCopy.setOnClickListener { doShareWallet(false) } btnLoad.setOnClickListener { @@ -470,12 +476,15 @@ class LoadedWallet : androidx.fragment.app.Fragment(), NfcAdapter.ReaderCallback verifyCardTask = null if (cardProtocol != null) { if (cardProtocol.error == null) { - rlProgressBar?.post { rlProgressBar?.visibility = View.GONE this.cardProtocol = cardProtocol - if (!cardProtocol.card.isWalletPublicKeyValid) refresh() - else updateViews() + if (!cardProtocol.card.isWalletPublicKeyValid) + refresh() + else + updateViews() + + mpSecondScanSound.start() } } else { // remove last UIDs because of error and no card read diff --git a/app/src/main/res/raw/scan_card_sound.mp3 b/app/src/main/res/raw/scan_card_sound.mp3 new file mode 100644 index 0000000000..704f2441df Binary files /dev/null and b/app/src/main/res/raw/scan_card_sound.mp3 differ