diff --git a/android/src/main/java/com/ReactNativeBlobUtil/ReactNativeBlobUtilReq.java b/android/src/main/java/com/ReactNativeBlobUtil/ReactNativeBlobUtilReq.java index 38abc6e38..df2e5437e 100644 --- a/android/src/main/java/com/ReactNativeBlobUtil/ReactNativeBlobUtilReq.java +++ b/android/src/main/java/com/ReactNativeBlobUtil/ReactNativeBlobUtilReq.java @@ -240,8 +240,8 @@ public void run() { Context appCtx = ReactNativeBlobUtilImpl.RCTContext.getApplicationContext(); String t123 = String.valueOf(options.addAndroidDownloads.hasKey("storeLocal")); String t1234 = String.valueOf(options.addAndroidDownloads.getBoolean("storeLocal")); - RNLog.w(ReactNativeBlobUtilImpl.RCTContext, t123); - RNLog.w(ReactNativeBlobUtilImpl.RCTContext, t1234); + // RNLog.w(ReactNativeBlobUtilImpl.RCTContext, t123); + // RNLog.w(ReactNativeBlobUtilImpl.RCTContext, t1234); // use download manager instead of default HTTP implementation if (options.addAndroidDownloads != null && options.addAndroidDownloads.hasKey("useDownloadManager")) { @@ -279,7 +279,7 @@ public void run() { if (options.addAndroidDownloads.hasKey("storeLocal") && options.addAndroidDownloads.getBoolean("storeLocal")) { - RNLog.w(ReactNativeBlobUtilImpl.RCTContext, "a"); + // RNLog.w(ReactNativeBlobUtilImpl.RCTContext, "a"); String path = (String) ReactNativeBlobUtilFS.getSystemfolders(ReactNativeBlobUtilImpl.RCTContext).get("DownloadDir"); path = path + UUID.randomUUID().toString(); diff --git a/android/src/main/java/com/ReactNativeBlobUtil/Utils/PathResolver.java b/android/src/main/java/com/ReactNativeBlobUtil/Utils/PathResolver.java index 511189913..83d3ed9be 100644 --- a/android/src/main/java/com/ReactNativeBlobUtil/Utils/PathResolver.java +++ b/android/src/main/java/com/ReactNativeBlobUtil/Utils/PathResolver.java @@ -9,6 +9,7 @@ import android.provider.MediaStore; import android.content.ContentUris; import android.content.ContentResolver; +import android.os.Environment; import com.ReactNativeBlobUtil.ReactNativeBlobUtilUtils; @@ -128,6 +129,19 @@ else if ("content".equalsIgnoreCase(uri.getScheme())) { if (isGooglePhotosUri(uri)) return uri.getLastPathSegment(); + if (isExternalStorageDocument(uri)) { + final String[] split = uri.getPath().split(":"); + final String type = split[0]; + + if ("/tree/primary".equalsIgnoreCase(type)) { + File dir = Environment.getExternalStorageDirectory(); + if (dir != null) return dir + "/" + split[1]; + return ""; + } + + // TODO handle non-primary volumes + } + return getDataColumn(context, uri, null, null); } // File