aboutsummaryrefslogtreecommitdiff
path: root/WordPress/src/main/java/org/wordpress/android/widgets/WPViewPager.java
diff options
context:
space:
mode:
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.java55
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;
+ }
+}