Updated on 2026-08-14

This commit is contained in:
Tangem 2018-08-10 10:10:26 +03:00
parent 2aca481d18
commit 254acd0797
3 changed files with 48 additions and 11 deletions

View file

@ -1,5 +1,6 @@
package com.tangem.data.network
import android.app.Activity
import android.content.Context
import android.content.Intent
import android.support.v7.app.AlertDialog
@ -34,6 +35,13 @@ class VolleyHelper (private val requestCardVerify: IRequestCardVerify){
doRequestString(Server.API.Method.VERIFY, params)
}
fun requestCardVerifyShowResponse(context: Activity, card: TangemCard) {
val params = HashMap<String, String>()
params["CID"] = Util.bytesToHex(card.cid)
params["publicKey"] = Util.bytesToHex(card.cardPublicKey)
doRequestDebug(context, Server.API.Method.VERIFY, params)
}
fun doRequestDebug(context: Context, url: String, params: Map<String, String>) {
val stringRequest = object : StringRequest(Request.Method.GET, url,
{ response ->

View file

@ -3,11 +3,13 @@ package com.tangem.presentation.activity
import android.app.Activity
import android.content.Context
import android.content.Intent
import android.content.SharedPreferences
import android.content.pm.ActivityInfo
import android.nfc.NfcAdapter
import android.nfc.Tag
import android.nfc.tech.IsoDep
import android.os.Bundle
import android.preference.PreferenceManager
import android.support.v7.app.AppCompatActivity
import android.support.v7.widget.PopupMenu
import android.view.Menu
@ -27,6 +29,8 @@ import com.tangem.domain.wallet.*
import com.tangem.presentation.dialog.NoExtendedLengthSupportDialog
import com.tangem.presentation.dialog.RootFoundDialog
import com.tangem.presentation.dialog.WaitSecurityDelayDialog
import com.tangem.presentation.fragment.LoadedWallet
import com.tangem.presentation.fragment.SettingsDebug
import com.tangem.util.CommonUtil
import com.tangem.util.PhoneUtility
import com.tangem.wallet.BuildConfig
@ -79,6 +83,7 @@ class MainActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtoco
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
@ -139,6 +144,13 @@ class MainActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtoco
// set listeners
fab.setOnClickListener { this.showMenu(it) }
if (BuildConfig.DEBUG) {
fab.setOnLongClickListener {
startActivity(Intent(this, SettingsDebugActivity::class.java))
false
}
}
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {

View file

@ -1,17 +1,15 @@
package com.tangem.presentation.fragment
import android.app.Activity
import android.content.ActivityNotFoundException
import android.content.ClipData
import android.content.ClipboardManager
import android.content.*
import android.content.Context.CLIPBOARD_SERVICE
import android.content.Intent
import android.content.pm.PackageManager
import android.nfc.NfcAdapter
import android.nfc.Tag
import android.nfc.tech.IsoDep
import android.os.AsyncTask
import android.os.Bundle
import android.preference.PreferenceManager
import android.support.v4.app.Fragment
import android.support.v4.content.ContextCompat
import android.support.v4.widget.SwipeRefreshLayout
@ -21,6 +19,7 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Toast
import com.android.volley.BuildConfig
import com.google.zxing.WriterException
import com.tangem.data.network.Server
import com.tangem.data.network.VolleyHelper
@ -47,10 +46,16 @@ import com.tangem.wallet.R
import kotlinx.android.synthetic.main.fr_loaded_wallet.*
import java.util.*
class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notifications, VolleyHelper.IRequestCardVerify {
class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notifications, VolleyHelper.IRequestCardVerify, SharedPreferences.OnSharedPreferenceChangeListener {
override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences?, key: String?) {
if (BuildConfig.DEBUG && this@LoadedWallet.isAdded) {
debugNewRequestVerify = sharedPreferences!!.getBoolean(getString(R.string.key_debug_new_request_verify), false)
debugNewRequestVerifyShowJson = sharedPreferences.getBoolean(getString(R.string.key_debug_new_request_verify_show_json), false)
}
}
override fun success(responseVerify: ResponseVerify) {
Toast.makeText(activity, responseVerify.results!![1].CID, Toast.LENGTH_SHORT).show()
// Toast.makeText(activity, responseVerify.results!![1].CID, Toast.LENGTH_SHORT).show()
}
override fun error(error: String) {
@ -90,6 +95,10 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific
private var onlineVerifyTask: OnlineVerifyTask? = null
private var sp: SharedPreferences? = null
private var debugNewRequestVerify: Boolean = false
private var debugNewRequestVerifyShowJson: Boolean = false
private inner class OnlineVerifyTask : VerificationServerTask() {
override fun onPostExecute(requests: List<VerificationServerProtocol.Request>) {
@ -116,15 +125,22 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific
private fun requestVerify() {
if ((card!!.isOnlineVerified == null || !card!!.isOnlineVerified) && onlineVerifyTask == null) {
onlineVerifyTask = OnlineVerifyTask()
onlineVerifyTask!!.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, VerificationServerProtocol.Verify.prepare(card))
if (debugNewRequestVerify) {
volleyHelper!!.requestCardVerify(card!!)
// volleyHelper!!.requestCardVerify(card!!)
if (debugNewRequestVerifyShowJson)
this.activity?.let { volleyHelper!!.requestCardVerifyShowResponse(it, card!!) }
} else {
onlineVerifyTask = OnlineVerifyTask()
onlineVerifyTask!!.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, VerificationServerProtocol.Verify.prepare(card))
}
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
sp = PreferenceManager.getDefaultSharedPreferences(activity)
nfcManager = NfcManager(activity, this)
card = TangemCard(activity!!.intent.getStringExtra(TangemCard.EXTRA_CARD))
@ -133,13 +149,14 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific
lastTag = activity!!.intent.getParcelableExtra(MainActivity.EXTRA_LAST_DISCOVERED_TAG)
volleyHelper = VolleyHelper(this)
debugNewRequestVerify = sp!!.getBoolean(getString(R.string.key_debug_new_request_verify), false)
debugNewRequestVerifyShowJson = sp!!.getBoolean(getString(R.string.key_debug_new_request_verify_show_json), false)
}
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
val v = inflater.inflate(R.layout.fr_loaded_wallet, container, false)
srlLoadedWallet = v.findViewById(R.id.srlLoadedWallet)
return v
}