diff --git a/app/src/main/java/com/tangem/data/network/VolleyHelper.kt b/app/src/main/java/com/tangem/data/network/VolleyHelper.kt index 4429722e48..44d1fd38ff 100644 --- a/app/src/main/java/com/tangem/data/network/VolleyHelper.kt +++ b/app/src/main/java/com/tangem/data/network/VolleyHelper.kt @@ -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() + 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) { val stringRequest = object : StringRequest(Request.Method.GET, url, { response -> 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 31ed345639..fc28dc320c 100644 --- a/app/src/main/java/com/tangem/presentation/activity/MainActivity.kt +++ b/app/src/main/java/com/tangem/presentation/activity/MainActivity.kt @@ -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?) { 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 580413ad38..f225e66b33 100644 --- a/app/src/main/java/com/tangem/presentation/fragment/LoadedWallet.kt +++ b/app/src/main/java/com/tangem/presentation/fragment/LoadedWallet.kt @@ -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) { @@ -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 }