导航菜单

页面标题

页面副标题

公务员之家 v1.0.1 - PictureCameraActivity.java 源代码

正在查看: 公务员之家 v1.0.1 应用的 PictureCameraActivity.java JAVA 源代码文件

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


package com.luck.lib.camerax;

import android.content.Intent;
import android.content.res.Configuration;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.luck.lib.camerax.listener.CameraListener;
import com.luck.lib.camerax.listener.ClickListener;
import com.luck.lib.camerax.listener.IObtainCameraView;
import com.luck.lib.camerax.listener.ImageCallbackListener;
import com.luck.lib.camerax.permissions.PermissionChecker;
import com.luck.lib.camerax.permissions.PermissionResultCallback;
import com.luck.lib.camerax.utils.SimpleXSpUtils;
import com.umeng.analytics.pro.bb;

public class PictureCameraActivity extends AppCompatActivity implements IObtainCameraView {
    private CustomCameraView mCameraView;
    private PermissionResultCallback mPermissionResultCallback;

    protected void onCreate(Bundle bundle) {
        getWindow().setFlags(1024, 1024);
        getWindow().setFlags(67108864, 67108864);
        getWindow().setFlags(134217728, 134217728);
        if (Build.VERSION.SDK_INT >= 28) {
            WindowManager.LayoutParams attributes = getWindow().getAttributes();
            attributes.layoutInDisplayCutoutMode = 1;
            getWindow().setAttributes(attributes);
        }
        getWindow().addFlags(bb.d);
        super.onCreate(bundle);
        this.mCameraView = new CustomCameraView(this);
        this.mCameraView.setLayoutParams(new RelativeLayout.LayoutParams(-1, -1));
        setContentView(this.mCameraView);
        this.mCameraView.post(new Runnable() {
            @Override
            public void run() {
                PictureCameraActivity.this.mCameraView.setCameraConfig(PictureCameraActivity.this.getIntent());
            }
        });
        this.mCameraView.setImageCallbackListener(new ImageCallbackListener() {
            @Override
            public void onLoadImage(String str, ImageView imageView) {
                if (CustomCameraConfig.imageEngine != null) {
                    CustomCameraConfig.imageEngine.loadImage(imageView.getContext(), str, imageView);
                }
            }
        });
        this.mCameraView.setCameraListener(new CameraListener() {
            @Override
            public void onPictureSuccess(String str) {
                PictureCameraActivity.this.handleCameraSuccess();
            }

            @Override
            public void onRecordSuccess(String str) {
                PictureCameraActivity.this.handleCameraSuccess();
            }

            @Override
            public void onError(int i, String str, Throwable th) {
                Toast.makeText(PictureCameraActivity.this.getApplicationContext(), str, 1).show();
            }
        });
        this.mCameraView.setOnCancelClickListener(new ClickListener() {
            @Override
            public void onClick() {
                PictureCameraActivity.this.handleCameraCancel();
            }
        });
    }

    public void handleCameraSuccess() {
        new Intent().putExtra("output", (Uri) getIntent().getParcelableExtra("output"));
        setResult(-1, getIntent());
        onBackPressed();
    }

    public void handleCameraCancel() {
        setResult(0);
        onBackPressed();
    }

    public boolean onKeyDown(int i, KeyEvent keyEvent) {
        if (i == 4) {
            this.mCameraView.onCancelMedia();
        }
        return super.onKeyDown(i, keyEvent);
    }

    public void onConfigurationChanged(Configuration configuration) {
        super.onConfigurationChanged(configuration);
        this.mCameraView.onConfigurationChanged(configuration);
    }

    public void onBackPressed() {
        CustomCameraConfig.destroy();
        if (Build.VERSION.SDK_INT == 29) {
            finishAfterTransition();
        } else {
            super.onBackPressed();
        }
    }

    protected void onActivityResult(int i, int i2, Intent intent) {
        super.onActivityResult(i, i2, intent);
        if (CustomCameraConfig.explainListener != null) {
            CustomCameraConfig.explainListener.onDismiss(this.mCameraView);
        }
        if (i == 1102) {
            if (PermissionChecker.checkSelfPermission(this, new String[]{"android.permission.CAMERA"})) {
                this.mCameraView.buildUseCameraCases();
                return;
            } else {
                SimpleXSpUtils.putBoolean(this, "android.permission.CAMERA", true);
                handleCameraCancel();
                return;
            }
        }
        if (i != 1103 || PermissionChecker.checkSelfPermission(this, new String[]{"android.permission.RECORD_AUDIO"})) {
            return;
        }
        SimpleXSpUtils.putBoolean(this, "android.permission.RECORD_AUDIO", true);
        Toast.makeText(getApplicationContext(), "Missing recording permission", 1).show();
    }

    public void setPermissionsResultAction(PermissionResultCallback permissionResultCallback) {
        this.mPermissionResultCallback = permissionResultCallback;
    }

    protected void onDestroy() {
        this.mCameraView.onDestroy();
        super.onDestroy();
    }

    public void onRequestPermissionsResult(int i, String[] strArr, int[] iArr) {
        super.onRequestPermissionsResult(i, strArr, iArr);
        if (this.mPermissionResultCallback != null) {
            PermissionChecker.getInstance().onRequestPermissionsResult(iArr, this.mPermissionResultCallback);
            this.mPermissionResultCallback = null;
        }
    }

    @Override
    public ViewGroup getCustomCameraView() {
        return this.mCameraView;
    }
}