Loading api/current.xml +568 −44 Original line number Diff line number Diff line Loading @@ -5894,39 +5894,6 @@ visibility="public" > </field> <field name="kraken_resource_pad62" type="int" transient="false" volatile="false" value="16843459" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="kraken_resource_pad63" type="int" transient="false" volatile="false" value="16843458" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="kraken_resource_pad64" type="int" transient="false" volatile="false" value="16843457" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="kraken_resource_pad7" type="int" transient="false" Loading Loading @@ -7016,6 +6983,39 @@ visibility="public" > </field> <field name="overscrollFooter" type="int" transient="false" volatile="false" value="16843459" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="overscrollHeader" type="int" transient="false" volatile="false" value="16843458" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="overscrollMode" type="int" transient="false" volatile="false" value="16843457" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="padding" type="int" transient="false" Loading Loading @@ -44982,6 +44982,17 @@ deprecated="not deprecated" visibility="public" > <method name="apply" return="void" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="clear" return="android.content.SharedPreferences.Editor" abstract="true" Loading Loading @@ -45092,17 +45103,6 @@ <parameter name="key" type="java.lang.String"> </parameter> </method> <method name="apply" return="void" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> </interface> <interface name="SharedPreferences.OnSharedPreferenceChangeListener" abstract="true" Loading Loading @@ -185826,6 +185826,17 @@ visibility="public" > </method> <method name="getOverscrollMode" return="int" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="getPaddingBottom" return="int" abstract="false" Loading Loading @@ -186966,6 +186977,25 @@ <parameter name="heightMeasureSpec" type="int"> </parameter> </method> <method name="onOverscrolled" return="void" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="protected" > <parameter name="scrollX" type="int"> </parameter> <parameter name="scrollY" type="int"> </parameter> <parameter name="clampedX" type="boolean"> </parameter> <parameter name="clampedY" type="boolean"> </parameter> </method> <method name="onRestoreInstanceState" return="void" abstract="false" Loading Loading @@ -187119,6 +187149,35 @@ <parameter name="visibility" type="int"> </parameter> </method> <method name="overscrollBy" return="boolean" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="protected" > <parameter name="deltaX" type="int"> </parameter> <parameter name="deltaY" type="int"> </parameter> <parameter name="scrollX" type="int"> </parameter> <parameter name="scrollY" type="int"> </parameter> <parameter name="scrollRangeX" type="int"> </parameter> <parameter name="scrollRangeY" type="int"> </parameter> <parameter name="maxOverscrollX" type="int"> </parameter> <parameter name="maxOverscrollY" type="int"> </parameter> <parameter name="isTouchEvent" type="boolean"> </parameter> </method> <method name="performClick" return="boolean" abstract="false" Loading Loading @@ -187945,6 +188004,19 @@ <parameter name="l" type="android.view.View.OnTouchListener"> </parameter> </method> <method name="setOverscrollMode" return="void" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="overscrollMode" type="int"> </parameter> </method> <method name="setPadding" return="void" abstract="false" Loading Loading @@ -188567,6 +188639,39 @@ visibility="public" > </field> <field name="OVERSCROLL_ALWAYS" type="int" transient="false" volatile="false" value="0" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="OVERSCROLL_IF_CONTENT_SCROLLS" type="int" transient="false" volatile="false" value="1" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="OVERSCROLL_NEVER" type="int" transient="false" volatile="false" value="2" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="PRESSED_ENABLED_FOCUSED_SELECTED_STATE_SET" type="int[]" transient="false" Loading Loading @@ -189329,6 +189434,28 @@ visibility="public" > </method> <method name="getScaledOverflingDistance" return="int" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="getScaledOverscrollDistance" return="int" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="getScaledPagingTouchSlop" return="int" abstract="false" Loading Loading @@ -203521,6 +203648,17 @@ visibility="public" > </method> <method name="getUseWebViewBackgroundForOverscrollBackground" return="boolean" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="getUseWideViewPort" return="boolean" abstract="false" Loading Loading @@ -204113,6 +204251,19 @@ <parameter name="use" type="boolean"> </parameter> </method> <method name="setUseWebViewBackgroundForOverscrollBackground" return="void" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="view" type="boolean"> </parameter> </method> <method name="setUseWideViewPort" return="void" abstract="false" Loading Loading @@ -214749,6 +214900,28 @@ visibility="public" > </method> <method name="getOverscrollFooter" return="android.graphics.drawable.Drawable" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="getOverscrollHeader" return="android.graphics.drawable.Drawable" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="isItemChecked" return="boolean" abstract="false" Loading Loading @@ -214894,6 +215067,32 @@ <parameter name="itemsCanFocus" type="boolean"> </parameter> </method> <method name="setOverscrollFooter" return="void" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="footer" type="android.graphics.drawable.Drawable"> </parameter> </method> <method name="setOverscrollHeader" return="void" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="header" type="android.graphics.drawable.Drawable"> </parameter> </method> <method name="setSelection" return="void" abstract="false" Loading Loading @@ -215465,6 +215664,331 @@ </parameter> </method> </interface> <class name="OverScroller" extends="java.lang.Object" abstract="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <constructor name="OverScroller" type="android.widget.OverScroller" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="context" type="android.content.Context"> </parameter> </constructor> <constructor name="OverScroller" type="android.widget.OverScroller" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="context" type="android.content.Context"> </parameter> <parameter name="interpolator" type="android.view.animation.Interpolator"> </parameter> </constructor> <constructor name="OverScroller" type="android.widget.OverScroller" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="context" type="android.content.Context"> </parameter> <parameter name="interpolator" type="android.view.animation.Interpolator"> </parameter> <parameter name="bounceCoefficientX" type="float"> </parameter> <parameter name="bounceCoefficientY" type="float"> </parameter> </constructor> <method name="abortAnimation" return="void" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="computeScrollOffset" return="boolean" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="fling" return="void" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="startX" type="int"> </parameter> <parameter name="startY" type="int"> </parameter> <parameter name="velocityX" type="int"> </parameter> <parameter name="velocityY" type="int"> </parameter> <parameter name="minX" type="int"> </parameter> <parameter name="maxX" type="int"> </parameter> <parameter name="minY" type="int"> </parameter> <parameter name="maxY" type="int"> </parameter> </method> <method name="fling" return="void" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="startX" type="int"> </parameter> <parameter name="startY" type="int"> </parameter> <parameter name="velocityX" type="int"> </parameter> <parameter name="velocityY" type="int"> </parameter> <parameter name="minX" type="int"> </parameter> <parameter name="maxX" type="int"> </parameter> <parameter name="minY" type="int"> </parameter> <parameter name="maxY" type="int"> </parameter> <parameter name="overX" type="int"> </parameter> <parameter name="overY" type="int"> </parameter> </method> <method name="forceFinished" return="void" abstract="false" native="false" synchronized="false" static="false" final="true" deprecated="not deprecated" visibility="public" > <parameter name="finished" type="boolean"> </parameter> </method> <method name="getCurrX" return="int" abstract="false" native="false" synchronized="false" static="false" final="true" deprecated="not deprecated" visibility="public" > </method> <method name="getCurrY" return="int" abstract="false" native="false" synchronized="false" static="false" final="true" deprecated="not deprecated" visibility="public" > </method> <method name="getFinalX" return="int" abstract="false" native="false" synchronized="false" static="false" final="true" deprecated="not deprecated" visibility="public" > </method> <method name="getFinalY" return="int" abstract="false" native="false" synchronized="false" static="false" final="true" deprecated="not deprecated" visibility="public" > </method> <method name="getStartX" return="int" abstract="false" native="false" synchronized="false" static="false" final="true" deprecated="not deprecated" visibility="public" > </method> <method name="getStartY" return="int" abstract="false" native="false" synchronized="false" static="false" final="true" deprecated="not deprecated" visibility="public" > </method> <method name="isFinished" return="boolean" abstract="false" native="false" synchronized="false" static="false" final="true" deprecated="not deprecated" visibility="public" > </method> <method name="isOverscrolled" return="boolean" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="notifyHorizontalEdgeReached" return="void" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="startX" type="int"> </parameter> <parameter name="finalX" type="int"> </parameter> <parameter name="overX" type="int"> </parameter> </method> <method name="notifyVerticalEdgeReached" return="void" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="startY" type="int"> </parameter> <parameter name="finalY" type="int"> </parameter> <parameter name="overY" type="int"> </parameter> </method> <method name="springback" return="boolean" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="startX" type="int"> </parameter> <parameter name="startY" type="int"> </parameter> <parameter name="minX" type="int"> </parameter> <parameter name="maxX" type="int"> </parameter> <parameter name="minY" type="int"> </parameter> <parameter name="maxY" type="int"> </parameter> </method> <method name="startScroll" return="void" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="startX" type="int"> </parameter> <parameter name="startY" type="int"> </parameter> <parameter name="dx" type="int"> </parameter> <parameter name="dy" type="int"> </parameter> </method> <method name="startScroll" return="void" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="startX" type="int"> </parameter> <parameter name="startY" type="int"> </parameter> <parameter name="dx" type="int"> </parameter> <parameter name="dy" type="int"> </parameter> <parameter name="duration" type="int"> </parameter> </method> </class> <class name="PopupWindow" extends="java.lang.Object" abstract="false" core/java/android/view/View.java +162 −0 Original line number Diff line number Diff line Loading @@ -1520,6 +1520,40 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility */ private static final int AWAKEN_SCROLL_BARS_ON_ATTACH = 0x08000000; /** * Always allow a user to overscroll this view, provided it is a * view that can scroll. * * @see #getOverscrollMode() * @see #setOverscrollMode(int) */ public static final int OVERSCROLL_ALWAYS = 0; /** * Allow a user to overscroll this view only if the content is large * enough to meaningfully scroll, provided it is a view that can scroll. * * @see #getOverscrollMode() * @see #setOverscrollMode(int) */ public static final int OVERSCROLL_IF_CONTENT_SCROLLS = 1; /** * Never allow a user to overscroll this view. * * @see #getOverscrollMode() * @see #setOverscrollMode(int) */ public static final int OVERSCROLL_NEVER = 2; /** * Controls the overscroll mode for this view. * See {@link #overscrollBy(int, int, int, int, int, int, int, int, boolean)}, * {@link #OVERSCROLL_ALWAYS}, {@link #OVERSCROLL_IF_CONTENT_SCROLLS}, * and {@link #OVERSCROLL_NEVER}. */ private int mOverscrollMode = OVERSCROLL_ALWAYS; /** * The parent this view is attached to. * {@hide} Loading Loading @@ -1877,6 +1911,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility int scrollbarStyle = SCROLLBARS_INSIDE_OVERLAY; int overscrollMode = mOverscrollMode; final int N = a.getIndexCount(); for (int i = 0; i < N; i++) { int attr = a.getIndex(i); Loading Loading @@ -2076,9 +2111,14 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility }); } break; case R.styleable.View_overscrollMode: overscrollMode = a.getInt(attr, OVERSCROLL_ALWAYS); break; } } setOverscrollMode(overscrollMode); if (background != null) { setBackgroundDrawable(background); } Loading Loading @@ -8680,6 +8720,128 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility return factory.inflate(resource, root); } /** * Scroll the view with standard behavior for scrolling beyond the normal * content boundaries. Views that call this method should override * {@link #onOverscrolled(int, int, boolean, boolean)} to respond to the * results of an overscroll operation. * * Views can use this method to handle any touch or fling-based scrolling. * * @param deltaX Change in X in pixels * @param deltaY Change in Y in pixels * @param scrollX Current X scroll value in pixels before applying deltaX * @param scrollY Current Y scroll value in pixels before applying deltaY * @param scrollRangeX Maximum content scroll range along the X axis * @param scrollRangeY Maximum content scroll range along the Y axis * @param maxOverscrollX Number of pixels to overscroll by in either direction * along the X axis. * @param maxOverscrollY Number of pixels to overscroll by in either direction * along the Y axis. * @param isTouchEvent true if this scroll operation is the result of a touch event. * @return true if scrolling was clamped to an overscroll boundary along either * axis, false otherwise. */ protected boolean overscrollBy(int deltaX, int deltaY, int scrollX, int scrollY, int scrollRangeX, int scrollRangeY, int maxOverscrollX, int maxOverscrollY, boolean isTouchEvent) { final int overscrollMode = mOverscrollMode; final boolean canScrollHorizontal = computeHorizontalScrollRange() > computeHorizontalScrollExtent(); final boolean canScrollVertical = computeVerticalScrollRange() > computeVerticalScrollExtent(); final boolean overscrollHorizontal = overscrollMode == OVERSCROLL_ALWAYS || (overscrollMode == OVERSCROLL_IF_CONTENT_SCROLLS && canScrollHorizontal); final boolean overscrollVertical = overscrollMode == OVERSCROLL_ALWAYS || (overscrollMode == OVERSCROLL_IF_CONTENT_SCROLLS && canScrollVertical); int newScrollX = scrollX + deltaX; if (!overscrollHorizontal) { maxOverscrollX = 0; } int newScrollY = scrollY + deltaY; if (!overscrollVertical) { maxOverscrollY = 0; } // Clamp values if at the limits and record final int left = -maxOverscrollX; final int right = maxOverscrollX + scrollRangeX; final int top = -maxOverscrollY; final int bottom = maxOverscrollY + scrollRangeY; boolean clampedX = false; if (newScrollX > right) { newScrollX = right; clampedX = true; } else if (newScrollX < left) { newScrollX = left; clampedX = true; } boolean clampedY = false; if (newScrollY > bottom) { newScrollY = bottom; clampedY = true; } else if (newScrollY < top) { newScrollY = top; clampedY = true; } onOverscrolled(newScrollX, newScrollY, clampedX, clampedY); return clampedX || clampedY; } /** * Called by {@link #overscrollBy(int, int, int, int, int, int, int, int, boolean)} to * respond to the results of an overscroll operation. * * @param scrollX New X scroll value in pixels * @param scrollY New Y scroll value in pixels * @param clampedX True if scrollX was clamped to an overscroll boundary * @param clampedY True if scrollY was clamped to an overscroll boundary */ protected void onOverscrolled(int scrollX, int scrollY, boolean clampedX, boolean clampedY) { // Intentionally empty. } /** * Returns the overscroll mode for this view. The result will be * one of {@link #OVERSCROLL_ALWAYS} (default), {@link #OVERSCROLL_IF_CONTENT_SCROLLS} * (allow overscrolling only if the view content is larger than the container), * or {@link #OVERSCROLL_NEVER}. * * @return This view's overscroll mode. */ public int getOverscrollMode() { return mOverscrollMode; } /** * Set the overscroll mode for this view. Valid overscroll modes are * {@link #OVERSCROLL_ALWAYS} (default), {@link #OVERSCROLL_IF_CONTENT_SCROLLS} * (allow overscrolling only if the view content is larger than the container), * or {@link #OVERSCROLL_NEVER}. * * Setting the overscroll mode of a view will have an effect only if the * view is capable of scrolling. * * @param overscrollMode The new overscroll mode for this view. */ public void setOverscrollMode(int overscrollMode) { if (overscrollMode != OVERSCROLL_ALWAYS && overscrollMode != OVERSCROLL_IF_CONTENT_SCROLLS && overscrollMode != OVERSCROLL_NEVER) { throw new IllegalArgumentException("Invalid overscroll mode " + overscrollMode); } mOverscrollMode = overscrollMode; } /** * A MeasureSpec encapsulates the layout requirements passed from parent to child. * Each MeasureSpec represents a requirement for either the width or the height. Loading core/java/android/view/ViewConfiguration.java +31 −0 Original line number Diff line number Diff line Loading @@ -140,6 +140,16 @@ public class ViewConfiguration { */ private static float SCROLL_FRICTION = 0.015f; /** * Max distance to overscroll for edge effects */ private static final int OVERSCROLL_DISTANCE = 4; /** * Max distance to overfling for edge effects */ private static final int OVERFLING_DISTANCE = 8; private final int mEdgeSlop; private final int mFadingEdgeLength; private final int mMinimumFlingVelocity; Loading @@ -150,6 +160,8 @@ public class ViewConfiguration { private final int mDoubleTapSlop; private final int mWindowTouchSlop; private final int mMaximumDrawingCacheSize; private final int mOverscrollDistance; private final int mOverflingDistance; private static final SparseArray<ViewConfiguration> sConfigurations = new SparseArray<ViewConfiguration>(2); Loading @@ -170,6 +182,8 @@ public class ViewConfiguration { mWindowTouchSlop = WINDOW_TOUCH_SLOP; //noinspection deprecation mMaximumDrawingCacheSize = MAXIMUM_DRAWING_CACHE_SIZE; mOverscrollDistance = OVERSCROLL_DISTANCE; mOverflingDistance = OVERFLING_DISTANCE; } /** Loading Loading @@ -198,6 +212,9 @@ public class ViewConfiguration { // Size of the screen in bytes, in ARGB_8888 format mMaximumDrawingCacheSize = 4 * metrics.widthPixels * metrics.heightPixels; mOverscrollDistance = (int) (density * OVERSCROLL_DISTANCE + 0.5f); mOverflingDistance = (int) (density * OVERFLING_DISTANCE + 0.5f); } /** Loading Loading @@ -454,6 +471,20 @@ public class ViewConfiguration { return mMaximumDrawingCacheSize; } /** * @return The maximum distance a View should overscroll by when showing edge effects. */ public int getScaledOverscrollDistance() { return mOverscrollDistance; } /** * @return The maximum distance a View should overfling by when showing edge effects. */ public int getScaledOverflingDistance() { return mOverflingDistance; } /** * The amount of time that the zoom controls should be * displayed on the screen expressed in milliseconds. Loading core/java/android/webkit/WebSettings.java +18 −0 Original line number Diff line number Diff line Loading @@ -207,6 +207,7 @@ public class WebSettings { private boolean mBuiltInZoomControls = false; private boolean mAllowFileAccess = true; private boolean mLoadWithOverviewMode = false; private boolean mUseWebViewBackgroundOverscrollBackground = true; // private WebSettings, not accessible by the host activity static private int mDoubleTapToastCount = 3; Loading Loading @@ -484,6 +485,23 @@ public class WebSettings { return mLoadWithOverviewMode; } /** * Set whether the WebView uses its background for over scroll background. * If true, it will use the WebView's background. If false, it will use an * internal pattern. Default is true. */ public void setUseWebViewBackgroundForOverscrollBackground(boolean view) { mUseWebViewBackgroundOverscrollBackground = view; } /** * Returns true if this WebView uses WebView's background instead of * internal pattern for over scroll background. */ public boolean getUseWebViewBackgroundForOverscrollBackground() { return mUseWebViewBackgroundOverscrollBackground; } /** * Store whether the WebView is saving form data. */ Loading core/java/android/webkit/WebView.java +150 −43 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
api/current.xml +568 −44 Original line number Diff line number Diff line Loading @@ -5894,39 +5894,6 @@ visibility="public" > </field> <field name="kraken_resource_pad62" type="int" transient="false" volatile="false" value="16843459" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="kraken_resource_pad63" type="int" transient="false" volatile="false" value="16843458" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="kraken_resource_pad64" type="int" transient="false" volatile="false" value="16843457" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="kraken_resource_pad7" type="int" transient="false" Loading Loading @@ -7016,6 +6983,39 @@ visibility="public" > </field> <field name="overscrollFooter" type="int" transient="false" volatile="false" value="16843459" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="overscrollHeader" type="int" transient="false" volatile="false" value="16843458" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="overscrollMode" type="int" transient="false" volatile="false" value="16843457" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="padding" type="int" transient="false" Loading Loading @@ -44982,6 +44982,17 @@ deprecated="not deprecated" visibility="public" > <method name="apply" return="void" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="clear" return="android.content.SharedPreferences.Editor" abstract="true" Loading Loading @@ -45092,17 +45103,6 @@ <parameter name="key" type="java.lang.String"> </parameter> </method> <method name="apply" return="void" abstract="true" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> </interface> <interface name="SharedPreferences.OnSharedPreferenceChangeListener" abstract="true" Loading Loading @@ -185826,6 +185826,17 @@ visibility="public" > </method> <method name="getOverscrollMode" return="int" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="getPaddingBottom" return="int" abstract="false" Loading Loading @@ -186966,6 +186977,25 @@ <parameter name="heightMeasureSpec" type="int"> </parameter> </method> <method name="onOverscrolled" return="void" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="protected" > <parameter name="scrollX" type="int"> </parameter> <parameter name="scrollY" type="int"> </parameter> <parameter name="clampedX" type="boolean"> </parameter> <parameter name="clampedY" type="boolean"> </parameter> </method> <method name="onRestoreInstanceState" return="void" abstract="false" Loading Loading @@ -187119,6 +187149,35 @@ <parameter name="visibility" type="int"> </parameter> </method> <method name="overscrollBy" return="boolean" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="protected" > <parameter name="deltaX" type="int"> </parameter> <parameter name="deltaY" type="int"> </parameter> <parameter name="scrollX" type="int"> </parameter> <parameter name="scrollY" type="int"> </parameter> <parameter name="scrollRangeX" type="int"> </parameter> <parameter name="scrollRangeY" type="int"> </parameter> <parameter name="maxOverscrollX" type="int"> </parameter> <parameter name="maxOverscrollY" type="int"> </parameter> <parameter name="isTouchEvent" type="boolean"> </parameter> </method> <method name="performClick" return="boolean" abstract="false" Loading Loading @@ -187945,6 +188004,19 @@ <parameter name="l" type="android.view.View.OnTouchListener"> </parameter> </method> <method name="setOverscrollMode" return="void" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="overscrollMode" type="int"> </parameter> </method> <method name="setPadding" return="void" abstract="false" Loading Loading @@ -188567,6 +188639,39 @@ visibility="public" > </field> <field name="OVERSCROLL_ALWAYS" type="int" transient="false" volatile="false" value="0" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="OVERSCROLL_IF_CONTENT_SCROLLS" type="int" transient="false" volatile="false" value="1" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="OVERSCROLL_NEVER" type="int" transient="false" volatile="false" value="2" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="PRESSED_ENABLED_FOCUSED_SELECTED_STATE_SET" type="int[]" transient="false" Loading Loading @@ -189329,6 +189434,28 @@ visibility="public" > </method> <method name="getScaledOverflingDistance" return="int" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="getScaledOverscrollDistance" return="int" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="getScaledPagingTouchSlop" return="int" abstract="false" Loading Loading @@ -203521,6 +203648,17 @@ visibility="public" > </method> <method name="getUseWebViewBackgroundForOverscrollBackground" return="boolean" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="getUseWideViewPort" return="boolean" abstract="false" Loading Loading @@ -204113,6 +204251,19 @@ <parameter name="use" type="boolean"> </parameter> </method> <method name="setUseWebViewBackgroundForOverscrollBackground" return="void" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="view" type="boolean"> </parameter> </method> <method name="setUseWideViewPort" return="void" abstract="false" Loading Loading @@ -214749,6 +214900,28 @@ visibility="public" > </method> <method name="getOverscrollFooter" return="android.graphics.drawable.Drawable" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="getOverscrollHeader" return="android.graphics.drawable.Drawable" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="isItemChecked" return="boolean" abstract="false" Loading Loading @@ -214894,6 +215067,32 @@ <parameter name="itemsCanFocus" type="boolean"> </parameter> </method> <method name="setOverscrollFooter" return="void" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="footer" type="android.graphics.drawable.Drawable"> </parameter> </method> <method name="setOverscrollHeader" return="void" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="header" type="android.graphics.drawable.Drawable"> </parameter> </method> <method name="setSelection" return="void" abstract="false" Loading Loading @@ -215465,6 +215664,331 @@ </parameter> </method> </interface> <class name="OverScroller" extends="java.lang.Object" abstract="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <constructor name="OverScroller" type="android.widget.OverScroller" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="context" type="android.content.Context"> </parameter> </constructor> <constructor name="OverScroller" type="android.widget.OverScroller" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="context" type="android.content.Context"> </parameter> <parameter name="interpolator" type="android.view.animation.Interpolator"> </parameter> </constructor> <constructor name="OverScroller" type="android.widget.OverScroller" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="context" type="android.content.Context"> </parameter> <parameter name="interpolator" type="android.view.animation.Interpolator"> </parameter> <parameter name="bounceCoefficientX" type="float"> </parameter> <parameter name="bounceCoefficientY" type="float"> </parameter> </constructor> <method name="abortAnimation" return="void" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="computeScrollOffset" return="boolean" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="fling" return="void" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="startX" type="int"> </parameter> <parameter name="startY" type="int"> </parameter> <parameter name="velocityX" type="int"> </parameter> <parameter name="velocityY" type="int"> </parameter> <parameter name="minX" type="int"> </parameter> <parameter name="maxX" type="int"> </parameter> <parameter name="minY" type="int"> </parameter> <parameter name="maxY" type="int"> </parameter> </method> <method name="fling" return="void" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="startX" type="int"> </parameter> <parameter name="startY" type="int"> </parameter> <parameter name="velocityX" type="int"> </parameter> <parameter name="velocityY" type="int"> </parameter> <parameter name="minX" type="int"> </parameter> <parameter name="maxX" type="int"> </parameter> <parameter name="minY" type="int"> </parameter> <parameter name="maxY" type="int"> </parameter> <parameter name="overX" type="int"> </parameter> <parameter name="overY" type="int"> </parameter> </method> <method name="forceFinished" return="void" abstract="false" native="false" synchronized="false" static="false" final="true" deprecated="not deprecated" visibility="public" > <parameter name="finished" type="boolean"> </parameter> </method> <method name="getCurrX" return="int" abstract="false" native="false" synchronized="false" static="false" final="true" deprecated="not deprecated" visibility="public" > </method> <method name="getCurrY" return="int" abstract="false" native="false" synchronized="false" static="false" final="true" deprecated="not deprecated" visibility="public" > </method> <method name="getFinalX" return="int" abstract="false" native="false" synchronized="false" static="false" final="true" deprecated="not deprecated" visibility="public" > </method> <method name="getFinalY" return="int" abstract="false" native="false" synchronized="false" static="false" final="true" deprecated="not deprecated" visibility="public" > </method> <method name="getStartX" return="int" abstract="false" native="false" synchronized="false" static="false" final="true" deprecated="not deprecated" visibility="public" > </method> <method name="getStartY" return="int" abstract="false" native="false" synchronized="false" static="false" final="true" deprecated="not deprecated" visibility="public" > </method> <method name="isFinished" return="boolean" abstract="false" native="false" synchronized="false" static="false" final="true" deprecated="not deprecated" visibility="public" > </method> <method name="isOverscrolled" return="boolean" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="notifyHorizontalEdgeReached" return="void" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="startX" type="int"> </parameter> <parameter name="finalX" type="int"> </parameter> <parameter name="overX" type="int"> </parameter> </method> <method name="notifyVerticalEdgeReached" return="void" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="startY" type="int"> </parameter> <parameter name="finalY" type="int"> </parameter> <parameter name="overY" type="int"> </parameter> </method> <method name="springback" return="boolean" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="startX" type="int"> </parameter> <parameter name="startY" type="int"> </parameter> <parameter name="minX" type="int"> </parameter> <parameter name="maxX" type="int"> </parameter> <parameter name="minY" type="int"> </parameter> <parameter name="maxY" type="int"> </parameter> </method> <method name="startScroll" return="void" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="startX" type="int"> </parameter> <parameter name="startY" type="int"> </parameter> <parameter name="dx" type="int"> </parameter> <parameter name="dy" type="int"> </parameter> </method> <method name="startScroll" return="void" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="startX" type="int"> </parameter> <parameter name="startY" type="int"> </parameter> <parameter name="dx" type="int"> </parameter> <parameter name="dy" type="int"> </parameter> <parameter name="duration" type="int"> </parameter> </method> </class> <class name="PopupWindow" extends="java.lang.Object" abstract="false"
core/java/android/view/View.java +162 −0 Original line number Diff line number Diff line Loading @@ -1520,6 +1520,40 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility */ private static final int AWAKEN_SCROLL_BARS_ON_ATTACH = 0x08000000; /** * Always allow a user to overscroll this view, provided it is a * view that can scroll. * * @see #getOverscrollMode() * @see #setOverscrollMode(int) */ public static final int OVERSCROLL_ALWAYS = 0; /** * Allow a user to overscroll this view only if the content is large * enough to meaningfully scroll, provided it is a view that can scroll. * * @see #getOverscrollMode() * @see #setOverscrollMode(int) */ public static final int OVERSCROLL_IF_CONTENT_SCROLLS = 1; /** * Never allow a user to overscroll this view. * * @see #getOverscrollMode() * @see #setOverscrollMode(int) */ public static final int OVERSCROLL_NEVER = 2; /** * Controls the overscroll mode for this view. * See {@link #overscrollBy(int, int, int, int, int, int, int, int, boolean)}, * {@link #OVERSCROLL_ALWAYS}, {@link #OVERSCROLL_IF_CONTENT_SCROLLS}, * and {@link #OVERSCROLL_NEVER}. */ private int mOverscrollMode = OVERSCROLL_ALWAYS; /** * The parent this view is attached to. * {@hide} Loading Loading @@ -1877,6 +1911,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility int scrollbarStyle = SCROLLBARS_INSIDE_OVERLAY; int overscrollMode = mOverscrollMode; final int N = a.getIndexCount(); for (int i = 0; i < N; i++) { int attr = a.getIndex(i); Loading Loading @@ -2076,9 +2111,14 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility }); } break; case R.styleable.View_overscrollMode: overscrollMode = a.getInt(attr, OVERSCROLL_ALWAYS); break; } } setOverscrollMode(overscrollMode); if (background != null) { setBackgroundDrawable(background); } Loading Loading @@ -8680,6 +8720,128 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility return factory.inflate(resource, root); } /** * Scroll the view with standard behavior for scrolling beyond the normal * content boundaries. Views that call this method should override * {@link #onOverscrolled(int, int, boolean, boolean)} to respond to the * results of an overscroll operation. * * Views can use this method to handle any touch or fling-based scrolling. * * @param deltaX Change in X in pixels * @param deltaY Change in Y in pixels * @param scrollX Current X scroll value in pixels before applying deltaX * @param scrollY Current Y scroll value in pixels before applying deltaY * @param scrollRangeX Maximum content scroll range along the X axis * @param scrollRangeY Maximum content scroll range along the Y axis * @param maxOverscrollX Number of pixels to overscroll by in either direction * along the X axis. * @param maxOverscrollY Number of pixels to overscroll by in either direction * along the Y axis. * @param isTouchEvent true if this scroll operation is the result of a touch event. * @return true if scrolling was clamped to an overscroll boundary along either * axis, false otherwise. */ protected boolean overscrollBy(int deltaX, int deltaY, int scrollX, int scrollY, int scrollRangeX, int scrollRangeY, int maxOverscrollX, int maxOverscrollY, boolean isTouchEvent) { final int overscrollMode = mOverscrollMode; final boolean canScrollHorizontal = computeHorizontalScrollRange() > computeHorizontalScrollExtent(); final boolean canScrollVertical = computeVerticalScrollRange() > computeVerticalScrollExtent(); final boolean overscrollHorizontal = overscrollMode == OVERSCROLL_ALWAYS || (overscrollMode == OVERSCROLL_IF_CONTENT_SCROLLS && canScrollHorizontal); final boolean overscrollVertical = overscrollMode == OVERSCROLL_ALWAYS || (overscrollMode == OVERSCROLL_IF_CONTENT_SCROLLS && canScrollVertical); int newScrollX = scrollX + deltaX; if (!overscrollHorizontal) { maxOverscrollX = 0; } int newScrollY = scrollY + deltaY; if (!overscrollVertical) { maxOverscrollY = 0; } // Clamp values if at the limits and record final int left = -maxOverscrollX; final int right = maxOverscrollX + scrollRangeX; final int top = -maxOverscrollY; final int bottom = maxOverscrollY + scrollRangeY; boolean clampedX = false; if (newScrollX > right) { newScrollX = right; clampedX = true; } else if (newScrollX < left) { newScrollX = left; clampedX = true; } boolean clampedY = false; if (newScrollY > bottom) { newScrollY = bottom; clampedY = true; } else if (newScrollY < top) { newScrollY = top; clampedY = true; } onOverscrolled(newScrollX, newScrollY, clampedX, clampedY); return clampedX || clampedY; } /** * Called by {@link #overscrollBy(int, int, int, int, int, int, int, int, boolean)} to * respond to the results of an overscroll operation. * * @param scrollX New X scroll value in pixels * @param scrollY New Y scroll value in pixels * @param clampedX True if scrollX was clamped to an overscroll boundary * @param clampedY True if scrollY was clamped to an overscroll boundary */ protected void onOverscrolled(int scrollX, int scrollY, boolean clampedX, boolean clampedY) { // Intentionally empty. } /** * Returns the overscroll mode for this view. The result will be * one of {@link #OVERSCROLL_ALWAYS} (default), {@link #OVERSCROLL_IF_CONTENT_SCROLLS} * (allow overscrolling only if the view content is larger than the container), * or {@link #OVERSCROLL_NEVER}. * * @return This view's overscroll mode. */ public int getOverscrollMode() { return mOverscrollMode; } /** * Set the overscroll mode for this view. Valid overscroll modes are * {@link #OVERSCROLL_ALWAYS} (default), {@link #OVERSCROLL_IF_CONTENT_SCROLLS} * (allow overscrolling only if the view content is larger than the container), * or {@link #OVERSCROLL_NEVER}. * * Setting the overscroll mode of a view will have an effect only if the * view is capable of scrolling. * * @param overscrollMode The new overscroll mode for this view. */ public void setOverscrollMode(int overscrollMode) { if (overscrollMode != OVERSCROLL_ALWAYS && overscrollMode != OVERSCROLL_IF_CONTENT_SCROLLS && overscrollMode != OVERSCROLL_NEVER) { throw new IllegalArgumentException("Invalid overscroll mode " + overscrollMode); } mOverscrollMode = overscrollMode; } /** * A MeasureSpec encapsulates the layout requirements passed from parent to child. * Each MeasureSpec represents a requirement for either the width or the height. Loading
core/java/android/view/ViewConfiguration.java +31 −0 Original line number Diff line number Diff line Loading @@ -140,6 +140,16 @@ public class ViewConfiguration { */ private static float SCROLL_FRICTION = 0.015f; /** * Max distance to overscroll for edge effects */ private static final int OVERSCROLL_DISTANCE = 4; /** * Max distance to overfling for edge effects */ private static final int OVERFLING_DISTANCE = 8; private final int mEdgeSlop; private final int mFadingEdgeLength; private final int mMinimumFlingVelocity; Loading @@ -150,6 +160,8 @@ public class ViewConfiguration { private final int mDoubleTapSlop; private final int mWindowTouchSlop; private final int mMaximumDrawingCacheSize; private final int mOverscrollDistance; private final int mOverflingDistance; private static final SparseArray<ViewConfiguration> sConfigurations = new SparseArray<ViewConfiguration>(2); Loading @@ -170,6 +182,8 @@ public class ViewConfiguration { mWindowTouchSlop = WINDOW_TOUCH_SLOP; //noinspection deprecation mMaximumDrawingCacheSize = MAXIMUM_DRAWING_CACHE_SIZE; mOverscrollDistance = OVERSCROLL_DISTANCE; mOverflingDistance = OVERFLING_DISTANCE; } /** Loading Loading @@ -198,6 +212,9 @@ public class ViewConfiguration { // Size of the screen in bytes, in ARGB_8888 format mMaximumDrawingCacheSize = 4 * metrics.widthPixels * metrics.heightPixels; mOverscrollDistance = (int) (density * OVERSCROLL_DISTANCE + 0.5f); mOverflingDistance = (int) (density * OVERFLING_DISTANCE + 0.5f); } /** Loading Loading @@ -454,6 +471,20 @@ public class ViewConfiguration { return mMaximumDrawingCacheSize; } /** * @return The maximum distance a View should overscroll by when showing edge effects. */ public int getScaledOverscrollDistance() { return mOverscrollDistance; } /** * @return The maximum distance a View should overfling by when showing edge effects. */ public int getScaledOverflingDistance() { return mOverflingDistance; } /** * The amount of time that the zoom controls should be * displayed on the screen expressed in milliseconds. Loading
core/java/android/webkit/WebSettings.java +18 −0 Original line number Diff line number Diff line Loading @@ -207,6 +207,7 @@ public class WebSettings { private boolean mBuiltInZoomControls = false; private boolean mAllowFileAccess = true; private boolean mLoadWithOverviewMode = false; private boolean mUseWebViewBackgroundOverscrollBackground = true; // private WebSettings, not accessible by the host activity static private int mDoubleTapToastCount = 3; Loading Loading @@ -484,6 +485,23 @@ public class WebSettings { return mLoadWithOverviewMode; } /** * Set whether the WebView uses its background for over scroll background. * If true, it will use the WebView's background. If false, it will use an * internal pattern. Default is true. */ public void setUseWebViewBackgroundForOverscrollBackground(boolean view) { mUseWebViewBackgroundOverscrollBackground = view; } /** * Returns true if this WebView uses WebView's background instead of * internal pattern for over scroll background. */ public boolean getUseWebViewBackgroundForOverscrollBackground() { return mUseWebViewBackgroundOverscrollBackground; } /** * Store whether the WebView is saving form data. */ Loading
core/java/android/webkit/WebView.java +150 −43 File changed.Preview size limit exceeded, changes collapsed. Show changes