From bc83bd70338b04b3b1c443186c204d790bbe0c07 Mon Sep 17 00:00:00 2001 From: inorichi Date: Tue, 10 Nov 2015 16:35:23 +0100 Subject: [PATCH] Some improvements to viewers --- .../mangafeed/ui/adapter/WebtoonAdapter.java | 17 ++++++++--------- .../ui/fragment/ReaderPageFragment.java | 4 ++-- .../mangafeed/ui/viewer/RightToLeftViewer.java | 2 +- .../mangafeed/ui/viewer/VerticalViewer.java | 4 ++-- .../mangafeed/ui/viewer/WebtoonViewer.java | 3 ++- .../ui/viewer/base/ViewPagerViewer.java | 5 ++--- app/src/main/res/layout/chapter_image.xml | 14 +++++++++++--- 7 files changed, 28 insertions(+), 21 deletions(-) diff --git a/app/src/main/java/eu/kanade/mangafeed/ui/adapter/WebtoonAdapter.java b/app/src/main/java/eu/kanade/mangafeed/ui/adapter/WebtoonAdapter.java index 946fb979c7..8fbb481ea8 100644 --- a/app/src/main/java/eu/kanade/mangafeed/ui/adapter/WebtoonAdapter.java +++ b/app/src/main/java/eu/kanade/mangafeed/ui/adapter/WebtoonAdapter.java @@ -15,6 +15,7 @@ import uk.co.ribot.easyadapter.BaseEasyRecyclerAdapter; import uk.co.ribot.easyadapter.ItemViewHolder; import uk.co.ribot.easyadapter.PositionInfo; import uk.co.ribot.easyadapter.annotations.LayoutId; +import uk.co.ribot.easyadapter.annotations.ViewId; public class WebtoonAdapter extends BaseEasyRecyclerAdapter { @@ -40,20 +41,13 @@ public class WebtoonAdapter extends BaseEasyRecyclerAdapter { notifyDataSetChanged(); } - public void setPage(int position, Page page) { - pages.set(position, page); - notifyItemChanged(position); - } - - @LayoutId(R.layout.chapter_image) static class ImageViewHolder extends ItemViewHolder { - SubsamplingScaleImageView imageView; + @ViewId(R.id.page_image_view) SubsamplingScaleImageView imageView; public ImageViewHolder(View view) { super(view); - imageView = (SubsamplingScaleImageView) getView(); imageView.setDoubleTapZoomStyle(SubsamplingScaleImageView.ZOOM_FOCUS_FIXED); imageView.setPanLimit(SubsamplingScaleImageView.PAN_LIMIT_INSIDE); imageView.setMinimumScaleType(SubsamplingScaleImageView.SCALE_TYPE_CENTER_INSIDE); @@ -63,8 +57,13 @@ public class WebtoonAdapter extends BaseEasyRecyclerAdapter { @Override public void onSetValues(Page page, PositionInfo positionInfo) { - if (page.getImagePath() != null) + if (page.getImagePath() != null) { + imageView.setVisibility(View.VISIBLE); imageView.setImage(ImageSource.uri(page.getImagePath()).tilingDisabled()); + } else { + imageView.setVisibility(View.GONE); + } + } } } diff --git a/app/src/main/java/eu/kanade/mangafeed/ui/fragment/ReaderPageFragment.java b/app/src/main/java/eu/kanade/mangafeed/ui/fragment/ReaderPageFragment.java index b13d92a61f..4e5e21dbf6 100644 --- a/app/src/main/java/eu/kanade/mangafeed/ui/fragment/ReaderPageFragment.java +++ b/app/src/main/java/eu/kanade/mangafeed/ui/fragment/ReaderPageFragment.java @@ -2,7 +2,6 @@ package eu.kanade.mangafeed.ui.fragment; import android.os.Bundle; import android.support.annotation.Nullable; -import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -21,13 +20,14 @@ import butterknife.ButterKnife; import eu.kanade.mangafeed.R; import eu.kanade.mangafeed.data.models.Page; import eu.kanade.mangafeed.ui.activity.ReaderActivity; +import eu.kanade.mangafeed.ui.fragment.base.BaseFragment; import rx.Observable; import rx.Subscription; import rx.android.schedulers.AndroidSchedulers; import rx.schedulers.Schedulers; import rx.subjects.PublishSubject; -public class ReaderPageFragment extends Fragment { +public class ReaderPageFragment extends BaseFragment { @Bind(R.id.page_image_view) SubsamplingScaleImageView imageView; @Bind(R.id.progress_container) LinearLayout progressContainer; diff --git a/app/src/main/java/eu/kanade/mangafeed/ui/viewer/RightToLeftViewer.java b/app/src/main/java/eu/kanade/mangafeed/ui/viewer/RightToLeftViewer.java index 838f33ed9d..feca69e245 100644 --- a/app/src/main/java/eu/kanade/mangafeed/ui/viewer/RightToLeftViewer.java +++ b/app/src/main/java/eu/kanade/mangafeed/ui/viewer/RightToLeftViewer.java @@ -21,7 +21,7 @@ public class RightToLeftViewer extends ViewPagerViewer { ArrayList inversedPages = new ArrayList<>(pages); Collections.reverse(inversedPages); adapter.setPages(inversedPages); - getViewPager().setCurrentItem(adapter.getCount()-1); + getViewPager().setCurrentItem(adapter.getCount()-1, false); } @Override diff --git a/app/src/main/java/eu/kanade/mangafeed/ui/viewer/VerticalViewer.java b/app/src/main/java/eu/kanade/mangafeed/ui/viewer/VerticalViewer.java index 161e6aa033..190046746b 100644 --- a/app/src/main/java/eu/kanade/mangafeed/ui/viewer/VerticalViewer.java +++ b/app/src/main/java/eu/kanade/mangafeed/ui/viewer/VerticalViewer.java @@ -1,5 +1,6 @@ package eu.kanade.mangafeed.ui.viewer; +import android.support.v4.view.ViewPager; import android.view.MotionEvent; import android.widget.FrameLayout; @@ -12,7 +13,6 @@ import eu.kanade.mangafeed.data.models.Page; import eu.kanade.mangafeed.ui.activity.ReaderActivity; import eu.kanade.mangafeed.ui.adapter.ViewerPagerAdapter; import eu.kanade.mangafeed.ui.viewer.base.BaseViewer; -import eu.kanade.mangafeed.widget.HorizontalViewPager; import fr.castorflex.android.verticalviewpager.VerticalViewPager; public class VerticalViewer extends BaseViewer { @@ -28,7 +28,7 @@ public class VerticalViewer extends BaseViewer { adapter = new ViewerPagerAdapter(activity.getSupportFragmentManager()); viewPager.setAdapter(adapter); viewPager.setOffscreenPageLimit(3); - viewPager.setOnPageChangeListener(new HorizontalViewPager.OnPageChangeListener() { + viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { diff --git a/app/src/main/java/eu/kanade/mangafeed/ui/viewer/WebtoonViewer.java b/app/src/main/java/eu/kanade/mangafeed/ui/viewer/WebtoonViewer.java index 36798a14a7..293a695285 100644 --- a/app/src/main/java/eu/kanade/mangafeed/ui/viewer/WebtoonViewer.java +++ b/app/src/main/java/eu/kanade/mangafeed/ui/viewer/WebtoonViewer.java @@ -21,7 +21,8 @@ public class WebtoonViewer extends BaseViewer { super(activity, container); recycler = new RecyclerView(activity); - recycler.setLayoutManager(new LinearLayoutManager(activity)); + LinearLayoutManager layoutManager = new LinearLayoutManager(activity); + recycler.setLayoutManager(layoutManager); adapter = new WebtoonAdapter(activity); recycler.setAdapter(adapter); diff --git a/app/src/main/java/eu/kanade/mangafeed/ui/viewer/base/ViewPagerViewer.java b/app/src/main/java/eu/kanade/mangafeed/ui/viewer/base/ViewPagerViewer.java index 42cd7b39a2..538c130e1a 100644 --- a/app/src/main/java/eu/kanade/mangafeed/ui/viewer/base/ViewPagerViewer.java +++ b/app/src/main/java/eu/kanade/mangafeed/ui/viewer/base/ViewPagerViewer.java @@ -15,8 +15,7 @@ import eu.kanade.mangafeed.widget.HorizontalViewPager; public abstract class ViewPagerViewer extends BaseViewer { - @Bind(R.id.view_pager) - HorizontalViewPager viewPager; + @Bind(R.id.view_pager) HorizontalViewPager viewPager; protected ViewerPagerAdapter adapter; public ViewPagerViewer(ReaderActivity activity, FrameLayout container) { @@ -69,7 +68,7 @@ public abstract class ViewPagerViewer extends BaseViewer { @Override public void setSelectedPage(int pageNumber) { - viewPager.setCurrentItem(getCurrentPageIndex(pageNumber)); + viewPager.setCurrentItem(getCurrentPageIndex(pageNumber), false); } @Override diff --git a/app/src/main/res/layout/chapter_image.xml b/app/src/main/res/layout/chapter_image.xml index 0b661bba53..4d52170198 100644 --- a/app/src/main/res/layout/chapter_image.xml +++ b/app/src/main/res/layout/chapter_image.xml @@ -1,5 +1,13 @@ - \ No newline at end of file + android:layout_height="match_parent"> + + + + \ No newline at end of file