导航菜单

页面标题

页面副标题

微商客 v2.1.2 - CropPicActivity.java 源代码

正在查看: 微商客 v2.1.2 应用的 CropPicActivity.java JAVA 源代码文件

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


package com.jianzhen.wsk.ui.cutpic;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import android.os.Environment;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import com.hjq.permissions.OnPermissionCallback;
import com.hjq.permissions.XXPermissions;
import com.jianzhen.wsk.BaseActivity;
import com.jianzhen.wsk.R;
import com.jianzhen.wsk.dialog.XcDialog;
import com.jianzhen.wsk.utils.GlideEngine;
import com.jianzhen.wsk.utils.Utils;
import com.kongzue.dialogx.dialogs.PopNotification;
import com.luck.picture.lib.basic.PictureSelector;
import com.luck.picture.lib.config.SelectMimeType;
import com.luck.picture.lib.entity.LocalMedia;
import com.luck.picture.lib.interfaces.OnResultCallbackListener;
import com.yalantis.ucrop.slicer.SlicerListener;
import com.yalantis.ucrop.slicer.SlicerView;
import java.util.ArrayList;
import java.util.List;

public class CropPicActivity extends BaseActivity implements View.OnClickListener {
    private static final String KEY = "key";
    private ImageView addImg;
    private PopNotification mPopNotification;
    private View picFour;
    private View picNine;
    private View picSix;
    private View picThree;
    private View picTwo;
    private SlicerListener slicerListener = new SlicerListener() {
        public void onSuccess(List<String> list) {
            Intent intent = new Intent((Context) CropPicActivity.this, (Class<?>) CropPicResultActivity.class);
            intent.putStringArrayListExtra("paths", (ArrayList) list);
            CropPicActivity.this.startActivity(intent);
            CropPicActivity.this.finish();
        }

        public void onFail(String str) {
            Log.e("JuanTop", "onFail: msg:" + str);
        }
    };
    private SlicerView slicerView;
    private Uri uri;

    @Override
    protected int getLayoutId() {
        return R.layout.activity_crop_pic;
    }

    @Override
    protected boolean isSetBaseTitle() {
        return true;
    }

    public static void start(Activity activity, Uri uri, int i) {
        Intent intent = new Intent(activity, (Class<?>) CropPicActivity.class);
        intent.putExtra(KEY, uri);
        activity.startActivityForResult(intent, i);
    }

    @Override
    protected void initTitle() {
        setBaseTitle(this, "九宫格切图");
    }

    @Override
    protected void initPageView() {
        findViewById(R.id.finish_tv).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                CropPicActivity.this.slicerView.slicer();
            }
        });
        this.addImg = (ImageView) findViewById(R.id.add_img);
        this.slicerView = findViewById(R.id.slicer_view);
        this.picTwo = findViewById(R.id.pic_two);
        this.picThree = findViewById(R.id.pic_three);
        this.picFour = findViewById(R.id.pic_four);
        this.picSix = findViewById(R.id.pic_six);
        this.picNine = findViewById(R.id.pic_nine);
        this.picTwo.setOnClickListener(this);
        this.picThree.setOnClickListener(this);
        this.picFour.setOnClickListener(this);
        this.picSix.setOnClickListener(this);
        this.picNine.setOnClickListener(this);
        this.addImg.setOnClickListener(new View.OnClickListener() {
            @Override
            public final void onClick(View view) {
                CropPicActivity.this.lambda$initPageView$0(view);
            }
        });
    }

    public void lambda$initPageView$0(View view) {
        if (Build.VERSION.SDK_INT >= 30) {
            if (!Environment.isExternalStorageManager()) {
                new XcDialog(this, new XcDialog.Callback() {
                    @Override
                    public void onLogout() {
                        Intent intent = new Intent("android.settings.MANAGE_APP_ALL_FILES_ACCESS_PERMISSION");
                        intent.setData(Uri.parse("package:" + CropPicActivity.this.getPackageName()));
                        CropPicActivity.this.startActivityForResult(intent, 2);
                    }
                }).show();
                return;
            }
            if (!Utils.isImgPermission(this)) {
                PopNotification build = PopNotification.build();
                this.mPopNotification = build;
                build.setTitle("相机和存储权限使用说明:").setMessage("用于拍摄、储存照片以及在相册中浏览查看照片").noAutoDismiss().show();
            }
            XXPermissions.with((Context) this).permission(Utils.imgPermission(this)).request(new OnPermissionCallback() {
                @Override
                public void onGranted(List<String> list, boolean z) {
                    CropPicActivity.this.imgSelect();
                    if (CropPicActivity.this.mPopNotification != null) {
                        CropPicActivity.this.mPopNotification.dismiss();
                    }
                }

                @Override
                public void onDenied(List<String> list, boolean z) {
                    if (CropPicActivity.this.mPopNotification != null) {
                        CropPicActivity.this.mPopNotification.dismiss();
                    }
                }
            });
            return;
        }
        if (!Utils.isCameraPermission(this)) {
            PopNotification build2 = PopNotification.build();
            this.mPopNotification = build2;
            build2.setTitle("相机和存储权限使用说明:").setMessage("用于拍摄、储存照片以及在相册中浏览查看照片").noAutoDismiss().show();
        }
        XXPermissions.with((Context) this).permission(Utils.cameraPermission(this)).request(new OnPermissionCallback() {
            @Override
            public void onGranted(List<String> list, boolean z) {
                CropPicActivity.this.imgSelect();
                if (CropPicActivity.this.mPopNotification != null) {
                    CropPicActivity.this.mPopNotification.dismiss();
                }
            }

            @Override
            public void onDenied(List<String> list, boolean z) {
                if (CropPicActivity.this.mPopNotification != null) {
                    CropPicActivity.this.mPopNotification.dismiss();
                }
            }
        });
    }

    public void imgSelect() {
        PictureSelector.create(this).openGallery(SelectMimeType.ofImage()).setMaxSelectNum(1).setMinSelectNum(1).setImageEngine(GlideEngine.createGlideEngine()).setSelectorUIStyle(Utils.selectorStyle()).forResult(new OnResultCallbackListener<LocalMedia>() {
            public void onCancel() {
            }

            public void onResult(ArrayList<LocalMedia> arrayList) {
                CropPicActivity.this.addImg.setVisibility(8);
                CropPicActivity.this.uri = Uri.parse(arrayList.get(0).getPath());
                CropPicActivity.this.updatePicNum(2);
            }
        });
    }

    public void updatePicNum(int i) {
        this.picTwo.setSelected(false);
        this.picThree.setSelected(false);
        this.picFour.setSelected(false);
        this.picSix.setSelected(false);
        this.picNine.setSelected(false);
        if (i == 2) {
            this.picTwo.setSelected(true);
        } else if (i == 3) {
            this.picThree.setSelected(true);
        } else if (i == 4) {
            this.picFour.setSelected(true);
        } else if (i == 6) {
            this.picSix.setSelected(true);
        } else {
            this.picNine.setSelected(true);
        }
        this.slicerView.setSlicerNum(i);
        this.slicerView.setImageView(this.uri, this.slicerListener);
    }

    protected void onStop() {
        super.onStop();
        this.slicerView.onStop();
    }

    @Override
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.pic_four:
                updatePicNum(4);
                break;
            case R.id.pic_nine:
                updatePicNum(9);
                break;
            case R.id.pic_six:
                updatePicNum(6);
                break;
            case R.id.pic_three:
                updatePicNum(3);
                break;
            case R.id.pic_two:
                updatePicNum(2);
                break;
        }
    }
}