Reader working. Yay!

This commit is contained in:
inorichi
2015-10-21 02:18:29 +02:00
parent 915847c0ed
commit 74da971b2e
5 changed files with 70 additions and 33 deletions
@@ -5,9 +5,12 @@ import android.content.Intent;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import java.util.List;
import butterknife.Bind;
import butterknife.ButterKnife;
import eu.kanade.mangafeed.R;
import eu.kanade.mangafeed.data.models.Page;
import eu.kanade.mangafeed.presenter.ReaderPresenter;
import eu.kanade.mangafeed.ui.adapter.ReaderPageAdapter;
import nucleus.factory.RequiresPresenter;
@@ -26,10 +29,11 @@ public class ReaderActivity extends BaseActivity<ReaderPresenter> {
@Override
public void onCreate(Bundle savedState) {
super.onCreate(savedState);
setContentView(R.layout.activity_viewer);
setContentView(R.layout.activity_reader);
ButterKnife.bind(this);
createAdapter();
viewPager.setOffscreenPageLimit(3);
}
private void createAdapter() {
@@ -37,4 +41,11 @@ public class ReaderActivity extends BaseActivity<ReaderPresenter> {
viewPager.setAdapter(adapter);
}
public void onPageList(List<Page> pages) {
adapter.setPages(pages);
}
public void onPageDownloaded(Page page) {
adapter.replacePage(page.getPageNumber(), page);
}
}
@@ -5,11 +5,12 @@ import android.support.v4.app.FragmentManager;
import java.util.List;
import eu.kanade.mangafeed.data.models.Page;
import eu.kanade.mangafeed.ui.fragment.ReaderPageFragment;
public class ReaderPageAdapter extends SmartFragmentStatePagerAdapter {
private List<String> imageUrls;
private List<Page> pages;
public ReaderPageAdapter(FragmentManager fragmentManager) {
super(fragmentManager);
@@ -17,23 +18,30 @@ public class ReaderPageAdapter extends SmartFragmentStatePagerAdapter {
@Override
public int getCount() {
if (imageUrls != null)
return imageUrls.size();
if (pages != null)
return pages.size();
return 0;
}
@Override
public Fragment getItem(int position) {
return ReaderPageFragment.newInstance(imageUrls.get(position), position);
return ReaderPageFragment.newInstance(pages.get(position));
}
public List<String> getImageUrls() {
return imageUrls;
public void setPages(List<Page> pages) {
this.pages = pages;
notifyDataSetChanged();
}
public void setImageUrls(List<String> imageUrls) {
this.imageUrls = imageUrls;
public void replacePage(int position, Page page) {
pages.set(position, page);
notifyDataSetChanged();
ReaderPageFragment fragment = (ReaderPageFragment)getRegisteredFragment(position);
if (fragment != null) {
fragment.setPage(page);
}
}
}
@@ -11,6 +11,7 @@ import com.bumptech.glide.Glide;
import com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView;
import eu.kanade.mangafeed.R;
import eu.kanade.mangafeed.data.models.Page;
import eu.kanade.mangafeed.util.PageFileTarget;
public class ReaderPageFragment extends Fragment {
@@ -20,10 +21,10 @@ public class ReaderPageFragment extends Fragment {
private String mUrl;
public static ReaderPageFragment newInstance(String url, int position) {
public static ReaderPageFragment newInstance(Page page) {
ReaderPageFragment newInstance = new ReaderPageFragment();
Bundle arguments = new Bundle();
arguments.putString(URL_ARGUMENT_KEY, url);
arguments.putString(URL_ARGUMENT_KEY, page.getImageUrl());
newInstance.setArguments(arguments);
return newInstance;
}
@@ -40,10 +41,20 @@ public class ReaderPageFragment extends Fragment {
}
}
public void setPage(Page page) {
mUrl = page.getImageUrl();
loadImage();
}
private void loadImage() {
Glide.with(getActivity())
.load(mUrl)
.downloadOnly(new PageFileTarget(mPageImageView));
}
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
mPageImageView = (SubsamplingScaleImageView)inflater.inflate(R.layout.fragment_page, container, false);
mPageImageView.setVisibility(View.INVISIBLE);
mPageImageView.setDoubleTapZoomStyle(SubsamplingScaleImageView.ZOOM_FOCUS_FIXED);
mPageImageView.setPanLimit(SubsamplingScaleImageView.PAN_LIMIT_INSIDE);
mPageImageView.setMinimumScaleType(SubsamplingScaleImageView.SCALE_TYPE_CENTER_INSIDE);
@@ -76,9 +87,6 @@ public class ReaderPageFragment extends Fragment {
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
Glide.with(getActivity())
.load(mUrl)
.downloadOnly(new PageFileTarget(mPageImageView));
loadImage();
}
}