From 5d3efa4c93dde0cde474951e5310bb72ebbf4184 Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期三, 07 五月 2025 15:18:26 +0800
Subject: [PATCH] 2025年05月07日15:18:20 1.2.0

---
 app/src/main/java/com/hdl/photovoltaic/widget/popupview/CameraAlbumPopWindow.java |   81 +++++++++++++++++++++++-----------------
 1 files changed, 46 insertions(+), 35 deletions(-)

diff --git a/app/src/main/java/com/hdl/photovoltaic/widget/popupview/CameraAlbumPopWindow.java b/app/src/main/java/com/hdl/photovoltaic/widget/popupview/CameraAlbumPopWindow.java
index 0ad2f74..cfcdf76 100644
--- a/app/src/main/java/com/hdl/photovoltaic/widget/popupview/CameraAlbumPopWindow.java
+++ b/app/src/main/java/com/hdl/photovoltaic/widget/popupview/CameraAlbumPopWindow.java
@@ -34,6 +34,7 @@
 import com.hdl.photovoltaic.other.HdlThreadLogic;
 import com.hdl.photovoltaic.utils.PermissionUtils;
 import com.hdl.photovoltaic.utils.SharedPreUtils;
+import com.hdl.photovoltaic.widget.PermissionExplanationDialog;
 import com.hjq.permissions.OnPermissionCallback;
 import com.hjq.permissions.XXPermissions;
 
@@ -102,10 +103,12 @@
      */
     private void checkPermission_After(final Activity context, final int tag) {
         String permission = Manifest.permission.CAMERA;
+        // 鏈巿鏉� 濡傛灉搴旂敤绋嬪簭娌℃湁鎵�闇�鐨勬潈闄愶紝鍒欐樉绀鸿В閲婅鏄�
+        PermissionExplanationDialog.getInstance().showPortConflictPdDialog(context, context.getString(R.string.camera_storage_instructions), context.getString(R.string.camera_storage_purpose));
         int status = PermissionUtils.getPermissionState(context, permission);
-
         switch (status) {
             case PermissionUtils.STATUS_SUCCESS:
+                PermissionExplanationDialog.getInstance().dismiss();
                 dismiss();
                 if (0 == tag) {
                     take_photo();
@@ -120,6 +123,7 @@
                         .request(new OnPermissionCallback() {
                             @Override
                             public void onGranted(List<String> permissions, boolean all) {
+                                PermissionExplanationDialog.getInstance().dismiss();
                                 dismiss();
                                 SharedPreUtils.putBoolean(permission, true);
                                 if (0 == tag) {
@@ -131,12 +135,14 @@
 
                             @Override
                             public void onDenied(List<String> permissions, boolean never) {
+                                PermissionExplanationDialog.getInstance().dismiss();
                                 dismiss();
                                 SharedPreUtils.putBoolean(permission, true);
                             }
                         });
                 break;
             case PermissionUtils.STATUS_REFUSE_PERMANENT:
+                PermissionExplanationDialog.getInstance().dismiss();
 //                HdlThreadLogic.toast(mContext, R.string.permission_open);
                 HdlDialogLogic.getInstance().showSettingPermissionDialog(mContext);
                 break;
@@ -230,15 +236,15 @@
 //                intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
 //                intent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);
 
-            //鍏煎android7.0 浣跨敤鍏变韩鏂囦欢鐨勫舰寮�
-            ContentValues contentValues = new ContentValues(1);
-            contentValues.put(MediaStore.Images.Media.DISPLAY_NAME, outputImagepath.getName());
-            contentValues.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg");
-            Uri uri = mContext.getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues);
-            intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
-            Uri photoURI = FileProvider.getUriForFile(mContext, "com.hdl.photovoltaic.fileProvider", outputImagepath);
-            intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
-            intent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);
+                //鍏煎android7.0 浣跨敤鍏变韩鏂囦欢鐨勫舰寮�
+                ContentValues contentValues = new ContentValues(1);
+                contentValues.put(MediaStore.Images.Media.DISPLAY_NAME, outputImagepath.getName());
+                contentValues.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg");
+                Uri uri = mContext.getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues);
+                intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
+                Uri photoURI = FileProvider.getUriForFile(mContext, "com.hdl.photovoltaic.fileProvider", outputImagepath);
+                intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
+                intent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);
             }
             // 寮�鍚竴涓甫鏈夎繑鍥炲�肩殑Activity锛岃姹傜爜涓篜HOTO_REQUEST_CAREMA
             ((Activity) mContext).startActivityForResult(intent, TAKE_PHOTO);
@@ -434,34 +440,39 @@
      * 浠庣浉鍐屼腑鑾峰彇鍥剧墖
      */
     private void select_photo() {
-        String permission = Manifest.permission.WRITE_EXTERNAL_STORAGE;
-        int status = PermissionUtils.getPermissionState(mContext, permission);
 
-        switch (status) {
-            case PermissionUtils.STATUS_SUCCESS:
-                openAlbum();
-                break;
-            case PermissionUtils.STATUS_REFUSE:
-            case PermissionUtils.STATUS_DEFAULT:
-                XXPermissions.with(mContext)
-                        .permission(permission)
-                        .request(new OnPermissionCallback() {
-                            @Override
-                            public void onGranted(List<String> permissions, boolean all) {
-                                SharedPreUtils.putBoolean(permission, true);
-                                openAlbum();
-                            }
+        if (Build.VERSION.SDK_INT >= 33) {
+            //榛樿鎴愬姛
+            openAlbum();
+        } else {
+            String permission = Manifest.permission.WRITE_EXTERNAL_STORAGE;
+            int status = PermissionUtils.getPermissionState(mContext, permission);
+            switch (status) {
+                case PermissionUtils.STATUS_SUCCESS:
+                    openAlbum();
+                    break;
+                case PermissionUtils.STATUS_REFUSE:
+                case PermissionUtils.STATUS_DEFAULT:
+                    XXPermissions.with(mContext)
+                            .permission(permission)
+                            .request(new OnPermissionCallback() {
+                                @Override
+                                public void onGranted(List<String> permissions, boolean all) {
+                                    SharedPreUtils.putBoolean(permission, true);
+                                    openAlbum();
+                                }
 
-                            @Override
-                            public void onDenied(List<String> permissions, boolean never) {
-                                SharedPreUtils.putBoolean(permission, true);
-                            }
-                        });
-                break;
-            case PermissionUtils.STATUS_REFUSE_PERMANENT:
+                                @Override
+                                public void onDenied(List<String> permissions, boolean never) {
+                                    SharedPreUtils.putBoolean(permission, true);
+                                }
+                            });
+                    break;
+                case PermissionUtils.STATUS_REFUSE_PERMANENT:
 //                HdlThreadLogic.toast(mContext, R.string.permission_open);
-                HdlDialogLogic.getInstance().showSettingPermissionDialog(mContext);
-                break;
+                    HdlDialogLogic.getInstance().showSettingPermissionDialog(mContext);
+                    break;
+            }
         }
     }
 

--
Gitblit v1.8.0