This is an automated email from the ASF dual-hosted git repository. normanbreau pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/cordova-plugin-media-capture.git
The following commit(s) were added to refs/heads/master by this push: new c7a3038 fix(android): remove broad media permissions (#295) c7a3038 is described below commit c7a3038634fc3c48ac550032f3eedb6ffcbe2ade Author: Bastien MARSAUD <p...@bastien-marsaud.fr> AuthorDate: Wed Dec 18 18:29:00 2024 +0100 fix(android): remove broad media permissions (#295) * feat(android): remove broad camera permissions * chore(android): prefer List over ArrayList when possible --- plugin.xml | 3 --- src/android/Capture.java | 28 +++++++++++----------------- 2 files changed, 11 insertions(+), 20 deletions(-) diff --git a/plugin.xml b/plugin.xml index 7e21f29..b3c6715 100644 --- a/plugin.xml +++ b/plugin.xml @@ -78,9 +78,6 @@ xmlns:android="http://schemas.android.com/apk/res/android" <config-file target="AndroidManifest.xml" parent="/*"> <uses-permission android:name="android.permission.RECORD_AUDIO" /> - <uses-permission android:name="android.permission.READ_MEDIA_AUDIO" /> - <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" /> - <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="32" /> </config-file> diff --git a/src/android/Capture.java b/src/android/Capture.java index 43bcc57..f321248 100644 --- a/src/android/Capture.java +++ b/src/android/Capture.java @@ -25,6 +25,7 @@ import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.apache.cordova.CallbackContext; import org.apache.cordova.CordovaPlugin; @@ -234,9 +235,9 @@ public class Capture extends CordovaPlugin { return obj; } - private boolean isMissingPermissions(Request req, ArrayList<String> permissions) { - ArrayList<String> missingPermissions = new ArrayList<>(); - for (String permission: permissions) { + private boolean isMissingPermissions(Request req, List<String> permissions) { + List<String> missingPermissions = new ArrayList<>(); + for (String permission : permissions) { if (!PermissionHelper.hasPermission(this, permission)) { missingPermissions.add(permission); } @@ -250,22 +251,15 @@ public class Capture extends CordovaPlugin { return isMissingPermissions; } - private boolean isMissingPermissions(Request req, String mediaPermission) { - ArrayList<String> permissions = new ArrayList<>(Arrays.asList(storagePermissions)); - if (mediaPermission != null && android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { - permissions.add(mediaPermission); - } - return isMissingPermissions(req, permissions); + private boolean isMissingPermissions(Request req) { + return isMissingPermissions(req, Arrays.asList(storagePermissions)); } - private boolean isMissingCameraPermissions(Request req, String mediaPermission) { - ArrayList<String> cameraPermissions = new ArrayList<>(Arrays.asList(storagePermissions)); + private boolean isMissingCameraPermissions(Request req) { + List<String> cameraPermissions = new ArrayList<>(Arrays.asList(storagePermissions)); if (cameraPermissionInManifest) { cameraPermissions.add(Manifest.permission.CAMERA); } - if (mediaPermission != null && android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { - cameraPermissions.add(mediaPermission); - } return isMissingPermissions(req, cameraPermissions); } @@ -273,7 +267,7 @@ public class Capture extends CordovaPlugin { * Sets up an intent to capture audio. Result handled by onActivityResult() */ private void captureAudio(Request req) { - if (isMissingPermissions(req, Manifest.permission.READ_MEDIA_AUDIO)) return; + if (isMissingPermissions(req)) return; try { Intent intent = new Intent(android.provider.MediaStore.Audio.Media.RECORD_SOUND_ACTION); @@ -287,7 +281,7 @@ public class Capture extends CordovaPlugin { * Sets up an intent to capture images. Result handled by onActivityResult() */ private void captureImage(Request req) { - if (isMissingCameraPermissions(req, Manifest.permission.READ_MEDIA_IMAGES)) return; + if (isMissingCameraPermissions(req)) return; // Save the number of images currently on disk for later this.numPics = queryImgDB(whichContentStore()).getCount(); @@ -309,7 +303,7 @@ public class Capture extends CordovaPlugin { * Sets up an intent to capture video. Result handled by onActivityResult() */ private void captureVideo(Request req) { - if (isMissingCameraPermissions(req, Manifest.permission.READ_MEDIA_VIDEO)) return; + if (isMissingCameraPermissions(req)) return; Intent intent = new Intent(android.provider.MediaStore.ACTION_VIDEO_CAPTURE); --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cordova.apache.org For additional commands, e-mail: commits-h...@cordova.apache.org