Merge branch 'features/qrcode/scanner' into develop
This commit is contained in:
commit
73132974db
Binary file not shown.
|
@ -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'
|
||||
}
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
<uses-permission android:name="android.permission.READ_CONTACTS" />
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.CAMERA" />
|
||||
|
||||
<application
|
||||
android:allowBackup="true"
|
||||
|
@ -17,6 +18,10 @@
|
|||
android:roundIcon="@mipmap/ic_launcher_round"
|
||||
android:supportsRtl="true"
|
||||
android:theme="@style/AppTheme">
|
||||
<meta-data
|
||||
android:name="com.google.android.gms.vision.DEPENDENCIES"
|
||||
android:value="barcode" />
|
||||
|
||||
<activity android:name="monnethic.mobile.homepage.HomepageActivity">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
|
@ -33,6 +38,9 @@
|
|||
<activity android:name="monnethic.mobile.transaction.TransactionActivity" />
|
||||
<activity android:name="monnethic.mobile.qrcode.QrCodeActivity" />
|
||||
<activity android:name="monnethic.mobile.transaction.ReceivePayementActivity" />
|
||||
<activity android:name="monnethic.mobile.transaction.MakePayementActivity" />
|
||||
<activity android:name="monnethic.mobile.qrcode.QrCodeScannerActivity" />
|
||||
<activity android:name="monnethic.mobile.transaction.ApprovePayementActivity"></activity>
|
||||
</application>
|
||||
|
||||
</manifest>
|
|
@ -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<Barcode>() {
|
||||
@Override
|
||||
public void release() {
|
||||
Toast.makeText(getApplicationContext(),"Barcode scanner has been stopped",Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void receiveDetections(Detector.Detections<Barcode> detections) {
|
||||
final SparseArray<Barcode> 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();
|
||||
}
|
||||
}
|
|
@ -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);
|
||||
}
|
||||
}
|
|
@ -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);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
|
@ -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");
|
||||
}
|
||||
|
|
20
app/src/main/res/layout/activity_approve_payement.xml
Normal file
20
app/src/main/res/layout/activity_approve_payement.xml
Normal file
|
@ -0,0 +1,20 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context="monnethic.mobile.transaction.ApprovePayementActivity">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textDisplay"
|
||||
android:layout_width="183dp"
|
||||
android:layout_height="195dp"
|
||||
android:layout_marginBottom="184dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:layout_marginStart="8dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0.502"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
</android.support.constraint.ConstraintLayout>
|
21
app/src/main/res/layout/activity_make_payement.xml
Normal file
21
app/src/main/res/layout/activity_make_payement.xml
Normal file
|
@ -0,0 +1,21 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context="monnethic.mobile.transaction.MakePayementActivity">
|
||||
|
||||
<Button
|
||||
android:id="@+id/buttonScanQr"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="148dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:layout_marginStart="148dp"
|
||||
android:text="SCAN QR CODE"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0.0"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
</android.support.constraint.ConstraintLayout>
|
16
app/src/main/res/layout/activity_qr_code_scanner.xml
Normal file
16
app/src/main/res/layout/activity_qr_code_scanner.xml
Normal file
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context="monnethic.mobile.qrcode.QrCodeScannerActivity">
|
||||
|
||||
<SurfaceView
|
||||
android:id="@+id/surfaceView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_centerVertical="true" />
|
||||
|
||||
</RelativeLayout>
|
Loading…
Reference in a new issue