React Native Image Crop Picker+0.36.4.patch
React Native Image Crop Picker+0.36.4.patch
gradle
b/node_modules/react-native-image-crop-picker/android/build.gradle
index 48443cc..e6b9829 100644
--- a/node_modules/react-native-image-crop-picker/android/build.gradle
+++ b/node_modules/react-native-image-crop-picker/android/build.gradle
@@ -1,9 +1,20 @@
+buildscript {
+ repositories {
+ google()
+ mavenCentral()
+ }
+
+ dependencies {
+ classpath 'com.android.tools.build:gradle:4.2.2'
+ }
+}
+
apply plugin: 'com.android.library'
def DEFAULT_COMPILE_SDK_VERSION = 30
-def DEFAULT_BUILD_TOOLS_VERSION = "29.0.3"
+def DEFAULT_BUILD_TOOLS_VERSION = "30.0.2"
def DEFAULT_TARGET_SDK_VERSION = 30
-def DEFAULT_MIN_SDK_VERSION = 16
+def DEFAULT_MIN_SDK_VERSION = 23
android {
compileSdkVersion rootProject.hasProperty('compileSdkVersion') ?
rootProject.compileSdkVersion : DEFAULT_COMPILE_SDK_VERSION
@@ -19,8 +30,21 @@ android {
}
}
+repositories {
+ mavenCentral()
+ mavenLocal()
+ google()
+ maven {
+ // All of React Native (JS, Obj-C sources, Android binaries) is installed
from npm
+ url "$rootDir/../../../node_modules/react-native/android"
+ }
+ maven { url 'https://maven.google.com' }
+ maven { url 'https://www.jitpack.io' }
+}
+
dependencies {
+ //noinspection GradleDynamicVersion
implementation 'com.facebook.react:react-native:+'
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
- implementation 'com.github.yalantis:ucrop:2.2.6-native'
+ implementation 'com.github.yalantis:ucrop:2.2.7'
}
diff --git a/node_modules/react-native-image-crop-picker/android/gradle.properties
b/node_modules/react-native-image-crop-picker/android/gradle.properties
new file mode 100644
index 0000000..5ed3516
--- /dev/null
+++ b/node_modules/react-native-image-crop-picker/android/gradle.properties
@@ -0,0 +1,16 @@
+## For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+#
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+# Default value: -Xmx1024m -XX:MaxPermSize=256m
+# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:
+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
+#
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. More details, visit
+#
http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decouple
d_projects
+# org.gradle.parallel=true
+#Wed Sep 15 11:45:10 EDT 2021
+android.useAndroidX=true
+android.enableJetifier=true
+
diff --git a/node_modules/react-native-image-crop-picker/android/gradle/wrapper/
gradle-wrapper.properties
b/node_modules/react-native-image-crop-picker/android/gradle/wrapper/gradle-
wrapper.properties
index 0f5c93f..d5d191a 100644
--- a/node_modules/react-native-image-crop-picker/android/gradle/wrapper/gradle-
wrapper.properties
+++ b/node_modules/react-native-image-crop-picker/android/gradle/wrapper/gradle-
wrapper.properties
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-6.9-all.zip
diff --git a/node_modules/react-native-image-crop-picker/android/gradlew
b/node_modules/react-native-image-crop-picker/android/gradlew
old mode 100644
new mode 100755
diff --git a/node_modules/react-native-image-crop-picker/android/local.properties
b/node_modules/react-native-image-crop-picker/android/local.properties
index 6e18bcb..78e7d02 100644
--- a/node_modules/react-native-image-crop-picker/android/local.properties
+++ b/node_modules/react-native-image-crop-picker/android/local.properties
@@ -4,5 +4,5 @@
# Location of the SDK. This is only used by Gradle.
# For customization when using a Version Control System, please read the
# header note.
-#Tue Jun 09 15:44:48 CEST 2020
-sdk.dir=/Users/ipusic/Library/Android/sdk
+#Wed Sep 15 14:12:26 EDT 2021
+sdk.dir=/Users/craig/Library/Android/sdk
diff --git
a/node_modules/react-native-image-crop-picker/android/src/main/AndroidManifest.xml
b/node_modules/react-native-image-crop-picker/android/src/main/AndroidManifest.xml
index d9b32ba..e577793 100644
---
a/node_modules/react-native-image-crop-picker/android/src/main/AndroidManifest.xml
+++
b/node_modules/react-native-image-crop-picker/android/src/main/AndroidManifest.xml
@@ -1,4 +1,5 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
package="com.reactnative.ivpusic.imagepicker">
<queries>
@@ -7,9 +8,11 @@
</intent>
</queries>
- <application>
+ <application android:preserveLegacyExternalStorage="true"
+ tools:targetApi="r">
<provider
android:name="androidx.core.content.FileProvider"
@@ -24,6 +27,7 @@
<activity
android:name="com.yalantis.ucrop.UCropActivity"
android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
+
</application>
</manifest>
diff --git a/node_modules/react-native-image-crop-picker/android/src/main/java/
com/reactnative/ivpusic/imagepicker/Compression.java b/node_modules/react-native-
image-crop-picker/android/src/main/java/com/reactnative/ivpusic/imagepicker/
Compression.java
index 5ea266c..bc87d3d 100644
--- a/node_modules/react-native-image-crop-picker/android/src/main/java/com/
reactnative/ivpusic/imagepicker/Compression.java
+++ b/node_modules/react-native-image-crop-picker/android/src/main/java/com/
reactnative/ivpusic/imagepicker/Compression.java
@@ -4,11 +4,12 @@ import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
-import android.media.ExifInterface;
import android.os.Environment;
import android.util.Log;
import android.util.Pair;
+import androidx.exifinterface.media.ExifInterface;
+
import com.facebook.react.bridge.Promise;
import com.facebook.react.bridge.ReadableMap;
-import android.media.ExifInterface;
-import android.os.Build;
+import static androidx.exifinterface.media.ExifInterface.TAG_APERTURE_VALUE;
+import static androidx.exifinterface.media.ExifInterface.TAG_DATETIME;
+import static androidx.exifinterface.media.ExifInterface.TAG_DATETIME_DIGITIZED;
+import static androidx.exifinterface.media.ExifInterface.TAG_EXPOSURE_TIME;
+import static androidx.exifinterface.media.ExifInterface.TAG_FLASH;
+import static androidx.exifinterface.media.ExifInterface.TAG_FOCAL_LENGTH;
+import static androidx.exifinterface.media.ExifInterface.TAG_GPS_ALTITUDE;
+import static androidx.exifinterface.media.ExifInterface.TAG_GPS_ALTITUDE_REF;
+import static androidx.exifinterface.media.ExifInterface.TAG_GPS_DATESTAMP;
+import static androidx.exifinterface.media.ExifInterface.TAG_GPS_LATITUDE;
+import static androidx.exifinterface.media.ExifInterface.TAG_GPS_LATITUDE_REF;
+import static androidx.exifinterface.media.ExifInterface.TAG_GPS_LONGITUDE;
+import static androidx.exifinterface.media.ExifInterface.TAG_GPS_LONGITUDE_REF;
+import static
androidx.exifinterface.media.ExifInterface.TAG_GPS_PROCESSING_METHOD;
+import static androidx.exifinterface.media.ExifInterface.TAG_GPS_TIMESTAMP;
+import static androidx.exifinterface.media.ExifInterface.TAG_IMAGE_LENGTH;
+import static androidx.exifinterface.media.ExifInterface.TAG_IMAGE_WIDTH;
+import static androidx.exifinterface.media.ExifInterface.TAG_ISO_SPEED;
+import static androidx.exifinterface.media.ExifInterface.TAG_MAKE;
+import static androidx.exifinterface.media.ExifInterface.TAG_MODEL;
+import static androidx.exifinterface.media.ExifInterface.TAG_ORIENTATION;
+import static androidx.exifinterface.media.ExifInterface.TAG_SUBSEC_TIME;
+import static
androidx.exifinterface.media.ExifInterface.TAG_SUBSEC_TIME_DIGITIZED;
+import static androidx.exifinterface.media.ExifInterface.TAG_SUBSEC_TIME_ORIGINAL;
+import static androidx.exifinterface.media.ExifInterface.TAG_WHITE_BALANCE;
+
+import androidx.exifinterface.media.ExifInterface;
import com.facebook.react.bridge.WritableMap;
import com.facebook.react.bridge.WritableNativeMap;
@@ -11,8 +36,6 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-import android.media.ExifInterface;
+import androidx.exifinterface.media.ExifInterface;
+import androidx.annotation.NonNull;
import androidx.core.app.ActivityCompat;
import androidx.core.content.FileProvider;
PickerModule(ReactApplicationContext reactContext) {
super(reactContext);
@@ -113,6 +116,7 @@ class PickerModule extends ReactContextBaseJavaModule
implements ActivityEventLi
return tmpDir;
}
+ @NonNull
@Override
public String getName() {
return "ImageCropPicker";
@@ -126,8 +130,11 @@ class PickerModule extends ReactContextBaseJavaModule
implements ActivityEventLi
width = options.hasKey("width") ? options.getInt("width") : 0;
height = options.hasKey("height") ? options.getInt("height") : 0;
cropping = options.hasKey("cropping") && options.getBoolean("cropping");
- cropperActiveWidgetColor = options.hasKey("cropperActiveWidgetColor") ?
options.getString("cropperActiveWidgetColor") : null;
- cropperStatusBarColor = options.hasKey("cropperStatusBarColor") ?
options.getString("cropperStatusBarColor") : null;
+ cropperActiveWidgetColor = options.hasKey("cropperActiveWidgetColor")
+ ? options.getString("cropperActiveWidgetColor")
+ : null;
+ cropperStatusBarColor = options.hasKey("cropperStatusBarColor") ?
options.getString("cropperStatusBarColor")
+ : null;
cropperToolbarColor = options.hasKey("cropperToolbarColor") ?
options.getString("cropperToolbarColor") : null;
cropperToolbarTitle = options.hasKey("cropperToolbarTitle") ?
options.getString("cropperToolbarTitle") : null;
cropperToolbarWidgetColor = options.hasKey("cropperToolbarWidgetColor") ?
options.getString("cropperToolbarWidgetColor") : null;
@@ -137,14 +144,15 @@ class PickerModule extends ReactContextBaseJavaModule
implements ActivityEventLi
showCropFrame = !options.hasKey("showCropFrame") ||
options.getBoolean("showCropFrame");
hideBottomControls = options.hasKey("hideBottomControls") &&
options.getBoolean("hideBottomControls");
enableRotationGesture = options.hasKey("enableRotationGesture") &&
options.getBoolean("enableRotationGesture");
- disableCropperColorSetters = options.hasKey("disableCropperColorSetters")
&& options.getBoolean("disableCropperColorSetters");
+ disableCropperColorSetters = options.hasKey("disableCropperColorSetters")
+ && options.getBoolean("disableCropperColorSetters");
useFrontCamera = options.hasKey("useFrontCamera") &&
options.getBoolean("useFrontCamera");
this.options = options;
}
- permissionsCheck(activity, promise,
Collections.singletonList(Manifest.permission.WRITE_EXTERNAL_STORAGE), new
Callable<Void>() {
- @Override
- public Void call() {
- try {
- File file = new File(module.getTmpDir(activity));
- if (!file.exists()) throw new Exception("File does not
exist");
-
- module.deleteRecursive(file);
- promise.resolve(null);
- } catch (Exception ex) {
- ex.printStackTrace();
- promise.reject(E_ERROR_WHILE_CLEANING_FILES, ex.getMessage());
- }
+ permissionsCheck(activity, promise,
Collections.singletonList(Manifest.permission.WRITE_EXTERNAL_STORAGE),
+ new Callable<Void>() {
+ @Override
+ public Void call() {
+ try {
+ File file = new File(module.getTmpDir(activity));
+ if (!file.exists())
+ throw new Exception("File does not exist");
+
+ module.deleteRecursive(file);
+ promise.resolve(null);
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ promise.reject(E_ERROR_WHILE_CLEANING_FILES,
ex.getMessage());
+ }
- return null;
- }
- });
+ return null;
+ }
+ });
}
@ReactMethod
@@ -197,38 +207,42 @@ class PickerModule extends ReactContextBaseJavaModule
implements ActivityEventLi
return;
}
- permissionsCheck(activity, promise,
Collections.singletonList(Manifest.permission.WRITE_EXTERNAL_STORAGE), new
Callable<Void>() {
- @Override
- public Void call() throws Exception {
- try {
- String path = pathToDelete;
- final String filePrefix = "file://";
- if (path.startsWith(filePrefix)) {
- path = path.substring(filePrefix.length());
- }
+ permissionsCheck(activity, promise,
Collections.singletonList(Manifest.permission.WRITE_EXTERNAL_STORAGE),
+ new Callable<Void>() {
+ @Override
+ public Void call() {
+ try {
+ String path = pathToDelete;
+ final String filePrefix = "file://";
+ if (path.startsWith(filePrefix)) {
+ path = path.substring(filePrefix.length());
+ }
- module.deleteRecursive(file);
- promise.resolve(null);
- } catch (Exception ex) {
- ex.printStackTrace();
- promise.reject(E_ERROR_WHILE_CLEANING_FILES, ex.getMessage());
- }
+ module.deleteRecursive(file);
+ promise.resolve(null);
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ promise.reject(E_ERROR_WHILE_CLEANING_FILES,
ex.getMessage());
+ }
- return null;
- }
- });
+ return null;
+ }
+ });
}
supportedPermissions.remove(Manifest.permission.WRITE_EXTERNAL_STORAGE);
}
if (!missingPermissions.isEmpty()) {
- ((PermissionAwareActivity)
activity).requestPermissions(missingPermissions.toArray(new
String[missingPermissions.size()]), 1, new PermissionListener() {
-
- @Override
- public boolean onRequestPermissionsResult(int requestCode,
String[] permissions, int[] grantResults) {
- if (requestCode == 1) {
-
- for (int permissionIndex = 0; permissionIndex <
permissions.length; permissionIndex++) {
- String permission = permissions[permissionIndex];
- int grantResult = grantResults[permissionIndex];
+ ((PermissionAwareActivity)
activity).requestPermissions(missingPermissions.toArray(new String[0]), 1,
+ new PermissionListener() {
+
+ @Override
+ public boolean onRequestPermissionsResult(int requestCode,
String[] permissions,
+ int[] grantResults) {
+ if (requestCode == 1) {
+
+ for (int permissionIndex = 0; permissionIndex <
permissions.length; permissionIndex++) {
+ String permission =
permissions[permissionIndex];
+ int grantResult =
grantResults[permissionIndex];
+
+ if (grantResult ==
PackageManager.PERMISSION_DENIED) {
+ if
(permission.equals(Manifest.permission.CAMERA)) {
+
promise.reject(E_NO_CAMERA_PERMISSION_KEY, E_NO_CAMERA_PERMISSION_MSG);
+ } else if
(permission.equals(Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
+
promise.reject(E_NO_LIBRARY_PERMISSION_KEY, E_NO_LIBRARY_PERMISSION_MSG);
+ } else {
+ // should not happen, we fallback on
E_NO_LIBRARY_PERMISSION_KEY rejection
+ // for minimal consistency
+
promise.reject(E_NO_LIBRARY_PERMISSION_KEY, "Required permission missing");
+ }
+ return true;
+ }
+ }
- if (grantResult == PackageManager.PERMISSION_DENIED) {
- if (permission.equals(Manifest.permission.CAMERA))
{
- promise.reject(E_NO_CAMERA_PERMISSION_KEY,
E_NO_CAMERA_PERMISSION_MSG);
- } else if
(permission.equals(Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
- promise.reject(E_NO_LIBRARY_PERMISSION_KEY,
E_NO_LIBRARY_PERMISSION_MSG);
- } else {
- // should not happen, we fallback on
E_NO_LIBRARY_PERMISSION_KEY rejection for minimal consistency
- promise.reject(E_NO_LIBRARY_PERMISSION_KEY,
"Required permission missing");
+ try {
+ callback.call();
+ } catch (Exception e) {
+ promise.reject(E_CALLBACK_ERROR, "Unknown
error", e);
}
- return true;
}
- }
- try {
- callback.call();
- } catch (Exception e) {
- promise.reject(E_CALLBACK_ERROR, "Unknown error", e);
+ return true;
}
- }
-
- return true;
- }
- });
+ });
return;
}
@@ -303,13 +320,15 @@ class PickerModule extends ReactContextBaseJavaModule
implements ActivityEventLi
setConfiguration(options);
resultCollector.setup(promise, false);
- permissionsCheck(activity, promise,
Arrays.asList(Manifest.permission.CAMERA,
Manifest.permission.WRITE_EXTERNAL_STORAGE), new Callable<Void>() {
- @Override
- public Void call() {
- initiateCamera(activity);
- return null;
- }
- });
+ permissionsCheck(activity, promise,
+ Arrays.asList(Manifest.permission.CAMERA,
Manifest.permission.WRITE_EXTERNAL_STORAGE),
+ new Callable<Void>() {
+ @Override
+ public Void call() {
+ initiateCamera(activity);
+ return null;
+ }
+ });
}
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, mCameraCaptureURI);
- permissionsCheck(activity, promise,
Collections.singletonList(Manifest.permission.WRITE_EXTERNAL_STORAGE), new
Callable<Void>() {
- @Override
- public Void call() {
- initiatePicker(activity);
- return null;
- }
- });
+ permissionsCheck(activity, promise,
Collections.singletonList(Manifest.permission.WRITE_EXTERNAL_STORAGE),
+ new Callable<Void>() {
+ @Override
+ public Void call() {
+ initiatePicker(activity);
+ return null;
+ }
+ });
}
@ReactMethod
@@ -432,7 +447,7 @@ class PickerModule extends ReactContextBaseJavaModule
implements ActivityEventLi
InputStream inputStream;
try {
- inputStream = new FileInputStream(new File(absoluteFilePath));
+ inputStream = new FileInputStream(absoluteFilePath);
} catch (FileNotFoundException e) {
e.printStackTrace();
return null;
@@ -462,10 +477,10 @@ class PickerModule extends ReactContextBaseJavaModule
implements ActivityEventLi
ContentResolver cr = this.reactContext.getContentResolver();
mimeType = cr.getType(uri);
} else {
- String fileExtension = MimeTypeMap.getFileExtensionFromUrl(uri
- .toString());
+ String fileExtension =
MimeTypeMap.getFileExtensionFromUrl(uri.toString());
if (fileExtension != null) {
- mimeType =
MimeTypeMap.getSingleton().getMimeTypeFromExtension(fileExtension.toLowerCase());
+ mimeType = MimeTypeMap.getSingleton()
+ .getMimeTypeFromExtension(fileExtension.toLowerCase(Locale
.getDefault()));
}
}
return mimeType;
@@ -486,8 +501,8 @@ class PickerModule extends ReactContextBaseJavaModule
implements ActivityEventLi
return getImage(activity, path);
}
return path;
@@ -608,7 +619,8 @@ class PickerModule extends ReactContextBaseJavaModule
implements ActivityEventLi
}
BitmapFactory.Options original = validateImage(path);
if (enableRotationGesture) {
// UCropActivity.ALL = enable both rotation & scaling
- options.setAllowedGestures(
- UCropActivity.ALL, // When 'scale'-tab active
+ options.setAllowedGestures(UCropActivity.ALL, // When 'scale'-tab
active
UCropActivity.ALL, // When 'rotate'-tab active
- UCropActivity.ALL // When 'aspect ratio'-tab active
+ UCropActivity.ALL // When 'aspect ratio'-tab active
);
}
+import androidx.annotation.NonNull;
+
import com.facebook.react.ReactPackage;
-import com.facebook.react.bridge.JavaScriptModule;
import com.facebook.react.bridge.NativeModule;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.uimanager.ViewManager;
@@ -15,18 +16,16 @@ import java.util.List;
*/
public class PickerPackage implements ReactPackage {
- // Deprecated RN 0.47
- public List<Class<? extends JavaScriptModule>> createJSModules() {
- return Collections.emptyList();
- }
-
+ @NonNull
+ @SuppressWarnings("rawtypes")
@Override
- public List<ViewManager> createViewManagers(ReactApplicationContext
reactContext) {
+ public List<ViewManager> createViewManagers(@NonNull ReactApplicationContext
reactContext) {
return Collections.emptyList();
}
+ @NonNull
@Override
- public List<NativeModule> createNativeModules(ReactApplicationContext
reactContext) {
+ public List<NativeModule> createNativeModules(@NonNull ReactApplicationContext
reactContext) {
List<NativeModule> modules = new ArrayList<>();
modules.add(new PickerModule(reactContext));
import android.annotation.TargetApi;
-import android.content.ContentUris;
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
import android.os.Build;
-import android.os.Environment;
-import android.provider.DocumentsContract;
import android.provider.MediaStore;
import java.io.File;
import java.io.FileOutputStream;
-import java.io.IOException;
import java.io.InputStream;
class RealPathUtil {
@TargetApi(Build.VERSION_CODES.KITKAT)
- static String getRealPathFromURI(final Context context, final Uri uri) throws
IOException {
+ static String getRealPathFromURI(final Context context, final Uri uri) {
- try {
- cursor = context.getContentResolver().query(uri, projection,
selection, selectionArgs,
- null);
+ try (Cursor cursor = context.getContentResolver().query(uri, projection,
null, null,
+ null)) {
if (cursor != null && cursor.moveToFirst()) {
// Fall back to writing to file if _data column does not exist
final int index =
cursor.getColumnIndex(MediaStore.MediaColumns.DATA);
@@ -160,38 +90,10 @@ class RealPathUtil {
return fileWritten.getAbsolutePath();
}
}
- } finally {
- if (cursor != null)
- cursor.close();
}
return null;
}
-
- /**
- * @param uri The Uri to check.
- * @return Whether the Uri authority is ExternalStorageProvider.
- */
- private static boolean isExternalStorageDocument(Uri uri) {
- return "com.android.externalstorage.documents".equals(uri.getAuthority());
- }
-
- /**
- * @param uri The Uri to check.
- * @return Whether the Uri authority is DownloadsProvider.
- */
- private static boolean isDownloadsDocument(Uri uri) {
- return
"com.android.providers.downloads.documents".equals(uri.getAuthority());
- }
-
- /**
- * @param uri The Uri to check.
- * @return Whether the Uri authority is MediaProvider.
- */
- private static boolean isMediaDocument(Uri uri) {
- return "com.android.providers.media.documents".equals(uri.getAuthority());
- }
-
/**
* @param uri The Uri to check.
* @return Whether the Uri authority is Google Photos.
@@ -200,23 +102,4 @@ class RealPathUtil {
return
"com.google.android.apps.photos.content".equals(uri.getAuthority());
}
- @TargetApi(Build.VERSION_CODES.KITKAT)
- private static String getPathToNonPrimaryVolume(Context context, String tag) {
- File[] volumes = context.getExternalCacheDirs();
- if (volumes != null) {
- for (File volume : volumes) {
- if (volume != null) {
- String path = volume.getAbsolutePath();
- if (path != null) {
- int index = path.indexOf(tag);
- if (index != -1) {
- return path.substring(0, index) + tag;
- }
- }
- }
- }
- }
- return null;
- }
-
}
diff --git a/node_modules/react-native-image-crop-picker/android/src/main/java/
com/reactnative/ivpusic/imagepicker/ResultCollector.java b/node_modules/react-
native-image-crop-picker/android/src/main/java/com/reactnative/ivpusic/
imagepicker/ResultCollector.java
index 8bd1b60..6866637 100644
--- a/node_modules/react-native-image-crop-picker/android/src/main/java/com/
reactnative/ivpusic/imagepicker/ResultCollector.java
+++ b/node_modules/react-native-image-crop-picker/android/src/main/java/com/
reactnative/ivpusic/imagepicker/ResultCollector.java
@@ -44,19 +44,19 @@ class ResultCollector {
synchronized private boolean isRequestValid() {
if (resultSent) {
Log.w("image-crop-picker", "Skipping result, already sent...");
- return false;
+ return true;
}
if (promise == null) {
Log.w("image-crop-picker", "Trying to notify success but promise is
not set");
- return false;
+ return true;
}
- return true;
+ return false;
}