summaryrefslogtreecommitdiff
path: root/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/ConfigureProviderFragment.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/ConfigureProviderFragment.java')
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/ConfigureProviderFragment.java23
1 files changed, 10 insertions, 13 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 078b2e41..621cb41a 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
@@ -111,14 +111,6 @@ public class ConfigureProviderFragment extends BaseSetupFragment implements Prop
}
@Override
- public void onResume() {
- super.onResume();
- if (ProviderSetupObservable.getProgress() > 0) {
- handleResult(ProviderSetupObservable.getResultCode(), ProviderSetupObservable.getResultData());
- }
- }
-
- @Override
public void onDestroyView() {
setupActivityCallback.removeCancelCallback(this);
ProviderSetupObservable.getInstance().deleteObserver(this);
@@ -140,8 +132,12 @@ public class ConfigureProviderFragment extends BaseSetupFragment implements Prop
binding.progressSpinner.update(ProviderSetupObservable.getProgress());
setupActivityCallback.setNavigationButtonHidden(true);
setupActivityCallback.setCancelButtonHidden(false);
- ProviderSetupObservable.startSetup();
- ProviderAPICommand.execute(getContext(), SET_UP_PROVIDER, setupActivityCallback.getSelectedProvider());
+ if (ProviderSetupObservable.isSetupRunning()) {
+ handleResult(ProviderSetupObservable.getResultCode(), ProviderSetupObservable.getResultData(), true);
+ } else {
+ ProviderSetupObservable.startSetup();
+ ProviderAPICommand.execute(getContext(), SET_UP_PROVIDER, setupActivityCallback.getSelectedProvider());
+ }
}
protected void showConnectionDetails() {
@@ -211,10 +207,10 @@ public class ConfigureProviderFragment extends BaseSetupFragment implements Prop
if (resultData == null) {
resultData = Bundle.EMPTY;
}
- handleResult(resultCode, resultData);
+ handleResult(resultCode, resultData, false);
}
- private void handleResult(int resultCode, Bundle resultData) {
+ private void handleResult(int resultCode, Bundle resultData, boolean resumeSetup) {
Provider provider = resultData.getParcelable(PROVIDER_KEY);
if (ignoreProviderAPIUpdates ||
provider == null ||
@@ -225,6 +221,7 @@ public class ConfigureProviderFragment extends BaseSetupFragment implements Prop
switch (resultCode) {
case PROVIDER_OK:
+ setupActivityCallback.onProviderSelected(provider);
if (provider.allowsAnonymous()) {
ProviderAPICommand.execute(this.getContext(), DOWNLOAD_VPN_CERTIFICATE, provider);
} else {
@@ -241,7 +238,7 @@ public class ConfigureProviderFragment extends BaseSetupFragment implements Prop
// callback disappeared in the meanwhile
}
}
- }, 750);
+ }, resumeSetup ? 0 : 750);
break;
case PROVIDER_NOK:
case INCORRECTLY_DOWNLOADED_VPN_CERTIFICATE: