diff --git a/android/build.gradle b/android/build.gradle index a4ca7a421..7c0392bc4 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -16,16 +16,16 @@ buildscript { google() } dependencies { - classpath 'com.android.tools.build:gradle:3.2.1' + classpath 'com.android.tools.build:gradle:4.0.1' } } android { - compileSdkVersion safeExtGet('compileSdkVersion', 28) + compileSdkVersion safeExtGet('compileSdkVersion', 30) buildToolsVersion safeExtGet('buildToolsVersion', '28.0.3') defaultConfig { minSdkVersion safeExtGet('minSdkVersion', 16) - targetSdkVersion safeExtGet('targetSdkVersion', 28) + targetSdkVersion safeExtGet('targetSdkVersion', 30) versionCode 1 versionName "1.0" } @@ -41,6 +41,8 @@ android { dependencies { implementation "com.facebook.react:react-native:${safeExtGet('reactNativeVersion', '+')}" - //compile 'com.squareup.okhttp3:okhttp:+' - //{RNFetchBlob_PRE_0.28_DEPDENDENCY} + implementation 'com.squareup.okhttp3:okhttp:+' + implementation 'com.squareup.okhttp3:logging-interceptor:+' + implementation 'com.squareup.okhttp3:okhttp-urlconnection:+' +// {RNFetchBlob_PRE_0.28_DEPDENDENCY} } diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index c75df059d..ecceb2dea 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Fri Jun 01 10:33:07 BRT 2018 +#Fri Aug 07 22:58:34 IST 2020 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip diff --git a/android/src/main/java/com/RNFetchBlob/RNFetchBlob.java b/android/src/main/java/com/RNFetchBlob/RNFetchBlob.java index 602d51d33..b53c68453 100644 --- a/android/src/main/java/com/RNFetchBlob/RNFetchBlob.java +++ b/android/src/main/java/com/RNFetchBlob/RNFetchBlob.java @@ -24,8 +24,9 @@ import com.facebook.react.modules.network.ForwardingCookieHandler; import com.facebook.react.modules.network.CookieJarContainer; import com.facebook.react.modules.network.OkHttpClientProvider; -import okhttp3.OkHttpClient; + import okhttp3.JavaNetCookieJar; +import okhttp3.OkHttpClient; import java.io.File; import java.util.Map; @@ -108,7 +109,7 @@ public void run() { @ReactMethod public void actionViewIntent(String path, String mime, final Promise promise) { try { - Uri uriForFile = FileProvider.getUriForFile(getCurrentActivity(), + Uri uriForFile = FileProvider.getUriForFile(this.getReactApplicationContext(), this.getReactApplicationContext().getPackageName() + ".provider", new File(path)); if (Build.VERSION.SDK_INT >= 24) { @@ -336,7 +337,7 @@ public void df(final Callback callback) { fsThreadPool.execute(new Runnable() { @Override public void run() { - RNFetchBlobFS.df(callback); + RNFetchBlobFS.df(callback, getReactApplicationContext()); } }); } @@ -404,7 +405,7 @@ public void addCompleteDownload (ReadableMap config, Promise promise) { @ReactMethod public void getSDCardDir(Promise promise) { - RNFetchBlobFS.getSDCardDir(promise); + RNFetchBlobFS.getSDCardDir(this.getReactApplicationContext(), promise); } @ReactMethod diff --git a/android/src/main/java/com/RNFetchBlob/RNFetchBlobFS.java b/android/src/main/java/com/RNFetchBlob/RNFetchBlobFS.java index a4d70153f..124bb81d7 100644 --- a/android/src/main/java/com/RNFetchBlob/RNFetchBlobFS.java +++ b/android/src/main/java/com/RNFetchBlob/RNFetchBlobFS.java @@ -252,16 +252,16 @@ static Map getSystemfolders(ReactApplicationContext ctx) { res.put("DocumentDir", ctx.getFilesDir().getAbsolutePath()); res.put("CacheDir", ctx.getCacheDir().getAbsolutePath()); - res.put("DCIMDir", Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).getAbsolutePath()); - res.put("PictureDir", Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).getAbsolutePath()); - res.put("MusicDir", Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC).getAbsolutePath()); - res.put("DownloadDir", Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getAbsolutePath()); - res.put("MovieDir", Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES).getAbsolutePath()); - res.put("RingtoneDir", Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_RINGTONES).getAbsolutePath()); + res.put("DCIMDir", ctx.getExternalFilesDir(Environment.DIRECTORY_DCIM).getAbsolutePath()); + res.put("PictureDir", ctx.getExternalFilesDir(Environment.DIRECTORY_PICTURES).getAbsolutePath()); + res.put("MusicDir", ctx.getExternalFilesDir(Environment.DIRECTORY_MUSIC).getAbsolutePath()); + res.put("DownloadDir", ctx.getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS).getAbsolutePath()); + res.put("MovieDir", ctx.getExternalFilesDir(Environment.DIRECTORY_MOVIES).getAbsolutePath()); + res.put("RingtoneDir", ctx.getExternalFilesDir(Environment.DIRECTORY_RINGTONES).getAbsolutePath()); String state; state = Environment.getExternalStorageState(); if (state.equals(Environment.MEDIA_MOUNTED)) { - res.put("SDCardDir", Environment.getExternalStorageDirectory().getAbsolutePath()); + res.put("SDCardDir", ctx.getExternalFilesDir(null).getAbsolutePath()); File externalDirectory = ctx.getExternalFilesDir(null); @@ -276,9 +276,9 @@ static Map getSystemfolders(ReactApplicationContext ctx) { return res; } - static public void getSDCardDir(Promise promise) { + static public void getSDCardDir(ReactApplicationContext ctx, Promise promise) { if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) { - promise.resolve(Environment.getExternalStorageDirectory().getAbsolutePath()); + promise.resolve(ctx.getExternalFilesDir(null).getAbsolutePath()); } else { promise.reject("RNFetchBlob.getSDCardDir", "External storage not mounted"); } @@ -986,13 +986,13 @@ static void createFileASCII(String path, ReadableArray data, Promise promise) { } } - static void df(Callback callback) { - StatFs stat = new StatFs(Environment.getDataDirectory().getPath()); + static void df(Callback callback, ReactApplicationContext ctx) { + StatFs stat = new StatFs(ctx.getFilesDir().getPath()); WritableMap args = Arguments.createMap(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) { args.putString("internal_free", String.valueOf(stat.getFreeBytes())); args.putString("internal_total", String.valueOf(stat.getTotalBytes())); - StatFs statEx = new StatFs(Environment.getExternalStorageDirectory().getPath()); + StatFs statEx = new StatFs(ctx.getExternalFilesDir(null).getPath()); args.putString("external_free", String.valueOf(statEx.getFreeBytes())); args.putString("external_total", String.valueOf(statEx.getTotalBytes())); diff --git a/android/src/main/java/com/RNFetchBlob/Utils/PathResolver.java b/android/src/main/java/com/RNFetchBlob/Utils/PathResolver.java index c83fdbaf6..c20c1943b 100644 --- a/android/src/main/java/com/RNFetchBlob/Utils/PathResolver.java +++ b/android/src/main/java/com/RNFetchBlob/Utils/PathResolver.java @@ -8,7 +8,6 @@ import android.provider.DocumentsContract; import android.provider.MediaStore; import android.content.ContentUris; -import android.os.Environment; import android.content.ContentResolver; import com.RNFetchBlob.RNFetchBlobUtils; import java.io.File; @@ -30,7 +29,7 @@ public static String getRealPathFromURI(final Context context, final Uri uri) { final String type = split[0]; if ("primary".equalsIgnoreCase(type)) { - return Environment.getExternalStorageDirectory() + "/" + split[1]; + return context.getExternalFilesDir(null) + "/" + split[1]; } // TODO handle non-primary volumes