1 package com.android.contacts.widget;
2 
3 import android.content.Context;
4 import android.os.Parcelable;
5 import android.util.AttributeSet;
6 import android.view.MotionEvent;
7 import android.widget.ScrollView;
8 
9 /**
10  * A {@link ScrollView} that doesn't respond or intercept touch events.
11  *
12  * This is used in combination with {@link com.android.contacts.widget.MultiShrinkScroller} so
13  * that MultiShrinkScroller can handle all scrolling & saving.
14  */
15 public class TouchlessScrollView extends ScrollView {
16 
TouchlessScrollView(Context context)17     public TouchlessScrollView(Context context) {
18         this(context, null);
19     }
20 
TouchlessScrollView(Context context, AttributeSet attrs)21     public TouchlessScrollView(Context context, AttributeSet attrs) {
22         this(context, attrs, 0);
23     }
24 
TouchlessScrollView(Context context, AttributeSet attrs, int defStyleAttr)25     public TouchlessScrollView(Context context, AttributeSet attrs, int defStyleAttr) {
26         super(context, attrs, defStyleAttr);
27     }
28 
29     @Override
onSaveInstanceState()30     protected Parcelable onSaveInstanceState() {
31         // Do not save the current scroll position. Always store scrollY=0 and delegate
32         // responsibility of saving state to the MultiShrinkScroller.
33         final int scrollY = getScrollY();
34         setScrollY(0);
35         final Parcelable returnValue = super.onSaveInstanceState();
36         setScrollY(scrollY);
37         return returnValue;
38     }
39 
40     /**
41      * {@inheritDoc}
42      */
43     @Override
onInterceptTouchEvent(MotionEvent ev)44     public boolean onInterceptTouchEvent(MotionEvent ev) {
45         return false;
46     }
47 
48     /**
49      * {@inheritDoc}
50      */
51     @Override
onTouchEvent(MotionEvent event)52     public boolean onTouchEvent(MotionEvent event) {
53         return false;
54     }
55 }