diff options
Diffstat (limited to 'app/src/main/java/se/leap/bitmaskclient/eip/EipSetupObserver.java')
-rw-r--r-- | app/src/main/java/se/leap/bitmaskclient/eip/EipSetupObserver.java | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/eip/EipSetupObserver.java b/app/src/main/java/se/leap/bitmaskclient/eip/EipSetupObserver.java index c8b8bea4..ed95b75c 100644 --- a/app/src/main/java/se/leap/bitmaskclient/eip/EipSetupObserver.java +++ b/app/src/main/java/se/leap/bitmaskclient/eip/EipSetupObserver.java @@ -38,6 +38,7 @@ import static se.leap.bitmaskclient.base.models.Constants.PROVIDER_KEY; import static se.leap.bitmaskclient.base.models.Constants.PROVIDER_PROFILE; import static se.leap.bitmaskclient.providersetup.ProviderAPI.CORRECTLY_DOWNLOADED_EIP_SERVICE; import static se.leap.bitmaskclient.providersetup.ProviderAPI.CORRECTLY_DOWNLOADED_GEOIP_JSON; +import static se.leap.bitmaskclient.providersetup.ProviderAPI.CORRECTLY_DOWNLOADED_VPN_CERTIFICATE; import static se.leap.bitmaskclient.providersetup.ProviderAPI.CORRECTLY_UPDATED_INVALID_VPN_CERTIFICATE; import static se.leap.bitmaskclient.providersetup.ProviderAPI.DELAY; import static se.leap.bitmaskclient.providersetup.ProviderAPI.DOWNLOAD_MOTD; @@ -80,6 +81,7 @@ import se.leap.bitmaskclient.base.utils.PreferenceHelper; import se.leap.bitmaskclient.providersetup.ProviderAPI; import se.leap.bitmaskclient.providersetup.ProviderAPICommand; import se.leap.bitmaskclient.providersetup.ProviderSetupObservable; +import se.leap.bitmaskclient.providersetup.activities.SetupActivity; import se.leap.bitmaskclient.tor.TorServiceCommand; import se.leap.bitmaskclient.tor.TorStatusObservable; @@ -96,6 +98,8 @@ public class EipSetupObserver extends BroadcastReceiver implements VpnStatus.Sta private String observedProfileFromVpnStatus; AtomicInteger reconnectTry = new AtomicInteger(); AtomicBoolean changingGateway = new AtomicBoolean(false); + + AtomicBoolean activityForeground = new AtomicBoolean(false); AtomicInteger setupNClosestGateway = new AtomicInteger(); private Vector<EipSetupListener> listeners = new Vector<>(); private static EipSetupObserver instance; @@ -127,6 +131,10 @@ public class EipSetupObserver extends BroadcastReceiver implements VpnStatus.Sta return instance.setupNClosestGateway.get(); } + public static void setActivityForeground(boolean isForeground) { + instance.activityForeground.set(isForeground); + } + public static synchronized void addListener(EipSetupListener listener) { if (instance.listeners.contains(listener)) { return; @@ -235,6 +243,13 @@ public class EipSetupObserver extends BroadcastReceiver implements VpnStatus.Sta break; case PROVIDER_OK: Log.d(TAG, "PROVIDER OK - FETCH SUCCESSFUL"); + //no break, continue with next case + case CORRECTLY_DOWNLOADED_VPN_CERTIFICATE: + if (ProviderSetupObservable.getProgress() > 0 && !activityForeground.get()) { + Intent activityIntent = new Intent(appContext, SetupActivity.class); + activityIntent.setAction(Intent.ACTION_MAIN); + appContext.startActivity(activityIntent); + } break; case TOR_TIMEOUT: case TOR_EXCEPTION: |