diff options
Diffstat (limited to 'WordPress/src/main/java/org/wordpress/android/widgets/WPViewPager.java')
-rw-r--r-- | WordPress/src/main/java/org/wordpress/android/widgets/WPViewPager.java | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/WordPress/src/main/java/org/wordpress/android/widgets/WPViewPager.java b/WordPress/src/main/java/org/wordpress/android/widgets/WPViewPager.java new file mode 100644 index 000000000..35fb330b6 --- /dev/null +++ b/WordPress/src/main/java/org/wordpress/android/widgets/WPViewPager.java @@ -0,0 +1,55 @@ +package org.wordpress.android.widgets; + +import android.content.Context; +import android.support.v4.view.ViewPager; +import android.util.AttributeSet; +import android.view.MotionEvent; + +import org.wordpress.android.util.AppLog; +import org.wordpress.android.util.AppLog.T; + +/** + * Custom ViewPager which resolves the "pointer index out of range" bug in the compatibility library + * https://code.google.com/p/android/issues/detail?id=16836 + * https://code.google.com/p/android/issues/detail?id=18990 + * https://github.com/chrisbanes/PhotoView/issues/31 + */ +public class WPViewPager extends ViewPager { + private boolean mPagingEnabled = true; + + public WPViewPager(Context context) { + super(context); + } + + public WPViewPager(Context context, AttributeSet attrs) { + super(context, attrs); + } + + @Override + public boolean onInterceptTouchEvent(MotionEvent ev) { + if (mPagingEnabled) { + try { + return super.onInterceptTouchEvent(ev); + } catch (IllegalArgumentException e) { + AppLog.e(T.UTILS, e); + } + } + return false; + } + + @Override + public boolean onTouchEvent(MotionEvent ev) { + if (mPagingEnabled) { + try { + return super.onTouchEvent(ev); + } catch (IllegalArgumentException e) { + AppLog.e(AppLog.T.UTILS, e); + } + } + return false; + } + + public void setPagingEnabled(boolean pagingEnabled) { + mPagingEnabled = pagingEnabled; + } +} |