From 15f3d5927d5f607f3f6e67461ae0ebc5814573a4 Mon Sep 17 00:00:00 2001 From: pk910 Date: Fri, 5 Feb 2016 19:31:25 +0100 Subject: [PATCH] fixed app for non nfc devices & fixed navigation after app pause & resume (it seems reference to currently added fragment is invalid after resume) --- .../java/de/dhbwloe/campusapp/NavigationManager.java | 12 ++++++++++-- .../dhbwloe/campusapp/nfcreader/NfcCardListener.java | 2 ++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/de/dhbwloe/campusapp/NavigationManager.java b/app/src/main/java/de/dhbwloe/campusapp/NavigationManager.java index 1330940..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) diff --git a/app/src/main/java/de/dhbwloe/campusapp/nfcreader/NfcCardListener.java b/app/src/main/java/de/dhbwloe/campusapp/nfcreader/NfcCardListener.java index d20e7d7..e25544f 100644 --- a/app/src/main/java/de/dhbwloe/campusapp/nfcreader/NfcCardListener.java +++ b/app/src/main/java/de/dhbwloe/campusapp/nfcreader/NfcCardListener.java @@ -65,6 +65,8 @@ public class NfcCardListener { } private void updateNfcState() { + if(oAdapter == null) + return; boolean isEnabled = oAdapter.isEnabled(); if(bNfcAdapterState != isEnabled) { bNfcAdapterState = isEnabled; -- 2.20.1