blob: 38be806e2043414be6ea1dc6b9241db18d968996 [file] [log] [blame]
/*
* Copyright (C) 2006 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package android.view;
/**
* Contains methods to standard constants used in the UI for timeouts, sizes, and distances.
*
*/
public class ViewConfiguration {
/**
* Defines the width of the horizontal scrollbar and the height of the vertical scrollbar in
* pixels
*/
private static final int SCROLL_BAR_SIZE = 6;
/**
* Defines the length of the fading edges in pixels
*/
private static final int FADING_EDGE_LENGTH = 12;
/**
* Defines the duration in milliseconds of the pressed state in child
* components.
*/
private static final int PRESSED_STATE_DURATION = 85;
/**
* Defines the duration in milliseconds before a press turns into
* a long press
*/
private static final int LONG_PRESS_TIMEOUT = 500;
/**
* Defines the duration in milliseconds we will wait to see if a touch event
* is a top or a scroll. If the user does not move within this interval, it is
* considered to be a tap.
*/
private static final int TAP_TIMEOUT = 100;
/**
* Defines the duration in milliseconds we will wait to see if a touch event
* is a jump tap. If the user does not complete the jump tap within this interval, it is
* considered to be a tap.
*/
private static final int JUMP_TAP_TIMEOUT = 500;
/**
* Defines the duration in milliseconds we want to display zoom controls in response
* to a user panning within an application.
*/
private static final int ZOOM_CONTROLS_TIMEOUT = 3000;
/**
* Defines the duration in milliseconds a user needs to hold down the
* appropriate button to bring up the global actions dialog (power off,
* lock screen, etc).
*/
private static final int GLOBAL_ACTIONS_KEY_TIMEOUT = 1000;
/**
* Inset in pixels to look for touchable content when the user touches the edge of the screen
*/
private static final int EDGE_SLOP = 12;
/**
* Distance a touch can wander before we think the user is scrolling in pixels
*/
private static final int TOUCH_SLOP = 12;
/**
* Distance a touch needs to be outside of a window's bounds for it to
* count as outside for purposes of dismissing the window.
*/
private static final int WINDOW_TOUCH_SLOP = 16;
/**
* Minimum velocity to initiate a fling, as measured in pixels per second
*/
private static final int MINIMUM_FLING_VELOCITY = 50;
/**
* The maximum size of View's drawing cache, expressed in bytes. This size
* should be at least equal to the size of the screen in ARGB888 format.
*/
private static final int MAXIMUM_DRAWING_CACHE_SIZE = 320 * 480 * 4; // One HVGA screen, ARGB8888
/**
* The coefficient of friction applied to flings/scrolls.
*/
private static float SCROLL_FRICTION = 0.015f;
/**
* @return The width of the horizontal scrollbar and the height of the vertical
* scrollbar in pixels
*/
public static int getScrollBarSize() {
return SCROLL_BAR_SIZE;
}
/**
* @return Defines the length of the fading edges in pixels
*/
public static int getFadingEdgeLength() {
return FADING_EDGE_LENGTH;
}
/**
* @return Defines the duration in milliseconds of the pressed state in child
* components.
*/
public static int getPressedStateDuration() {
return PRESSED_STATE_DURATION;
}
/**
* @return Defines the duration in milliseconds before a press turns into
* a long press
*/
public static int getLongPressTimeout() {
return LONG_PRESS_TIMEOUT;
}
/**
* @return Defines the duration in milliseconds we will wait to see if a touch event
* is a top or a scroll. If the user does not move within this interval, it is
* considered to be a tap.
*/
public static int getTapTimeout() {
return TAP_TIMEOUT;
}
/**
* @return Defines the duration in milliseconds we will wait to see if a touch event
* is a jump tap. If the user does not move within this interval, it is
* considered to be a tap.
*/
public static int getJumpTapTimeout() {
return JUMP_TAP_TIMEOUT;
}
/**
* @return Inset in pixels to look for touchable content when the user touches the edge of the
* screen
*/
public static int getEdgeSlop() {
return EDGE_SLOP;
}
/**
* @return Distance a touch can wander before we think the user is scrolling in pixels
*/
public static int getTouchSlop() {
return TOUCH_SLOP;
}
/**
* @return Distance a touch must be outside the bounds of a window for it
* to be counted as outside the window for purposes of dismissing that
* window.
*/
public static int getWindowTouchSlop() {
return WINDOW_TOUCH_SLOP;
}
/**
* Minimum velocity to initiate a fling, as measured in pixels per second
*/
public static int getMinimumFlingVelocity() {
return MINIMUM_FLING_VELOCITY;
}
/**
* The maximum drawing cache size expressed in bytes.
*
* @return the maximum size of View's drawing cache expressed in bytes
*/
public static int getMaximumDrawingCacheSize() {
return MAXIMUM_DRAWING_CACHE_SIZE;
}
/**
* The amount of time that the zoom controls should be
* displayed on the screen expressed in milliseconds.
*
* @return the time the zoom controls should be visible expressed
* in milliseconds.
*/
public static long getZoomControlsTimeout() {
return ZOOM_CONTROLS_TIMEOUT;
}
/**
* The amount of time a user needs to press the relevant key to bring up
* the global actions dialog.
*
* @return how long a user needs to press the relevant key to bring up
* the global actions dialog.
*/
public static long getGlobalActionKeyTimeout() {
return GLOBAL_ACTIONS_KEY_TIMEOUT;
}
/**
* The amount of friction applied to scrolls and flings.
*
* @return A scalar dimensionless value representing the coefficient of
* friction.
*/
public static float getScrollFriction() {
return SCROLL_FRICTION;
}
}