diff --git a/app/src/main/java/monnethic/mobile/qrcode/QrCodeActivity.java b/app/src/main/java/monnethic/mobile/qrcode/QrCodeActivity.java index 24ca753..92ddbde 100644 --- a/app/src/main/java/monnethic/mobile/qrcode/QrCodeActivity.java +++ b/app/src/main/java/monnethic/mobile/qrcode/QrCodeActivity.java @@ -8,6 +8,7 @@ import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; +import android.widget.Toast; import com.example.monnthic.monnethicmobile.R; import com.google.zxing.BarcodeFormat; @@ -22,6 +23,11 @@ public class QrCodeActivity extends AppCompatActivity { TextView adresseView; TextView amountView; + private String user_hash; + private String user_password; + private String session_id; + private String wallet_hash; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -32,7 +38,10 @@ public class QrCodeActivity extends AppCompatActivity { amountView=findViewById(R.id.textViewAmountDisplay); Intent intent = getIntent(); - String wallet_hash = intent.getStringExtra("WALLET_HASH"); + user_hash = intent.getStringExtra("USER_HASH"); + user_password = intent.getStringExtra("USER_PWD"); + session_id = intent.getStringExtra("SESSION_ID"); + wallet_hash = intent.getStringExtra("WALLET_HASH"); String amount = intent.getStringExtra("AMOUNT"); try{ generateQrCode(wallet_hash,amount); @@ -51,7 +60,7 @@ public class QrCodeActivity extends AppCompatActivity { BitMatrix bitMatrix; String valueToEncode = wallet_hash+";"+amount; try{ - bitMatrix = new MultiFormatWriter().encode(valueToEncode, BarcodeFormat.QR_CODE,350,350); + bitMatrix = new MultiFormatWriter().encode(valueToEncode, BarcodeFormat.QR_CODE,300,300); BarcodeEncoder barcodeEncoder = new BarcodeEncoder(); Bitmap bitmap = barcodeEncoder.createBitmap(bitMatrix); qrCode.setImageBitmap(bitmap); @@ -61,4 +70,10 @@ public class QrCodeActivity extends AppCompatActivity { e.getMessage(); } } + + @Override + protected void onStop() { + super.onStop(); // Always call the superclass method first + Toast.makeText(getApplicationContext(), "onStop called", Toast.LENGTH_LONG).show(); + } } diff --git a/app/src/main/java/monnethic/mobile/qrcode/QrCodeScannerActivity.java b/app/src/main/java/monnethic/mobile/qrcode/QrCodeScannerActivity.java index 1b337f8..7136b0a 100644 --- a/app/src/main/java/monnethic/mobile/qrcode/QrCodeScannerActivity.java +++ b/app/src/main/java/monnethic/mobile/qrcode/QrCodeScannerActivity.java @@ -21,6 +21,11 @@ import com.google.android.gms.vision.barcode.BarcodeDetector; import monnethic.mobile.transaction.ApprovePayementActivity; public class QrCodeScannerActivity extends AppCompatActivity { + private String wallet_hash; + private String user_hash; + private String user_password; + private String session_id; + SurfaceView surfaceView; private BarcodeDetector barcodeDector; private CameraSource cameraSource; @@ -32,6 +37,11 @@ public class QrCodeScannerActivity extends AppCompatActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_qr_code_scanner); + Intent intent = getIntent(); + user_hash = intent.getStringExtra("USER_HASH"); + user_password = intent.getStringExtra("USER_PWD"); + session_id = intent.getStringExtra("SESSION_ID"); + wallet_hash = intent.getStringExtra("WALLET_HASH"); initViews(); } @@ -82,8 +92,11 @@ public class QrCodeScannerActivity extends AppCompatActivity { if(barcodes.size()!=0){ intentData = barcodes.valueAt(0).displayValue; Intent scannedQrIntent = new Intent(QrCodeScannerActivity.this, ApprovePayementActivity.class); - scannedQrIntent.putExtra("valueScanned",intentData); - //TODO INTENT + scannedQrIntent.putExtra("VALUE",intentData); + scannedQrIntent.putExtra("USER_HASH",user_hash); + scannedQrIntent.putExtra("USER_PDW",user_password); + scannedQrIntent.putExtra("WALLET_HASH",wallet_hash); + scannedQrIntent.putExtra("SESSION_ID",session_id); QrCodeScannerActivity.this.startActivity(scannedQrIntent); finish(); } diff --git a/app/src/main/java/monnethic/mobile/restApi/TransactionApiHandler.java b/app/src/main/java/monnethic/mobile/restApi/TransactionApiHandler.java new file mode 100644 index 0000000..c2a2c7e --- /dev/null +++ b/app/src/main/java/monnethic/mobile/restApi/TransactionApiHandler.java @@ -0,0 +1,32 @@ +package monnethic.mobile.restApi; + +import org.json.JSONObject; + +import java.net.URL; +import java.util.HashMap; +import java.util.Map; + +import monnethic.mobile.transaction.SendingTransaction; + +public class TransactionApiHandler { + + public String doTransaction(SendingTransaction sendingTransaction){ + HttpCallHandler httpCallHandler = new HttpCallHandler(); + try{ + String url = Config.TRANSACTION_SENT; + Map map = new HashMap<>(); + map.put("source_user_hash",sendingTransaction.getSource_user_hash()); + map.put("source_user_pwd",sendingTransaction.getSource_user_pwd()); + map.put("transaction_from",sendingTransaction.getTransaction_from()); + map.put("transaction_to",sendingTransaction.getTransaction_to()); + map.put("transaction_amount",sendingTransaction.getTransaction_amount()); + map.put("transaction_unit",sendingTransaction.getTransaction_unit()); + String response = httpCallHandler.postHttp(new URL(url),map); + JSONObject jsonObject = new JSONObject(response); + return jsonObject.getString("message"); + }catch (Exception e){ + e.printStackTrace(); + } + return ""; + } +} diff --git a/app/src/main/java/monnethic/mobile/transaction/ApprovePayementActivity.java b/app/src/main/java/monnethic/mobile/transaction/ApprovePayementActivity.java index 034dfe8..da292e7 100644 --- a/app/src/main/java/monnethic/mobile/transaction/ApprovePayementActivity.java +++ b/app/src/main/java/monnethic/mobile/transaction/ApprovePayementActivity.java @@ -1,14 +1,29 @@ package monnethic.mobile.transaction; import android.content.Intent; +import android.os.AsyncTask; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; +import android.view.View; +import android.widget.Button; import android.widget.TextView; - +import android.widget.Toast; import com.example.monnthic.monnethicmobile.R; +import monnethic.mobile.restApi.TransactionApiHandler; public class ApprovePayementActivity extends AppCompatActivity { - TextView textDisplay; + TextView destAddress; + TextView amountDisplay; + Button buttonCancel; + Button buttonVal; + + private String wallet_hash; + private String user_hash; + private String user_password; + private String session_id; + + String wallet_dest; + String amount; @Override protected void onCreate(Bundle savedInstanceState) { @@ -16,14 +31,72 @@ public class ApprovePayementActivity extends AppCompatActivity { setContentView(R.layout.activity_approve_payement); Intent intent = getIntent(); - String stringToDisplay = intent.getStringExtra("valueScanned"); + String[] value = intent.getStringExtra("VALUE").split(";"); + wallet_dest = value[0]; + amount = value[1]; - initViews(stringToDisplay); + user_hash = intent.getStringExtra("USER_HASH"); + user_password = intent.getStringExtra("USER_PWD"); + session_id = intent.getStringExtra("SESSION_ID"); + wallet_hash = intent.getStringExtra("WALLET_HASH"); + initViews(); } - private void initViews(String stringToDisplay){ - textDisplay = findViewById(R.id.textDisplay); + private void initViews(){ + destAddress = findViewById(R.id.destAddress); + amountDisplay = findViewById(R.id.amountApprove); + buttonCancel = findViewById(R.id.buttonCancel); + buttonVal = findViewById(R.id.buttonValidate); - textDisplay.setText(stringToDisplay); + destAddress.setText(wallet_dest); + amountDisplay.setText(amount); + + buttonCancel.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + finish(); + } + }); + + buttonVal.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + sendTransaction(); + } + }); + } + + public void sendTransaction(){ + SendingTransaction sendingTransaction = new SendingTransaction(user_hash,user_password,wallet_hash,wallet_dest,amount,"gonette"); + try { + String transaction_hash = new TransactionTask().execute(sendingTransaction).get(); + if(transaction_hash!=null){ + Toast.makeText(this, "transaction id : "+transaction_hash, Toast.LENGTH_LONG).show(); + } else { + Toast.makeText(this, "couldn't get transaction id", Toast.LENGTH_SHORT).show(); + } + } catch (Exception e){ + e.printStackTrace(); + } + finish(); + } + + private class TransactionTask extends AsyncTask { + @Override + protected String doInBackground(SendingTransaction... sendingTransactions) { + try{ + TransactionApiHandler transactionApiHandler = new TransactionApiHandler(); + return transactionApiHandler.doTransaction(sendingTransactions[0]); + }catch (Exception e){ + e.printStackTrace(); + } + return null; + } + } + + @Override + protected void onStop() { + super.onStop(); // Always call the superclass method first + Toast.makeText(getApplicationContext(), "onStop called", Toast.LENGTH_LONG).show(); } } diff --git a/app/src/main/java/monnethic/mobile/transaction/ReceivePayementActivity.java b/app/src/main/java/monnethic/mobile/transaction/ReceivePayementActivity.java index 995c973..ee8b490 100644 --- a/app/src/main/java/monnethic/mobile/transaction/ReceivePayementActivity.java +++ b/app/src/main/java/monnethic/mobile/transaction/ReceivePayementActivity.java @@ -52,6 +52,9 @@ public class ReceivePayementActivity extends AppCompatActivity { public void generateQrCodeWithValue(String amount){ Intent generateQrIntent = new Intent(ReceivePayementActivity.this, QrCodeActivity.class); + generateQrIntent.putExtra("USER_HASH",user_hash); + generateQrIntent.putExtra("USER_PDW",user_password); + generateQrIntent.putExtra("SESSION_ID",session_id); generateQrIntent.putExtra("WALLET_HASH",wallet_hash); generateQrIntent.putExtra("AMOUNT",amount); ReceivePayementActivity.this.startActivity(generateQrIntent); diff --git a/app/src/main/java/monnethic/mobile/transaction/SendingTransaction.java b/app/src/main/java/monnethic/mobile/transaction/SendingTransaction.java new file mode 100644 index 0000000..9a4a921 --- /dev/null +++ b/app/src/main/java/monnethic/mobile/transaction/SendingTransaction.java @@ -0,0 +1,71 @@ +package monnethic.mobile.transaction; + +public class SendingTransaction { + private String source_user_hash; + private String source_user_pwd; + private String transaction_from; + private String transaction_to; + private String transaction_amount; + private String transaction_unit; + + public SendingTransaction() { + } + + public SendingTransaction(String source_user_hash, String source_user_pwd, String transaction_from, String transaction_to, String transaction_amount, String transaction_unit) { + this.source_user_hash = source_user_hash; + this.source_user_pwd = source_user_pwd; + this.transaction_from = transaction_from; + this.transaction_to = transaction_to; + this.transaction_amount = transaction_amount; + this.transaction_unit = transaction_unit; + } + + + public String getSource_user_hash() { + return source_user_hash; + } + + public void setSource_user_hash(String source_user_hash) { + this.source_user_hash = source_user_hash; + } + + public String getSource_user_pwd() { + return source_user_pwd; + } + + public void setSource_user_pwd(String source_user_pwd) { + this.source_user_pwd = source_user_pwd; + } + + public String getTransaction_from() { + return transaction_from; + } + + public void setTransaction_from(String transaction_from) { + this.transaction_from = transaction_from; + } + + public String getTransaction_to() { + return transaction_to; + } + + public void setTransaction_to(String transaction_to) { + this.transaction_to = transaction_to; + } + + public String getTransaction_amount() { + return transaction_amount; + } + + public void setTransaction_amount(String transaction_amount) { + this.transaction_amount = transaction_amount; + } + + public String getTransaction_unit() { + return transaction_unit; + } + + public void setTransaction_unit(String transaction_unit) { + this.transaction_unit = transaction_unit; + } +} diff --git a/app/src/main/java/monnethic/mobile/transaction/TransactionActivity.java b/app/src/main/java/monnethic/mobile/transaction/TransactionActivity.java index 994e03a..fc31f6c 100644 --- a/app/src/main/java/monnethic/mobile/transaction/TransactionActivity.java +++ b/app/src/main/java/monnethic/mobile/transaction/TransactionActivity.java @@ -1,6 +1,7 @@ package monnethic.mobile.transaction; import android.content.Intent; +import android.os.AsyncTask; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; @@ -9,9 +10,13 @@ import android.widget.EditText; import android.widget.Toast; import com.example.monnthic.monnethicmobile.R; +import com.j256.ormlite.stmt.query.In; import java.math.BigInteger; +import monnethic.mobile.homepage.InputController; +import monnethic.mobile.restApi.TransactionApiHandler; + public class TransactionActivity extends AppCompatActivity { private String wallet_hash; private String user_hash; @@ -51,17 +56,26 @@ public class TransactionActivity extends AppCompatActivity { } public void sendTransaction(){ - String wallet_dest = addressDestination.getText().toString(); - String amount = amountEditText.getText().toString(); - - /* - if(AccessBlockchain.sendTransationTo(address, adD, amt)){ - Toast.makeText(this, "OK.", Toast.LENGTH_SHORT).show(); + if(InputController.isEmptyEdit(addressDestination)){ + Toast.makeText(this, "No destination address", Toast.LENGTH_SHORT).show(); + } else if(InputController.isEmptyEdit(amountEditText)) { + Toast.makeText(this, "No amount", Toast.LENGTH_SHORT).show(); + } else { + String wallet_dest = addressDestination.getText().toString(); + String amount = amountEditText.getText().toString(); + SendingTransaction sendingTransaction = new SendingTransaction(user_hash,user_password,wallet_hash,wallet_dest,amount,"gonette"); + try { + String transaction_hash = new TransactionTask().execute(sendingTransaction).get(); + if(transaction_hash!=null){ + Toast.makeText(this, "transaction id : "+transaction_hash, Toast.LENGTH_LONG).show(); + } else { + Toast.makeText(this, "couldn't get transaction id", Toast.LENGTH_SHORT).show(); + } + } catch (Exception e){ + e.printStackTrace(); + } + finish(); } - */ - String message = "Comming soon, addressDestination "+wallet_dest+" Amount : "+amount; - Toast.makeText(this, message, Toast.LENGTH_SHORT).show(); - finish(); } @Override @@ -70,4 +84,18 @@ public class TransactionActivity extends AppCompatActivity { Toast.makeText(getApplicationContext(), "onStop called", Toast.LENGTH_LONG).show(); } + private class TransactionTask extends AsyncTask { + + @Override + protected String doInBackground(SendingTransaction... sendingTransactions) { + try{ + TransactionApiHandler transactionApiHandler = new TransactionApiHandler(); + return transactionApiHandler.doTransaction(sendingTransactions[0]); + }catch (Exception e){ + e.printStackTrace(); + } + return null; + } + } + } diff --git a/app/src/main/res/layout/activity_approve_payement.xml b/app/src/main/res/layout/activity_approve_payement.xml index 0e29733..9c82e93 100644 --- a/app/src/main/res/layout/activity_approve_payement.xml +++ b/app/src/main/res/layout/activity_approve_payement.xml @@ -1,20 +1,71 @@ - + + + + + + + + + + +