The QR camera should stop and restart manually if the user need it

This commit is contained in:
dtvv 2018-10-07 00:22:10 -05:00
parent 85b1015e9f
commit d788ceab9a
2 changed files with 57 additions and 16 deletions

View file

@ -8,7 +8,6 @@ import android.arch.lifecycle.Observer;
import android.arch.lifecycle.ViewModelProviders;
import android.content.Context;
import android.content.ContextWrapper;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
@ -28,12 +27,10 @@ import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewTreeObserver;
import android.view.Window;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ScrollView;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
@ -41,7 +38,6 @@ import android.widget.Toast;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.Result;
import com.jaredrummler.materialspinner.MaterialSpinner;
import com.vincent.filepicker.ToastUtil;
import java.io.File;
import java.math.RoundingMode;
@ -95,6 +91,8 @@ public class SendTransactionFragment extends DialogFragment implements UIValidat
View viewSend;
@BindView(R.id.tvToError)
TextView tvToError;
@BindView(R.id.fabCloseCamera)
FloatingActionButton btnCloseCamera;
@BindView(R.id.spAsset)
Spinner spAsset;
@BindView(R.id.tvAssetError)
@ -127,6 +125,11 @@ public class SendTransactionFragment extends DialogFragment implements UIValidat
@BindView(R.id.viewCamera)
View viewCamera;
/*
* Flag to control when the camera is visible and when is hide
* */
private boolean cameraVisible = true;
Button btnScanQrCode;
private long cryptoNetAccountId;
@ -364,17 +367,41 @@ public class SendTransactionFragment extends DialogFragment implements UIValidat
mScannerView.stopCamera();
/*
* Hide the camera
* Hide the camera or show it
* */
hideCamera();
if(cameraVisible){
hideCamera();
}
else{
showCamera();
}
}
/*
* Show the camera and hide the black background
* */
private void showCamera(){
/*
* Change visibilities of views
* */
viewCamera.setVisibility(View.GONE);
mScannerView.setVisibility(View.VISIBLE);
/*
* Change icon
* */
btnCloseCamera.setImageDrawable(getResources().getDrawable(R.drawable.ic_close));
/*
* Reset variable
* */
cameraVisible = true;
/*
* Star the camera again
* */
beginScanQrCode();
}
@ -382,8 +409,22 @@ public class SendTransactionFragment extends DialogFragment implements UIValidat
* Hide the camera and show the black background
* */
private void hideCamera(){
/*
* Change visibilities of views
* */
viewCamera.setVisibility(View.VISIBLE);
mScannerView.setVisibility(View.INVISIBLE);
/*
* Change icon
* */
btnCloseCamera.setImageDrawable(getResources().getDrawable(R.drawable.ok));
/*
* Reset variable
* */
cameraVisible = false;
}
@OnTextChanged(value = R.id.etMemo,

View file

@ -2,6 +2,7 @@
<ScrollView
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="wrap_content"
android:background="@color/white">
@ -203,27 +204,26 @@
<me.dm7.barcodescanner.zxing.ZXingScannerView
android:id="@+id/ivCamera"
android:layout_width="180dp"
android:layout_height="180dp"
android:layout_marginBottom="24dp"
android:layout_width="183dp"
android:layout_height="176dp"
android:layout_marginStart="24dp"
android:layout_marginTop="8dp"
android:contentDescription="@string/camera_feed_to_scan_qr"
android:src="#666"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvScan"
android:contentDescription="@string/camera_feed_to_scan_qr" />
app:layout_constraintTop_toBottomOf="@id/tvScan" />
<android.support.design.widget.FloatingActionButton
android:id="@+id/fabCloseCamera"
android:layout_width="30dp"
android:layout_width="32dp"
android:layout_height="30dp"
app:fabSize="mini"
android:layout_marginBottom="165dp"
android:layout_marginStart="165dp"
android:layout_marginBottom="165dp"
app:backgroundTint="@color/send_strong_orange"
app:srcCompat="@drawable/ic_close"
app:fabSize="mini"
app:layout_constraintBottom_toBottomOf="@+id/ivCamera"
app:layout_constraintStart_toStartOf="@+id/ivCamera" />
app:layout_constraintStart_toStartOf="@+id/ivCamera"
app:srcCompat="@drawable/ic_close" />
<View
android:id="@+id/viewSend"