导航菜单

页面标题

页面副标题

EfectivoYa v2.3 - FFTakeIdCardActivity.java 源代码

正在查看: EfectivoYa v2.3 应用的 FFTakeIdCardActivity.java JAVA 源代码文件

本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。


package com.mxff.ffxxmm.activity;

import android.R;
import android.content.Intent;
import android.graphics.Color;
import android.graphics.RectF;
import android.hardware.display.DisplayManager;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.HandlerThread;
import android.os.Looper;
import android.provider.MediaStore;
import android.util.DisplayMetrics;
import android.util.Size;
import android.view.View;
import androidx.camera.core.CameraSelector;
import androidx.camera.core.ImageAnalysis;
import androidx.camera.core.ImageCapture;
import androidx.camera.core.ImageCaptureException;
import androidx.camera.core.Preview;
import androidx.camera.lifecycle.ProcessCameraProvider;
import androidx.camera.view.PreviewView;
import androidx.core.content.ContextCompat;
import com.bumptech.glide.load.resource.bitmap.c0;
import com.google.android.material.card.MaterialCardViewHelper;
import com.google.common.util.concurrent.ListenableFuture;
import com.gyf.immersionbar.l;
import com.mxff.ffxxmm.R$mipmap;
import com.mxff.ffxxmm.activity.FFTakeIdCardActivity;
import com.mxff.ffxxmm.databinding.FfActivityCameraxIdCardBinding;
import com.mxff.ffxxmm.utils.FFLuminosityAnalyzer;
import com.mxff.ffxxmm.utils.m;
import com.mxff.ffxxmm.viewmodel.BaseViewModel;
import java.io.File;
import java.util.concurrent.ExecutionException;
import me.jessyan.autosize.internal.CustomAdapt;
import me.jessyan.autosize.utils.AutoSizeUtils;

public class FFTakeIdCardActivity extends BaseActivity<BaseViewModel, FfActivityCameraxIdCardBinding> implements CustomAdapt {

    private Preview f2103m;

    private ProcessCameraProvider f2104n;

    private ImageCapture f2105o;

    private ImageAnalysis f2106p;

    private RectF f2107q;

    private Uri f2108r;

    private DisplayManager f2110t;

    private DisplayManager.DisplayListener f2111u;

    private int f2102l = 0;

    private Handler f2109s = new Handler(Looper.getMainLooper());

    private boolean f2112v = false;

    private int f2113w = 2;

    class a implements DisplayManager.DisplayListener {
        a() {
        }

        @Override
        public void onDisplayAdded(int i2) {
        }

        @Override
        public void onDisplayChanged(int i2) {
            if (i2 == FFTakeIdCardActivity.this.f2102l) {
                int rotation = FFTakeIdCardActivity.this.findViewById(R.id.content).getDisplay().getRotation();
                if (FFTakeIdCardActivity.this.f2103m != null) {
                    FFTakeIdCardActivity.this.f2103m.setTargetRotation(rotation);
                }
                if (FFTakeIdCardActivity.this.f2105o != null) {
                    FFTakeIdCardActivity.this.f2105o.setTargetRotation(rotation);
                }
                if (FFTakeIdCardActivity.this.f2106p != null) {
                    FFTakeIdCardActivity.this.f2106p.setTargetRotation(rotation);
                }
            }
        }

        @Override
        public void onDisplayRemoved(int i2) {
        }
    }

    class b implements View.OnAttachStateChangeListener {
        b() {
        }

        @Override
        public void onViewAttachedToWindow(View view) {
            FFTakeIdCardActivity.this.f2110t.registerDisplayListener(FFTakeIdCardActivity.this.f2111u, null);
        }

        @Override
        public void onViewDetachedFromWindow(View view) {
            FFTakeIdCardActivity.this.f2110t.unregisterDisplayListener(FFTakeIdCardActivity.this.f2111u);
        }
    }

    class c implements View.OnClickListener {
        c() {
        }

        @Override
        public void onClick(View view) {
            FFTakeIdCardActivity.this.f0();
        }
    }

    class d implements ImageCapture.OnImageSavedCallback {
        d() {
        }

        @Override
        public void onError(ImageCaptureException imageCaptureException) {
            imageCaptureException.printStackTrace();
        }

        @Override
        public void onImageSaved(ImageCapture.OutputFileResults outputFileResults) {
            FFTakeIdCardActivity.this.f2065i.ivPreviewView.setVisibility(0);
            FFTakeIdCardActivity.this.f2065i.ivConfirm.setVisibility(0);
            FFTakeIdCardActivity.this.f2065i.ivCancel.setVisibility(0);
            FFTakeIdCardActivity.this.f2065i.tvTakePicture.setVisibility(4);
            FFTakeIdCardActivity.this.d0(outputFileResults.getSavedUri());
            FFTakeIdCardActivity.this.f2108r = outputFileResults.getSavedUri();
        }
    }

    class e implements Runnable {

        final ListenableFuture f2118a;

        final PreviewView f2119b;

        e(ListenableFuture listenableFuture, PreviewView previewView) {
            this.f2118a = listenableFuture;
            this.f2119b = previewView;
        }

        @Override
        public void run() {
            try {
                FFTakeIdCardActivity.this.f2104n = (ProcessCameraProvider) this.f2118a.get();
                this.f2119b.getDisplay().getRealMetrics(new DisplayMetrics());
                int rotation = this.f2119b.getDisplay().getRotation();
                ProcessCameraProvider processCameraProvider = FFTakeIdCardActivity.this.f2104n;
                FFTakeIdCardActivity.this.f2103m = new Preview.Builder().setTargetResolution(new Size(451, 286)).setTargetRotation(rotation).build();
                FFTakeIdCardActivity.this.f2105o = new ImageCapture.Builder().setCaptureMode(0).setFlashMode(FFTakeIdCardActivity.this.f2113w).setTargetResolution(new Size(451, 286)).setTargetRotation(rotation).build();
                FFTakeIdCardActivity.this.f2106p = new ImageAnalysis.Builder().setTargetResolution(new Size(451, 286)).setTargetRotation(rotation).setBackpressureStrategy(0).build();
                FFTakeIdCardActivity fFTakeIdCardActivity = FFTakeIdCardActivity.this;
                fFTakeIdCardActivity.g0(fFTakeIdCardActivity.f2106p);
                processCameraProvider.unbindAll();
                FFTakeIdCardActivity.this.W(processCameraProvider, this.f2119b);
            } catch (InterruptedException e2) {
                throw new RuntimeException(e2);
            } catch (ExecutionException e3) {
                throw new RuntimeException(e3);
            }
        }
    }

    public void W(ProcessCameraProvider processCameraProvider, PreviewView previewView) {
        processCameraProvider.bindToLifecycle(this, CameraSelector.DEFAULT_BACK_CAMERA, this.f2103m, this.f2105o, this.f2106p);
        this.f2103m.setSurfaceProvider(previewView.getSurfaceProvider());
    }

    private void X() {
        ImageCapture imageCapture = this.f2105o;
        if (imageCapture == null) {
            imageCapture = new ImageCapture.Builder().setTargetResolution(new Size(MaterialCardViewHelper.DEFAULT_FADE_ANIM_DURATION, MaterialCardViewHelper.DEFAULT_FADE_ANIM_DURATION)).setTargetRotation(this.f2065i.viewFinder.getDisplay().getRotation()).build();
        }
        ImageCapture.Metadata metadata = new ImageCapture.Metadata();
        metadata.setReversedHorizontal(false);
        MediaStore.Images.Media.EXTERNAL_CONTENT_URI.toString();
        File file = new File(getCacheDir() + "/CameraxTakeFace/");
        if (!file.exists()) {
            file.mkdirs();
        }
        imageCapture.lambda$takePicture$4(new ImageCapture.OutputFileOptions.Builder(new File(file, System.currentTimeMillis() + ".jpg")).setMetadata(metadata).build(), new m(this.f2109s), new d());
    }

    public void Y() {
        this.f2102l = this.f2065i.viewFinder.getDisplay().getDisplayId();
        this.f2065i.viewFinder.addOnAttachStateChangeListener(new b());
        RectF rectF = new RectF(this.f2065i.viewFinder.getLeft(), this.f2065i.viewFinder.getTop(), this.f2065i.viewFinder.getRight(), this.f2065i.viewFinder.getBottom());
        this.f2107q = rectF;
        this.f2065i.fFinderBackground.b(rectF, AutoSizeUtils.dp2px(this, 19.0f));
        this.f2065i.fFinderBackground.setBackgroundColor(Color.parseColor("#666666"));
        h0();
    }

    public void Z(View view) {
        i0();
    }

    public void a0(View view) {
        finish();
    }

    public void b0(View view) {
        e0();
    }

    public void c0(View view) {
        setResult(-1, new Intent().setData(this.f2108r));
        finish();
    }

    public void d0(Uri uri) {
        com.bumptech.glide.d.v(this).q(uri).a((com.bumptech.glide.request.e) new com.bumptech.glide.request.e().a0(new c0(AutoSizeUtils.dp2px(this, 19.0f)))).p0(this.f2065i.ivPreviewView);
    }

    private void e0() {
        this.f2065i.ivPreviewView.setVisibility(4);
        this.f2065i.ivCancel.setVisibility(8);
        this.f2065i.ivConfirm.setVisibility(8);
        this.f2065i.tvTakePicture.setVisibility(0);
    }

    public void f0() {
        boolean z2 = !this.f2112v;
        this.f2112v = z2;
        this.f2065i.btnOpenFlash.setImageResource(z2 ? R$mipmap.ff_ic_auth_17 : R$mipmap.ff_ic_auth_16);
        this.f2113w = this.f2112v ? 1 : 2;
    }

    public void g0(ImageAnalysis imageAnalysis) {
        HandlerThread handlerThread = new HandlerThread("Luminosity");
        handlerThread.start();
        imageAnalysis.setAnalyzer(new m(new Handler(handlerThread.getLooper())), new FFLuminosityAnalyzer());
    }

    private void h0() {
        PreviewView previewView = this.f2065i.viewFinder;
        ListenableFuture<ProcessCameraProvider> processCameraProvider = ProcessCameraProvider.getInstance(this);
        processCameraProvider.addListener(new e(processCameraProvider, previewView), ContextCompat.getMainExecutor(this));
    }

    private void i0() {
        X();
    }

    public float getSizeInDp() {
        return 360.0f;
    }

    public boolean isBaseOnWidth() {
        return false;
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        this.f2110t.unregisterDisplayListener(this.f2111u);
    }

    @Override
    protected void r() {
    }

    @Override
    protected void u(Bundle bundle) {
        l.l0(this).D();
        this.f2110t = (DisplayManager) getSystemService("display");
        a aVar = new a();
        this.f2111u = aVar;
        this.f2110t.registerDisplayListener(aVar, null);
        this.f2065i.viewFinder.post(new Runnable() {
            @Override
            public final void run() {
                FFTakeIdCardActivity.this.Y();
            }
        });
        this.f2065i.tvTitle.setText(c1.a.a("Tome una foto de su indentificación dentro del marco"));
        this.f2065i.ivCancel.setVisibility(8);
        this.f2065i.ivConfirm.setVisibility(8);
        this.f2065i.tvTakePicture.setOnClickListener(new View.OnClickListener() {
            @Override
            public final void onClick(View view) {
                FFTakeIdCardActivity.this.Z(view);
            }
        });
        this.f2065i.ivBack.setOnClickListener(new View.OnClickListener() {
            @Override
            public final void onClick(View view) {
                FFTakeIdCardActivity.this.a0(view);
            }
        });
        this.f2065i.ivCancel.setOnClickListener(new View.OnClickListener() {
            @Override
            public final void onClick(View view) {
                FFTakeIdCardActivity.this.b0(view);
            }
        });
        this.f2065i.btnOpenFlash.setOnClickListener(new c());
        this.f2065i.ivConfirm.setOnClickListener(new View.OnClickListener() {
            @Override
            public final void onClick(View view) {
                FFTakeIdCardActivity.this.c0(view);
            }
        });
    }
}