Skip to content

Instantly share code, notes, and snippets.

@maxpowa
Last active October 10, 2025 22:56
Show Gist options
  • Save maxpowa/0b37709c54130909f8d32b39542494c8 to your computer and use it in GitHub Desktop.
Save maxpowa/0b37709c54130909f8d32b39542494c8 to your computer and use it in GitHub Desktop.
diff --git a/node_modules/react-native-document-picker/android/src/main/java/com/reactnativedocumentpicker/RNDocumentPickerModule.java b/node_modules/react-native-document-picker/android/src/main/java/com/reactnativedocumentpicker/RNDocumentPickerModule.java
index 5001525..706b08e 100644
--- a/node_modules/react-native-document-picker/android/src/main/java/com/reactnativedocumentpicker/RNDocumentPickerModule.java
+++ b/node_modules/react-native-document-picker/android/src/main/java/com/reactnativedocumentpicker/RNDocumentPickerModule.java
@@ -8,6 +8,7 @@ import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
+import android.os.AsyncTask;
import android.os.Bundle;
import android.provider.DocumentsContract;
import android.provider.OpenableColumns;
@@ -18,7 +19,7 @@ import androidx.annotation.NonNull;
import com.facebook.react.bridge.ActivityEventListener;
import com.facebook.react.bridge.Arguments;
import com.facebook.react.bridge.BaseActivityEventListener;
-import com.facebook.react.bridge.GuardedResultAsyncTask;
+import com.facebook.react.bridge.JSExceptionHandler;
import com.facebook.react.bridge.Promise;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContext;
@@ -229,14 +230,15 @@ public class RNDocumentPickerModule extends NativeDocumentPickerSpec {
}
}
- private static class ProcessDataTask extends GuardedResultAsyncTask<ReadableArray> {
+ private static class ProcessDataTask extends AsyncTask<ReadableArray, Void, WritableArray> {
+ private final JSExceptionHandler mExceptionHandler;
private final WeakReference<Context> weakContext;
private final List<Uri> uris;
private final String copyTo;
private final Promise promise;
protected ProcessDataTask(ReactContext reactContext, List<Uri> uris, String copyTo, Promise promise) {
- super(reactContext.getExceptionHandler());
+ this.mExceptionHandler = reactContext.getExceptionHandler();
this.weakContext = new WeakReference<>(reactContext.getApplicationContext());
this.uris = uris;
this.copyTo = copyTo;
@@ -244,17 +246,27 @@ public class RNDocumentPickerModule extends NativeDocumentPickerSpec {
}
@Override
- protected ReadableArray doInBackgroundGuarded() {
- WritableArray results = Arguments.createArray();
- for (Uri uri : uris) {
- results.pushMap(getMetadata(uri));
+ protected WritableArray doInBackground(ReadableArray... params) {
+ try {
+ WritableArray results = Arguments.createArray();
+ for (Uri uri : uris) {
+ results.pushMap(getMetadata(uri));
+ }
+ return results;
+ } catch (RuntimeException e) {
+ mExceptionHandler.handleException(e);
+ throw e;
}
- return results;
}
@Override
- protected void onPostExecuteGuarded(ReadableArray readableArray) {
- promise.resolve(readableArray);
+ protected final void onPostExecute(WritableArray result) {
+ try {
+ promise.resolve(result);
+ } catch (RuntimeException e) {
+ mExceptionHandler.handleException(e);
+ throw e;
+ }
}
private WritableMap getMetadata(Uri uri) {
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment