skoumalcz / fragment-back

Tiny library for handling back in fragments.
Apache License 2.0
47 stars 11 forks source link

Null pointer exception #5

Closed chucky86boy closed 7 years ago

chucky86boy commented 7 years ago

W/System.err: java.lang.NullPointerException: Attempt to invoke virtual method 'android.support.v4.app.FragmentManager android.support.v4.app.Fragment.getChildFragmentManager()' on a null object reference W/System.err: at net.skoumal.fragmentback.BackFragmentHelper.getAllActivityFragments(BackFragmentHelper.java:53) W/System.err: at net.skoumal.fragmentback.BackFragmentHelper.fireOnBackPressedEvent(BackFragmentHelper.java:42) W/System.err: at net.skoumal.fragmentback.BackFragmentAppCompatActivity.onBackPressedWithResult(BackFragmentAppCompatActivity.java:36)

gingo commented 7 years ago

Thanks for your report. I cannot replicate it, but tried to fix it blindly. Please try to update to version 0.2.3.

chucky86boy commented 7 years ago

FragmentManager fm = getSupportFragmentManager(); List fragmentList = fm.getFragments(); if (fragmentList == null || fragmentList.size() == 0) return false; Fragment fragment; List removedIndices = new ArrayList<>(); int size = fragmentList.size(); for(int i = 0;i < size;i++) { fragment = fragmentList.get(i); if (fragment == null) { removedIndices.add(i); } } int removedIdx; for (int i = removedIndices.size() -1; i >= 0;i--) { removedIdx = removedIndices.get(i); fragmentList.remove(removedIdx); } boolean result = super.onBackPressedWithResult(); size = removedIndices.size(); for (int i = 0; i < size;i++) { removedIdx = removedIndices.get(i); fragmentList.add(removedIdx, null); } I was doing this in my base fragment onBackPressedWithResult(); which became useless now :) thank you

chucky86boy commented 7 years ago

I tested and I no longer have an issue with version 0.2.3. Thank you

fyi I was working v20 lg phone

gingo commented 7 years ago

Great to hear it works for you!