From 13533a9a4a977d2c06503ae714759a669ea093b9 Mon Sep 17 00:00:00 2001 From: Eric Forkosh Date: Thu, 18 Apr 2019 12:10:56 -0400 Subject: [PATCH] existsRes function --- FS.common.js | 8 +++++++ .../src/main/java/com/rnfs/RNFSManager.java | 21 +++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/FS.common.js b/FS.common.js index fc9ab35e..6470dacb 100755 --- a/FS.common.js +++ b/FS.common.js @@ -216,6 +216,14 @@ var RNFS = { return RNFSManager.exists(normalizeFilePath(filepath)); }, + // Android-only + existsRes(filename: string) { + if (!RNFSManager.existsRes) { + throw new Error('existsRes is not available on this platform'); + } + return RNFSManager.existsRes(filename); + }, + stopDownload(jobId: number): void { RNFSManager.stopDownload(jobId); }, diff --git a/android/src/main/java/com/rnfs/RNFSManager.java b/android/src/main/java/com/rnfs/RNFSManager.java index 03fcedfd..9c7b9219 100755 --- a/android/src/main/java/com/rnfs/RNFSManager.java +++ b/android/src/main/java/com/rnfs/RNFSManager.java @@ -874,4 +874,25 @@ public Map getConstants() { return constants; } + + + @ReactMethod + public void existsRes(String filename, Promise promise) { + try { + int res = getResIdentifier(filename); + if (res > 0) { + promise.resolve(true); + } else { + promise.resolve(false); + } + } catch (Exception ex) { + ex.printStackTrace(); + reject(promise, filename, ex); + } + } + + private int getResIdentifier(String filename) { + return getReactApplicationContext().getResources().getIdentifier(filename, "raw", getReactApplicationContext().getPackageName()); + } + }