Updated on 2026-08-14

This commit is contained in:
Tangem 2018-08-08 15:51:27 +03:00
parent f22614ab8b
commit fb4b20de61
6 changed files with 101 additions and 104 deletions

View file

@ -1,85 +0,0 @@
package com.tangem.presentation.activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.KeyEvent;
import android.widget.ProgressBar;
import android.widget.Toast;
import com.tangem.data.network.request.ElectrumRequest;
import com.tangem.data.network.request.InfuraRequest;
import com.tangem.data.network.task.send_transaction.ConnectTask;
import com.tangem.data.network.task.send_transaction.ETHRequestTask;
import com.tangem.domain.wallet.Blockchain;
import com.tangem.domain.wallet.CoinEngine;
import com.tangem.domain.wallet.CoinEngineFactory;
import com.tangem.domain.wallet.TangemCard;
import com.tangem.wallet.R;
public class SendTransactionActivity extends AppCompatActivity {
private ProgressBar progressBar;
public TangemCard mCard;
private String tx;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_send_transaction);
MainActivity.Companion.commonInit(getApplicationContext());
progressBar = findViewById(R.id.progressBar);
Intent intent = getIntent();
mCard = new TangemCard(getIntent().getStringExtra("UID"));
mCard.LoadFromBundle(intent.getExtras().getBundle("Card"));
tx = intent.getStringExtra("TX");
CoinEngine engine = CoinEngineFactory.Create(mCard.getBlockchain());
if (mCard.getBlockchain() == Blockchain.Ethereum || mCard.getBlockchain() == Blockchain.EthereumTestNet || mCard.getBlockchain() == Blockchain.Token) {
ETHRequestTask task = new ETHRequestTask(SendTransactionActivity.this, mCard.getBlockchain());
InfuraRequest req = InfuraRequest.SendTransaction(mCard.getWallet(), tx);
req.setID(67);
req.setBlockchain(mCard.getBlockchain());
task.execute(req);
} else if (mCard.getBlockchain() == Blockchain.Bitcoin || mCard.getBlockchain() == Blockchain.BitcoinTestNet) {
String nodeAddress = engine.GetNode(mCard);
int nodePort = engine.GetNodePort(mCard);
ConnectTask connectTask = new ConnectTask(SendTransactionActivity.this, nodeAddress, nodePort,3);
connectTask.execute(ElectrumRequest.Broadcast(mCard.getWallet(), tx));
} else if (mCard.getBlockchain() == Blockchain.BitcoinCash || mCard.getBlockchain() == Blockchain.BitcoinCashTestNet) {
String nodeAddress = engine.GetNode(mCard);
int nodePort = engine.GetNodePort(mCard);
ConnectTask connectTask = new ConnectTask(SendTransactionActivity.this, nodeAddress, nodePort,3);
connectTask.execute(ElectrumRequest.Broadcast(mCard.getWallet(), tx));
}
}
@Override
public boolean onKeyDown(int keycode, KeyEvent e) {
switch (keycode) {
case KeyEvent.KEYCODE_BACK:
Toast.makeText(this, R.string.please_wait, Toast.LENGTH_LONG).show();
return true;
}
return super.onKeyDown(keycode, e);
}
public void finishWithError(String Message) {
Intent intent = new Intent();
intent.putExtra("message", "Try again. Failed to send transaction (" + Message + ")");
setResult(MainActivity.RESULT_CANCELED, intent);
finish();
}
public void finishWithSuccess() {
Intent intent = new Intent();
intent.putExtra("message", getString(R.string.transaction_has_been_successfully_signed));
setResult(MainActivity.RESULT_OK, intent);
finish();
}
}

View file

@ -0,0 +1,83 @@
package com.tangem.presentation.activity
import android.content.Intent
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import android.view.KeyEvent
import android.widget.ProgressBar
import android.widget.Toast
import com.tangem.data.network.request.ElectrumRequest
import com.tangem.data.network.request.InfuraRequest
import com.tangem.data.network.task.send_transaction.ConnectTask
import com.tangem.data.network.task.send_transaction.ETHRequestTask
import com.tangem.domain.wallet.Blockchain
import com.tangem.domain.wallet.CoinEngine
import com.tangem.domain.wallet.CoinEngineFactory
import com.tangem.domain.wallet.TangemCard
import com.tangem.wallet.R
class SendTransactionActivity : AppCompatActivity() {
var card: TangemCard? = null
private var tx: String? = null
private var progressBar: ProgressBar? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_send_transaction)
MainActivity.commonInit(applicationContext)
progressBar = findViewById(R.id.progressBar)
val intent = intent
card = TangemCard(getIntent().getStringExtra("UID"))
card!!.LoadFromBundle(intent.extras!!.getBundle("Card"))
tx = intent.getStringExtra("TX")
val engine = CoinEngineFactory.Create(card!!.blockchain)
if (card!!.blockchain == Blockchain.Ethereum || card!!.blockchain == Blockchain.EthereumTestNet || card!!.blockchain == Blockchain.Token) {
val task = ETHRequestTask(this@SendTransactionActivity, card!!.blockchain)
val req = InfuraRequest.SendTransaction(card!!.wallet, tx)
req.id = 67
req.setBlockchain(card!!.blockchain)
task.execute(req)
} else if (card!!.blockchain == Blockchain.Bitcoin || card!!.blockchain == Blockchain.BitcoinTestNet) {
val nodeAddress = engine!!.GetNode(card)
val nodePort = engine.GetNodePort(card)
val connectTask = ConnectTask(this@SendTransactionActivity, nodeAddress, nodePort, 3)
connectTask.execute(ElectrumRequest.Broadcast(card!!.wallet, tx))
} else if (card!!.blockchain == Blockchain.BitcoinCash || card!!.blockchain == Blockchain.BitcoinCashTestNet) {
val nodeAddress = engine!!.GetNode(card)
val nodePort = engine.GetNodePort(card)
val connectTask = ConnectTask(this@SendTransactionActivity, nodeAddress, nodePort, 3)
connectTask.execute(ElectrumRequest.Broadcast(card!!.wallet, tx))
}
}
override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
when (keyCode) {
KeyEvent.KEYCODE_BACK -> {
Toast.makeText(this, R.string.please_wait, Toast.LENGTH_LONG).show()
return true
}
}
return super.onKeyDown(keyCode, event)
}
fun finishWithError(message: String) {
val intent = Intent()
intent.putExtra("message", String.format(getString(R.string.try_again_failed_to_send_transaction), message))
setResult(RESULT_CANCELED, intent)
finish()
}
fun finishWithSuccess() {
val intent = Intent()
intent.putExtra("message", getString(R.string.transaction_has_been_successfully_signed))
setResult(RESULT_OK, intent)
finish()
}
}