summaryrefslogtreecommitdiff
path: root/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicFragment.java
diff options
context:
space:
mode:
Diffstat (limited to 'org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicFragment.java')
-rwxr-xr-xorg.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicFragment.java180
1 files changed, 35 insertions, 145 deletions
diff --git a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicFragment.java b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicFragment.java
index a21e749..ded84f2 100755
--- a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicFragment.java
+++ b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicFragment.java
@@ -5,22 +5,22 @@ import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
-import android.support.v7.app.ActionBar;
-import android.view.GestureDetector;
import android.view.LayoutInflater;
-import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
+import android.widget.ImageView;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
+import com.github.chrisbanes.photoview.OnViewTapListener;
+import com.github.chrisbanes.photoview.PhotoView;
import org.fox.ttcomics2.archive.ComicArchive;
import java.io.IOException;
+import androidx.appcompat.app.ActionBar;
import icepick.State;
-import it.sephiroth.android.library.imagezoom.ImageViewTouch;
public class ComicFragment extends StateSavedFragment {
private final String TAG = this.getClass().getSimpleName();
@@ -28,9 +28,8 @@ public class ComicFragment extends StateSavedFragment {
private SharedPreferences m_prefs;
@State protected int m_page;
private ViewComicActivity m_activity;
- private GestureDetector m_detector;
- @State protected boolean m_thumbnail = false;
@State protected ComicArchive m_archive;
+ private PhotoView m_image;
public ComicFragment() {
super();
@@ -45,147 +44,37 @@ public class ComicFragment extends StateSavedFragment {
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_comic, container, false);
-
- final ImageViewTouch image = view.findViewById(R.id.comic_image);
- if (m_prefs.getBoolean("fit_to_width", false)) {
- image.setFitToWidth(true);
- } else {
- image.setFitToScreen(true);
- }
+ m_image = view.findViewById(R.id.comic_image);
try {
- Glide.with(ComicFragment.this)
+ Glide.with(getContext())
.load(m_archive.getByteArray(m_page))
.dontAnimate()
+ .dontTransform()
.diskCacheStrategy(DiskCacheStrategy.NONE)
.skipMemoryCache(true)
- .into(image);
+ .into(m_image);
} catch (IOException e) {
- image.setImageResource(R.drawable.badimage);
+ m_image.setImageResource(R.drawable.badimage);
e.printStackTrace();
}
- image.setOnScaleChangedListener(new ImageViewTouch.OnScaleChangedListener() {
- @Override
- public void onScaleChanged(float scale) {
- // TODO: shared scale change?
- }
- });
-
- image.setOnTouchListener(new View.OnTouchListener() {
- @Override
- public boolean onTouch(View view, MotionEvent event) {
- return m_detector.onTouchEvent(event);
- }
- });
-
- //}
-
- return view;
-
- }
-
- private void onLeftSideTapped() {
- ImageViewTouch image = getView().findViewById(R.id.comic_image);
-
- if (image != null) {
- boolean atLeftEdge = !image.canScroll(1);
-
- if (atLeftEdge) {
- m_activity.selectPreviousComic();
- }
- }
- }
-
- private void onRightSideTapped() {
- ImageViewTouch image = getView().findViewById(R.id.comic_image);
-
- if (image != null) {
- boolean atRightEdge = !image.canScroll(-1);
-
- if (atRightEdge) {
- m_activity.selectNextComic();
- }
+ if (m_prefs.getBoolean("fit_to_width", false)) {
+ m_image.setScaleType(ImageView.ScaleType.CENTER_CROP);
}
- }
- @Override
- public void setUserVisibleHint(boolean isVisibleToUser) {
- super.setUserVisibleHint(isVisibleToUser);
-
- //setThumbnail(!isVisibleToUser); disabled
- }
-
- @Override
- public void onAttach(Activity activity) {
- super.onAttach(activity);
-
- m_prefs = PreferenceManager.getDefaultSharedPreferences(activity.getApplicationContext());
- m_activity = (ViewComicActivity) activity;
-
- m_detector = new GestureDetector(m_activity, new GestureDetector.OnGestureListener() {
-
- @Override
- public boolean onSingleTapUp(MotionEvent e) {
- int width = getView().getWidth();
- int x = Math.round(e.getX());
-
- if (x <= width/10) {
- onLeftSideTapped();
-
- return true;
- } else if (x >= width-(width/10)) {
- onRightSideTapped();
-
- return true;
- }
-
- return false;
- }
-
+ m_image.setOnViewTapListener(new OnViewTapListener() {
@Override
- public void onShowPress(MotionEvent e) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
- float distanceY) {
- // TODO Auto-generated method stub
- return false;
- }
-
- @Override
- public void onLongPress(MotionEvent e) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
- float velocityY) {
- // TODO Auto-generated method stub
- return false;
- }
-
- @Override
- public boolean onDown(MotionEvent e) {
- // TODO Auto-generated method stub
- return false;
- }
- });
-
- m_detector.setOnDoubleTapListener(new GestureDetector.OnDoubleTapListener() {
- @Override
- public boolean onSingleTapConfirmed(MotionEvent e) {
-
- int width = getView().getWidth();
- int x = Math.round(e.getX());
+ public void onViewTap(View view, float x, float y) {
+ int width = view.getWidth();
boolean fullScreenMode = m_prefs.getBoolean("use_full_screen", false);
- if (x > width/10 && x < width-(width/10)) {
+ if (x <= width / 10) {
+ m_activity.selectPreviousComic();
+ } else if (x > width-(width/10)) {
+ m_activity.selectNextComic();
+ } else {
ActionBar bar = m_activity.getSupportActionBar();
if (bar.isShowing()) {
@@ -205,24 +94,25 @@ public class ComicFragment extends StateSavedFragment {
bar.show();
}
-
- return true;
}
-
- return false;
- }
-
- @Override
- public boolean onDoubleTap(MotionEvent e) {
- return false;
- }
-
- @Override
- public boolean onDoubleTapEvent(MotionEvent e) {
- return false;
}
});
+ return view;
+
+ }
+
+ @Override
+ public void setUserVisibleHint(boolean isVisibleToUser) {
+ super.setUserVisibleHint(isVisibleToUser);
+ }
+
+ @Override
+ public void onAttach(Activity activity) {
+ super.onAttach(activity);
+
+ m_prefs = PreferenceManager.getDefaultSharedPreferences(activity.getApplicationContext());
+ m_activity = (ViewComicActivity) activity;
}
}