diff options
-rw-r--r-- | src/frontends/android/src/org/strongswan/android/ui/MainActivity.java | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/frontends/android/src/org/strongswan/android/ui/MainActivity.java b/src/frontends/android/src/org/strongswan/android/ui/MainActivity.java index 2fd00efc9..50f83b2b4 100644 --- a/src/frontends/android/src/org/strongswan/android/ui/MainActivity.java +++ b/src/frontends/android/src/org/strongswan/android/ui/MainActivity.java @@ -32,6 +32,9 @@ import android.app.AlertDialog; import android.app.AlertDialog.Builder; import android.app.Dialog; import android.app.DialogFragment; +import android.app.Fragment; +import android.app.FragmentManager; +import android.app.FragmentTransaction; import android.app.Service; import android.content.ActivityNotFoundException; import android.content.ComponentName; @@ -215,6 +218,10 @@ public class MainActivity extends Activity implements OnVpnProfileSelectedListen profileInfo.putBoolean(PROFILE_REQUIRES_PASSWORD, profile.getVpnType().getRequiresUsernamePassword()); profileInfo.putString(PROFILE_NAME, profile.getName()); + removeFragmentByTag("ConfirmationDialog"); + removeFragmentByTag("LoginDialog"); + removeFragmentByTag("ErrorDialog"); + if (mService != null && mService.getState() == State.CONNECTED) { profileInfo.putBoolean(PROFILE_RECONNECT, mService.getProfile().getId() == profile.getId()); @@ -298,6 +305,21 @@ public class MainActivity extends Activity implements OnVpnProfileSelectedListen } /** + * Dismiss dialog if shown + */ + public void removeFragmentByTag(String tag) + { + FragmentManager fm = getFragmentManager(); + Fragment login = fm.findFragmentByTag(tag); + if (login != null) + { + FragmentTransaction ft = fm.beginTransaction(); + ft.remove(login); + ft.commit(); + } + } + + /** * Class that displays a confirmation dialog if a VPN profile is already connected * and then initiates the selected VPN profile if the user confirms the dialog. */ |