summaryrefslogtreecommitdiff
path: root/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments
diff options
context:
space:
mode:
authorcyBerta <cyberta@riseup.net>2023-08-03 15:55:24 +0200
committercyBerta <cyberta@riseup.net>2023-08-03 15:58:49 +0200
commit5ceaf7c7a2fc847c52b1764725ceabacd708a15a (patch)
treee47e451db55a371a295aa1fcf713a205fce6f42e /app/src/main/java/se/leap/bitmaskclient/providersetup/fragments
parent10b929f01e1578391af9d9cea7fce15aae1bfaeb (diff)
show error dialogs if provider setup fails
Diffstat (limited to 'app/src/main/java/se/leap/bitmaskclient/providersetup/fragments')
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/ConfigureProviderFragment.java38
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/SetupFragmentFactory.java4
2 files changed, 32 insertions, 10 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/ConfigureProviderFragment.java b/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/ConfigureProviderFragment.java
index 26f62042..8475108f 100644
--- a/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/ConfigureProviderFragment.java
+++ b/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/ConfigureProviderFragment.java
@@ -10,8 +10,14 @@ import static se.leap.bitmaskclient.base.models.Constants.PROVIDER_KEY;
import static se.leap.bitmaskclient.base.utils.ViewHelper.animateContainerVisibility;
import static se.leap.bitmaskclient.providersetup.ProviderAPI.CORRECTLY_DOWNLOADED_VPN_CERTIFICATE;
import static se.leap.bitmaskclient.providersetup.ProviderAPI.DOWNLOAD_VPN_CERTIFICATE;
+import static se.leap.bitmaskclient.providersetup.ProviderAPI.ERRORS;
+import static se.leap.bitmaskclient.providersetup.ProviderAPI.INCORRECTLY_DOWNLOADED_VPN_CERTIFICATE;
+import static se.leap.bitmaskclient.providersetup.ProviderAPI.MISSING_NETWORK_CONNECTION;
+import static se.leap.bitmaskclient.providersetup.ProviderAPI.PROVIDER_NOK;
import static se.leap.bitmaskclient.providersetup.ProviderAPI.PROVIDER_OK;
import static se.leap.bitmaskclient.providersetup.ProviderAPI.SET_UP_PROVIDER;
+import static se.leap.bitmaskclient.providersetup.ProviderAPI.TOR_EXCEPTION;
+import static se.leap.bitmaskclient.providersetup.ProviderAPI.TOR_TIMEOUT;
import static se.leap.bitmaskclient.tor.TorStatusObservable.getBootstrapProgress;
import static se.leap.bitmaskclient.tor.TorStatusObservable.getLastLogs;
import static se.leap.bitmaskclient.tor.TorStatusObservable.getLastSnowflakeLog;
@@ -191,16 +197,28 @@ public class ConfigureProviderFragment extends BaseSetupFragment implements Obse
!setupActivityCallback.getSelectedProvider().getDomain().equals(provider.getDomain())) {
return;
}
- if (resultCode == PROVIDER_OK) {
- setupActivityCallback.onProviderSelected(provider);
- if (provider.allowsAnonymous()) {
- ProviderAPICommand.execute(this.getContext(), DOWNLOAD_VPN_CERTIFICATE, provider);
- } else {
- // TODO: implement error message that this client only supports anonymous usage
- }
- } else if (resultCode == CORRECTLY_DOWNLOADED_VPN_CERTIFICATE) {
- setupActivityCallback.onProviderSelected(provider);
- setupActivityCallback.onConfigurationSuccess();
+
+ switch (resultCode) {
+ case PROVIDER_OK:
+ if (provider.allowsAnonymous()) {
+ ProviderAPICommand.execute(this.getContext(), DOWNLOAD_VPN_CERTIFICATE, provider);
+ } else {
+ // TODO: implement error message that this client only supports anonymous usage
+ }
+ break;
+ case CORRECTLY_DOWNLOADED_VPN_CERTIFICATE:
+ setupActivityCallback.onProviderSelected(provider);
+ setupActivityCallback.onConfigurationSuccess();
+ break;
+ case PROVIDER_NOK:
+ case INCORRECTLY_DOWNLOADED_VPN_CERTIFICATE:
+ case MISSING_NETWORK_CONNECTION:
+ case TOR_EXCEPTION:
+ case TOR_TIMEOUT:
+ String reasonToFail = resultData.getString(ERRORS);
+ setupActivityCallback.onError(reasonToFail);
+ break;
+
}
}
diff --git a/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/SetupFragmentFactory.java b/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/SetupFragmentFactory.java
index fd76a841..eaf3fbfa 100644
--- a/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/SetupFragmentFactory.java
+++ b/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/SetupFragmentFactory.java
@@ -58,4 +58,8 @@ public class SetupFragmentFactory {
public int getItemCount() {
return fragmentTypes.size();
}
+
+ public int getPos(int fragmentType) {
+ return fragmentTypes.indexOf(fragmentType);
+ }
}