193812720aada547834dedf94eff95a380c0d431ePhil Plante & Ryan Richard/* 293812720aada547834dedf94eff95a380c0d431ePhil Plante & Ryan Richard * Portions of this code came from frameworks/base/core/java/android/view/ViewConfiguration.java, 393812720aada547834dedf94eff95a380c0d431ePhil Plante & Ryan Richard * which contains the following license text: 493812720aada547834dedf94eff95a380c0d431ePhil Plante & Ryan Richard * 593812720aada547834dedf94eff95a380c0d431ePhil Plante & Ryan Richard * Copyright (C) 2006 The Android Open Source Project 693812720aada547834dedf94eff95a380c0d431ePhil Plante & Ryan Richard * 793812720aada547834dedf94eff95a380c0d431ePhil Plante & Ryan Richard * Licensed under the Apache License, Version 2.0 (the "License"); 893812720aada547834dedf94eff95a380c0d431ePhil Plante & Ryan Richard * you may not use this file except in compliance with the License. 993812720aada547834dedf94eff95a380c0d431ePhil Plante & Ryan Richard * You may obtain a copy of the License at 1093812720aada547834dedf94eff95a380c0d431ePhil Plante & Ryan Richard * 1193812720aada547834dedf94eff95a380c0d431ePhil Plante & Ryan Richard * http://www.apache.org/licenses/LICENSE-2.0 1293812720aada547834dedf94eff95a380c0d431ePhil Plante & Ryan Richard * 1393812720aada547834dedf94eff95a380c0d431ePhil Plante & Ryan Richard * Unless required by applicable law or agreed to in writing, software 1493812720aada547834dedf94eff95a380c0d431ePhil Plante & Ryan Richard * distributed under the License is distributed on an "AS IS" BASIS, 1593812720aada547834dedf94eff95a380c0d431ePhil Plante & Ryan Richard * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1693812720aada547834dedf94eff95a380c0d431ePhil Plante & Ryan Richard * See the License for the specific language governing permissions and 1793812720aada547834dedf94eff95a380c0d431ePhil Plante & Ryan Richard * limitations under the License. 1893812720aada547834dedf94eff95a380c0d431ePhil Plante & Ryan Richard * 1993812720aada547834dedf94eff95a380c0d431ePhil Plante & Ryan Richard */ 2093812720aada547834dedf94eff95a380c0d431ePhil Plante & Ryan Richard 2149a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richardpackage com.xtremelabs.robolectric.shadows; 2249a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard 2349a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richardimport android.content.Context; 2449a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richardimport android.util.DisplayMetrics; 2549a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richardimport android.view.ViewConfiguration; 2649a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richardimport com.xtremelabs.robolectric.Robolectric; 2749a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richardimport com.xtremelabs.robolectric.internal.Implementation; 2849a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richardimport com.xtremelabs.robolectric.internal.Implements; 2949a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richardimport com.xtremelabs.robolectric.internal.RealObject; 3049a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard 3149a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richardimport static com.xtremelabs.robolectric.Robolectric.shadowOf; 3249a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard 3349a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard@SuppressWarnings({"UnusedDeclaration"}) 3449a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard@Implements(ViewConfiguration.class) 3549a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richardpublic class ShadowViewConfiguration { 3649a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard 3749a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard private static final int SCROLL_BAR_SIZE = 10; 3849a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard private static final int SCROLL_BAR_FADE_DURATION = 250; 3949a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard private static final int SCROLL_BAR_DEFAULT_DELAY = 300; 4049a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard private static final int FADING_EDGE_LENGTH = 12; 4149a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard private static final int PRESSED_STATE_DURATION = 125; 4249a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard private static final int LONG_PRESS_TIMEOUT = 500; 4349a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard private static final int GLOBAL_ACTIONS_KEY_TIMEOUT = 500; 4449a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard private static final int TAP_TIMEOUT = 115; 4549a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard private static final int JUMP_TAP_TIMEOUT = 500; 4649a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard private static final int DOUBLE_TAP_TIMEOUT = 300; 4749a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard private static final int ZOOM_CONTROLS_TIMEOUT = 3000; 4849a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard private static final int EDGE_SLOP = 12; 4949a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard private static final int TOUCH_SLOP = 16; 5049a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard private static final int PAGING_TOUCH_SLOP = TOUCH_SLOP * 2; 5149a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard private static final int DOUBLE_TAP_SLOP = 100; 5249a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard private static final int WINDOW_TOUCH_SLOP = 16; 5349a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard private static final int MINIMUM_FLING_VELOCITY = 50; 5449a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard private static final int MAXIMUM_FLING_VELOCITY = 4000; 5549a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard private static final int MAXIMUM_DRAWING_CACHE_SIZE = 320 * 480 * 4; 5649a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard private static float SCROLL_FRICTION = 0.015f; 5749a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard private static final int OVERSCROLL_DISTANCE = 0; 5849a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard private static final int OVERFLING_DISTANCE = 4; 5949a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard 6049a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard private int edgeSlop; 6149a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard private int fadingEdgeLength; 6249a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard private int minimumFlingVelocity; 6349a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard private int maximumFlingVelocity; 6449a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard private int scrollbarSize; 6549a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard private int touchSlop; 6649a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard private int pagingTouchSlop; 6749a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard private int doubleTapSlop; 6849a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard private int windowTouchSlop; 6949a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard 7049a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard @RealObject 7149a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard private ViewConfiguration realViewConfiguration; 7249a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard 7349a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard private void setup(Context context) { 7449a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard DisplayMetrics metrics = context.getResources().getDisplayMetrics(); 7549a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard float density = metrics.density; 7649a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard 7749a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard edgeSlop = (int) (density * EDGE_SLOP + 0.5f); 7849a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard fadingEdgeLength = (int) (density * FADING_EDGE_LENGTH + 0.5f); 7949a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard minimumFlingVelocity = (int) (density * MINIMUM_FLING_VELOCITY + 0.5f); 8049a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard maximumFlingVelocity = (int) (density * MAXIMUM_FLING_VELOCITY + 0.5f); 8149a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard scrollbarSize = (int) (density * SCROLL_BAR_SIZE + 0.5f); 8249a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard touchSlop = (int) (density * TOUCH_SLOP + 0.5f); 8349a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard pagingTouchSlop = (int) (density * PAGING_TOUCH_SLOP + 0.5f); 8449a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard doubleTapSlop = (int) (density * DOUBLE_TAP_SLOP + 0.5f); 8549a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard windowTouchSlop = (int) (density * WINDOW_TOUCH_SLOP + 0.5f); 8649a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard } 8749a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard 8849a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard @Implementation 8949a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard public static ViewConfiguration get(Context context) { 9049a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard ViewConfiguration viewConfiguration = Robolectric.newInstanceOf(ViewConfiguration.class); 9149a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard shadowOf(viewConfiguration).setup(context); 9249a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard return viewConfiguration; 9349a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard } 9449a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard 9549a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard @Implementation 9649a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard public static int getScrollBarSize() { 9749a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard return SCROLL_BAR_SIZE; 9849a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard } 9949a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard 10049a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard @Implementation 10149a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard public int getScaledScrollBarSize() { 10249a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard return scrollbarSize; 10349a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard } 10449a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard 10549a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard @Implementation 10649a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard public static int getScrollBarFadeDuration() { 10749a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard return SCROLL_BAR_FADE_DURATION; 10849a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard } 10949a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard 11049a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard @Implementation 11149a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard public static int getScrollDefaultDelay() { 11249a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard return SCROLL_BAR_DEFAULT_DELAY; 11349a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard } 11449a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard 11549a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard @Implementation 11649a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard public static int getFadingEdgeLength() { 11749a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard return FADING_EDGE_LENGTH; 11849a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard } 11949a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard 12049a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard @Implementation 12149a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard public int getScaledFadingEdgeLength() { 12249a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard return fadingEdgeLength; 12349a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard } 12449a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard 12549a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard @Implementation 12649a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard public static int getPressedStateDuration() { 12749a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard return PRESSED_STATE_DURATION; 12849a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard } 12949a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard 13049a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard @Implementation 13149a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard public static int getLongPressTimeout() { 13249a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard return LONG_PRESS_TIMEOUT; 13349a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard } 13449a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard 13549a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard @Implementation 13649a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard public static int getTapTimeout() { 13749a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard return TAP_TIMEOUT; 13849a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard } 13949a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard 14049a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard @Implementation 14149a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard public static int getJumpTapTimeout() { 14249a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard return JUMP_TAP_TIMEOUT; 14349a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard } 14449a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard 14549a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard @Implementation 14649a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard public static int getDoubleTapTimeout() { 14749a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard return DOUBLE_TAP_TIMEOUT; 14849a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard } 14949a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard 15049a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard @Implementation 15149a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard public static int getEdgeSlop() { 15249a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard return EDGE_SLOP; 15349a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard } 15449a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard 15549a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard @Implementation 15649a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard public int getScaledEdgeSlop() { 15749a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard return edgeSlop; 15849a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard } 15949a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard 16049a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard @Implementation 16149a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard public static int getTouchSlop() { 16249a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard return TOUCH_SLOP; 16349a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard } 16449a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard 16549a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard @Implementation 16649a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard public int getScaledTouchSlop() { 16749a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard return touchSlop; 16849a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard } 16949a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard 17049a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard @Implementation 17149a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard public int getScaledPagingTouchSlop() { 17249a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard return pagingTouchSlop; 17349a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard } 17449a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard 17549a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard @Implementation 17649a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard public int getScaledDoubleTapSlop() { 17749a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard return doubleTapSlop; 17849a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard } 17949a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard 18049a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard @Implementation 18149a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard public static int getWindowTouchSlop() { 18249a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard return WINDOW_TOUCH_SLOP; 18349a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard } 18449a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard 18549a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard @Implementation 18649a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard public int getScaledWindowTouchSlop() { 18749a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard return windowTouchSlop; 18849a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard } 18949a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard 19049a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard @Implementation 19149a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard public static int getMinimumFlingVelocity() { 19249a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard return MINIMUM_FLING_VELOCITY; 19349a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard } 19449a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard 19549a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard @Implementation 19649a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard public int getScaledMinimumFlingVelocity() { 19749a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard return minimumFlingVelocity; 19849a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard } 19949a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard 20049a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard @Implementation 20149a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard public static int getMaximumFlingVelocity() { 20249a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard return MAXIMUM_FLING_VELOCITY; 20349a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard } 20449a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard 20549a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard @Implementation 20649a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard public int getScaledMaximumFlingVelocity() { 20749a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard return maximumFlingVelocity; 20849a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard } 20949a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard 21049a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard @Implementation 21149a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard public static int getMaximumDrawingCacheSize() { 21249a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard return MAXIMUM_DRAWING_CACHE_SIZE; 21349a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard } 21449a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard 21549a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard @Implementation 21649a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard public static long getZoomControlsTimeout() { 21749a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard return ZOOM_CONTROLS_TIMEOUT; 21849a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard } 21949a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard 22049a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard @Implementation 22149a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard public static long getGlobalActionKeyTimeout() { 22249a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard return GLOBAL_ACTIONS_KEY_TIMEOUT; 22349a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard } 22449a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard 22549a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard @Implementation 22649a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard public static float getScrollFriction() { 22749a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard return SCROLL_FRICTION; 22849a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard } 22949a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard 23049a4cce94ec0c54e1e90dbe74bf5b028e7b9300bPhil Plante & Ryan Richard} 231