This is an automated email from the ASF dual-hosted git repository.

erisu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cordova-plugin-media.git


The following commit(s) were added to refs/heads/master by this push:
     new 0938ec0  feat(android): support Android 13 permission checks and 
requests (#382)
0938ec0 is described below

commit 0938ec090ebce5920275b6564cb340551761ca6e
Author: エリス <[email protected]>
AuthorDate: Tue Aug 22 23:36:11 2023 +0900

    feat(android): support Android 13 permission checks and requests (#382)
---
 src/android/AudioHandler.java | 38 ++++++++++++++------------------------
 1 file changed, 14 insertions(+), 24 deletions(-)

diff --git a/src/android/AudioHandler.java b/src/android/AudioHandler.java
index 4c8a29c..51a0bdf 100644
--- a/src/android/AudioHandler.java
+++ b/src/android/AudioHandler.java
@@ -31,7 +31,6 @@ import android.media.AudioManager.OnAudioFocusChangeListener;
 import android.net.Uri;
 import android.os.Build;
 
-import java.security.Permission;
 import java.util.ArrayList;
 
 import org.apache.cordova.LOG;
@@ -62,8 +61,7 @@ public class AudioHandler extends CordovaPlugin {
     private int origVolumeStream = -1;
     private CallbackContext messageChannel;
 
-
-    public static String [] permissions = { Manifest.permission.RECORD_AUDIO, 
Manifest.permission.WRITE_EXTERNAL_STORAGE};
+    // Permission Request Codes
     public static int RECORD_AUDIO = 0;
     public static int WRITE_EXTERNAL_STORAGE = 1;
 
@@ -85,17 +83,6 @@ public class AudioHandler extends CordovaPlugin {
         return cordova.getActivity().getApplicationContext();
     }
 
-    protected void getWritePermission(int requestCode)
-    {
-        PermissionHelper.requestPermission(this, requestCode, 
permissions[WRITE_EXTERNAL_STORAGE]);
-    }
-
-
-    protected void getMicPermission(int requestCode)
-    {
-        PermissionHelper.requestPermission(this, requestCode, 
permissions[RECORD_AUDIO]);
-    }
-
 
     /**
      * Executes the request and returns PluginResult.
@@ -562,19 +549,22 @@ public class AudioHandler extends CordovaPlugin {
 
     private void promptForRecord()
     {
-        if(PermissionHelper.hasPermission(this, 
permissions[WRITE_EXTERNAL_STORAGE])  &&
-                PermissionHelper.hasPermission(this, 
permissions[RECORD_AUDIO])) {
-            this.startRecordingAudio(recordId, 
FileHelper.stripFileProtocol(fileUriStr));
-        }
-        else if(PermissionHelper.hasPermission(this, 
permissions[RECORD_AUDIO]))
-        {
-            getWritePermission(WRITE_EXTERNAL_STORAGE);
+        // If Android < 33, check for WRITE_EXTERNAL_STORAGE permission
+        if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
+            if (!PermissionHelper.hasPermission(this, 
Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
+                PermissionHelper.requestPermission(this, 
WRITE_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE);
+                return;
+            }
         }
-        else
-        {
-            getMicPermission(RECORD_AUDIO);
+
+        // For all Android versions, check for RECORD_AUDIO permission
+        if (!PermissionHelper.hasPermission(this, 
Manifest.permission.RECORD_AUDIO)) {
+            PermissionHelper.requestPermission(this, RECORD_AUDIO, 
Manifest.permission.RECORD_AUDIO);
+            return;
         }
 
+        // Start recording if all necessary permissions were granted.
+        this.startRecordingAudio(recordId, 
FileHelper.stripFileProtocol(fileUriStr));
     }
 
     /**


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to