summaryrefslogtreecommitdiff
path: root/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiManagerBase.java
diff options
context:
space:
mode:
authorcyBerta <cyberta@riseup.net>2021-11-10 02:25:47 +0100
committercyBerta <cyberta@riseup.net>2021-11-10 02:25:47 +0100
commit1657571812f6585bd2883c97d114f8d9861505c0 (patch)
tree16e6c5119d7bb99d41e7685085fce31b83f5e75a /app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiManagerBase.java
parent599e93addd79f51959009df558accfa66b6bc15d (diff)
add a more specific error if provider api communication is attempted without any working internet connection
Diffstat (limited to 'app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiManagerBase.java')
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiManagerBase.java10
1 files changed, 10 insertions, 0 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiManagerBase.java b/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiManagerBase.java
index dc15e578..8d626245 100644
--- a/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiManagerBase.java
+++ b/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiManagerBase.java
@@ -73,6 +73,7 @@ import static se.leap.bitmaskclient.R.string.error_io_exception_user_message;
import static se.leap.bitmaskclient.R.string.error_json_exception_user_message;
import static se.leap.bitmaskclient.R.string.error_no_such_algorithm_exception_user_message;
import static se.leap.bitmaskclient.R.string.malformed_url;
+import static se.leap.bitmaskclient.R.string.new_provider_uri;
import static se.leap.bitmaskclient.R.string.server_unreachable_message;
import static se.leap.bitmaskclient.R.string.service_is_down_error;
import static se.leap.bitmaskclient.R.string.vpn_certificate_is_invalid;
@@ -118,6 +119,7 @@ import static se.leap.bitmaskclient.providersetup.ProviderAPI.INITIAL_ACTION;
import static se.leap.bitmaskclient.providersetup.ProviderAPI.LOGOUT_FAILED;
import static se.leap.bitmaskclient.providersetup.ProviderAPI.LOG_IN;
import static se.leap.bitmaskclient.providersetup.ProviderAPI.LOG_OUT;
+import static se.leap.bitmaskclient.providersetup.ProviderAPI.MISSING_NETWORK_CONNECTION;
import static se.leap.bitmaskclient.providersetup.ProviderAPI.PARAMETERS;
import static se.leap.bitmaskclient.providersetup.ProviderAPI.PROVIDER_NOK;
import static se.leap.bitmaskclient.providersetup.ProviderAPI.PROVIDER_OK;
@@ -153,6 +155,7 @@ public abstract class ProviderApiManagerBase {
void startTorService() throws InterruptedException, IllegalStateException;
void stopTorService();
int getTorHttpTunnelPort();
+ boolean hasNetworkConnection();
}
private final ProviderApiServiceCallback serviceCallback;
@@ -190,6 +193,13 @@ public abstract class ProviderApiManagerBase {
return;
}
+ if (!serviceCallback.hasNetworkConnection()) {
+ Bundle result = new Bundle();
+ setErrorResult(result, R.string.error_network_connection, null);
+ sendToReceiverOrBroadcast(receiver, MISSING_NETWORK_CONNECTION, result, provider);
+ return;
+ }
+
try {
if (PreferenceHelper.getUseBridges(preferences)) {
startTorProxy();