fix nullpointer in previous swipetorefresh fix

This commit is contained in:
Vincent Breitmoser 2014-09-23 23:49:18 +02:00
parent ab4972b428
commit 07e8729abf

View File

@ -88,11 +88,15 @@ public class ListAwareSwipeRefreshLayout extends NoScrollableSwipeRefreshLayout
*/ */
@Override @Override
public boolean onTouchEvent(MotionEvent event) { public boolean onTouchEvent(MotionEvent event) {
float ratioX = event.getX() / event.getDevice().getMotionRange(MotionEvent.AXIS_X).getMax(); // The device may be null. This actually happens
float ratioY = event.getY() / event.getDevice().getMotionRange(MotionEvent.AXIS_Y).getMax(); if (event.getDevice() != null) {
// if this is the upper right corner, don't handle as pull to refresh event // MotionEvent.AXIS_X is api level 12, for some reason, so we use a constant 0 here
if (ratioX > 0.85f && ratioY < 0.15f) { float ratioX = event.getX() / event.getDevice().getMotionRange(0).getMax();
return false; float ratioY = event.getY() / event.getDevice().getMotionRange(1).getMax();
// if this is the upper right corner, don't handle as pull to refresh event
if (ratioX > 0.85f && ratioY < 0.15f) {
return false;
}
} }
return super.onTouchEvent(event); return super.onTouchEvent(event);
} }