1e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler/* 2e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler * Copyright (C) 2012 The Android Open Source Project 3e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler * 4e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler * Licensed under the Apache License, Version 2.0 (the "License"); 5e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler * you may not use this file except in compliance with the License. 6e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler * You may obtain a copy of the License at 7e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler * 8e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler * http://www.apache.org/licenses/LICENSE-2.0 9e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler * 10e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler * Unless required by applicable law or agreed to in writing, software 11e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler * distributed under the License is distributed on an "AS IS" BASIS, 12e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler * See the License for the specific language governing permissions and 14e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler * limitations under the License. 15e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler */ 16e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler 17e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandlerpackage com.android.systemui.statusbar.phone; 18e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler 19e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandlerimport android.content.Context; 20e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandlerimport android.util.AttributeSet; 21e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandlerimport android.view.MotionEvent; 22e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandlerimport android.view.View; 23e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandlerimport android.widget.ScrollView; 24e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler 25e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandlerpublic class QuickSettingsScrollView extends ScrollView { 26e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler 27e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler public QuickSettingsScrollView(Context context) { 28e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler super(context); 29e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler } 30e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler 31e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler public QuickSettingsScrollView(Context context, AttributeSet attrs) { 32e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler super(context, attrs); 33e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler } 34e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler 35e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler public QuickSettingsScrollView(Context context, AttributeSet attrs, int defStyle) { 36e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler super(context, attrs, defStyle); 37e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler } 38e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler 39e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler // Y U NO PROTECTED 40e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler private int getScrollRange() { 41e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler int scrollRange = 0; 42e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler if (getChildCount() > 0) { 43e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler View child = getChildAt(0); 44e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler scrollRange = Math.max(0, 45e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler child.getHeight() - (getHeight() - mPaddingBottom - mPaddingTop)); 46e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler } 47e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler return scrollRange; 48e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler } 49e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler 50e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler @Override 51e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler public boolean onTouchEvent(MotionEvent ev) { 52e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler final int range = getScrollRange(); 53e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler if (range == 0) { 54e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler return false; 55e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler } 56e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler 57e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler return super.onTouchEvent(ev); 58e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler } 59e5f7ec0576a25abc7a9754c72d61d86a251347e2Daniel Sandler} 60