Browse Source

add option to choose from gallery in deposit slip page

new_design
Mukesh Dhungana 2 years ago
parent
commit
faa00e2f1b
  1. 65
      app/src/main/java/com/remit/jmecustomer/features/depositslip/view/DepositSlipActivity.java

65
app/src/main/java/com/remit/jmecustomer/features/depositslip/view/DepositSlipActivity.java

@ -12,17 +12,21 @@ import android.os.Bundle;
import android.provider.MediaStore;
import android.provider.Settings;
import android.util.DisplayMetrics;
import android.view.LayoutInflater;
import android.view.View;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.TextView;
import androidx.appcompat.app.AlertDialog;
import androidx.core.app.ActivityCompat;
import androidx.core.content.FileProvider;
import androidx.lifecycle.ViewModelProvider;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.snackbar.Snackbar;
import com.jakewharton.rxbinding3.widget.RxTextView;
import com.remit.jmecustomer.BuildConfig;
@ -206,7 +210,7 @@ public class DepositSlipActivity extends BaseActivity implements DepositSlipPres
WindowManager windowManager = (WindowManager) getContext()
.getSystemService(Context.WINDOW_SERVICE);
windowManager.getDefaultDisplay().getMetrics(displayMetrics);
int screenHeight = (displayMetrics.heightPixels) * 35/ 100;
int screenHeight = (displayMetrics.heightPixels) * 35 / 100;
Utility.showImageDialog(this, getResources().getString(R.string.sample_text), R.drawable.sample_deposit_slip, screenHeight);
}
@ -226,19 +230,51 @@ public class DepositSlipActivity extends BaseActivity implements DepositSlipPres
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
int cameraPermission = ActivityCompat.checkSelfPermission(this, Manifest.permission.CAMERA);
if (Settings.System.canWrite(this) && cameraPermission == PackageManager.PERMISSION_GRANTED) {
// cameraorGalleryChooser(cameraReqCode, galleryReqCode);
takeAPicture(cameraReqCode, 0);
cameraorGalleryChooser(cameraReqCode, galleryReqCode);
//takeAPicture(cameraReqCode, 0);
} else {
/* requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.CAMERA}, permissonReqCode);*/
//requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,
//Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.CAMERA}, permissonReqCode);
requestPermissions(new String[]{Manifest.permission.CAMERA}, permissonReqCode);
}
} else {
takeAPicture(cameraReqCode, 0);
// cameraorGalleryChooser(cameraReqCode, galleryReqCode);
//takeAPicture(cameraReqCode, 0);
cameraorGalleryChooser(cameraReqCode, galleryReqCode);
}
}
private void cameraorGalleryChooser(final int requestCodeCamera, final int requestCodeGallery) {
View view = LayoutInflater.from(getContext()).inflate(R.layout.layout_alert_camera_gallery, null);
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(this);
builder.setView(view);
AlertDialog dialog = builder.create();
TextView tv_camera, tv_gallery, tv_cancel;
tv_camera = view.findViewById(R.id.tv_photo);
tv_gallery = view.findViewById(R.id.tv_gallery);
tv_cancel = view.findViewById(R.id.tv_cancel);
tv_camera.setOnClickListener(view13 -> {
if (requestCodeCamera == 10) {
takeAPicture(requestCodeCamera, 1);
} else {
takeAPicture(requestCodeCamera, 0);
}
dialog.dismiss();
});
tv_gallery.setOnClickListener(view1 -> {
galleryIntent(requestCodeGallery);
dialog.dismiss();
});
tv_cancel.setOnClickListener(view12 -> dialog.dismiss());
dialog.show();
WindowManager.LayoutParams lp = dialog.getWindow().getAttributes();
lp.dimAmount = 0.8f;
dialog.getWindow().setAttributes(lp);
dialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
}
private void takeAPicture(int requestCode, int i) {
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
takePictureIntent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
@ -265,6 +301,13 @@ public class DepositSlipActivity extends BaseActivity implements DepositSlipPres
}
}
private void galleryIntent(int requestCode) {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, this.getResources().getString(R.string.selectFile_text)), requestCode);
}
private File createImageFileInCache() throws Exception {
// Create an image file name
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
@ -287,8 +330,8 @@ public class DepositSlipActivity extends BaseActivity implements DepositSlipPres
case REQUEST_PERMISSION_ID_FRONT:
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
takeAPicture(CAMERA_REQUEST_ID_FRONT, 0);
// cameraorGalleryChooser(CAMERA_REQUEST_ID_FRONT, GALLERY_REQUEST_ID_FRONT);
//takeAPicture(CAMERA_REQUEST_ID_FRONT, 0);
cameraorGalleryChooser(CAMERA_REQUEST_ID_FRONT, GALLERY_REQUEST_ID_FRONT);
} else {
Snackbar.make(rootView.getRootView(), getString(R.string.permission_denied_text), Snackbar.LENGTH_LONG).show();
@ -297,8 +340,8 @@ public class DepositSlipActivity extends BaseActivity implements DepositSlipPres
case REQUEST_PERMISSION_ID_BACK:
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
takeAPicture(CAMERA_REQUEST_ID_BACK, 0);
// cameraorGalleryChooser(CAMERA_REQUEST_ID_BACK, GALLERY_REQUEST_ID_BACK);
//takeAPicture(CAMERA_REQUEST_ID_BACK, 0);
cameraorGalleryChooser(CAMERA_REQUEST_ID_BACK, GALLERY_REQUEST_ID_BACK);
} else {
Snackbar.make(rootView.getRootView(), getString(R.string.permission_denied_text), Snackbar.LENGTH_LONG).show();

Loading…
Cancel
Save