add NonSwipeable ViewPager in utils

Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/commit/1c6bb697
Tree: 
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/tree/1c6bb697
Diff: 
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/diff/1c6bb697

Branch: refs/heads/master
Commit: 1c6bb697d117bb258b60dfea7cee58c6d0a69fe8
Parents: 0e4e196
Author: Sagar <kumarsagar15...@gmail.com>
Authored: Sun Sep 25 21:55:09 2016 +0530
Committer: Sagar <kumarsagar15...@gmail.com>
Committed: Sun Sep 25 21:55:09 2016 +0530

----------------------------------------------------------------------
 .../mobile/utils/NonSwipeableViewPager.java     | 59 ++++++++++++++++++++
 1 file changed, 59 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/1c6bb697/app/src/main/java/org/apache/taverna/mobile/utils/NonSwipeableViewPager.java
----------------------------------------------------------------------
diff --git 
a/app/src/main/java/org/apache/taverna/mobile/utils/NonSwipeableViewPager.java 
b/app/src/main/java/org/apache/taverna/mobile/utils/NonSwipeableViewPager.java
new file mode 100644
index 0000000..9d721b5
--- /dev/null
+++ 
b/app/src/main/java/org/apache/taverna/mobile/utils/NonSwipeableViewPager.java
@@ -0,0 +1,59 @@
+package org.apache.taverna.mobile.utils;
+
+import android.content.Context;
+import android.support.v4.view.ViewPager;
+import android.util.AttributeSet;
+import android.view.MotionEvent;
+import android.view.animation.DecelerateInterpolator;
+import android.widget.Scroller;
+
+import java.lang.reflect.Field;
+
+public class NonSwipeableViewPager extends ViewPager {
+
+    public NonSwipeableViewPager(Context context) {
+        super(context);
+        setMyScroller();
+    }
+
+    public NonSwipeableViewPager(Context context, AttributeSet attrs) {
+        super(context, attrs);
+        setMyScroller();
+    }
+
+    @Override
+    public boolean onInterceptTouchEvent(MotionEvent event) {
+        // Never allow swiping to switch between pages
+        return false;
+    }
+
+    @Override
+    public boolean onTouchEvent(MotionEvent event) {
+        // Never allow swiping to switch between pages
+        return false;
+    }
+
+    //down one is added for smooth scrolling
+
+    private void setMyScroller() {
+        try {
+            Class<?> viewpager = ViewPager.class;
+            Field scroller = viewpager.getDeclaredField("mScroller");
+            scroller.setAccessible(true);
+            scroller.set(this, new MyScroller(getContext()));
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    public class MyScroller extends Scroller {
+        public MyScroller(Context context) {
+            super(context, new DecelerateInterpolator());
+        }
+
+        @Override
+        public void startScroll(int startX, int startY, int dx, int dy, int 
duration) {
+            super.startScroll(startX, startY, dx, dy, 350 /*1 secs*/);
+        }
+    }
+}
\ No newline at end of file

Reply via email to