Change mangas from categories (needs testing)

This commit is contained in:
inorichi
2015-12-29 01:00:05 +01:00
parent 3f1f9ea9f2
commit 1360a90bf9
15 changed files with 245 additions and 69 deletions
@@ -0,0 +1,48 @@
package eu.kanade.mangafeed.ui.base.adapter;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.util.SparseArray;
import android.view.ViewGroup;
import java.util.ArrayList;
import java.util.List;
public abstract class SmartFragmentStatePagerAdapter extends FragmentStatePagerAdapter {
// Sparse array to keep track of registered fragments in memory
private SparseArray<Fragment> registeredFragments = new SparseArray<Fragment>();
public SmartFragmentStatePagerAdapter(FragmentManager fragmentManager) {
super(fragmentManager);
}
// Register the fragment when the item is instantiated
@Override
public Object instantiateItem(ViewGroup container, int position) {
Fragment fragment = (Fragment) super.instantiateItem(container, position);
registeredFragments.put(position, fragment);
return fragment;
}
// Unregister when the item is inactive
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
registeredFragments.remove(position);
super.destroyItem(container, position, object);
}
// Returns the fragment for the position (if instantiated)
public Fragment getRegisteredFragment(int position) {
return registeredFragments.get(position);
}
public List<Fragment> getRegisteredFragments() {
ArrayList<Fragment> fragments = new ArrayList<>();
for (int i = 0; i < registeredFragments.size(); i++) {
fragments.add(registeredFragments.valueAt(i));
}
return fragments;
}
}