diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser
index 9087a93..ba2c89f 100644
Binary files a/.idea/caches/build_file_checksums.ser and b/.idea/caches/build_file_checksums.ser differ
diff --git a/app/build.gradle b/app/build.gradle
index a6abae5..c4c7f96 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -41,4 +41,5 @@ dependencies {
implementation group: 'org.postgresql', name: 'postgresql', version: '42.2.5'
implementation 'com.google.zxing:core:3.2.1'
implementation 'com.journeyapps:zxing-android-embedded:3.2.0@aar'
+ implementation 'com.google.android.gms:play-services-vision:11.8.0'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 13aea5a..253d003 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -9,6 +9,7 @@
+
+
+
@@ -33,6 +38,9 @@
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/monnethic/mobile/qrcode/QrCodeScannerActivity.java b/app/src/main/java/monnethic/mobile/qrcode/QrCodeScannerActivity.java
new file mode 100644
index 0000000..f65639e
--- /dev/null
+++ b/app/src/main/java/monnethic/mobile/qrcode/QrCodeScannerActivity.java
@@ -0,0 +1,104 @@
+package monnethic.mobile.qrcode;
+
+import android.Manifest;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.support.v4.app.ActivityCompat;
+import android.support.v7.app.AppCompatActivity;
+import android.os.Bundle;
+import android.util.SparseArray;
+import android.view.SurfaceHolder;
+import android.view.SurfaceView;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.example.monnthic.monnethicmobile.R;
+import com.google.android.gms.vision.CameraSource;
+import com.google.android.gms.vision.Detector;
+import com.google.android.gms.vision.barcode.Barcode;
+import com.google.android.gms.vision.barcode.BarcodeDetector;
+
+import monnethic.mobile.transaction.ApprovePayementActivity;
+
+public class QrCodeScannerActivity extends AppCompatActivity {
+ SurfaceView surfaceView;
+ private BarcodeDetector barcodeDector;
+ private CameraSource cameraSource;
+ private static final int REQUEST_CAMERA_PERMISSION = 201;
+ private String intentData = "";
+
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_qr_code_scanner);
+ initViews();
+ }
+
+ private void initViews(){
+ surfaceView = findViewById(R.id.surfaceView);
+ }
+
+ private void initialiseDetector(){
+ Toast.makeText(getApplicationContext(), "QR code scanner started", Toast.LENGTH_SHORT).show();
+
+ barcodeDector = new BarcodeDetector.Builder(this).setBarcodeFormats(Barcode.ALL_FORMATS).build();
+ cameraSource = new CameraSource.Builder(this, barcodeDector).setRequestedPreviewSize(1920,1080).setAutoFocusEnabled(true).build();
+
+ surfaceView.getHolder().addCallback(new SurfaceHolder.Callback() {
+ @Override
+ public void surfaceCreated(SurfaceHolder surfaceHolder) {
+ try{
+ if(ActivityCompat.checkSelfPermission(QrCodeScannerActivity.this, Manifest.permission.CAMERA)== PackageManager.PERMISSION_GRANTED){
+ cameraSource.start(surfaceView.getHolder());
+ }else{
+ ActivityCompat.requestPermissions(QrCodeScannerActivity.this, new String[]{Manifest.permission.CAMERA}, REQUEST_CAMERA_PERMISSION);
+ }
+ }catch (Exception e){
+ e.getMessage();
+ }
+ }
+
+ @Override
+ public void surfaceChanged(SurfaceHolder surfaceHolder, int i, int i1, int i2) {
+
+ }
+
+ @Override
+ public void surfaceDestroyed(SurfaceHolder surfaceHolder) {
+ cameraSource.stop();
+ }
+ });
+
+ barcodeDector.setProcessor(new Detector.Processor() {
+ @Override
+ public void release() {
+ Toast.makeText(getApplicationContext(),"Barcode scanner has been stopped",Toast.LENGTH_SHORT).show();
+ }
+
+ @Override
+ public void receiveDetections(Detector.Detections detections) {
+ final SparseArray barcodes = detections.getDetectedItems();
+ if(barcodes.size()!=0){
+ intentData = barcodes.valueAt(0).displayValue;
+ Intent scannedQrIntent = new Intent(QrCodeScannerActivity.this, ApprovePayementActivity.class);
+ scannedQrIntent.putExtra("valueScanned",intentData);
+ QrCodeScannerActivity.this.startActivity(scannedQrIntent);
+
+ }
+ }
+ });
+ }
+
+ @Override
+ protected void onPause(){
+ super.onPause();
+ cameraSource.release();
+ }
+
+ @Override
+ protected void onResume(){
+ super.onResume();
+ initialiseDetector();
+ }
+}
diff --git a/app/src/main/java/monnethic/mobile/transaction/ApprovePayementActivity.java b/app/src/main/java/monnethic/mobile/transaction/ApprovePayementActivity.java
new file mode 100644
index 0000000..034dfe8
--- /dev/null
+++ b/app/src/main/java/monnethic/mobile/transaction/ApprovePayementActivity.java
@@ -0,0 +1,29 @@
+package monnethic.mobile.transaction;
+
+import android.content.Intent;
+import android.support.v7.app.AppCompatActivity;
+import android.os.Bundle;
+import android.widget.TextView;
+
+import com.example.monnthic.monnethicmobile.R;
+
+public class ApprovePayementActivity extends AppCompatActivity {
+ TextView textDisplay;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_approve_payement);
+
+ Intent intent = getIntent();
+ String stringToDisplay = intent.getStringExtra("valueScanned");
+
+ initViews(stringToDisplay);
+ }
+
+ private void initViews(String stringToDisplay){
+ textDisplay = findViewById(R.id.textDisplay);
+
+ textDisplay.setText(stringToDisplay);
+ }
+}
diff --git a/app/src/main/java/monnethic/mobile/transaction/MakePayementActivity.java b/app/src/main/java/monnethic/mobile/transaction/MakePayementActivity.java
new file mode 100644
index 0000000..205a83d
--- /dev/null
+++ b/app/src/main/java/monnethic/mobile/transaction/MakePayementActivity.java
@@ -0,0 +1,35 @@
+package monnethic.mobile.transaction;
+
+import android.content.Intent;
+import android.support.v7.app.AppCompatActivity;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.Button;
+
+import com.example.monnthic.monnethicmobile.R;
+
+import monnethic.mobile.qrcode.QrCodeScannerActivity;
+
+public class MakePayementActivity extends AppCompatActivity {
+ Button btnScanQr;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_make_payement);
+
+ initViews();
+ }
+
+ private void initViews(){
+ btnScanQr = findViewById(R.id.buttonScanQr);
+
+ btnScanQr.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ Intent payementIntent = new Intent(MakePayementActivity.this, QrCodeScannerActivity.class);
+ MakePayementActivity.this.startActivity(payementIntent);
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/monnethic/mobile/user/UserAccountActivity.java b/app/src/main/java/monnethic/mobile/user/UserAccountActivity.java
index 906ae76..a5eee8a 100644
--- a/app/src/main/java/monnethic/mobile/user/UserAccountActivity.java
+++ b/app/src/main/java/monnethic/mobile/user/UserAccountActivity.java
@@ -10,6 +10,7 @@ import android.widget.Toast;
import com.example.monnthic.monnethicmobile.R;
+import monnethic.mobile.transaction.MakePayementActivity;
import monnethic.mobile.transaction.ReceivePayementActivity;
public class UserAccountActivity extends AppCompatActivity {
@@ -46,16 +47,18 @@ public class UserAccountActivity extends AppCompatActivity {
});
}
public void sendPayement(){
- Toast.makeText(this, "Coming soon", Toast.LENGTH_SHORT).show();
+ Intent payementIntent = new Intent(UserAccountActivity.this, MakePayementActivity.class);
+ UserAccountActivity.this.startActivity(payementIntent);
}
public void receivePayement(){
- Toast.makeText(this, "Coming soon", Toast.LENGTH_SHORT).show();
+
Intent receivePayementIntent = new Intent(UserAccountActivity.this, ReceivePayementActivity.class);
UserAccountActivity.this.startActivity(receivePayementIntent);
}
public void settings(){
Toast.makeText(this, "Coming soon", Toast.LENGTH_SHORT).show();
}
+
public void refreshSolde(){
solde.setText("0.00");
}
diff --git a/app/src/main/res/layout/activity_approve_payement.xml b/app/src/main/res/layout/activity_approve_payement.xml
new file mode 100644
index 0000000..0e29733
--- /dev/null
+++ b/app/src/main/res/layout/activity_approve_payement.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_make_payement.xml b/app/src/main/res/layout/activity_make_payement.xml
new file mode 100644
index 0000000..30b2ddc
--- /dev/null
+++ b/app/src/main/res/layout/activity_make_payement.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_qr_code_scanner.xml b/app/src/main/res/layout/activity_qr_code_scanner.xml
new file mode 100644
index 0000000..e08f9c2
--- /dev/null
+++ b/app/src/main/res/layout/activity_qr_code_scanner.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+