10215802097afca0cadc252a47ba1ea6301ca63a7Jason Monk/*
20215802097afca0cadc252a47ba1ea6301ca63a7Jason Monk * Copyright (C) 2016 The Android Open Source Project
30215802097afca0cadc252a47ba1ea6301ca63a7Jason Monk *
40215802097afca0cadc252a47ba1ea6301ca63a7Jason Monk * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
50215802097afca0cadc252a47ba1ea6301ca63a7Jason Monk * except in compliance with the License. You may obtain a copy of the License at
60215802097afca0cadc252a47ba1ea6301ca63a7Jason Monk *
70215802097afca0cadc252a47ba1ea6301ca63a7Jason Monk *      http://www.apache.org/licenses/LICENSE-2.0
80215802097afca0cadc252a47ba1ea6301ca63a7Jason Monk *
90215802097afca0cadc252a47ba1ea6301ca63a7Jason Monk * Unless required by applicable law or agreed to in writing, software distributed under the
100215802097afca0cadc252a47ba1ea6301ca63a7Jason Monk * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
110215802097afca0cadc252a47ba1ea6301ca63a7Jason Monk * KIND, either express or implied. See the License for the specific language governing
120215802097afca0cadc252a47ba1ea6301ca63a7Jason Monk * permissions and limitations under the License.
130215802097afca0cadc252a47ba1ea6301ca63a7Jason Monk */
140215802097afca0cadc252a47ba1ea6301ca63a7Jason Monk
150215802097afca0cadc252a47ba1ea6301ca63a7Jason Monkpackage com.android.systemui.qs;
160215802097afca0cadc252a47ba1ea6301ca63a7Jason Monk
170215802097afca0cadc252a47ba1ea6301ca63a7Jason Monkimport android.content.Context;
180215802097afca0cadc252a47ba1ea6301ca63a7Jason Monkimport android.util.AttributeSet;
190215802097afca0cadc252a47ba1ea6301ca63a7Jason Monkimport android.view.MotionEvent;
200215802097afca0cadc252a47ba1ea6301ca63a7Jason Monkimport android.widget.ScrollView;
210215802097afca0cadc252a47ba1ea6301ca63a7Jason Monk
220215802097afca0cadc252a47ba1ea6301ca63a7Jason Monk/**
230215802097afca0cadc252a47ba1ea6301ca63a7Jason Monk * ScrollView that disallows intercepting for touches that can cause scrolling.
240215802097afca0cadc252a47ba1ea6301ca63a7Jason Monk */
250215802097afca0cadc252a47ba1ea6301ca63a7Jason Monkpublic class NonInterceptingScrollView extends ScrollView {
260215802097afca0cadc252a47ba1ea6301ca63a7Jason Monk
270215802097afca0cadc252a47ba1ea6301ca63a7Jason Monk    public NonInterceptingScrollView(Context context, AttributeSet attrs) {
280215802097afca0cadc252a47ba1ea6301ca63a7Jason Monk        super(context, attrs);
290215802097afca0cadc252a47ba1ea6301ca63a7Jason Monk    }
300215802097afca0cadc252a47ba1ea6301ca63a7Jason Monk
310215802097afca0cadc252a47ba1ea6301ca63a7Jason Monk    @Override
320215802097afca0cadc252a47ba1ea6301ca63a7Jason Monk    public boolean onTouchEvent(MotionEvent ev) {
330215802097afca0cadc252a47ba1ea6301ca63a7Jason Monk        int action = ev.getActionMasked();
340215802097afca0cadc252a47ba1ea6301ca63a7Jason Monk        switch (action) {
350215802097afca0cadc252a47ba1ea6301ca63a7Jason Monk            case MotionEvent.ACTION_DOWN:
3635742d8c31d4a8cfe3d21ab51ddcddfa642c1d9aJason Monk                if (canScrollVertically(1)) {
370215802097afca0cadc252a47ba1ea6301ca63a7Jason Monk                    requestDisallowInterceptTouchEvent(true);
380215802097afca0cadc252a47ba1ea6301ca63a7Jason Monk                }
390215802097afca0cadc252a47ba1ea6301ca63a7Jason Monk                break;
400215802097afca0cadc252a47ba1ea6301ca63a7Jason Monk        }
410215802097afca0cadc252a47ba1ea6301ca63a7Jason Monk        return super.onTouchEvent(ev);
420215802097afca0cadc252a47ba1ea6301ca63a7Jason Monk    }
430215802097afca0cadc252a47ba1ea6301ca63a7Jason Monk}
44