-Get better the algorithm for the camera permission in the send assets screen validation permission granted and not granted
-If the camera permission is not granted the camera should no be enabled and can not be enabled manually -When the permission of the camera in the send assets window is not granted it should Show a toast message -When the permission of the camera in the send assets window is granted it should Show a toast message
This commit is contained in:
parent
d788ceab9a
commit
be679e655f
2 changed files with 116 additions and 19 deletions
|
@ -12,6 +12,9 @@ import android.content.Intent;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
import android.graphics.BitmapFactory;
|
import android.graphics.BitmapFactory;
|
||||||
|
import android.graphics.Color;
|
||||||
|
import android.graphics.drawable.ColorDrawable;
|
||||||
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
|
@ -21,6 +24,7 @@ import android.support.v4.app.ActivityCompat;
|
||||||
import android.support.v4.app.DialogFragment;
|
import android.support.v4.app.DialogFragment;
|
||||||
import android.support.v4.app.Fragment;
|
import android.support.v4.app.Fragment;
|
||||||
import android.support.v4.app.FragmentTransaction;
|
import android.support.v4.app.FragmentTransaction;
|
||||||
|
import android.support.v4.content.ContextCompat;
|
||||||
import android.support.v7.app.AlertDialog;
|
import android.support.v7.app.AlertDialog;
|
||||||
import android.text.Editable;
|
import android.text.Editable;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
@ -38,6 +42,7 @@ import android.widget.Toast;
|
||||||
import com.google.zxing.BarcodeFormat;
|
import com.google.zxing.BarcodeFormat;
|
||||||
import com.google.zxing.Result;
|
import com.google.zxing.Result;
|
||||||
import com.jaredrummler.materialspinner.MaterialSpinner;
|
import com.jaredrummler.materialspinner.MaterialSpinner;
|
||||||
|
import com.vincent.filepicker.ToastUtil;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.math.RoundingMode;
|
import java.math.RoundingMode;
|
||||||
|
@ -54,6 +59,7 @@ import butterknife.OnItemSelected;
|
||||||
import butterknife.OnTextChanged;
|
import butterknife.OnTextChanged;
|
||||||
import cy.agorise.crystalwallet.R;
|
import cy.agorise.crystalwallet.R;
|
||||||
import cy.agorise.crystalwallet.dialogs.material.CrystalDialog;
|
import cy.agorise.crystalwallet.dialogs.material.CrystalDialog;
|
||||||
|
import cy.agorise.crystalwallet.dialogs.material.ToastIt;
|
||||||
import cy.agorise.crystalwallet.requestmanagers.CryptoNetInfoRequestListener;
|
import cy.agorise.crystalwallet.requestmanagers.CryptoNetInfoRequestListener;
|
||||||
import cy.agorise.crystalwallet.requestmanagers.CryptoNetInfoRequests;
|
import cy.agorise.crystalwallet.requestmanagers.CryptoNetInfoRequests;
|
||||||
import cy.agorise.crystalwallet.requestmanagers.ValidateBitsharesSendRequest;
|
import cy.agorise.crystalwallet.requestmanagers.ValidateBitsharesSendRequest;
|
||||||
|
@ -284,16 +290,118 @@ public class SendTransactionFragment extends DialogFragment implements UIValidat
|
||||||
}
|
}
|
||||||
|
|
||||||
loadUserImage();
|
loadUserImage();
|
||||||
try {
|
|
||||||
verifyCameraPermissions(getActivity());
|
/*
|
||||||
beginScanQrCode();
|
* Check for CAMERA permission
|
||||||
}catch(Exception e){
|
* */
|
||||||
e.printStackTrace();
|
if (Build.VERSION.SDK_INT >= 23) {
|
||||||
|
if (checkPermission()) {
|
||||||
|
// Code for above or equal 23 API Oriented Device
|
||||||
|
// Your Permission granted already .Do next code
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Init the camera
|
||||||
|
* */
|
||||||
|
try {
|
||||||
|
beginScanQrCode();
|
||||||
|
}catch(Exception e){
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
requestPermission(); // Code for permission
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
|
||||||
|
// Code for Below 23 API Oriented Device
|
||||||
|
// Do next code
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Init the camera
|
||||||
|
* */
|
||||||
|
try {
|
||||||
|
beginScanQrCode();
|
||||||
|
}catch(Exception e){
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return builder.setView(view).create();
|
return builder.setView(view).create();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void requestPermission() {
|
||||||
|
|
||||||
|
if (ActivityCompat.shouldShowRequestPermissionRationale(getActivity(), Manifest.permission.CAMERA)) {
|
||||||
|
Toast.makeText(getActivity(), getActivity().getString(R.string.permission_denied_camera), Toast.LENGTH_LONG).show();
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Disable the button of the camera visibility
|
||||||
|
* */
|
||||||
|
disableVisibilityCamera();
|
||||||
|
|
||||||
|
} else {
|
||||||
|
requestPermissions(new String[] {android.Manifest.permission.CAMERA}, REQUEST_CAMERA_PERMISSION);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void disableVisibilityCamera(){
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Hide the button, the user can not modify the visibility
|
||||||
|
* */
|
||||||
|
btnCloseCamera.setVisibility(View.INVISIBLE);
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean checkPermission() {
|
||||||
|
int result = ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.CAMERA);
|
||||||
|
if (result == PackageManager.PERMISSION_GRANTED) {
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
|
||||||
|
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||||
|
|
||||||
|
switch (requestCode) {
|
||||||
|
case REQUEST_CAMERA_PERMISSION:
|
||||||
|
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
|
||||||
|
Log.e("value", "Permission Granted, Now you can use camera .");
|
||||||
|
|
||||||
|
getActivity().runOnUiThread(new Runnable(){
|
||||||
|
public void run() {
|
||||||
|
Toast.makeText(getActivity(), getActivity().getString(R.string.permission_granted_camera), Toast.LENGTH_LONG).show();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Init the camera
|
||||||
|
* */
|
||||||
|
try {
|
||||||
|
beginScanQrCode();
|
||||||
|
}catch(Exception e){
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
Log.e("value", "Permission Denied, You cannot use the camera.");
|
||||||
|
|
||||||
|
getActivity().runOnUiThread(new Runnable(){
|
||||||
|
public void run() {
|
||||||
|
Toast.makeText(getActivity(), getActivity().getString(R.string.permission_denied_camera), Toast.LENGTH_LONG).show();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onResume() {
|
public void onResume() {
|
||||||
super.onResume();
|
super.onResume();
|
||||||
|
@ -558,20 +666,6 @@ public class SendTransactionFragment extends DialogFragment implements UIValidat
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
public static void verifyCameraPermissions(Activity activity) {
|
|
||||||
// Check if we have write permission
|
|
||||||
int permission = ActivityCompat.checkSelfPermission(activity, Manifest.permission.CAMERA);
|
|
||||||
|
|
||||||
if (permission != PackageManager.PERMISSION_GRANTED) {
|
|
||||||
// We don't have permission so prompt the user
|
|
||||||
ActivityCompat.requestPermissions(
|
|
||||||
activity,
|
|
||||||
PERMISSIONS_CAMERA,
|
|
||||||
REQUEST_CAMERA_PERMISSION
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onValidationSucceeded(final ValidationField field) {
|
public void onValidationSucceeded(final ValidationField field) {
|
||||||
final SendTransactionFragment fragment = this;
|
final SendTransactionFragment fragment = this;
|
||||||
|
|
|
@ -364,6 +364,9 @@
|
||||||
<string name="email_name">To display a photo for this Contact, enter its Gravatar e-mail here</string>
|
<string name="email_name">To display a photo for this Contact, enter its Gravatar e-mail here</string>
|
||||||
<string name="copied_to_clipboard">Copied to Clipboard</string>
|
<string name="copied_to_clipboard">Copied to Clipboard</string>
|
||||||
|
|
||||||
|
<string name="permission_denied_camera">Permission Denied. You cannot use the QR camera. Please allow this permission in App Settings.</string>
|
||||||
|
<string name="permission_granted_camera">Great!! Now you can use the QR camera.</string>
|
||||||
|
|
||||||
<string name="select">"Select</string>
|
<string name="select">"Select</string>
|
||||||
<string name="are_you_sure">"Are you sure?</string>
|
<string name="are_you_sure">"Are you sure?</string>
|
||||||
<string name="is_already_added">is already added</string>
|
<string name="is_already_added">is already added</string>
|
||||||
|
|
Loading…
Reference in a new issue