From a5a20eebbda0bcbd7dcaf5553a189123365d4fc8 Mon Sep 17 00:00:00 2001 From: str4d Date: Tue, 26 May 2015 10:36:02 +0000 Subject: [PATCH] Notify user if proxy is not ready when they try to load a URL --- .../lightning/activity/BrowserActivity.java | 14 ++++++++++++++ .../controller/BrowserController.java | 2 ++ .../browser/lightning/view/LightningView.java | 18 ++++++++++++++++++ app/src/main/res/values/strings.xml | 2 ++ 4 files changed, 36 insertions(+) diff --git a/app/src/main/java/acr/browser/lightning/activity/BrowserActivity.java b/app/src/main/java/acr/browser/lightning/activity/BrowserActivity.java index 13d8262..78f92b9 100644 --- a/app/src/main/java/acr/browser/lightning/activity/BrowserActivity.java +++ b/app/src/main/java/acr/browser/lightning/activity/BrowserActivity.java @@ -650,6 +650,20 @@ public class BrowserActivity extends ThemableActivity implements BrowserControll } + public boolean isProxyReady() { + if (mPreferences.getProxyChoice() == 2) { + if (!mI2PHelper.isI2PAndroidRunning()) { + Utils.showToast(this, getString(R.string.i2p_not_running)); + return false; + } else if (!mI2PHelper.areTunnelsActive()) { + Utils.showToast(this, getString(R.string.i2p_tunnels_not_ready)); + return false; + } + } + + return true; + } + private boolean isTablet() { return (getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_XLARGE; } diff --git a/app/src/main/java/acr/browser/lightning/controller/BrowserController.java b/app/src/main/java/acr/browser/lightning/controller/BrowserController.java index 8fdbd53..c48e805 100644 --- a/app/src/main/java/acr/browser/lightning/controller/BrowserController.java +++ b/app/src/main/java/acr/browser/lightning/controller/BrowserController.java @@ -54,5 +54,7 @@ public interface BrowserController { boolean isIncognito(); + boolean isProxyReady(); + int getMenu(); } diff --git a/app/src/main/java/acr/browser/lightning/view/LightningView.java b/app/src/main/java/acr/browser/lightning/view/LightningView.java index f50b87d..d65fc4c 100644 --- a/app/src/main/java/acr/browser/lightning/view/LightningView.java +++ b/app/src/main/java/acr/browser/lightning/view/LightningView.java @@ -526,6 +526,12 @@ public class LightningView { } public synchronized void reload() { + // Check if configured proxy is available + if (!mBrowserController.isProxyReady()) { + // User has been notified + return; + } + if (mWebView != null) { mWebView.reload(); } @@ -611,6 +617,12 @@ public class LightningView { } public synchronized void loadUrl(String url) { + // Check if configured proxy is available + if (!mBrowserController.isProxyReady()) { + // User has been notified + return; + } + if (mWebView != null) { mWebView.loadUrl(url); } @@ -815,6 +827,12 @@ public class LightningView { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { + // Check if configured proxy is available + if (!mBrowserController.isProxyReady()) { + // User has been notified + return true; + } + if (mBrowserController.isIncognito()) { return super.shouldOverrideUrlLoading(view, url); } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 42b77ff..392068c 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -167,6 +167,8 @@ It looks like you have Orbot installed. Do you want to use Tor? It looks like you have I2P installed. Do you want to use I2P? Please install Orbot in order to proxy with Tor. + I2P is not running. + I2P tunnels are not ready yet. Yes No Clear cookies on exit