|
@@ -76,6 +76,7 @@ import java.util.ArrayList;
|
76
|
76
|
import java.util.HashMap;
|
77
|
77
|
import java.util.Locale;
|
78
|
78
|
import java.util.Map;
|
|
79
|
+import java.lang.IllegalArgumentException;
|
79
|
80
|
|
80
|
81
|
import javax.annotation.Nullable;
|
81
|
82
|
|
|
@@ -196,36 +197,40 @@ public class RNCWebViewManager extends SimpleViewManager<WebView> {
|
196
|
197
|
public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) {
|
197
|
198
|
RNCWebViewModule module = getModule(reactContext);
|
198
|
199
|
|
199
|
|
- DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
|
200
|
|
-
|
201
|
|
- String fileName = URLUtil.guessFileName(url, contentDisposition, mimetype);
|
202
|
|
- String downloadMessage = "Downloading " + fileName;
|
203
|
|
-
|
204
|
|
- //Attempt to add cookie, if it exists
|
205
|
|
- URL urlObj = null;
|
206
|
200
|
try {
|
207
|
|
- urlObj = new URL(url);
|
208
|
|
- String baseUrl = urlObj.getProtocol() + "://" + urlObj.getHost();
|
209
|
|
- String cookie = CookieManager.getInstance().getCookie(baseUrl);
|
210
|
|
- request.addRequestHeader("Cookie", cookie);
|
211
|
|
- System.out.println("Got cookie for DownloadManager: " + cookie);
|
212
|
|
- } catch (MalformedURLException e) {
|
213
|
|
- System.out.println("Error getting cookie for DownloadManager: " + e.toString());
|
214
|
|
- e.printStackTrace();
|
215
|
|
- }
|
|
201
|
+ DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
|
|
202
|
+
|
|
203
|
+ String fileName = URLUtil.guessFileName(url, contentDisposition, mimetype);
|
|
204
|
+ String downloadMessage = "Downloading " + fileName;
|
|
205
|
+
|
|
206
|
+ //Attempt to add cookie, if it exists
|
|
207
|
+ URL urlObj = null;
|
|
208
|
+ try {
|
|
209
|
+ urlObj = new URL(url);
|
|
210
|
+ String baseUrl = urlObj.getProtocol() + "://" + urlObj.getHost();
|
|
211
|
+ String cookie = CookieManager.getInstance().getCookie(baseUrl);
|
|
212
|
+ request.addRequestHeader("Cookie", cookie);
|
|
213
|
+ System.out.println("Got cookie for DownloadManager: " + cookie);
|
|
214
|
+ } catch (MalformedURLException e) {
|
|
215
|
+ System.out.println("Error getting cookie for DownloadManager: " + e.toString());
|
|
216
|
+ e.printStackTrace();
|
|
217
|
+ }
|
216
|
218
|
|
217
|
|
- //Finish setting up request
|
218
|
|
- request.addRequestHeader("User-Agent", userAgent);
|
219
|
|
- request.setTitle(fileName);
|
220
|
|
- request.setDescription(downloadMessage);
|
221
|
|
- request.allowScanningByMediaScanner();
|
222
|
|
- request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
|
223
|
|
- request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, fileName);
|
|
219
|
+ //Finish setting up request
|
|
220
|
+ request.addRequestHeader("User-Agent", userAgent);
|
|
221
|
+ request.setTitle(fileName);
|
|
222
|
+ request.setDescription(downloadMessage);
|
|
223
|
+ request.allowScanningByMediaScanner();
|
|
224
|
+ request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
|
|
225
|
+ request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, fileName);
|
224
|
226
|
|
225
|
|
- module.setDownloadRequest(request);
|
|
227
|
+ module.setDownloadRequest(request);
|
226
|
228
|
|
227
|
|
- if (module.grantFileDownloaderPermissions()) {
|
228
|
|
- module.downloadFile();
|
|
229
|
+ if (module.grantFileDownloaderPermissions()) {
|
|
230
|
+ module.downloadFile();
|
|
231
|
+ }
|
|
232
|
+ } catch (IllegalArgumentException e) {
|
|
233
|
+ System.out.println("IllegalArgumentException: " + e.toString());
|
229
|
234
|
}
|
230
|
235
|
}
|
231
|
236
|
});
|
|
@@ -396,7 +401,7 @@ public class RNCWebViewManager extends SimpleViewManager<WebView> {
|
396
|
401
|
public void setMessagingEnabled(WebView view, boolean enabled) {
|
397
|
402
|
((RNCWebView) view).setMessagingEnabled(enabled);
|
398
|
403
|
}
|
399
|
|
-
|
|
404
|
+
|
400
|
405
|
@ReactProp(name = "incognito")
|
401
|
406
|
public void setIncognito(WebView view, boolean enabled) {
|
402
|
407
|
// Remove all previous cookies
|
|
@@ -646,7 +651,7 @@ public class RNCWebViewManager extends SimpleViewManager<WebView> {
|
646
|
651
|
public Bitmap getDefaultVideoPoster() {
|
647
|
652
|
return Bitmap.createBitmap(50, 50, Bitmap.Config.ARGB_8888);
|
648
|
653
|
}
|
649
|
|
-
|
|
654
|
+
|
650
|
655
|
@Override
|
651
|
656
|
public void onShowCustomView(View view, CustomViewCallback callback) {
|
652
|
657
|
if (mVideoView != null) {
|