导航菜单

页面标题

页面副标题

用信花 v1.1.3 - CameraActivity.java 源代码

正在查看: 用信花 v1.1.3 应用的 CameraActivity.java JAVA 源代码文件

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


package com.duoshan.loan.ui.auth.activity;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Handler;
import android.text.TextUtils;
import android.view.View;
import android.widget.ImageView;
import androidx.activity.result.ActivityResult;
import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
import com.duoshan.loan.a;
import com.duoshan.loan.base.BaseActivity;
import com.duoshan.loan.base.BaseViewModel;
import com.duoshan.loan.databinding.ActivityCameraBinding;
import com.duoshan.loan.dialog.PermissionTipsDialog;
import com.luck.picture.lib.config.PictureMimeType;
import com.luck.picture.lib.entity.LocalMedia;
import com.luck.picture.lib.entity.LocalMediaFolder;
import com.luck.picture.lib.model.LocalMediaLoader;
import com.luck.picture.lib.thread.PictureThreadUtils;
import com.luck.picture.lib.tools.DateUtils;
import com.luck.picture.lib.tools.DoubleUtils;
import com.luck.picture.lib.tools.PictureFileUtils;
import com.lxj.xpopup.core.BasePopupView;
import com.yalantis.ucrop.UCrop;
import e2.y;
import h4.k;
import i2.i;
import java.io.File;
import java.util.List;
import l2.h;
import l5.d;
import m4.c;
import t1.f0;
import t1.g0;
import t1.h0;
import t1.i0;
import t1.j0;
import t1.k0;
import z3.m;

public class CameraActivity extends BaseActivity<ActivityCameraBinding, BaseViewModel> {

    public static final int f2606l = 0;

    public static final int f2607m = 1;

    public static BasePopupView f2608n;

    public int f2611g;

    public Handler f2612h;

    public d f2613i;

    public String[] f2609e = {m.E, m.C, m.D};

    public boolean f2610f = true;

    public String[] f2614j = {m.E, m.f6355c};

    public ActivityResultLauncher<Intent> f2615k = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new g0(this));

    public class a implements i.f {
        public a() {
        }

        @Override
        public void onCancel() {
            CameraActivity.this.J();
        }

        @Override
        public void onResult(String str) {
            h.o("相册选中的路径 --->" + str);
            CameraActivity.this.J();
            CameraActivity.this.B(str);
        }
    }

    public class b extends PictureThreadUtils.SimpleTask<List<LocalMediaFolder>> {
        public b() {
        }

        public List<LocalMediaFolder> doInBackground() {
            return new LocalMediaLoader(CameraActivity.this).loadAllMedia();
        }

        public void onSuccess(List<LocalMediaFolder> list) {
            PictureThreadUtils.cancel(PictureThreadUtils.getIoPool());
            if (list == null || list.size() == 0) {
                return;
            }
            CameraActivity cameraActivity = CameraActivity.this;
            if (cameraActivity.E(cameraActivity)) {
                return;
            }
            LocalMedia localMedia = (LocalMedia) list.get(0).getData().get(0);
            y.h(CameraActivity.this, localMedia.getPath(), ((ActivityCameraBinding) CameraActivity.this.f2431a).ivAlbum, 8);
            h.o("最新图片的路径 --->" + localMedia.getPath());
        }
    }

    public void F(File file, ImageView imageView) {
        com.bumptech.glide.b.H(this).g(file).l1(imageView);
        String absolutePath = file.getAbsolutePath();
        h.o("拍照后的路径 --->" + absolutePath);
        A(true, absolutePath);
    }

    public void G(boolean z4, String str) {
        setResult(-1, new Intent().putExtra("type", this.f2611g).putExtra("imagePath", str));
        finish();
        if (z4) {
            h.o("拍照后压缩的路径 --->" + str);
            return;
        }
        h.o("裁剪后压缩的路径 --->" + str);
    }

    public void H(View view) {
        int id = view.getId();
        if (id == 2131296660) {
            if (this.f2613i.j(this.f2609e[1])) {
                L();
                return;
            } else {
                M(true, this.f2609e[1]);
                return;
            }
        }
        int i4 = a.h.icon_flashlight_open;
        if (id != 2131296671) {
            if (id != 2131296688) {
                return;
            }
            ((ActivityCameraBinding) this.f2431a).cameraView.setFlashlight(this.f2610f);
            ImageView imageView = ((ActivityCameraBinding) this.f2431a).ivFlashlight;
            if (!this.f2610f) {
                i4 = a.h.icon_flashlight_close;
            }
            imageView.setImageResource(i4);
            this.f2610f = !this.f2610f;
            return;
        }
        if (!this.f2613i.j(this.f2609e[0])) {
            M(true, this.f2609e[0]);
            return;
        }
        if (((ActivityCameraBinding) this.f2431a).cameraView.findViewById(a.i.image_preview).getVisibility() == 0) {
            h.o("image_preview is View.VISIBLE.");
            ((ActivityCameraBinding) this.f2431a).cameraView.O();
        } else {
            h.o("image_preview is View.INVISIBLE.");
            ((ActivityCameraBinding) this.f2431a).cameraView.N();
            ((ActivityCameraBinding) this.f2431a).cameraView.setFlashlight(false);
            ((ActivityCameraBinding) this.f2431a).ivFlashlight.setImageResource(a.h.icon_flashlight_open);
        }
    }

    public void I(ActivityResult activityResult) {
        Intent data;
        if (activityResult.getResultCode() != -1 || (data = activityResult.getData()) == null) {
            return;
        }
        A(false, UCrop.getOutput(data).getPath());
    }

    public void K(boolean z4, l5.b bVar) throws Exception {
        if (bVar.b) {
            h.o(bVar.a + " is granted.");
            if (this.f2609e[0].equals(bVar.a)) {
                J();
            }
        } else if (bVar.c) {
            h.o(bVar.a + " is denied. More info should be provided.");
        } else {
            h.o(bVar.a + " is denied.");
            if (z4) {
                if (bVar.a.equals(this.f2609e[0])) {
                    k.u("请前往设置界面授予相机权限");
                } else {
                    k.u("请前往设置界面授予存储权限");
                }
                Intent intent = new Intent("android.settings.APPLICATION_DETAILS_SETTINGS");
                intent.setData(Uri.fromParts(z3.b.f6281l, getPackageName(), null));
                startActivity(intent);
            }
        }
        C();
    }

    public final void A(boolean z4, String str) {
        i.h(this, str, new j0(this, z4));
    }

    public final void B(String str) {
        if (DoubleUtils.isFastDoubleClick()) {
            return;
        }
        if (TextUtils.isEmpty(str)) {
            k.u("无可用裁剪资源");
            return;
        }
        UCrop of = UCrop.of((PictureMimeType.isHasHttp(str) || PictureMimeType.isContent(str)) ? Uri.parse(str) : Uri.fromFile(new File(str)), Uri.fromFile(new File(PictureFileUtils.getDiskCacheDir(getApplicationContext()), DateUtils.getCreateFileName("IMG_CROP_") + ".jpg")));
        UCrop.Options options = new UCrop.Options();
        options.setHideBottomControls(true);
        options.setStatusBarColor(getResources().getColor(a.f.black));
        options.setShowCropFrame(false);
        options.setShowCropGrid(false);
        of.withAspectRatio(6.0f, 4.0f);
        Intent intent = of.withOptions(options).getIntent(this);
        intent.setClass(this, CropActivity.class);
        this.f2615k.launch(intent);
    }

    public void C() {
        BasePopupView basePopupView = f2608n;
        if (basePopupView != null) {
            basePopupView.o();
        }
    }

    public final void J() {
        ((ActivityCameraBinding) this.f2431a).cameraView.H();
        if (this.f2613i.j(this.f2609e[1]) && this.f2613i.j(this.f2609e[2])) {
            PictureThreadUtils.executeByIo(new b());
        }
    }

    public final boolean E(Activity activity) {
        return activity == null || activity.isFinishing() || activity.isDestroyed();
    }

    public final void L() {
        i.d(this, new a());
    }

    @SuppressLint({"CheckResult"})
    public final void M(boolean z4, String... strArr) {
        this.f2613i.r(strArr).subscribe(new h0(this, z4));
        for (String str : strArr) {
            if (!this.f2613i.j(str)) {
                if (z4) {
                    return;
                }
                N(this);
                return;
            }
        }
    }

    public void N(Context context) {
        BasePopupView r4 = new c.b(context).r(new PermissionTipsDialog(context, "相机和存储权限使用说明", "1.为了拍摄新照片并直接上传,需要访问您的相机权限\n2.为了上传已有照片或保存拍摄的照片,需要您允许存储权限来访问您的设备照片库"));
        f2608n = r4;
        r4.J();
    }

    @Override
    public void g() {
        this.f2612h = new Handler();
        this.f2613i = new d(this);
    }

    @Override
    public void initView() {
        int intExtra = getIntent().getIntExtra("type", 0);
        this.f2611g = intExtra;
        o(intExtra == 0 ? "身份证人像面识别" : "身份证国徽面识别", a.f.color333333);
        this.f2432b.titleBar.setLeftImage(a.h.icon_back_white);
        this.f2432b.titleBar.setTitleTextColor(getResources().getColor(a.f.white));
        ((ActivityCameraBinding) this.f2431a).tvContent.setText(this.f2611g == 0 ? "拍摄身份证人像面" : "拍摄身份证国徽面");
        f0 f0Var = new f0(this);
        VB vb = this.f2431a;
        l(f0Var, ((ActivityCameraBinding) vb).ivCamera, ((ActivityCameraBinding) vb).ivFlashlight, ((ActivityCameraBinding) vb).ivAlbum);
        M(false, this.f2609e);
        z();
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        Handler handler = this.f2612h;
        if (handler != null) {
            handler.removeCallbacksAndMessages(null);
        }
    }

    @Override
    public void onResume() {
        super.onResume();
        this.f2612h.postDelayed(new k0(this), 500L);
    }

    @Override
    public void onStop() {
        super.onStop();
        ((ActivityCameraBinding) this.f2431a).cameraView.M();
    }

    public final void z() {
        ((ActivityCameraBinding) this.f2431a).cameraView.setImageCallbackListener(new i0(this));
    }
}