正在查看: Credmex v3.12.2 应用的 IdCardScanActivity.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: Credmex v3.12.2 应用的 IdCardScanActivity.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package com.credmex.activity;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.SurfaceTexture;
import android.hardware.Camera;
import android.os.AsyncTask;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.TextureView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.constraintlayout.widget.Group;
import androidx.core.content.ContextCompat;
import androidx.core.graphics.Insets;
import androidx.core.view.OnApplyWindowInsetsListener;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import butterknife.BindView;
import butterknife.OnClick;
import com.airbnb.lottie.LottieAnimationView;
import com.airbnb.lottie.LottieDrawable;
import com.credmex.commom.CommonActivity;
import com.credmex.models.event.CardScanResultEvent;
import com.credmex.track.ThirdPartTrackEvents;
import com.credmex.track.ThirdPartTrackLib;
import com.credmex.track.TrackEventParamsConfigurator;
import com.credmex.utils.AppUtil;
import com.credmex.utils.ICamera;
import com.credmex.utils.UploadIdCardImageHelper;
import com.credmex.widght.IdCardDetector.IdCardIndicator;
import com.credmex.widght.dialog.CommonDialog;
import com.google.android.gms.fido.fido2.api.common.UserVerificationMethods;
import com.veda.android.bananalibrary.infrastructure.Logger;
import com.veda.supertoolkit.Action;
import com.veda.supertoolkit.appstatus.AppStatusListener;
import com.veda.supertoolkit.customtools.CrashReporter;
import com.veda.supertoolkit.filetools.FilePathUtil;
import com.veda.supertoolkit.imagetools.BitmapUtil;
import com.veda.supertoolkit.lifecycle.LifecycleEvent;
import com.veda.supertoolkit.phonetools.ScreenUtils;
import com.veda.supertoolkit.rxjavatools.RxUtil;
import com.veda.supertoolkit.utils.ImageUtil;
import com.veda.supertoolkit.utils.ViewUtil;
import com.veda.supertoolkit.widgets.BaseUtils;
import dagger.android.AndroidInjection;
import io.reactivex.Flowable;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable;
import io.reactivex.functions.Consumer;
import io.reactivex.functions.Function;
import io.reactivex.functions.Predicate;
import io.reactivex.schedulers.Schedulers;
import io.sentry.ISpan;
import io.sentry.ITransaction;
import io.sentry.Sentry;
import io.sentry.SpanStatus;
import java.io.File;
import java.util.Map;
import org.greenrobot.eventbus.EventBus;
public class IdCardScanActivity extends CommonActivity implements TextureView.SurfaceTextureListener {
private Bitmap E;
private String F;
private int G;
private UploadIdCardImageHelper H;
private LottieDrawable I;
private Disposable J;
private byte[] K;
private ICamera R;
private ISpan T;
@BindView(2131362035)
ConstraintLayout clContent;
@BindView(2131362247)
Group gpCameraPicture;
@BindView(2131362248)
Group gpCameraPreview;
@BindView(2131362281)
IdCardIndicator iICameraFrame;
@BindView(2131362312)
LottieAnimationView ivCamera;
@BindView(2131362320)
ImageView ivClose;
@BindView(2131362392)
View ivRescanOk;
@BindView(2131362393)
View ivRescanReset;
@BindView(2131363007)
TextView tvCameraTip;
@BindView(2131362965)
TextureView tvSurface;
@NonNull
private final ITransaction D = Sentry.D("ScanIDCardTransaction", "scanIdCard");
private final OpenCameraTask S = new OpenCameraTask();
class AnonymousClass1 implements UploadIdCardImageHelper.Callback {
AnonymousClass1() {
}
@Override
public void a(final String str, String str2) {
ThirdPartTrackLib.e(IdCardScanActivity.this, ThirdPartTrackEvents.UserAuth.MEX_ID_CARD_SCAN_UPLOAD_ID_CARD, new TrackEventParamsConfigurator() {
@Override
public final void a(Map map) {
map.put(ThirdPartTrackEvents.UserAuth.Keys.IMAGE_KEY, str);
}
});
IdCardScanActivity.this.M0(str);
}
@Override
public void b(final String str) {
ThirdPartTrackLib.e(IdCardScanActivity.this, ThirdPartTrackEvents.UserAuth.MEX_ID_CARD_SCAN_UPLOAD_ID_CARD, new TrackEventParamsConfigurator() {
@Override
public final void a(Map map) {
map.put(ThirdPartTrackEvents.Keys.ERROR_MESSAGE, str);
}
});
IdCardScanActivity.this.L0(str);
}
}
private class OpenCameraTask extends AsyncTask<Integer, Integer, Camera> {
@Override
public Camera doInBackground(Integer... numArr) {
ISpan x = IdCardScanActivity.this.D.x("openCamera", "openCamera");
ThirdPartTrackLib.d(IdCardScanActivity.this, ThirdPartTrackEvents.UserAuth.MEX_ID_CARD_SCAN_OPEN_CAMERA);
Camera j2 = IdCardScanActivity.this.R.j();
if (j2 == null) {
IdCardScanActivity.this.D.a("errorStep", "openCamera");
IdCardScanActivity.this.D.a("openCamera", SpanStatus.UNKNOWN.name());
x.n(SpanStatus.UNKNOWN_ERROR);
} else {
ITransaction iTransaction = IdCardScanActivity.this.D;
SpanStatus spanStatus = SpanStatus.OK;
iTransaction.a("openCamera", spanStatus.name());
x.n(spanStatus);
}
return j2;
}
@Override
public void onPostExecute(Camera camera) {
super.onPostExecute(camera);
if (camera == null) {
IdCardScanActivity.this.showErrorToast(2131821073);
return;
}
IdCardScanActivity.this.R.g(IdCardScanActivity.this);
ThirdPartTrackLib.d(IdCardScanActivity.this, ThirdPartTrackEvents.UserAuth.MEX_ID_CARD_SCAN_INIT_CAMERA_PARAMS);
FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams) IdCardScanActivity.this.R.e(IdCardScanActivity.this.clContent.getLayoutParams());
layoutParams.gravity = 17;
IdCardScanActivity.this.clContent.setLayoutParams(layoutParams);
IdCardScanActivity.this.w0();
}
private OpenCameraTask() {
}
}
private interface ScanIdCardSentry {
}
public void A0(Map map) {
map.put(ThirdPartTrackEvents.UserAuth.Keys.FILE_PATH, this.F);
}
public File B0(ISpan iSpan, Bitmap bitmap) throws Exception {
this.F = ImageUtil.k(BitmapUtil.d(bitmap, this.iICameraFrame.getContentWidth() / this.iICameraFrame.getWidth(), this.iICameraFrame.getContentHeight() / this.iICameraFrame.getHeight()), new File(FilePathUtil.f(this), "cardScanImage"));
File file = new File(this.F);
if (file.exists()) {
iSpan.n(SpanStatus.OK);
ThirdPartTrackLib.e(this, ThirdPartTrackEvents.UserAuth.MEX_ID_CARD_SCAN_CACHE_FILE_PATH, new TrackEventParamsConfigurator() {
@Override
public final void a(Map map) {
IdCardScanActivity.this.A0(map);
}
});
return file;
}
iSpan.n(SpanStatus.UNKNOWN_ERROR);
this.D.a("errorStep", "cacheIdCard");
throw new Exception(getResources().getString(2131821076));
}
public void C0(Map map) {
map.put(ThirdPartTrackEvents.UserAuth.Keys.FILE_PATH, this.F);
}
public void E0(Boolean bool) throws Exception {
this.D.a("goBackground", "true");
}
public void F0() {
ViewUtil.b(this.ivClose, ScreenUtils.a(10));
}
public void G0(Map map) {
map.put(ThirdPartTrackEvents.UserAuth.Keys.FILE_PATH, this.F);
}
public void H0(ISpan iSpan, byte[] bArr, Camera camera) {
SpanStatus spanStatus = SpanStatus.OK;
iSpan.n(spanStatus);
this.D.a("takePicture", spanStatus.name());
Logger.c().b("onPictureTaken2");
K0(bArr);
}
public void I0(ISpan iSpan, Throwable th) {
Sentry.h(th);
iSpan.m(th);
iSpan.n(SpanStatus.UNKNOWN_ERROR);
this.D.a("takePicture", SpanStatus.UNKNOWN.name());
this.D.a("errorStep", "takePicture");
}
private void J0() {
u0();
this.tvCameraTip.setText("");
this.ivCamera.setEnabled(true);
this.ivCamera.setImageDrawable(ContextCompat.getDrawable(this, 2131230913));
try {
Bitmap bitmap = this.E;
if (bitmap == null || bitmap.isRecycled()) {
return;
}
this.E.recycle();
this.E = null;
} catch (Exception unused) {
}
}
private void K0(byte[] bArr) {
ISpan x = this.D.x("decodeBitmap", "decodeBitmap");
this.K = bArr;
Bitmap f = BitmapUtil.f(1000, bArr);
if (f == null) {
showNormalToast(2131821073);
w0();
x.n(SpanStatus.UNKNOWN_ERROR);
this.D.a("decodeBitmap", SpanStatus.UNKNOWN.name());
this.D.a("errorStep", "decodeBitmap");
return;
}
ITransaction iTransaction = this.D;
SpanStatus spanStatus = SpanStatus.OK;
iTransaction.a("decodeBitmap", spanStatus.name());
x.n(spanStatus);
this.E = f;
Q0();
ThirdPartTrackLib.d(this, ThirdPartTrackEvents.UserAuth.MEX_ID_CARD_SCAN_TAKE_PHOTO);
}
public void L0(String str) {
ISpan iSpan = this.T;
if (iSpan != null) {
iSpan.n(SpanStatus.UNKNOWN_ERROR);
}
this.D.a("errorStep", "uploadIdCard");
dismissLoadingDialog();
w0();
R0();
P0(str);
}
public void M0(String str) {
ISpan iSpan = this.T;
if (iSpan != null) {
iSpan.n(SpanStatus.OK);
}
v0(SpanStatus.OK, "uploadIdCard");
dismissLoadingDialog();
EventBus.c().n(new CardScanResultEvent(true, this.G, this.F, str));
finish();
}
public void N0(File file) {
if (file != null && file.exists()) {
O0();
} else {
showNormalToast(2131821100);
w0();
}
}
private void O0() {
if (this.H == null) {
x0();
}
showLoadingDialog();
this.T = this.D.x("uploadIdCard", "uploadIdCard");
this.H.f(this.K);
}
private void P0(String str) {
if (!AppUtil.c(this) || TextUtils.isEmpty(str)) {
return;
}
CommonDialog.CommonDialogBuilder.c(this).q("dialog_error_tip").j(str).m(2131820685, new b()).d(1).a().show();
}
private void Q0() {
this.gpCameraPreview.setVisibility(8);
this.gpCameraPicture.setVisibility(0);
}
private void R0() {
this.gpCameraPreview.setVisibility(0);
this.gpCameraPicture.setVisibility(8);
J0();
}
private void S0() {
final ISpan x = this.D.x("takePicture", "takePicture");
this.R.m(new Camera.PictureCallback() {
@Override
public final void onPictureTaken(byte[] bArr, Camera camera) {
IdCardScanActivity.this.H0(x, bArr, camera);
}
}, new Action() {
public final void a(Object obj) {
IdCardScanActivity.this.I0(x, (Throwable) obj);
}
});
}
private void s0() {
ViewCompat.setOnApplyWindowInsetsListener(this.clContent, new OnApplyWindowInsetsListener() {
public final WindowInsetsCompat onApplyWindowInsets(View view, WindowInsetsCompat windowInsetsCompat) {
WindowInsetsCompat y0;
y0 = IdCardScanActivity.this.y0(view, windowInsetsCompat);
return y0;
}
});
}
public static void startIdCardScanActivity(Activity activity, int i2) {
Intent intent = new Intent(activity, (Class<?>) IdCardScanActivity.class);
intent.putExtra("card_type", i2);
activity.startActivity(intent);
}
private void t0(Bitmap bitmap) {
if (bitmap != null) {
final ISpan x = this.D.x("cacheIdCard", "cacheIdCard");
this.J = Flowable.G(bitmap).b0(Schedulers.c()).H(new Function() {
public final Object apply(Object obj) {
File B0;
B0 = IdCardScanActivity.this.B0(x, (Bitmap) obj);
return B0;
}
}).J(AndroidSchedulers.a()).W(new Consumer() {
public final void accept(Object obj) {
IdCardScanActivity.this.N0((File) obj);
}
}, new Consumer() {
public final void accept(Object obj) {
IdCardScanActivity.this.z0((Throwable) obj);
}
});
} else {
showNormalToast(2131820721);
w0();
R0();
}
}
private void u0() {
LottieDrawable drawable = this.ivCamera.getDrawable();
if (drawable instanceof LottieDrawable) {
this.I = drawable;
}
}
private void v0(SpanStatus spanStatus, String str) {
if (this.D.isFinished()) {
return;
}
this.D.a("userCloseAction", str);
this.D.a("scanIdCard", spanStatus.name());
this.D.n(spanStatus);
}
public void w0() {
this.R.l(this.tvSurface.getSurfaceTexture());
ThirdPartTrackLib.e(this, ThirdPartTrackEvents.UserAuth.MEX_ID_CARD_SCAN_START_PREVIEW, new TrackEventParamsConfigurator() {
@Override
public final void a(Map map) {
IdCardScanActivity.this.C0(map);
}
});
}
private void x0() {
this.H = new UploadIdCardImageHelper(this, new AnonymousClass1(), this.G);
}
public WindowInsetsCompat y0(View view, WindowInsetsCompat windowInsetsCompat) {
Insets insets = windowInsetsCompat.getInsets(WindowInsetsCompat.Type.systemBars());
ViewGroup.MarginLayoutParams marginLayoutParams = (ViewGroup.MarginLayoutParams) this.ivCamera.getLayoutParams();
marginLayoutParams.setMargins(marginLayoutParams.leftMargin, marginLayoutParams.topMargin, getResources().getDimensionPixelOffset(2131165594) + insets.right, marginLayoutParams.bottomMargin);
this.ivCamera.setLayoutParams(marginLayoutParams);
ViewGroup.MarginLayoutParams marginLayoutParams2 = (ViewGroup.MarginLayoutParams) this.ivRescanOk.getLayoutParams();
marginLayoutParams2.setMargins(marginLayoutParams2.leftMargin, marginLayoutParams2.topMargin, getResources().getDimensionPixelOffset(2131165594) + insets.right, marginLayoutParams2.bottomMargin);
this.ivRescanOk.setLayoutParams(marginLayoutParams2);
return WindowInsetsCompat.CONSUMED;
}
public void z0(Throwable th) throws Exception {
L0(th.getMessage());
}
@Override
protected void D() {
J0();
reportFullyDisplayed();
}
@Override
protected void G(@NonNull Bundle bundle) {
super.G(bundle);
this.G = getIntent().getIntExtra("card_type", 1);
}
@Override
protected void K() {
IdCardIndicator.IDCardAttr iDCardAttr = new IdCardIndicator.IDCardAttr();
int i2 = this.G;
if (i2 == 1 || i2 == 4) {
iDCardAttr.a = 0;
this.iICameraFrame.f(false, iDCardAttr);
this.iICameraFrame.setIdCardRes(2131231061);
} else {
iDCardAttr.a = 1;
this.iICameraFrame.f(false, iDCardAttr);
this.iICameraFrame.setIdCardRes(2131231060);
}
this.tvSurface.setSurfaceTextureListener(this);
this.ivClose.post(new Runnable() {
@Override
public final void run() {
IdCardScanActivity.this.F0();
}
});
}
@Override
protected boolean L() {
return true;
}
@Override
protected void X(@NonNull Bundle bundle) {
super.X(bundle);
bundle.putInt("card_type", this.G);
}
@Override
public int getLayoutID() {
return 2131558639;
}
@Override
@SuppressLint({"CheckResult"})
protected void init() {
super.init();
this.R = new ICamera(false);
duringActive(AppStatusListener.h().k(), false).x(new Predicate() {
public final boolean test(Object obj) {
boolean booleanValue;
booleanValue = ((Boolean) obj).booleanValue();
return booleanValue;
}
}).e0(1L).W(new Consumer() {
public final void accept(Object obj) {
IdCardScanActivity.this.E0((Boolean) obj);
}
}, new y0());
}
public void onBackPressed() {
super/*androidx.activity.ComponentActivity*/.onBackPressed();
v0(SpanStatus.CANCELLED, "backPressed");
}
@Override
protected void onCreate(Bundle bundle) {
getWindow().setFlags(UserVerificationMethods.USER_VERIFY_ALL, UserVerificationMethods.USER_VERIFY_ALL);
super.onCreate(bundle);
AndroidInjection.b(this);
ThirdPartTrackLib.d(this, ThirdPartTrackEvents.UserAuth.MEX_ID_CARD_SCAN_ON_CREATE);
s0();
}
@Override
protected void onDestroy() {
super.onDestroy();
this.R.c();
ThirdPartTrackLib.d(this, ThirdPartTrackEvents.UserAuth.MEX_ID_CARD_SCAN_RELEASE_CAMERA);
this.S.cancel(true);
LottieAnimationView lottieAnimationView = this.ivCamera;
if (lottieAnimationView != null && lottieAnimationView.o()) {
this.ivCamera.h();
}
Bitmap bitmap = this.E;
if (bitmap != null && !bitmap.isRecycled()) {
this.E.recycle();
this.E = null;
}
ThirdPartTrackLib.d(this, ThirdPartTrackEvents.UserAuth.MEX_ID_CARD_SCAN_DESTROY);
if (AppStatusListener.h().j()) {
v0(SpanStatus.CANCELLED, "goBackground");
} else {
SpanStatus spanStatus = SpanStatus.UNKNOWN_ERROR;
v0(spanStatus, spanStatus.name());
}
}
@Override
protected void onPause() {
super.onPause();
this.tvSurface.setKeepScreenOn(false);
RxUtil.b(this.J);
}
@Override
protected void onResume() {
super.onResume();
this.tvSurface.setVisibility(0);
this.tvSurface.setKeepScreenOn(true);
}
@Override
public void onSurfaceTextureAvailable(SurfaceTexture surfaceTexture, int i2, int i3) {
ThirdPartTrackLib.e(this, ThirdPartTrackEvents.UserAuth.MEX_ID_CARD_SCAN_SURFACE_TEXTURE_AVAILABLE, new TrackEventParamsConfigurator() {
@Override
public final void a(Map map) {
IdCardScanActivity.this.G0(map);
}
});
try {
this.S.execute(new Integer[0]);
} catch (Exception e) {
e.printStackTrace();
CrashReporter.a(e);
}
}
@Override
public boolean onSurfaceTextureDestroyed(SurfaceTexture surfaceTexture) {
ThirdPartTrackLib.d(this, ThirdPartTrackEvents.UserAuth.MEX_ID_CARD_SCAN_SURFACE_TEXTURE_DESTROYED);
this.R.c();
ThirdPartTrackLib.d(this, ThirdPartTrackEvents.UserAuth.MEX_ID_CARD_SCAN_RELEASE_CAMERA);
return true;
}
@OnClick({2131362965, 2131362281, 2131362312, 2131362320})
public void onViewClicked(View view) {
if (BaseUtils.b()) {
}
switch (view.getId()) {
case 2131362281:
case 2131362965:
this.R.b();
break;
case 2131362312:
S0();
break;
case 2131362320:
v0(SpanStatus.CANCELLED, "closeIconClick");
EventBus.c().n(new CardScanResultEvent(false, this.G));
finish();
break;
}
}
@OnClick({2131362393, 2131362392})
protected void rescanViewClick(View view) {
switch (view.getId()) {
case 2131362392:
t0(this.E);
break;
case 2131362393:
w0();
R0();
break;
}
}
@Override
@SuppressLint({"CheckResult"})
public Disposable runOnCreated(@NonNull Runnable runnable) {
return com.veda.supertoolkit.lifecycle.i.a(this, runnable);
}
@Override
@SuppressLint({"CheckResult"})
public Disposable runOnDestroy(@NonNull Runnable runnable) {
return com.veda.supertoolkit.lifecycle.i.b(this, runnable);
}
@Override
@SuppressLint({"CheckResult"})
public Disposable runOnEvent(@NonNull LifecycleEvent lifecycleEvent, @Nullable Runnable runnable) {
return com.veda.supertoolkit.lifecycle.i.c(this, lifecycleEvent, runnable);
}
@Override
public void onSurfaceTextureUpdated(SurfaceTexture surfaceTexture) {
}
@Override
public void onSurfaceTextureSizeChanged(SurfaceTexture surfaceTexture, int i2, int i3) {
}
}