Better error handling for images
This commit is contained in:
@@ -71,8 +71,8 @@ public class ReaderActivity extends BaseRxActivity<ReaderPresenter> {
|
||||
viewer.onPageListReady(pages);
|
||||
}
|
||||
|
||||
public void onImageReady(Page page) {
|
||||
viewer.onImageReady(page);
|
||||
public void onNextPage(Page page) {
|
||||
viewer.onNextPage(page);
|
||||
}
|
||||
|
||||
public void onPageChanged(int currentPage, int totalPages) {
|
||||
@@ -101,8 +101,7 @@ public class ReaderActivity extends BaseRxActivity<ReaderPresenter> {
|
||||
}
|
||||
|
||||
private BaseViewer getViewer() {
|
||||
int prefsViewer = prefs.getDefaultViewer();
|
||||
switch (prefsViewer) {
|
||||
switch (prefs.getDefaultViewer()) {
|
||||
case LEFT_TO_RIGHT:
|
||||
return new LeftToRightViewer(this, container);
|
||||
case RIGHT_TO_LEFT:
|
||||
|
||||
@@ -43,7 +43,7 @@ public class ReaderPageAdapter extends SmartFragmentStatePagerAdapter {
|
||||
|
||||
ReaderPageFragment fragment = (ReaderPageFragment)getRegisteredFragment(position);
|
||||
if (fragment != null) {
|
||||
fragment.setPage(page);
|
||||
fragment.replacePage(page);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.davemorrissey.labs.subscaleview.ImageSource;
|
||||
import com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView;
|
||||
@@ -18,19 +19,17 @@ import eu.kanade.mangafeed.data.models.Page;
|
||||
import eu.kanade.mangafeed.ui.activity.ReaderActivity;
|
||||
|
||||
public class ReaderPageFragment extends Fragment {
|
||||
public static final String URL_ARGUMENT_KEY = "UrlArgumentKey";
|
||||
|
||||
@Bind(R.id.page_image_view) SubsamplingScaleImageView imageView;
|
||||
@Bind(R.id.progress) ProgressBar progressBar;
|
||||
@Bind(R.id.image_error) TextView errorText;
|
||||
|
||||
private String imagePath;
|
||||
private Page page;
|
||||
|
||||
public static ReaderPageFragment newInstance(Page page) {
|
||||
ReaderPageFragment newInstance = new ReaderPageFragment();
|
||||
Bundle arguments = new Bundle();
|
||||
arguments.putString(URL_ARGUMENT_KEY, page.getImagePath());
|
||||
newInstance.setArguments(arguments);
|
||||
return newInstance;
|
||||
ReaderPageFragment fragment = new ReaderPageFragment();
|
||||
fragment.setPage(page);
|
||||
return fragment;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -38,26 +37,32 @@ public class ReaderPageFragment extends Fragment {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
setRetainInstance(true);
|
||||
}
|
||||
|
||||
Bundle arguments = getArguments();
|
||||
if (arguments != null) {
|
||||
if (arguments.containsKey(URL_ARGUMENT_KEY)) {
|
||||
imagePath = arguments.getString(URL_ARGUMENT_KEY);
|
||||
}
|
||||
}
|
||||
public void replacePage(Page page) {
|
||||
this.page = page;
|
||||
loadImage();
|
||||
}
|
||||
|
||||
public void setPage(Page page) {
|
||||
if (!page.getImageUrl().equals(imagePath)) {
|
||||
imagePath = page.getImagePath();
|
||||
loadImage();
|
||||
}
|
||||
this.page = page;
|
||||
}
|
||||
|
||||
private void loadImage() {
|
||||
if (imagePath != null) {
|
||||
progressBar.setVisibility(View.GONE);
|
||||
imageView.setImage(ImageSource.uri(imagePath).tilingDisabled());
|
||||
if (page == null)
|
||||
return;
|
||||
|
||||
switch (page.getStatus()) {
|
||||
case (Page.READY):
|
||||
imageView.setImage(ImageSource.uri(page.getImagePath()).tilingDisabled());
|
||||
progressBar.setVisibility(View.GONE);
|
||||
break;
|
||||
case (Page.DOWNLOAD):
|
||||
progressBar.setVisibility(View.VISIBLE);
|
||||
break;
|
||||
case (Page.ERROR):
|
||||
progressBar.setVisibility(View.GONE);
|
||||
errorText.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -73,8 +78,6 @@ public class ReaderPageFragment extends Fragment {
|
||||
imageView.setOnTouchListener((v, motionEvent) ->
|
||||
((ReaderActivity) getActivity()).onImageTouch(motionEvent));
|
||||
|
||||
progressBar.setVisibility(View.VISIBLE);
|
||||
|
||||
loadImage();
|
||||
|
||||
return view;
|
||||
|
||||
@@ -59,7 +59,7 @@ public class VerticalViewer extends BaseViewer {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onImageReady(Page page) {
|
||||
public void onNextPage(Page page) {
|
||||
adapter.replacePage(getPosFromPage(page), page);
|
||||
}
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ public class WebtoonViewer extends BaseViewer {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onImageReady(Page page) {
|
||||
public void onNextPage(Page page) {
|
||||
adapter.setPage(getPosFromPage(page), page);
|
||||
}
|
||||
|
||||
|
||||
@@ -33,6 +33,6 @@ public abstract class BaseViewer {
|
||||
|
||||
public abstract int getTotalPages();
|
||||
public abstract void onPageListReady(List<Page> pages);
|
||||
public abstract void onImageReady(Page page);
|
||||
public abstract void onNextPage(Page page);
|
||||
public abstract boolean onImageTouch(MotionEvent motionEvent);
|
||||
}
|
||||
|
||||
@@ -72,7 +72,7 @@ public abstract class ViewPagerViewer extends BaseViewer {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onImageReady(Page page) {
|
||||
public void onNextPage(Page page) {
|
||||
adapter.replacePage(getPosFromPage(page), page);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user