From ccc6316bdcfed2c2ef6331dcd96ec71dca95ef26 Mon Sep 17 00:00:00 2001 From: ukarpenkov Date: Thu, 28 May 2026 00:47:41 +0300 Subject: [PATCH 1/3] fix(android): replace GuardedResultAsyncTask with AsyncTask for RN 0.85+ MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit GuardedResultAsyncTask was removed from React Native in the New Architecture (0.76+). Replace it with standard android.os.AsyncTask to restore Android build compatibility with RN 0.85+. Changes: - Replace GuardedResultAsyncTask with AsyncTask - Remove super(reactContext.getExceptionHandler()) call - Rename doInBackgroundGuarded() → doInBackground() - Rename onPostExecuteGuarded() → onPostExecute() --- .../RNDocumentPickerModule.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/android/src/main/java/com/reactnativedocumentpicker/RNDocumentPickerModule.java b/android/src/main/java/com/reactnativedocumentpicker/RNDocumentPickerModule.java index 5001525e..244eaf46 100644 --- a/android/src/main/java/com/reactnativedocumentpicker/RNDocumentPickerModule.java +++ b/android/src/main/java/com/reactnativedocumentpicker/RNDocumentPickerModule.java @@ -18,7 +18,7 @@ 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 android.os.AsyncTask; import com.facebook.react.bridge.Promise; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContext; @@ -229,14 +229,13 @@ public void onShowActivityResult(int resultCode, Intent data, Promise promise) { } } - private static class ProcessDataTask extends GuardedResultAsyncTask { + private static class ProcessDataTask extends AsyncTask { private final WeakReference weakContext; private final List uris; private final String copyTo; private final Promise promise; protected ProcessDataTask(ReactContext reactContext, List uris, String copyTo, Promise promise) { - super(reactContext.getExceptionHandler()); this.weakContext = new WeakReference<>(reactContext.getApplicationContext()); this.uris = uris; this.copyTo = copyTo; @@ -244,7 +243,7 @@ protected ProcessDataTask(ReactContext reactContext, List uris, String copy } @Override - protected ReadableArray doInBackgroundGuarded() { + protected ReadableArray doInBackground(Void... voids) { WritableArray results = Arguments.createArray(); for (Uri uri : uris) { results.pushMap(getMetadata(uri)); @@ -253,7 +252,7 @@ protected ReadableArray doInBackgroundGuarded() { } @Override - protected void onPostExecuteGuarded(ReadableArray readableArray) { + protected void onPostExecute(ReadableArray readableArray) { promise.resolve(readableArray); } From e16f5b05a085259a9935a12b448d41391b1cdfba Mon Sep 17 00:00:00 2001 From: ukarpenkov Date: Fri, 29 May 2026 20:56:36 +0300 Subject: [PATCH 2/3] invariant --- src/invariant.d.ts | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 src/invariant.d.ts diff --git a/src/invariant.d.ts b/src/invariant.d.ts new file mode 100644 index 00000000..a71ad5c8 --- /dev/null +++ b/src/invariant.d.ts @@ -0,0 +1,7 @@ +declare module 'invariant' { + export default function invariant( + condition: unknown, + format?: string, + ...args: unknown[] + ): asserts condition; +} From 180ac8c788cc6b81ae58a582050918d8dcfb925a Mon Sep 17 00:00:00 2001 From: ukarpenkov Date: Fri, 5 Jun 2026 10:58:05 +0300 Subject: [PATCH 3/3] ts config --- tsconfig.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tsconfig.json b/tsconfig.json index a76a24bd..9a172955 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -7,12 +7,12 @@ "allowUnreachableCode": false, "allowUnusedLabels": false, "esModuleInterop": true, - "importsNotUsedAsValues": "error", + "verbatimModuleSyntax": true, "forceConsistentCasingInFileNames": true, "jsx": "react", "lib": ["esnext"], "module": "esnext", - "moduleResolution": "node", + "moduleResolution": "bundler", "noFallthroughCasesInSwitch": true, "noImplicitReturns": true, "noImplicitUseStrict": false,