diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV2/presenter/kyc/KYCV2Presenter.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV2/presenter/kyc/KYCV2Presenter.java index 7b9501f3..6ce153c0 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV2/presenter/kyc/KYCV2Presenter.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV2/presenter/kyc/KYCV2Presenter.java @@ -16,6 +16,7 @@ import com.gmeremit.online.gmeremittance_native.kycV2.view.view2.KYCView2VModel; import com.gmeremit.online.gmeremittance_native.kycV2.view.view3.KYCView3Fragment; import com.gmeremit.online.gmeremittance_native.kycV2.view.view3.KYCView3VModel; import com.gmeremit.online.gmeremittance_native.utils.Constants; +import com.gmeremit.online.gmeremittance_native.utils.ImageUtils; import com.gmeremit.online.gmeremittance_native.utils.Utils; import com.gmeremit.online.gmeremittance_native.utils.https.GenericApiObserverResponse; @@ -423,20 +424,24 @@ public class KYCV2Presenter extends BasePresenter implements KYCV2PresenterInter case KYCView3Fragment.FRONT_REGID_CAMERA: if (resultCode == RESULT_OK) { frontdocFile = data; - view.getView3Contract().setFrontImage(generateThumbnailFromImageFile(frontdocFile.getAbsolutePath())); +// view.getView3Contract().setFrontImage(generateThumbnailFromImageFile(frontdocFile.getAbsolutePath())); + view.getView3Contract().setFrontImage( ImageUtils.blur(view.getContext(),frontdocFile.getAbsolutePath(),thumbnailHeight,thumbnailWidth)); + break; } case KYCView3Fragment.FRONT_REGID_GALLERY: if (resultCode == RESULT_OK) { frontdocFile = data; - view.getView3Contract().setFrontImage(generateThumbnailFromImageFile(frontdocFile.getAbsolutePath())); +// view.getView3Contract().setFrontImage(generateThumbnailFromImageFile(frontdocFile.getAbsolutePath())); + view.getView3Contract().setFrontImage(ImageUtils.blur(view.getContext(),frontdocFile.getAbsolutePath(),thumbnailHeight,thumbnailWidth)); break; } case KYCView3Fragment.BACK_REGID_CAMERA: if (resultCode == RESULT_OK) { backdocFile = data; - view.getView3Contract().setBackImage(generateThumbnailFromImageFile(backdocFile.getAbsolutePath())); +// view.getView3Contract().setBackImage(generateThumbnailFromImageFile(backdocFile.getAbsolutePath())); + view.getView3Contract().setBackImage(ImageUtils.blur(view.getContext(),backdocFile.getAbsolutePath(),thumbnailHeight,thumbnailWidth)); break; } @@ -444,71 +449,80 @@ public class KYCV2Presenter extends BasePresenter implements KYCV2PresenterInter case KYCView3Fragment.BACK_REGID_GALLERY: if (resultCode == RESULT_OK) { backdocFile = data; - view.getView3Contract().setBackImage(generateThumbnailFromImageFile(backdocFile.getAbsolutePath())); +// view.getView3Contract().setBackImage(generateThumbnailFromImageFile(backdocFile.getAbsolutePath())); + view.getView3Contract().setBackImage(ImageUtils.blur(view.getContext(),backdocFile.getAbsolutePath(),thumbnailHeight,thumbnailWidth)); break; } case KYCView3Fragment.PASSBOOKREQ_CAMERA: if (resultCode == RESULT_OK) { passbookFile = data; - view.getView3Contract().setPassbookImage(generateThumbnailFromImageFile(passbookFile.getAbsolutePath())); +// view.getView3Contract().setPassbookImage(generateThumbnailFromImageFile(passbookFile.getAbsolutePath())); + view.getView3Contract().setPassbookImage(ImageUtils.blur(view.getContext(),passbookFile.getAbsolutePath(),thumbnailHeight,thumbnailWidth)); break; } case KYCView3Fragment.PASSBOOKREQ_GALLERY: if (resultCode == RESULT_OK) { passbookFile = data; - view.getView3Contract().setPassbookImage(generateThumbnailFromImageFile(passbookFile.getAbsolutePath())); +// view.getView3Contract().setPassbookImage(generateThumbnailFromImageFile(passbookFile.getAbsolutePath())); + view.getView3Contract().setPassbookImage(ImageUtils.blur(view.getContext(),passbookFile.getAbsolutePath(),thumbnailHeight,thumbnailWidth)); break; } case KYCView3Fragment.PASSPORTREQ_CAMERA: if (resultCode == RESULT_OK) { passportFile = data; - view.getView3Contract().setPassportImage(generateThumbnailFromImageFile(passportFile.getAbsolutePath())); +// view.getView3Contract().setPassportImage(generateThumbnailFromImageFile(passportFile.getAbsolutePath())); + view.getView3Contract().setPassportImage(ImageUtils.blur(view.getContext(),passportFile.getAbsolutePath(),thumbnailHeight,thumbnailWidth)); break; } case KYCView3Fragment.PASSPORTREQ_GALLERY: if (resultCode == RESULT_OK) { passportFile = data; - view.getView3Contract().setPassportImage(generateThumbnailFromImageFile(passportFile.getAbsolutePath())); +// view.getView3Contract().setPassportImage(generateThumbnailFromImageFile(passportFile.getAbsolutePath())); + view.getView3Contract().setPassportImage(ImageUtils.blur(view.getContext(),passportFile.getAbsolutePath(),thumbnailHeight,thumbnailWidth)); break; } case KYCView3Fragment.SELFIE_REGID_CAMERA: if (resultCode == RESULT_OK) { selfieFile = data; - view.getView3Contract().setSelfieImage(generateThumbnailFromImageFile(selfieFile.getAbsolutePath())); +// view.getView3Contract().setSelfieImage(generateThumbnailFromImageFile(selfieFile.getAbsolutePath())); + view.getView3Contract().setSelfieImage(ImageUtils.blur(view.getContext(),selfieFile.getAbsolutePath(),thumbnailHeight,thumbnailWidth)); break; } case KYCView3Fragment.SELFIE_REGID_GALLERY: if (resultCode == RESULT_OK) { selfieFile = data; - view.getView3Contract().setSelfieImage(generateThumbnailFromImageFile(selfieFile.getAbsolutePath())); +// view.getView3Contract().setSelfieImage(generateThumbnailFromImageFile(selfieFile.getAbsolutePath())); + view.getView3Contract().setSelfieImage(ImageUtils.blur(view.getContext(),selfieFile.getAbsolutePath(),thumbnailHeight,thumbnailWidth)); break; } - } - } - public Bitmap generateThumbnailFromImageFile(String photoPath) { - BitmapFactory.Options bmOptions = new BitmapFactory.Options(); - bmOptions.inJustDecodeBounds = true; - BitmapFactory.decodeFile(photoPath, bmOptions); - int photoW = bmOptions.outWidth; - int photoH = bmOptions.outHeight; - int scaleFactor = 1; - if ((thumbnailWidth > 0) || (thumbnailHeight > 0)) { - scaleFactor = Math.min(photoW/thumbnailWidth, photoH/thumbnailHeight); } - - bmOptions.inJustDecodeBounds = false; - bmOptions.inSampleSize = scaleFactor; - bmOptions.inPurgeable = true; //Deprecated API 21 - - return BitmapFactory.decodeFile(photoPath, bmOptions); } +// +// public Bitmap generateThumbnailFromImageFile(String photoPath) { +// BitmapFactory.Options bmOptions = new BitmapFactory.Options(); +// bmOptions.inJustDecodeBounds = true; +// BitmapFactory.decodeFile(photoPath, bmOptions); +// int photoW = bmOptions.outWidth; +// int photoH = bmOptions.outHeight; +// +// int scaleFactor = 1; +// if ((thumbnailWidth > 0) || (thumbnailHeight > 0)) { +// scaleFactor = Math.min(photoW/thumbnailWidth, photoH/thumbnailHeight); +// } +// +// bmOptions.inJustDecodeBounds = false; +// bmOptions.inSampleSize = scaleFactor; +// bmOptions.inPurgeable = true; //Deprecated API 21 +// +// return BitmapFactory.decodeFile(photoPath, bmOptions); +// } @Override public void prepareToSendData() { diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV2/presenter/kyc/KYCV2PresenterInterface.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV2/presenter/kyc/KYCV2PresenterInterface.java index ae76cc04..6b4ff35b 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV2/presenter/kyc/KYCV2PresenterInterface.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV2/presenter/kyc/KYCV2PresenterInterface.java @@ -55,6 +55,8 @@ public interface KYCV2PresenterInterface extends BasePresenterInterface { KYCView2ContractInterface getView2Contract(); KYCView3ContractInterface getView3Contract(); + Context getViewContext(); + void showView1(); void showView2(); void showView3(); diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV2/view/KYCFormV2Activity.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV2/view/KYCFormV2Activity.java index 15607005..dab8d602 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV2/view/KYCFormV2Activity.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV2/view/KYCFormV2Activity.java @@ -252,6 +252,11 @@ public class KYCFormV2Activity extends BaseActivity implements KYCV2ActionListen return kycView3; } + @Override + public Context getViewContext() { + return this; + } + @Override public void lazyInstatiateViewForKyc() { setupViewPager(); diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/ImageUtils.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/ImageUtils.java new file mode 100644 index 00000000..add7048a --- /dev/null +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/ImageUtils.java @@ -0,0 +1,54 @@ +package com.gmeremit.online.gmeremittance_native.utils; + +import android.content.Context; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.renderscript.Allocation; +import android.renderscript.Element; +import android.renderscript.RenderScript; +import android.renderscript.ScriptIntrinsicBlur; + +/** + * Image Helper class for basic image operation + */ +public class ImageUtils { + + + + public static Bitmap blur(Context ctx, String imagePath,int thumbnailHeight,int thumbnailWidth) { + + final float BLUR_RADIUS = 13f; + + Bitmap outputBitmap = generateThumbnailFromImageFile(imagePath,thumbnailHeight,thumbnailWidth); + + RenderScript rs = RenderScript.create(ctx); + ScriptIntrinsicBlur theIntrinsic = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs)); + Allocation tmpIn = Allocation.createFromBitmap(rs, outputBitmap); + Allocation tmpOut = Allocation.createFromBitmap(rs, outputBitmap); + theIntrinsic.setRadius(BLUR_RADIUS); + theIntrinsic.setInput(tmpIn); + theIntrinsic.forEach(tmpOut); + tmpOut.copyTo(outputBitmap); + + return outputBitmap; + } + + private static Bitmap generateThumbnailFromImageFile(String photoPath,int thumbnailHeight, int thumbnailWidth) { + BitmapFactory.Options bmOptions = new BitmapFactory.Options(); + bmOptions.inJustDecodeBounds = true; + BitmapFactory.decodeFile(photoPath, bmOptions); + int photoW = bmOptions.outWidth; + int photoH = bmOptions.outHeight; + + int scaleFactor = 1; + if ((thumbnailWidth > 0) || (thumbnailHeight > 0)) { + scaleFactor = Math.min(photoW/thumbnailWidth, photoH/thumbnailHeight); + } + + bmOptions.inJustDecodeBounds = false; + bmOptions.inSampleSize = scaleFactor; + bmOptions.inPurgeable = true; //Deprecated API 21 + + return BitmapFactory.decodeFile(photoPath, bmOptions); + } +}