@@ -37,14 +37,25 @@ public boolean onTouch(View v, MotionEvent event) {
3737 }
3838
3939 private class GestureListener extends GestureDetector .SimpleOnGestureListener {
40+
41+ private static final int REGION_LEFT = 1 ;
42+ private static final int REGION_MENU = 2 ;
43+ private static final int REGION_RIGHT = 3 ;
44+
45+ private int checkRegion (float x ) {
46+ if (x < mView .getWidth () / 3 ) {
47+ return REGION_LEFT ;
48+ } else if (x < mView .getWidth () * 2 /3 ) {
49+ return REGION_MENU ;
50+ } else
51+ return REGION_RIGHT ;
52+ }
53+
4054 @ Override
4155 public boolean onDoubleTap (MotionEvent e ) {
4256 Laz .yLog (TAG , "Double Tap" );
4357 // Only accept 1/3 potion in the middle.
44- if (e .getX () > mView .getWidth () / 3 &&
45- e .getX () < mView .getWidth () * 2 /3 ) {
46- mMotionListener .onOpenMenu ();
47- } else {
58+ if (checkRegion (e .getX ()) != REGION_MENU ) {
4859 // deal it as if double move page.
4960 onSingleTapConfirmed (e );
5061 onSingleTapConfirmed (e );
@@ -54,24 +65,34 @@ public boolean onDoubleTap(MotionEvent e) {
5465
5566 @ Override
5667 public boolean onSingleTapConfirmed (MotionEvent e ) {
57- if (e .getX () < mView .getWidth () / 2 ) {
58- Laz .yLog (TAG , "Touch left" );
59- mMotionListener .onMovePreviousPage ();
60- } else {
61- Laz .yLog (TAG , "Touch right" );
62- mMotionListener .onMoveNextPage ();
68+ switch (checkRegion (e .getX ())) {
69+ case REGION_LEFT :
70+ Laz .yLog (TAG , "Touch left" );
71+ mMotionListener .onMovePreviousPage ();
72+ break ;
73+ case REGION_MENU :
74+ Laz .yLog (TAG , "Touch middle" );
75+ mMotionListener .onOpenMenu ();
76+ break ;
77+ case REGION_RIGHT :
78+ Laz .yLog (TAG , "Touch right" );
79+ mMotionListener .onMoveNextPage ();
80+ break ;
6381 }
6482 return true ;
6583 }
6684
6785 @ Override
6886 public boolean onFling (MotionEvent e1 , MotionEvent e2 , float velocityX , float velocityY ) {
69- if (e1 .getX () < mView .getWidth () / 2 ) {
70- Laz .yLog (TAG , "Fling left" );
71- mMotionListener .onMovePreviousPage ();
72- } else {
73- Laz .yLog (TAG , "Fling right" );
74- mMotionListener .onMoveNextPage ();
87+ switch (checkRegion (e1 .getX ())) {
88+ case REGION_LEFT :
89+ Laz .yLog (TAG , "Fling left" );
90+ mMotionListener .onMovePreviousPage ();
91+ break ;
92+ case REGION_RIGHT :
93+ Laz .yLog (TAG , "Fling right" );
94+ mMotionListener .onMoveNextPage ();
95+ break ;
7596 }
7697 return true ;
7798 }
0 commit comments