X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fde%2Fdhbwloe%2Fcampusapp%2FNavigationManager.java;h=4a168a2212c829cedeae047bc5f2c505e9ebf528;hb=15f3d5927d5f607f3f6e67461ae0ebc5814573a4;hp=07732f2a589595682e178f1c320f2db32209908f;hpb=bd624f87e88e024b0c680f989cf008941fccc17f;p=DHBWCampusApp.git diff --git a/app/src/main/java/de/dhbwloe/campusapp/NavigationManager.java b/app/src/main/java/de/dhbwloe/campusapp/NavigationManager.java index 07732f2..4a168a2 100644 --- a/app/src/main/java/de/dhbwloe/campusapp/NavigationManager.java +++ b/app/src/main/java/de/dhbwloe/campusapp/NavigationManager.java @@ -12,6 +12,7 @@ import android.widget.PopupWindow; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; +import java.util.List; import de.dhbwloe.campusapp.fragments.PopupFragment; @@ -108,9 +109,16 @@ public class NavigationManager { oParentPage = oCurrentPage; oParentFragment = oCurrentFragment; history = false; - } else if (oCurrentPage != null) { - transaction.replace(iFragmentContainerId, fragment); } else { + // remove fragments + List al = fragmentActivity.getSupportFragmentManager().getFragments(); + if(al != null) { + for (Fragment frag : al) { + if (frag != null && frag.isAdded()) { + transaction.remove(frag); + } + } + } transaction.add(iFragmentContainerId, fragment); } if (history) @@ -167,6 +175,7 @@ public class NavigationManager { public boolean closeDialog() { if(oCurrentPage != null && oCurrentPage.fragmentType == 3) { PopupFragment fragment = (PopupFragment) oCurrentFragment; + boolean wasAdded = false; if(oCurrentFragment.isAdded()) { fragment.destroyView(); @@ -175,13 +184,13 @@ public class NavigationManager { transaction.remove(oCurrentFragment); transaction.commit(); + wasAdded = true; } oCurrentPage = oParentPage; oCurrentFragment = oParentFragment; - - return true; + return wasAdded; } return false; }