From a159776baa7507862afaba931501b797c480ce90 Mon Sep 17 00:00:00 2001 From: Saurabh Agrawal Date: Thu, 1 Jun 2017 16:45:06 +0530 Subject: [PATCH] added additional parameters readTimeout and connectionTimeout with pre-existing defaults for android. --- FS.common.js | 8 +++++++- android/src/main/java/com/rnfs/DownloadParams.java | 2 ++ android/src/main/java/com/rnfs/Downloader.java | 4 ++-- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/FS.common.js b/FS.common.js index 80a4830..354c83c 100644 --- a/FS.common.js +++ b/FS.common.js @@ -60,6 +60,8 @@ type DownloadFileOptions = { headers?: Headers; // An object of headers to be passed to the server background?: boolean; // iOS only progressDivider?: number; + readTimeout?: number; + connectionTimeout?: number; begin?: (res: DownloadBeginCallbackResult) => void; progress?: (res: DownloadProgressCallbackResult) => void; }; @@ -382,6 +384,8 @@ var RNFS = { if (options.headers && typeof options.headers !== 'object') throw new Error('downloadFile: Invalid value for property `headers`'); if (options.background && typeof options.background !== 'boolean') throw new Error('downloadFile: Invalid value for property `background`'); if (options.progressDivider && typeof options.progressDivider !== 'number') throw new Error('downloadFile: Invalid value for property `progressDivider`'); + if (options.readTimeout && typeof options.readTimeout !== 'number') throw new Error('downloadFile: Invalid value for property `readTimeout`'); + if (options.connectionTimeout && typeof options.connectionTimeout !== 'number') throw new Error('downloadFile: Invalid value for property `connectionTimeout`'); var jobId = getJobId(); var subscriptions = []; @@ -400,7 +404,9 @@ var RNFS = { toFile: normalizeFilePath(options.toFile), headers: options.headers || {}, background: !!options.background, - progressDivider: options.progressDivider || 0 + progressDivider: options.progressDivider || 0, + readTimeout: options.readTimeout || 15000, + connectionTimeout: options.connectionTimeout || 5000 }; return { diff --git a/android/src/main/java/com/rnfs/DownloadParams.java b/android/src/main/java/com/rnfs/DownloadParams.java index 4e342b8..1b6ac79 100644 --- a/android/src/main/java/com/rnfs/DownloadParams.java +++ b/android/src/main/java/com/rnfs/DownloadParams.java @@ -23,6 +23,8 @@ public class DownloadParams { public File dest; public ReadableMap headers; public float progressDivider; + public int readTimeout; + public int connectionTimeout; public OnTaskCompleted onTaskCompleted; public OnDownloadBegin onDownloadBegin; public OnDownloadProgress onDownloadProgress; diff --git a/android/src/main/java/com/rnfs/Downloader.java b/android/src/main/java/com/rnfs/Downloader.java index 384ac30..490c7a4 100644 --- a/android/src/main/java/com/rnfs/Downloader.java +++ b/android/src/main/java/com/rnfs/Downloader.java @@ -56,8 +56,8 @@ public class Downloader extends AsyncTask connection.setRequestProperty(key, value); } - connection.setConnectTimeout(5000); - connection.setReadTimeout(15000); + connection.setConnectTimeout(param.connectionTimeout); + connection.setReadTimeout(param.readTimeout); connection.connect(); int statusCode = connection.getResponseCode();