From f89829735d501248e39cfb7d1c43bc88d9cbabd7 Mon Sep 17 00:00:00 2001 From: anthony restaino Date: Wed, 3 May 2017 21:49:32 -0400 Subject: [PATCH] Simplifying shouldOverrideUrlLoading --- .../lightning/view/LightningWebClient.java | 62 ++++++++----------- 1 file changed, 26 insertions(+), 36 deletions(-) diff --git a/app/src/main/java/acr/browser/lightning/view/LightningWebClient.java b/app/src/main/java/acr/browser/lightning/view/LightningWebClient.java index d7d5065..768faac 100644 --- a/app/src/main/java/acr/browser/lightning/view/LightningWebClient.java +++ b/app/src/main/java/acr/browser/lightning/view/LightningWebClient.java @@ -301,45 +301,35 @@ public class LightningWebClient extends WebViewClient { Map headers = mLightningView.getRequestHeaders(); - // If the headers are empty, the user has not expressed the desire - // to use them and therefore we can revert back to the old way of loading - if (headers.isEmpty()) { - if (mLightningView.isIncognito()) { - // If we are in incognito, immediately load, we don't want the url to leave the app - return false; - } - if (url.startsWith(Constants.ABOUT)) { - // If this is an about page, immediately load, we don't need to leave the app - return false; - } + if (mLightningView.isIncognito()) { + // If we are in incognito, immediately load, we don't want the url to leave the app + return continueLoadingUrl(view, url, headers); + } + if (url.startsWith(Constants.ABOUT)) { + // If this is an about page, immediately load, we don't need to leave the app + return continueLoadingUrl(view, url, headers); + } - if (isMailOrIntent(url, view) || mIntentUtils.startActivityForUrl(view, url)) { - // If it was a mailto: link, or an intent, or could be launched elsewhere, do that - return true; - } - } else { - if (mLightningView.isIncognito() && Utils.doesSupportHeaders()) { - // If we are in incognito, immediately load, we don't want the url to leave the app - view.loadUrl(url, headers); - return true; - } - if (url.startsWith(Constants.ABOUT) && Utils.doesSupportHeaders()) { - // If this is an about page, immediately load, we don't need to leave the app - view.loadUrl(url, headers); - return true; - } + if (isMailOrIntent(url, view) || mIntentUtils.startActivityForUrl(view, url)) { + // If it was a mailto: link, or an intent, or could be launched elsewhere, do that + return true; + } - if (isMailOrIntent(url, view) || mIntentUtils.startActivityForUrl(view, url)) { - // If it was a mailto: link, or an intent, or could be launched elsewhere, do that - return true; - } else if (Utils.doesSupportHeaders()) { - // Otherwise, load the headers. - view.loadUrl(url, headers); - return true; - } + // If none of the special conditions was met, continue with loading the url + return continueLoadingUrl(view, url, headers); + } + + private boolean continueLoadingUrl(@NonNull WebView webView, + @NonNull String url, + @NonNull Map headers) { + if (headers.isEmpty()) { + return false; + } else if (Utils.doesSupportHeaders()) { + webView.loadUrl(url, headers); + return true; + } else { + return false; } - // If none of those instances was true, revert back to the old way of loading - return false; } private boolean isMailOrIntent(@NonNull String url, @NonNull WebView view) {