parent
ddc188700c
commit
631ef65502
@ -1,71 +1,72 @@
|
||||
package eu.kanade.mangafeed.ui.reader.viewer.base;
|
||||
|
||||
import android.view.MotionEvent;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import eu.kanade.mangafeed.R;
|
||||
import eu.kanade.mangafeed.data.source.model.Page;
|
||||
import eu.kanade.mangafeed.ui.base.fragment.BaseFragment;
|
||||
import eu.kanade.mangafeed.ui.reader.ReaderActivity;
|
||||
import eu.kanade.mangafeed.ui.reader.ReaderPresenter;
|
||||
import eu.kanade.mangafeed.util.ToastUtil;
|
||||
|
||||
public abstract class BaseReader {
|
||||
public abstract class BaseReader extends BaseFragment {
|
||||
|
||||
protected ReaderActivity activity;
|
||||
protected ReaderPresenter presenter;
|
||||
protected ViewGroup container;
|
||||
protected int currentPosition;
|
||||
protected int currentPage;
|
||||
protected List<Page> pages;
|
||||
|
||||
public BaseReader(ReaderActivity activity) {
|
||||
this.activity = activity;
|
||||
this.container = activity.getContainer();
|
||||
this.presenter = activity.getPresenter();
|
||||
public void updatePageNumber() {
|
||||
getReaderActivity().onPageChanged(getCurrentPage(), getTotalPages());
|
||||
}
|
||||
|
||||
public void updatePageNumber() {
|
||||
activity.onPageChanged(getCurrentPosition(), getTotalPages());
|
||||
public int getCurrentPage() {
|
||||
return currentPage;
|
||||
}
|
||||
|
||||
// Returns the page index given a position in the viewer. Useful por a right to left viewer,
|
||||
// where the current page is the inverse of the position
|
||||
public int getCurrentPageIndex(int viewerPosition) {
|
||||
return viewerPosition;
|
||||
public int getPageForPosition(int position) {
|
||||
return position;
|
||||
}
|
||||
|
||||
public int getCurrentPosition() {
|
||||
return getCurrentPageIndex(currentPosition);
|
||||
public int getPositionForPage(int page) {
|
||||
return page;
|
||||
}
|
||||
|
||||
public void requestNextChapter() {
|
||||
ReaderPresenter presenter = getReaderActivity().getPresenter();
|
||||
if (presenter.hasNextChapter()) {
|
||||
presenter.setCurrentPage(getCurrentPosition());
|
||||
presenter.setCurrentPage(getCurrentPage());
|
||||
presenter.loadNextChapter();
|
||||
} else {
|
||||
ToastUtil.showShort(activity, R.string.no_next_chapter);
|
||||
ToastUtil.showShort(getActivity(), R.string.no_next_chapter);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void requestPreviousChapter() {
|
||||
ReaderPresenter presenter = getReaderActivity().getPresenter();
|
||||
if (presenter.hasPreviousChapter()) {
|
||||
presenter.setCurrentPage(getCurrentPosition());
|
||||
presenter.setCurrentPage(getCurrentPage());
|
||||
presenter.loadPreviousChapter();
|
||||
} else {
|
||||
ToastUtil.showShort(activity, R.string.no_previous_chapter);
|
||||
ToastUtil.showShort(getActivity(), R.string.no_previous_chapter);
|
||||
}
|
||||
}
|
||||
|
||||
public void onPageChanged(int position) {
|
||||
currentPosition = position;
|
||||
currentPage = getPageForPosition(position);
|
||||
updatePageNumber();
|
||||
}
|
||||
|
||||
public void destroy() {}
|
||||
public int getTotalPages() {
|
||||
return pages == null ? 0 : pages.size();
|
||||
}
|
||||
|
||||
public abstract int getTotalPages();
|
||||
public abstract void setSelectedPage(int pageNumber);
|
||||
public abstract void onPageListReady(List<Page> pages);
|
||||
public abstract void onPageListReady(List<Page> pages, int currentPage);
|
||||
public abstract boolean onImageTouch(MotionEvent motionEvent);
|
||||
|
||||
public ReaderActivity getReaderActivity() {
|
||||
return (ReaderActivity) getActivity();
|
||||
}
|
||||
}
|
||||
|
@ -1,26 +1,19 @@
|
||||
package eu.kanade.mangafeed.ui.reader.viewer.horizontal;
|
||||
|
||||
import eu.kanade.mangafeed.R;
|
||||
import eu.kanade.mangafeed.ui.reader.ReaderActivity;
|
||||
import eu.kanade.mangafeed.ui.reader.viewer.common.ViewPagerInterface;
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import eu.kanade.mangafeed.ui.reader.viewer.common.ViewPagerReader;
|
||||
|
||||
public abstract class HorizontalReader extends ViewPagerReader {
|
||||
|
||||
public HorizontalReader(ReaderActivity activity) {
|
||||
super(activity);
|
||||
activity.getLayoutInflater().inflate(R.layout.reader_horizontal, container);
|
||||
|
||||
viewPager = (ViewPagerInterface) container.findViewById(R.id.view_pager);
|
||||
initializeViewPager();
|
||||
((HorizontalViewPager) viewPager).addOnPageChangeListener(new PageChangeListener());
|
||||
}
|
||||
|
||||
private class PageChangeListener extends HorizontalViewPager.SimpleOnPageChangeListener {
|
||||
@Override
|
||||
public void onPageSelected(int position) {
|
||||
onPageChanged(position);
|
||||
}
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedState) {
|
||||
HorizontalViewPager pager = new HorizontalViewPager(getActivity());
|
||||
initializePager(pager);
|
||||
return pager;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,7 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<eu.kanade.mangafeed.ui.reader.viewer.horizontal.HorizontalViewPager
|
||||
android:id="@+id/view_pager"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
</eu.kanade.mangafeed.ui.reader.viewer.horizontal.HorizontalViewPager>
|
@ -1,8 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<eu.kanade.mangafeed.ui.reader.viewer.vertical.VerticalViewPager
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:id="@+id/view_pager"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
</eu.kanade.mangafeed.ui.reader.viewer.vertical.VerticalViewPager>
|
Loading…
Reference in new issue