Almost showing a chapter reader

This commit is contained in:
inorichi
2015-10-21 00:04:04 +02:00
parent 49c69be38e
commit 5142df103b
28 changed files with 580 additions and 119 deletions
@@ -20,12 +20,29 @@ public class ChapterListHolder extends ItemViewHolder<Chapter> {
@ViewId(R.id.chapter_download_image)
ImageView download_icon;
View view;
public ChapterListHolder(View view) {
super(view);
this.view = view;
}
public void onSetValues(Chapter chapter, PositionInfo positionInfo) {
title.setText(chapter.name);
download_icon.setImageResource(R.drawable.ic_file_download_black_48dp);
}
@Override
public void onSetListeners() {
view.setOnClickListener(view -> {
ChapterListener listener = getListener(ChapterListener.class);
if (listener != null) {
listener.onRowClicked(getItem());
}
});
}
public interface ChapterListener {
void onRowClicked(Chapter chapter);
}
}
@@ -0,0 +1,36 @@
package eu.kanade.mangafeed.ui.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;
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);
}
}
@@ -0,0 +1,39 @@
package eu.kanade.mangafeed.ui.adapter;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import java.util.List;
import eu.kanade.mangafeed.ui.fragment.ViewerPageFragment;
public class ViewerPageAdapter extends SmartFragmentStatePagerAdapter {
private List<String> imageUrls;
public ViewerPageAdapter(FragmentManager fragmentManager) {
super(fragmentManager);
}
@Override
public int getCount() {
if (imageUrls != null)
return imageUrls.size();
return 0;
}
@Override
public Fragment getItem(int position) {
return ViewerPageFragment.newInstance(imageUrls.get(position), position);
}
public List<String> getImageUrls() {
return imageUrls;
}
public void setImageUrls(List<String> imageUrls) {
this.imageUrls = imageUrls;
}
}