Skip to content

Commit

Permalink
testing out fix found at 'apache#866'
Browse files Browse the repository at this point in the history
  • Loading branch information
Danny Welsh committed Aug 27, 2024
1 parent f6d95ec commit 8c86b03
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 56 deletions.
5 changes: 1 addition & 4 deletions plugin.xml
Original file line number Diff line number Diff line change
Expand Up @@ -55,10 +55,7 @@
</feature>
</config-file>
<config-file target="AndroidManifest.xml" parent="/*">
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="32" />
<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_MEDIA_VISUAL_USER_SELECTED" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
</config-file>
<config-file target="AndroidManifest.xml" parent="application">
<provider
Expand Down
104 changes: 52 additions & 52 deletions src/android/CameraLauncher.java
Original file line number Diff line number Diff line change
Expand Up @@ -271,11 +271,61 @@ else if ((this.srcType == PHOTOLIBRARY) || (this.srcType == SAVEDPHOTOALBUM)) {
// LOCAL METHODS
//--------------------------------------------------------------------------

private String[] getPermissions(boolean storageOnly, int mediaType) {
ArrayList<String> permissions = new ArrayList<>();

if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
// Android API 33 and higher
// switch (mediaType) {
// case PICTURE:
// permissions.add(Manifest.permission.READ_MEDIA_IMAGES);
// break;
// case VIDEO:
// permissions.add(Manifest.permission.READ_MEDIA_VIDEO);
// break;
// default:
// permissions.add(Manifest.permission.READ_MEDIA_IMAGES);
// permissions.add(Manifest.permission.READ_MEDIA_VIDEO);
// break;
// }
} else {
// Android API 32 or lower
permissions.add(Manifest.permission.READ_EXTERNAL_STORAGE);
permissions.add(Manifest.permission.WRITE_EXTERNAL_STORAGE);
}

if (!storageOnly) {
// Add camera permission when not storage.
permissions.add(Manifest.permission.CAMERA);
}

return permissions.toArray(new String[0]);
}

// private String[] getPermissions(boolean storageOnly, int mediaType) {
// ArrayList<String> permissions = new ArrayList<>();

// if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
// // Android API 33 and higher
// if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
// // Android API 34 and higher (Android 14)
// // How do we check for / add ...
// //permissions.add(Manifest.permission.READ_MEDIA_VISUAL_USER_SELECTED);
// switch (mediaType) {
// case PICTURE:
// permissions.add(Manifest.permission.READ_MEDIA_IMAGES);
// permissions.add(Manifest.permission.READ_MEDIA_VISUAL_USER_SELECTED);
// break;
// case VIDEO:
// permissions.add(Manifest.permission.READ_MEDIA_VIDEO);
// permissions.add(Manifest.permission.READ_MEDIA_VISUAL_USER_SELECTED);
// break;
// default:
// permissions.add(Manifest.permission.READ_MEDIA_IMAGES);
// permissions.add(Manifest.permission.READ_MEDIA_VIDEO);
// permissions.add(Manifest.permission.READ_MEDIA_VISUAL_USER_SELECTED);
// break;
// }
// } else if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
// // Android API 33 (Android 13)
// switch (mediaType) {
// case PICTURE:
// permissions.add(Manifest.permission.READ_MEDIA_IMAGES);
Expand All @@ -302,56 +352,6 @@ else if ((this.srcType == PHOTOLIBRARY) || (this.srcType == SAVEDPHOTOALBUM)) {
// return permissions.toArray(new String[0]);
// }

private String[] getPermissions(boolean storageOnly, int mediaType) {
ArrayList<String> permissions = new ArrayList<>();

if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
// Android API 34 and higher (Android 14)
// How do we check for / add ...
//permissions.add(Manifest.permission.READ_MEDIA_VISUAL_USER_SELECTED);
switch (mediaType) {
case PICTURE:
permissions.add(Manifest.permission.READ_MEDIA_IMAGES);
permissions.add(Manifest.permission.READ_MEDIA_VISUAL_USER_SELECTED);
break;
case VIDEO:
permissions.add(Manifest.permission.READ_MEDIA_VIDEO);
permissions.add(Manifest.permission.READ_MEDIA_VISUAL_USER_SELECTED);
break;
default:
permissions.add(Manifest.permission.READ_MEDIA_IMAGES);
permissions.add(Manifest.permission.READ_MEDIA_VIDEO);
permissions.add(Manifest.permission.READ_MEDIA_VISUAL_USER_SELECTED);
break;
}
} else if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
// Android API 33 (Android 13)
switch (mediaType) {
case PICTURE:
permissions.add(Manifest.permission.READ_MEDIA_IMAGES);
break;
case VIDEO:
permissions.add(Manifest.permission.READ_MEDIA_VIDEO);
break;
default:
permissions.add(Manifest.permission.READ_MEDIA_IMAGES);
permissions.add(Manifest.permission.READ_MEDIA_VIDEO);
break;
}
} else {
// Android API 32 or lower
permissions.add(Manifest.permission.READ_EXTERNAL_STORAGE);
permissions.add(Manifest.permission.WRITE_EXTERNAL_STORAGE);
}

if (!storageOnly) {
// Add camera permission when not storage.
permissions.add(Manifest.permission.CAMERA);
}

return permissions.toArray(new String[0]);
}

private String getTempDirectoryPath() {
File cache = cordova.getActivity().getCacheDir();
// Create the cache directory if it doesn't exist
Expand Down

0 comments on commit 8c86b03

Please sign in to comment.