From: Tobias Brunner Date: Tue, 20 Nov 2012 14:47:54 +0000 (+0100) Subject: android: Hide previous dialogs when handling a new connection attempt X-Git-Tag: 5.0.2dr4~173 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8c0b32d892e45b5317d3ebd90ee3e7e39824ca9d;p=thirdparty%2Fstrongswan.git android: Hide previous dialogs when handling a new connection attempt --- 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 2fd00efc94..50f83b2b4c 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()); @@ -297,6 +304,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.