diff options
Diffstat (limited to 'org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicFragment.java')
-rw-r--r-- | org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicFragment.java | 520 |
1 files changed, 260 insertions, 260 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 4e07bd4..85e7537 100644 --- a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicFragment.java +++ b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicFragment.java @@ -1,260 +1,260 @@ -package org.fox.ttcomics2; - - -import android.app.Activity; -import android.content.SharedPreferences; -import android.os.Bundle; -import android.preference.PreferenceManager; -import android.support.v4.app.Fragment; -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 com.nostra13.universalimageloader.core.DisplayImageOptions; -import com.nostra13.universalimageloader.core.ImageLoader; - -import org.fox.ttcomics2.archive.ComicArchive; - -import java.io.IOException; - -import it.sephiroth.android.library.imagezoom.ImageViewTouch; - -public class ComicFragment extends Fragment implements GestureDetector.OnDoubleTapListener { - private final String TAG = this.getClass().getSimpleName(); - - private SharedPreferences m_prefs; - private int m_page; - private ViewComicActivity m_activity; - private GestureDetector m_detector; - private boolean m_thumbnail = false; - private ComicArchive m_archive; - - public ComicFragment() { - super(); - } - - public void initialize(ComicArchive archive, int page) { - m_archive = archive; - m_page = page; - } - - public void setPage(int page) { - m_page = page; - } - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - - View view = inflater.inflate(R.layout.fragment_comic, container, false); - - final ImageViewTouch image = (ImageViewTouch) view.findViewById(R.id.comic_image); - - if (savedInstanceState != null) { - m_page = savedInstanceState.getInt("page"); - m_thumbnail = savedInstanceState.getBoolean("thumbnail"); - m_archive = savedInstanceState.getParcelable("archive"); - } - - image.setFitToScreen(true); - - ImageLoader imageLoader = ImageLoader.getInstance(); - - if (m_prefs.getBoolean("fit_to_width", false)) { - image.setFitToWidth(true); - } - - try { - byte[] buf = m_archive.getByteArray(m_page); - - DisplayImageOptions options = new DisplayImageOptions.Builder() - .showImageOnFail(R.drawable.badimage) - .extraForDownloader(buf) - .cacheOnDisk(false) - .cacheInMemory(false) - .build(); - - imageLoader.displayImage("stream://" + m_page, image, options); - - } catch (IOException e) { - 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); - } - }); - - //} - - /* TextView page = (TextView) view.findViewById(R.id.comic_page); - - if (page != null) { - page.setText(String.valueOf(m_page+1)); - } */ - - return view; - - } - - private void onLeftSideTapped() { - ImageViewTouch image = (ImageViewTouch) getView().findViewById(R.id.comic_image); - - if (image != null) { - boolean atLeftEdge = !image.canScroll(1); - - if (atLeftEdge) { - m_activity.selectPreviousComic(); - } - } - } - - public boolean canScroll(int direction) { - ImageViewTouch image = (ImageViewTouch) getView().findViewById(R.id.comic_image); - - if (image != null) { - return image.canScroll(direction); - } else { - return false; - } - } - - private void onRightSideTapped() { - ImageViewTouch image = (ImageViewTouch) getView().findViewById(R.id.comic_image); - - if (image != null) { - boolean atRightEdge = !image.canScroll(-1); - - if (atRightEdge) { - m_activity.selectNextComic(); - } - } - } - - @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) { - // TODO Auto-generated method stub - return false; - } - - @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(this); - } - - @Override - public void onSaveInstanceState(Bundle out) { - super.onSaveInstanceState(out); - out.putInt("page", m_page); - out.putBoolean("thumbnail", m_thumbnail); - out.putParcelable("archive", m_archive); - } - - @Override - public boolean onDoubleTap(MotionEvent e) { - // TODO Auto-generated method stub - return false; - } - - @Override - public boolean onDoubleTapEvent(MotionEvent e) { - // TODO Auto-generated method stub - return false; - } - - @Override - public boolean onSingleTapConfirmed(MotionEvent e) { - - int width = getView().getWidth(); - - int x = Math.round(e.getX()); - - if (x <= width/10) { - onLeftSideTapped(); - } else if (x >= width-(width/10)) { - onRightSideTapped(); - } else { - ActionBar bar = m_activity.getSupportActionBar(); - - if (bar.isShowing()) { - bar.hide(); - m_activity.hideSeekBar(true); - - if (m_prefs.getBoolean("use_full_screen", false)) { - m_activity.hideSystemUI(true); - } - - } else { - m_activity.hideSeekBar(false); - - if (m_prefs.getBoolean("use_full_screen", false)) { - m_activity.hideSystemUI(false); - } - - bar.show(); - } - } - - return false; - } - -} +package org.fox.ttcomics2;
+
+
+import android.app.Activity;
+import android.content.SharedPreferences;
+import android.os.Bundle;
+import android.preference.PreferenceManager;
+import android.support.v4.app.Fragment;
+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 com.nostra13.universalimageloader.core.DisplayImageOptions;
+import com.nostra13.universalimageloader.core.ImageLoader;
+
+import org.fox.ttcomics2.archive.ComicArchive;
+
+import java.io.IOException;
+
+import it.sephiroth.android.library.imagezoom.ImageViewTouch;
+
+public class ComicFragment extends Fragment implements GestureDetector.OnDoubleTapListener {
+ private final String TAG = this.getClass().getSimpleName();
+
+ private SharedPreferences m_prefs;
+ private int m_page;
+ private ViewComicActivity m_activity;
+ private GestureDetector m_detector;
+ private boolean m_thumbnail = false;
+ private ComicArchive m_archive;
+
+ public ComicFragment() {
+ super();
+ }
+
+ public void initialize(ComicArchive archive, int page) {
+ m_archive = archive;
+ m_page = page;
+ }
+
+ public void setPage(int page) {
+ m_page = page;
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+
+ View view = inflater.inflate(R.layout.fragment_comic, container, false);
+
+ final ImageViewTouch image = (ImageViewTouch) view.findViewById(R.id.comic_image);
+
+ if (savedInstanceState != null) {
+ m_page = savedInstanceState.getInt("page");
+ m_thumbnail = savedInstanceState.getBoolean("thumbnail");
+ m_archive = savedInstanceState.getParcelable("archive");
+ }
+
+ image.setFitToScreen(true);
+
+ ImageLoader imageLoader = ImageLoader.getInstance();
+
+ if (m_prefs.getBoolean("fit_to_width", false)) {
+ image.setFitToWidth(true);
+ }
+
+ try {
+ byte[] buf = m_archive.getByteArray(m_page);
+
+ DisplayImageOptions options = new DisplayImageOptions.Builder()
+ .showImageOnFail(R.drawable.badimage)
+ .extraForDownloader(buf)
+ .cacheOnDisk(false)
+ .cacheInMemory(false)
+ .build();
+
+ imageLoader.displayImage("stream://" + m_page, image, options);
+
+ } catch (IOException e) {
+ 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);
+ }
+ });
+
+ //}
+
+ /* TextView page = (TextView) view.findViewById(R.id.comic_page);
+
+ if (page != null) {
+ page.setText(String.valueOf(m_page+1));
+ } */
+
+ return view;
+
+ }
+
+ private void onLeftSideTapped() {
+ ImageViewTouch image = (ImageViewTouch) getView().findViewById(R.id.comic_image);
+
+ if (image != null) {
+ boolean atLeftEdge = !image.canScroll(1);
+
+ if (atLeftEdge) {
+ m_activity.selectPreviousComic();
+ }
+ }
+ }
+
+ public boolean canScroll(int direction) {
+ ImageViewTouch image = (ImageViewTouch) getView().findViewById(R.id.comic_image);
+
+ if (image != null) {
+ return image.canScroll(direction);
+ } else {
+ return false;
+ }
+ }
+
+ private void onRightSideTapped() {
+ ImageViewTouch image = (ImageViewTouch) getView().findViewById(R.id.comic_image);
+
+ if (image != null) {
+ boolean atRightEdge = !image.canScroll(-1);
+
+ if (atRightEdge) {
+ m_activity.selectNextComic();
+ }
+ }
+ }
+
+ @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) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @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(this);
+ }
+
+ @Override
+ public void onSaveInstanceState(Bundle out) {
+ super.onSaveInstanceState(out);
+ out.putInt("page", m_page);
+ out.putBoolean("thumbnail", m_thumbnail);
+ out.putParcelable("archive", m_archive);
+ }
+
+ @Override
+ public boolean onDoubleTap(MotionEvent e) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean onDoubleTapEvent(MotionEvent e) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean onSingleTapConfirmed(MotionEvent e) {
+
+ int width = getView().getWidth();
+
+ int x = Math.round(e.getX());
+
+ if (x <= width/10) {
+ onLeftSideTapped();
+ } else if (x >= width-(width/10)) {
+ onRightSideTapped();
+ } else {
+ ActionBar bar = m_activity.getSupportActionBar();
+
+ if (bar.isShowing()) {
+ bar.hide();
+ m_activity.hideSeekBar(true);
+
+ if (m_prefs.getBoolean("use_full_screen", false)) {
+ m_activity.hideSystemUI(true);
+ }
+
+ } else {
+ m_activity.hideSeekBar(false);
+
+ if (m_prefs.getBoolean("use_full_screen", false)) {
+ m_activity.hideSystemUI(false);
+ }
+
+ bar.show();
+ }
+ }
+
+ return false;
+ }
+
+}
|