diff --git a/README.md b/README.md index 9612d299..3fd573c5 100644 --- a/README.md +++ b/README.md @@ -9,13 +9,13 @@ The plugin conforms to the Cordova plugin specification, it can be installed using the Cordova / Phonegap command line interface. # without desc - phonegap plugin add https://github.com/Telerik-Verified-Plugins/ImagePicker.git - cordova plugin add https://github.com/Telerik-Verified-Plugins/ImagePicker.git + phonegap plugin add https://github.com/VerianMobile/ImagePicker.git + cordova plugin add https://github.com/VerianMobile/ImagePicker.git # with desc - phonegap plugin add https://github.com/Telerik-Verified-Plugins/ImagePicker.git --variable PHOTO_LIBRARY_USAGE_DESCRIPTION="your usage message" + phonegap plugin add https://github.com/VerianMobile/ImagePicker.git --variable PHOTO_LIBRARY_USAGE_DESCRIPTION="your usage message" - cordova plugin add https://github.com/Telerik-Verified-Plugins/ImagePicker.git --variable PHOTO_LIBRARY_USAGE_DESCRIPTION="your usage message" + cordova plugin add https://github.com/VerianMobile/ImagePicker.git --variable PHOTO_LIBRARY_USAGE_DESCRIPTION="your usage message" ## Using the plugin diff --git a/plugin.xml b/plugin.xml index e9d0e62c..6962fb7b 100644 --- a/plugin.xml +++ b/plugin.xml @@ -38,7 +38,7 @@ - + @@ -100,14 +100,14 @@ - - + + @@ -139,8 +139,10 @@ - - + + + @@ -158,10 +160,10 @@ - - - - + + + + @@ -169,8 +171,8 @@ - - - + + + diff --git a/src/android/Library/src/MultiImageChooserActivity.java b/src/android/Library/src/MultiImageChooserActivity.java index ba379e3b..6c9c78b5 100644 --- a/src/android/Library/src/MultiImageChooserActivity.java +++ b/src/android/Library/src/MultiImageChooserActivity.java @@ -62,8 +62,8 @@ import android.os.AsyncTask; import android.os.Bundle; import android.provider.MediaStore; -import android.support.v7.app.ActionBar; -import android.support.v7.app.AppCompatActivity; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.app.ActionBar; import android.util.Base64; import android.util.SparseBooleanArray; import android.view.Display; diff --git a/src/android/com/synconset/ImagePicker/ImagePicker.java b/src/android/com/synconset/ImagePicker/ImagePicker.java index b534736a..c67cc778 100644 --- a/src/android/com/synconset/ImagePicker/ImagePicker.java +++ b/src/android/com/synconset/ImagePicker/ImagePicker.java @@ -20,8 +20,8 @@ import android.content.pm.PackageManager; import android.os.Build; import android.os.Bundle; -import android.support.v4.app.ActivityCompat; -import android.support.v4.content.ContextCompat; +import androidx.core.app.ActivityCompat; +import androidx.core.content.ContextCompat; public class ImagePicker extends CordovaPlugin { @@ -32,6 +32,7 @@ public class ImagePicker extends CordovaPlugin { private static final int PERMISSION_REQUEST_CODE = 100; private CallbackContext callbackContext; + public boolean execute(String action, final JSONArray args, final CallbackContext callbackContext) throws JSONException { this.callbackContext = callbackContext; @@ -104,16 +105,23 @@ public boolean execute(String action, final JSONArray args, final CallbackContex @SuppressLint("InlinedApi") private boolean hasReadPermission() { - return Build.VERSION.SDK_INT < 23 || - PackageManager.PERMISSION_GRANTED == ContextCompat.checkSelfPermission(this.cordova.getActivity(), Manifest.permission.READ_EXTERNAL_STORAGE); + String readImagePermission = Manifest.permission.READ_EXTERNAL_STORAGE; + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + readImagePermission = Manifest.permission.READ_MEDIA_IMAGES; + } + return PackageManager.PERMISSION_GRANTED == ContextCompat.checkSelfPermission(this.cordova.getActivity(), readImagePermission); } @SuppressLint("InlinedApi") private void requestReadPermission() { + String readImagePermission = Manifest.permission.READ_EXTERNAL_STORAGE; + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + readImagePermission = Manifest.permission.READ_MEDIA_IMAGES; + } if (!hasReadPermission()) { ActivityCompat.requestPermissions( this.cordova.getActivity(), - new String[] {Manifest.permission.READ_EXTERNAL_STORAGE}, + new String[] { readImagePermission }, PERMISSION_REQUEST_CODE); } // This method executes async and we seem to have no known way to receive the result diff --git a/src/ios/SOSPicker.m b/src/ios/SOSPicker.m index 0e2e00e7..1a35ac70 100644 --- a/src/ios/SOSPicker.m +++ b/src/ios/SOSPicker.m @@ -101,6 +101,7 @@ - (void)launchGMImagePicker:(bool)allow_video title:(NSString *)title message:(N UIPopoverPresentationController *popPC = picker.popoverPresentationController; popPC.permittedArrowDirections = UIPopoverArrowDirectionAny; popPC.sourceView = picker.view; + popPC.sourceRect = CGRectMake(0, 0, 0, 0); //popPC.sourceRect = nil; }