package com.gingersoft.supply_chain.mvp.utils;//package com.gingersoft.supply_chain.mvp.utils;
//
//import android.Manifest;
//import android.app.Activity;
//import android.content.ContentValues;
//import android.content.Context;
//import android.content.Intent;
//import android.net.Uri;
//import android.os.Build;
//import android.os.Environment;
//import android.provider.MediaStore;
//
//import androidx.core.content.FileProvider;
//import androidx.core.os.EnvironmentCompat;
//
//import com.gingersoft.gsa.cloud.common.ui.utils.AppDialog;
//import com.gingersoft.gsa.cloud.common.utils.toast.ToastUtils;
//import com.permissionx.guolindev.PermissionX;
//import com.permissionx.guolindev.callback.RequestCallback;
//
//import java.io.File;
//import java.io.IOException;
//import java.text.SimpleDateFormat;
//import java.util.Date;
//import java.util.Locale;
//
//import static com.gingersoft.gsa.cloud.common.ui.adapter.multi.MultiUploadPicProvider.CHOOSE_PHOTO;
//
///**
// * @author 宇航.
// * User: admin
// * Date: 2020/12/25
// * Time: 11:29
// * Use:
// */
//public class SelectPicture {
//    private static SelectPicture selectPicture;
//
//    public static SelectPicture getInstance(){
//        if(selectPicture == null){
//            selectPicture = new SelectPicture();
//        }
//        return selectPicture;
//    }
//
//    final String[] items = new String[]{"拍照", "從相冊選擇", "取消"};
//    public static final int CHOOSE_PHOTO = 101;
//    public static final int TAKE_PHOTO = 102;
//    public static final int TAKE_PHOTO_CUT = 103;
//
//    public void showPictureChoice(Context context) {
//        AppDialog.getInstance().showListDialog(context, items, (view, dialog, position) -> {
//            if (position == 0) {
//                takePhoto(context);
//            } else if (position == 1) {
//                Intent intentToPickPic = new Intent(Intent.ACTION_PICK, null);
//                intentToPickPic.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*");
//                ((Activity) context).startActivityForResult(intentToPickPic, CHOOSE_PHOTO);
//            }
//        });
//    }
//
//    private void takePhoto(Context context) {
//        Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
//        if (takePictureIntent.resolveActivity(context.getPackageManager()) != null) {
//            File photoFile = null;
//            try {
//                photoFile = createImageFile(context);
//            } catch (IOException e) {
//                e.printStackTrace();
//            }
//            if (photoFile != null) {
//                Uri photoUri = FileProvider.getUriForFile(context,
//                        context.getPackageName() + ".fileprovider", photoFile);
//                takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);
//            }
//            ((Activity) context).startActivityForResult(takePictureIntent, TAKE_PHOTO);
//        } else {
//            ToastUtils.show(context, "請安裝相機");
//        }
//    }
//
//    String currentPhotoPath;
//
//    private File createImageFile(Context context) throws IOException {
//        // Create an image file name
//        String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
//        String imageFileName = "JPEG_" + timeStamp + "_";
//        File storageDir = context.getExternalFilesDir(Environment.DIRECTORY_PICTURES);
//        File image = File.createTempFile(
//                imageFileName,  /* prefix */
//                ".jpg",         /* suffix */
//                storageDir      /* directory */
//        );
//        // Save a file: path for use with ACTION_VIEW intents
//        currentPhotoPath = image.getAbsolutePath();
//        return image;
//    }
//
//    public String getCurrentPhotoPath() {
//        return currentPhotoPath;
//    }
//
//    /**
//     * 创建图片地址uri,用于保存拍照后的照片 Android 10以后使用这种方法
//     *
//     * @return 图片的uri
//     */
//    private Uri createImageUri(Context context) {
//        //设置保存参数到ContentValues中
//        ContentValues contentValues = new ContentValues();
//        //设置文件名
//        contentValues.put(MediaStore.Images.Media.DISPLAY_NAME, "gsa_food_" + System.currentTimeMillis());
//        //兼容Android Q和以下版本
//        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
//            //android Q中不再使用DATA字段，而用RELATIVE_PATH代替
//            //TODO RELATIVE_PATH是相对路径不是绝对路径;照片存储的地方为：内部存储/Pictures
//            contentValues.put(MediaStore.Images.Media.RELATIVE_PATH, "Pictures");
//        }
//        //设置文件类型
//        contentValues.put(MediaStore.Images.Media.MIME_TYPE, "image/JPEG");
//        //执行insert操作，向系统文件夹中添加文件
//        //EXTERNAL_CONTENT_URI代表外部存储器，该值不变
//        return context.getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues);
//    }
//
//在公共文件夹下查询图片
//这里的filepath在androidQ中表示相对路径
//在androidQ以下是绝对路径
//public Uri querySignImage(String filePath) {
//        // 图片列表
//        Uri contentUri = null;
//        try {
//        //兼容androidQ和以下版本
//        String queryPathKey = android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.Q ?
//        MediaStore.Images.Media.RELATIVE_PATH : MediaStore.Images.Media.DATA;
//        //查询的条件语句
//        String selection = queryPathKey + "=?";
//        //查询的sql
//        //Uri：指向外部存储Uri
//        //projection：查询那些结果
//        //selection：查询的where条件
//        //sortOrder：排序
//        Cursor cursor = mContext.getContentResolver().query(
//        MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
//        new String[]{MediaStore.Images.Media._ID,
//        queryPathKey,
//        MediaStore.Images.Media.MIME_TYPE,
//        MediaStore.Images.Media.DISPLAY_NAME},
//        selection,
//        new String[]{filePath},
//        null);
//        //是否查询到了
//        if (cursor != null && cursor.moveToFirst()) {
//        //循环取出所有查询到的数据
//        do {
//        //一张图片的基本信息
//        int id = cursor.getInt(cursor.getColumnIndex(MediaStore.Images.Media._ID));//uri的id，用于获取图片
//        String path = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.RELATIVE_PATH));//图片的相对路径
//        String type = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.MIME_TYPE));//图片类型
//        String name = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DISPLAY_NAME));//图片名字
//        System.out.println("id=" + id + ", path=" + path + ", type=" + type + ", name=" + name);
//        //根据图片id获取uri，这里的操作是拼接uri
//        Uri uri = Uri.withAppendedPath(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "" + id);
//        long value = Long.valueOf(name.replace(".jpg", ""));
//        //官方代码：
//        contentUri = ContentUris.withAppendedId(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, id);
////                    if (uri != null) {
////                        //通过流转化成bitmap对象
////                        InputStream inputStream = context.getContentResolver().openInputStream(uri);
////                        Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
////                    }
//        } while (cursor.moveToNext());
//        }
//        if (cursor != null) {
//        cursor.close();
//        }
//        } catch (Exception e) {
//        e.printStackTrace();
//        }
//        return contentUri;
//        }
//
//private void takePhoto2() {
//        Intent captureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
//        // 判断是否有相机
//        if (captureIntent.resolveActivity(mContext.getPackageManager()) != null) {
//        File photoFile = null;
//        Uri photoUri = null;
//
//        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
//        // 适配android 10
//        photoUri = createImageUri();
//        } else {
//        try {
//        photoFile = createImageFile();
//        } catch (IOException e) {
//        e.printStackTrace();
//        }
//
//        if (photoFile != null) {
//        currentPhotoPath = photoFile.getAbsolutePath();
//        System.out.println("path = " + currentPhotoPath);
//        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {//7.0到9.0
//        //适配Android 7.0文件权限，通过FileProvider创建一个content类型的Uri 如：content://
//        photoUri = FileProvider.getUriForFile(mContext,
//        mContext.getPackageName() + ".fileprovider", photoFile);
//        } else {//7.0以下, 如：file://
//        photoUri = Uri.fromFile(photoFile);
//        }
//        }
//        }
//        System.out.println("photoUri = " + photoUri);
//        mCameraUri = photoUri;
//        if (photoUri != null) {
//        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
//        List<ResolveInfo> resInfoList = mContext.getPackageManager()
//        .queryIntentActivities(captureIntent, PackageManager.MATCH_DEFAULT_ONLY);
//        for (ResolveInfo resolveInfo : resInfoList) {
//        String packageName = resolveInfo.activityInfo.packageName;
//        mContext.grantUriPermission(packageName, photoUri,
//        Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION);
//        }
//        }
//
//        captureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);
//        captureIntent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
//        startActivityForResult(captureIntent, TAKE_PHOTO);
//        }
//        }
//        }

//
//}

//
/**
 * 创建图片地址uri,用于保存拍照后的照片 Android 10以后使用这种方法
 *
 * @return 图片的uri
 */
//private Uri createImageUri() {
//        //设置保存参数到ContentValues中
//        ContentValues contentValues = new ContentValues();
//        //设置文件名
//        contentValues.put(MediaStore.Images.Media.DISPLAY_NAME, "gsa_food_" + System.currentTimeMillis());
//        //兼容Android Q和以下版本
//        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
//        //android Q中不再使用DATA字段，而用RELATIVE_PATH代替
//        //TODO RELATIVE_PATH是相对路径不是绝对路径;照片存储的地方为：内部存储/Pictures
//        contentValues.put(MediaStore.Images.Media.RELATIVE_PATH, "Pictures");
//        }
//        //设置文件类型
//        contentValues.put(MediaStore.Images.Media.MIME_TYPE, "image/JPEG");
//        //执行insert操作，向系统文件夹中添加文件
//        //EXTERNAL_CONTENT_URI代表外部存储器，该值不变
//        return mContext.getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues);
//        }

