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