Fix crash with gestures

This commit is contained in:
inorichi 2015-12-22 13:22:13 +01:00
parent 322f54380d
commit 72b2471619
2 changed files with 64 additions and 48 deletions

View file

@ -37,6 +37,7 @@ public class HorizontalViewPager extends ViewPager implements ViewPagerInterface
@Override @Override
public boolean onInterceptTouchEvent(MotionEvent ev) { public boolean onInterceptTouchEvent(MotionEvent ev) {
try {
if ((ev.getAction() & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_DOWN) { if ((ev.getAction() & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_DOWN) {
if (getCurrentItem() == 0 || getCurrentItem() == getAdapter().getCount() - 1) { if (getCurrentItem() == 0 || getCurrentItem() == getAdapter().getCount() - 1) {
startDragX = ev.getX(); startDragX = ev.getX();
@ -44,10 +45,14 @@ public class HorizontalViewPager extends ViewPager implements ViewPagerInterface
} }
return super.onInterceptTouchEvent(ev); return super.onInterceptTouchEvent(ev);
} catch (IllegalArgumentException e) {
return true;
}
} }
@Override @Override
public boolean onTouchEvent(MotionEvent ev) { public boolean onTouchEvent(MotionEvent ev) {
try {
if (onChapterBoundariesOutListener != null) { if (onChapterBoundariesOutListener != null) {
if (getCurrentItem() == 0) { if (getCurrentItem() == 0) {
if ((ev.getAction() & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_UP) { if ((ev.getAction() & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_UP) {
@ -75,6 +80,9 @@ public class HorizontalViewPager extends ViewPager implements ViewPagerInterface
} }
return super.onTouchEvent(ev); return super.onTouchEvent(ev);
} catch (IllegalArgumentException e) {
return true;
}
} }
@Override @Override

View file

@ -36,6 +36,7 @@ public class VerticalViewPager extends VerticalViewPagerImpl implements ViewPage
@Override @Override
public boolean onInterceptTouchEvent(MotionEvent ev) { public boolean onInterceptTouchEvent(MotionEvent ev) {
try {
if ((ev.getAction() & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_DOWN) { if ((ev.getAction() & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_DOWN) {
if (getCurrentItem() == 0 || getCurrentItem() == getAdapter().getCount() - 1) { if (getCurrentItem() == 0 || getCurrentItem() == getAdapter().getCount() - 1) {
startDragY = ev.getY(); startDragY = ev.getY();
@ -43,10 +44,14 @@ public class VerticalViewPager extends VerticalViewPagerImpl implements ViewPage
} }
return super.onInterceptTouchEvent(ev); return super.onInterceptTouchEvent(ev);
} catch (IllegalArgumentException e) {
return true;
}
} }
@Override @Override
public boolean onTouchEvent(MotionEvent ev) { public boolean onTouchEvent(MotionEvent ev) {
try {
if (onChapterBoundariesOutListener != null) { if (onChapterBoundariesOutListener != null) {
if (getCurrentItem() == 0) { if (getCurrentItem() == 0) {
if ((ev.getAction() & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_UP) { if ((ev.getAction() & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_UP) {
@ -74,6 +79,9 @@ public class VerticalViewPager extends VerticalViewPagerImpl implements ViewPage
} }
return super.onTouchEvent(ev); return super.onTouchEvent(ev);
} catch (IllegalArgumentException e) {
return true;
}
} }
@Override @Override