From ac09261a4cb543ee30b38d1ebdc57046f2d7c406 Mon Sep 17 00:00:00 2001 From: Yan Soares Couto Date: Fri, 6 Jul 2018 04:16:19 -0700 Subject: [PATCH] downloadBundleFromURL with an optional starting Request.Builder Summary: This makes it possible to specify an optional Request.Builder when calling `downloadBundleFromURL` (the old method still works as usual). Reviewed By: davidaurelio Differential Revision: D8691303 fbshipit-source-id: 2fb2aecd3506355c6b3a72457a7bb9acfd03b18d --- .../react/devsupport/BundleDownloader.java | 23 ++++++++++++++----- .../react/devsupport/DevServerHelper.java | 10 ++++++++ 2 files changed, 27 insertions(+), 6 deletions(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/devsupport/BundleDownloader.java b/ReactAndroid/src/main/java/com/facebook/react/devsupport/BundleDownloader.java index e64d02edb..cf35c8a6c 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/devsupport/BundleDownloader.java +++ b/ReactAndroid/src/main/java/com/facebook/react/devsupport/BundleDownloader.java @@ -104,14 +104,25 @@ public class BundleDownloader { } public void downloadBundleFromURL( - final DevBundleDownloadListener callback, - final File outputFile, - final String bundleURL, - final @Nullable BundleInfo bundleInfo, - final BundleDeltaClient.ClientType clientType) { + final DevBundleDownloadListener callback, + final File outputFile, + final String bundleURL, + final @Nullable BundleInfo bundleInfo, + final BundleDeltaClient.ClientType clientType) { + downloadBundleFromURL( + callback, outputFile, bundleURL, bundleInfo, clientType, new Request.Builder()); + } + + public void downloadBundleFromURL( + final DevBundleDownloadListener callback, + final File outputFile, + final String bundleURL, + final @Nullable BundleInfo bundleInfo, + final BundleDeltaClient.ClientType clientType, + Request.Builder requestBuilder) { final Request request = - new Request.Builder() + requestBuilder .url(formatBundleUrl(bundleURL, clientType)) // FIXME: there is a bug that makes MultipartStreamReader to never find the end of the // multipart message. This temporarily disables the multipart mode to work around it, diff --git a/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.java b/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.java index bcf803aa6..b1342c055 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.java +++ b/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.java @@ -382,6 +382,16 @@ public class DevServerHelper { mBundleDownloader.downloadBundleFromURL(callback, outputFile, bundleURL, bundleInfo, getDeltaClientType()); } + public void downloadBundleFromURL( + DevBundleDownloadListener callback, + File outputFile, + String bundleURL, + BundleDownloader.BundleInfo bundleInfo, + Request.Builder requestBuilder) { + mBundleDownloader.downloadBundleFromURL( + callback, outputFile, bundleURL, bundleInfo, getDeltaClientType(), requestBuilder); + } + private BundleDeltaClient.ClientType getDeltaClientType() { if (mSettings.isBundleDeltasCppEnabled()) { return BundleDeltaClient.ClientType.NATIVE;