summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2012-10-16 21:24:36 +0400
committerAndrew Dolgov <[email protected]>2012-10-16 21:24:36 +0400
commitf8ad855635640196e989fa7b7db8a30f6e3d6f94 (patch)
treea65b649bba918cc6c8b811a3058aa9a57d55b492 /src
parent96f27f4896e7445bacffc296bd2d0e32aa063832 (diff)
implement tap on screen left/right sides to switch pages
Diffstat (limited to 'src')
-rw-r--r--src/org/fox/ttcomics/ComicFragment.java49
-rw-r--r--src/org/fox/ttcomics/ComicPager.java1
-rw-r--r--src/org/fox/ttcomics/CommonActivity.java18
-rw-r--r--src/org/fox/ttcomics/ViewPager.java6
4 files changed, 72 insertions, 2 deletions
diff --git a/src/org/fox/ttcomics/ComicFragment.java b/src/org/fox/ttcomics/ComicFragment.java
index fbd8639..f064397 100644
--- a/src/org/fox/ttcomics/ComicFragment.java
+++ b/src/org/fox/ttcomics/ComicFragment.java
@@ -12,6 +12,7 @@ import android.preference.PreferenceManager;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
+import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
@@ -22,6 +23,7 @@ public class ComicFragment extends Fragment {
private SharedPreferences m_prefs;
private int m_page;
+ private CommonActivity m_activity;
public ComicFragment() {
super();
@@ -77,10 +79,11 @@ public class ComicFragment extends Fragment {
image.setBackgroundColor(0xff000000);
}
+
image.setImageBitmap(loadImage(pager.getArchive(), m_page));
image.setMaxZoom(4f);
image.setOnScaleChangedListener(new TouchImageView.OnScaleChangedListener() {
-
+ @Override
public void onScaleChanged(float scale) {
ViewPager pager = (ViewPager) getActivity().findViewById(R.id.comics_pager);
@@ -89,6 +92,39 @@ public class ComicFragment extends Fragment {
}
}
});
+
+ image.setOnTouchListener(new View.OnTouchListener() {
+ int m_x;
+ int m_y;
+
+ @Override
+ public boolean onTouch(View view, MotionEvent event) {
+ switch (event.getAction()) {
+ case MotionEvent.ACTION_DOWN:
+ m_x = Math.round(event.getX());
+ m_y = Math.round(event.getY());
+ break;
+ case MotionEvent.ACTION_UP:
+ int x = Math.round(event.getX());
+ int y = Math.round(event.getY());
+
+ if (x == m_x && y == m_y) {
+ int width = view.getWidth();
+
+ if (x <= width/6) {
+ onLeftSideTapped();
+ } else if (x >= width-(width/6)) {
+ onRightSideTapped();
+ }
+ }
+
+ break;
+ }
+
+ return false;
+ }
+ });
+
}
TextView page = (TextView) view.findViewById(R.id.comic_page);
@@ -96,16 +132,25 @@ public class ComicFragment extends Fragment {
if (page != null) {
page.setText(String.valueOf(m_page+1));
}
-
+
return view;
}
+ private void onLeftSideTapped() {
+ m_activity.selectPreviousComic();
+ }
+
+ private void onRightSideTapped() {
+ m_activity.selectNextComic();
+ }
+
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
m_prefs = PreferenceManager.getDefaultSharedPreferences(activity.getApplicationContext());
+ m_activity = (CommonActivity) activity;
}
@Override
diff --git a/src/org/fox/ttcomics/ComicPager.java b/src/org/fox/ttcomics/ComicPager.java
index 9991099..8cc0fd1 100644
--- a/src/org/fox/ttcomics/ComicPager.java
+++ b/src/org/fox/ttcomics/ComicPager.java
@@ -10,6 +10,7 @@ import android.preference.PreferenceManager;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
+import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
diff --git a/src/org/fox/ttcomics/CommonActivity.java b/src/org/fox/ttcomics/CommonActivity.java
index fb6b8ee..197648d 100644
--- a/src/org/fox/ttcomics/CommonActivity.java
+++ b/src/org/fox/ttcomics/CommonActivity.java
@@ -404,4 +404,22 @@ public class CommonActivity extends FragmentActivity {
m_writableDb.close();
}
+ public void selectPreviousComic() {
+ ComicPager frag = (ComicPager) getSupportFragmentManager().findFragmentByTag(FRAG_COMICS_PAGER);
+
+ if (frag != null && frag.isAdded() && frag.getPosition() > 0) {
+ frag.setCurrentItem(frag.getPosition() - 1);
+ }
+ }
+
+ public void selectNextComic() {
+ ComicPager frag = (ComicPager) getSupportFragmentManager().findFragmentByTag(FRAG_COMICS_PAGER);
+
+ if (frag != null && frag.isAdded() && frag.getPosition() < frag.getCount()-1) {
+ frag.setCurrentItem(frag.getPosition() + 1);
+ }
+
+
+ }
+
}
diff --git a/src/org/fox/ttcomics/ViewPager.java b/src/org/fox/ttcomics/ViewPager.java
index 3915eaf..966edd7 100644
--- a/src/org/fox/ttcomics/ViewPager.java
+++ b/src/org/fox/ttcomics/ViewPager.java
@@ -2,10 +2,12 @@ package org.fox.ttcomics;
import android.content.Context;
import android.util.AttributeSet;
+import android.util.Log;
import android.view.MotionEvent;
public class ViewPager extends android.support.v4.view.ViewPager {
+ private final String TAG = this.getClass().getSimpleName();
private boolean enabled;
public ViewPager(Context context, AttributeSet attrs) {
@@ -34,4 +36,8 @@ public class ViewPager extends android.support.v4.view.ViewPager {
public void setPagingEnabled(boolean enabled) {
this.enabled = enabled;
}
+
+ public boolean getPagingEnabled() {
+ return this.enabled;
+ }
} \ No newline at end of file