History log of /frameworks/base/core/java/android/widget/ScrollView.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
744beffb6ae76d682c559970bb634722c835a32e 22-Sep-2014 Adam Powell <adamp@google.com> Track persistent nested Y offset for fling velocity

Track the nested offsets applied persistently in AbsListView and
ScrollView. This allows accurate velocity to be reported to nested
fling/pre-fling.

Bug 17548219

Change-Id: I66199c534aca7fb81746eff6d04c931e4c4e48da
/frameworks/base/core/java/android/widget/ScrollView.java
9413b245a6e5264ce4e57c48a90ee96f914476e2 07-Aug-2014 Adam Powell <adamp@google.com> Nested pre-fling for AbsListView and ScrollView

Add nested pre-fling support to all framework widgets that currently
support nested fling.

Change-Id: Ieaf9d12938dbfeea779c2aee2f5a081c287c8e96
/frameworks/base/core/java/android/widget/ScrollView.java
c501db9f44f7967961f0ba61a0b3b63055ac1190 08-May-2014 Adam Powell <adamp@google.com> New, inkier EdgeEffect visual style

Remove the two-part gradient and edge glow and replace it with a
circular ink-like style instead. This now follows the theme color
palette so that it can be more in tune with the app's overall visual
design.

Add API to EdgeEffect to specify a horizontal displacement for the
effect. This lets the larger middle section follow relevant touch
points.

Fix a bug that caused EdgeEffect pulls to stutter in ListView/GridView
as a result of some annoying state-fluttering.

Change-Id: Ief144b06bd9d3dbe85d3154585a703fa552b0808
/frameworks/base/core/java/android/widget/ScrollView.java
e9a0d6a859961bf97e9e7a0d06b2c47c7516e9b7 03-May-2014 Yorke Lee <yorkelee@google.com> Fix nested prescrolling bug in ScrollView

mScrollOffset should not be applied to deltaY for the current
MotionEvent. Instead, it should be used to offset the y position
of the next motion event instead.

Change-Id: Iaed85083556d4606300d9a888662c32ab4dbf3ca
/frameworks/base/core/java/android/widget/ScrollView.java
96d62aff0f97557bc15de98e145d9345288d060c 02-May-2014 Adam Powell <adamp@google.com> ListViews in ScrollViews and ScrollViews in ListViews

Dogs and cats, living together, mass hysteria!

Add support for nested scrolling to AbsListView, granting the ability
to both ListView and GridView.

Change-Id: Iae5c0518c5cebe41927720a7a27916ef13ca706e
/frameworks/base/core/java/android/widget/ScrollView.java
b36e4f944fe28ce68182f9ec91e5341866b49084 01-May-2014 Adam Powell <adamp@google.com> Add support for hiding action bars on scroll.

Also tweak the nested scrolling API around nested flings and fix a bug
where recursive nested scrolling would stop prematurely.

Change-Id: I561226db878b2493970440a6af3e2332c56a1913
/frameworks/base/core/java/android/widget/ScrollView.java
e9a16a5a3e7e41551e8c95b84d0e2af0dd130afe 25-Apr-2014 Adam Powell <adamp@google.com> Fix ScrollView nested scrolling with touch down on buttons

Start ScrollView's nested scroll in onIntercept to signal nested
scrolling parents not to intercept along the vertical axis.

Change-Id: Ieb343ff6b8216b113d3876bf93a804e609257f2a
/frameworks/base/core/java/android/widget/ScrollView.java
10ba27734ee6274a772be8d6b1faa703ee3a3d6b 15-Apr-2014 Adam Powell <adamp@google.com> Nested scrolling!

or, "Excuse me, Egon, you said crossing the streams was bad."

Add API for driving a nested scroll from the most deeply nested
applicable scrolling view. The deepest scrolling view dispatches
high-level scrolling events up to cooperative parent views.

Augment ScrollView to support nested scrolling. Next up, more public
framework scrolling views.

Change-Id: I53b5e207fcdece796e08c8592ddb4496b96f600e
/frameworks/base/core/java/android/widget/ScrollView.java
617feb99a06e7ffb3894e86a286bf30e085f321a 10-Sep-2013 Alan Viverette <alanv@google.com> Add View constructor that supplies a default style resource

Also updates the constructor of every class that extends View.

BUG: 10676369
Change-Id: Ifaf27bf82028d180afa4931c0e906df88d858ac3
/frameworks/base/core/java/android/widget/ScrollView.java
7a46dde1ae56a85fcb5cdac91173424b6355bf3c 17-Jul-2013 Chet Haase <chet@google.com> Changed name of recent hasLayout() method to isLaidOut()

This new method on view reflects whether the view has been laid out
at least once since it was attached. hasLayout() seems too vague for that
meaning; every View that has a parent has a layout (since we use container,
parent, and layout interchangeably). The new version of the method
is closer to the actual meaning.

Change-Id: I519745739b6a6317faeb077aa61f994025cf81f3
/frameworks/base/core/java/android/widget/ScrollView.java
012416fdbb279f291b43e9d6bf565750752e6a41 18-Jun-2013 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #9463581 NPE observed while launching News&Weather app from all apps tray"
d6d543977da14adb3ef9322a0b7ec3fdd027a55e 18-Jun-2013 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #9463581 NPE observed while launching News&Weather app from all apps tray

- dont suppose that there will always be one child

Change-Id: I51c5cdf06294af25c992cfbaacabbc29dd1b9ad3
/frameworks/base/core/java/android/widget/ScrollView.java
90f339a5a343f82c3c32e4467c54ded94a1807a1 14-Jun-2013 Adam Powell <adamp@google.com> Don't save ScrollView/HorizontalScrollView saved state for old apps

Older apps may have given IDs to ScrollViews and views of a different
class in layouts that vary by configuration. Now that ScrollViews save
state this causes ClassCastExceptions when trying to restore instance
state.

Only save new instance state for ScrollView/HorizontalScrollView for
apps targeting post-API 18.

Change-Id: Icaa095cd20bef35dddc225a17c5a8e30b3faea02
/frameworks/base/core/java/android/widget/ScrollView.java
d6befbdd17f528d87e313b3665b248b670f8615c 13-Jun-2013 Fabrice Di Meglio <fdimeglio@google.com> Save Scroller position

- add SaveState with scroll position and use it during the first layout

Change-Id: I0806ddb9c52d70d32055f4b474d21f6e2e5a4ea8
/frameworks/base/core/java/android/widget/ScrollView.java
cb25bd8c2b41fad0f65114c42d8f6e732645dd96 04-Jun-2013 Alan Viverette <alanv@google.com> Prevent scroll views from sending duplicate onScrollChanged events.

Moves the call to onScrollChanged from onTouchEvent into onOverScrolled,
which ensures only one of scrollTo or onScrollChanged will be called in
a single execution.

Bug: 7584549
Change-Id: Ibccd98a30835efad75eb41bcdd4b136e1b8e0ddd
/frameworks/base/core/java/android/widget/ScrollView.java
bb4b601673a4f910d3e467bc5ce39538438859ce 27-Oct-2012 Fabrice Di Meglio <fdimeglio@google.com> Revert "Fix bug #7325234 LayoutParams are not resolved correctly (Settings apps looks broken on Manta in Arabic)"

This reverts commit 6bf6eb7d5f9207d6a3e1d6b61f17a8654d06fbdb.
and also fbc21e126f329b7b7c161858c1390ccb023be07e

I have also removed all unnecessary calls to resolveLayoutDirection(int). This is possible as
we are resolving layout params on every child of a ViewGroup as of commit
fcc3348f61b2992f0b84e8e8dcb3535fc715298f

Change-Id: I262a375b03fcc3c9261cbe2edebb6ec42ec2e186
/frameworks/base/core/java/android/widget/ScrollView.java
6bf6eb7d5f9207d6a3e1d6b61f17a8654d06fbdb 11-Oct-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #7325234 LayoutParams are not resolved correctly (Settings apps looks broken on Manta in Arabic)

Part 2

- fix remaining UI widgets by asking layout params resolution when needed

Change-Id: I97c41639da645d77eeda85feec3bbcc7fc1260b9
/frameworks/base/core/java/android/widget/ScrollView.java
58dc9b6bfa55d22ce145591ceab6bccd0f2b441f 24-Aug-2012 Jean-Baptiste Queru <jbq@google.com> am 790d3403: am d86bebb4: am 322b0a16: Merge "Protecting more views from (bad) MotionEvents"

* commit '790d34039df650d983c7c87a2a2e888e18edc2be':
Protecting more views from (bad) MotionEvents
0dc291eef630cbc3c4479fff8c549567ac980f87 21-Feb-2011 Johan Rosengren <johan.rosengren@sonyericsson.com> Protecting more views from (bad) MotionEvents

When handling MotionEvents, the method findPointerIndex can return -1
if the current pointer id can't be translated to a pointer index.
Some views are not handling this, which will lead to an out-of-
index crash. In 2585e9b there were checks added, this change adds
some more.

Change-Id: I93ce2420afd83a06b689a1ed35ead7d170cd68f1
/frameworks/base/core/java/android/widget/ScrollView.java
0278c2fcbae9fccaddd1fca243218a34923417ec 01-Aug-2012 Adam Powell <adamp@google.com> Don't let ScrollView intercept touch events if it can't scroll.

Bug 6872104

Change-Id: Iee643e052acc37485a8ec45b7af8be0783fb1a95
/frameworks/base/core/java/android/widget/ScrollView.java
15279cfc566aee7f860ebfdfe9d4a6fbc0497362 03-Jul-2012 Scott Main <smain@google.com> docs: fix document issue 27549

Change-Id: I17995fd70978657a46ccfc77fa2ae84c56a05255
/frameworks/base/core/java/android/widget/ScrollView.java
fb1e80a247221ee7e8f5c5deba04812021d9d07e 17-May-2012 Svetoslav Ganov <svetoslavganov@google.com> Exposing some accessiblity actions only for enabled views.

1. Some accessibility actions should not be performed on disabled
views. For example, scrolling should not be permitted while
accessibility focus should be. Made a quick pass over the
actions we expose now.

Change-Id: I36626dfbc0d2f480309a910f58f1de64e9e05675
/frameworks/base/core/java/android/widget/ScrollView.java
48d1586f4065fc9ab97a679da1e4f7c327c943f2 15-May-2012 Svetoslav Ganov <svetoslavganov@google.com> Add accessibility scroll support to some widgets.

1. Added support for accessibility scroll action to
some widgets that are scrollable.

2. Making the super call when handling an accessibility
action in the views to call super first to allow
an accessibility delegate to intercept the call.

bug:5932640

Change-Id: I5eb37d64bf9fba1d5c596981132e0df717e2a18a
/frameworks/base/core/java/android/widget/ScrollView.java
a1dc761c8322355eb1bb71d3d6c9c603c1d1fc0f 10-May-2012 Svetoslav Ganov <svetoslavganov@google.com> Adding scroll actions to accessibility node info.

1. Scrolling actions are crucial for enabling a gesture based
traversal of the UI and specifically scrollable containers
especially lists and anything backed by an adapter. Since
accessibility focus can land only attached views, it cannot
visit views for adapter items not shown on the screen.
Auto scrolling the list as a result of putting access focus
ot a list item does not work well since the user may get
trapped in a long list. Adding an accessibility node provider
to emit virtual views for one view before the first and one
after the last is complex and suffers the limitation of trapping
the user. Accessibility service need an explicit scroll actions
which may be performed upon an explicit user action. Hence,
the user is informed for the start/end of the visible part of
the list and he makes a deliberate choice to scroll. This will
benefit also people developing Braille devices since they can
scroll the content without telling the user to stop using the
Braille controller and take the device out of his pocket to scroll
and go back to the Braille controller.

NOTE: Without these action large portions of the screen will be
hard to access since users will have to touch and explore to
find and scroll the list.

Change-Id: Iafcf54d4967893205872b3649025a4e347a299ed
/frameworks/base/core/java/android/widget/ScrollView.java
b3e02c44d57ac18d1debf21044289cf85d0dd672 03-May-2012 Adam Powell <adamp@google.com> Fix nested cross-scrolling for ScrollView/HorizontalScrollView

Bug 6429006

Disallow intercepting touch events for parents of
ScrollView/HorizontalScrollView when scrolling begins. Properly
respect touch slop when the child of a ScrollView does not accept
touch events.

Change-Id: I2ce503ad5104d450829ed58cd2748c9163e020d3
/frameworks/base/core/java/android/widget/ScrollView.java
df3ae4f3aea3bdce6bb54133c8a07a26bf207c3c 11-Apr-2012 Adam Powell <adamp@google.com> Invalidate for scrolling animations on the animation timer

Change View methods awakenScrollBars and scrollTo to post their
invalidation on the animation timer. Since these are often used in
computeScroll or similar to continue scrolling or flinging it should
not prevent other posted events from being processed before the frame
is actually drawn. (All changes in scroll position, etc. are
immediately reflected after the calls and do not need a draw to
present correct data about scroll position to apps.)

Don't accumulate floating point error while dragging
ScrollView/HorizontalScrollView.

Change-Id: I05b57d75f89a806488e46a8fb79b85d80f56d45d
/frameworks/base/core/java/android/widget/ScrollView.java
e72cf7341a608402309ce894fc12d050cc7c0e14 20-Mar-2012 Romain Guy <romainguy@google.com> Put back invalidate optimization

Change-Id: I6407e452deb44e50a50632961e960cf0bd39b09d
/frameworks/base/core/java/android/widget/ScrollView.java
e979e62ac7313b7cffe9b131bb8a99c356068b45 20-Mar-2012 Romain Guy <romainguy@google.com> Code cleanup

Change-Id: I390e92b4a778bd9dcde6535178c1a6b204b29fe4
/frameworks/base/core/java/android/widget/ScrollView.java
f76a50ce8fdc6aea22cabc77b2977a1a15a79630 09-Mar-2012 Ken Wakasa <kwakasa@google.com> Fix obvious typos under frameworks/base/core

Change-Id: Ia5fc3db1bb51824e7523885553be926bcc42d736
/frameworks/base/core/java/android/widget/ScrollView.java
8a78fd4d9572dff95432fcc4ba0e87563415b728 17-Jan-2012 Svetoslav Ganov <svetoslavganov@google.com> AccessibilityEvent/AccessibilityNodeInfo class name property should be set to only framework classes.

AccessibilityEvent and AccessibilityNodeInfo have a property className which is set to the source
Java class. This is problematic since leads to leaking private classes which would allow an
accessibility service to load classes from other packages. This is strongly undesirable since
not trusted code can be loaded, and hence executed, in the accessibility service. To address
that the class name is set to the most concrete framework class extended by the info/event
source.

bug:5878943

Change-Id: I7b3114ece8772ea2773f5151e21b8a6f2006882a
/frameworks/base/core/java/android/widget/ScrollView.java
d9ee72fddb8be40e414a831fb80458dc48699613 06-Oct-2011 Svetoslav Ganov <svetoslavganov@google.com> Fixing errors in position information of scrollable views reported for accessibility.

1. ScrollView/HorizontalScroll view were reporting only the scroll X and Y but
failed to convey the max scroll along X and Y so the position can be determined.

2. WebView was not reporting correctly its scroll position for accessibility.

3. Some descendants of AdapterView were reporting incorrect position information.

4. Updated the accessibility docs with some details about the scroll information.

5. Cleaned up duplicated code.

bug:5412132
bug:5412265

Change-Id: I165e73ecde027dad811425b9f395a3f758c923ba
/frameworks/base/core/java/android/widget/ScrollView.java
82e236d72ac197d6673d0b4d484fe5f0b9436731 30-Sep-2011 Svetoslav Ganov <svetoslavganov@google.com> The logic for not populating text to some accessibility events is scattered.

1. Some accessibility evenents should not and were not dispatched for
text population but there was no centralized location for enforcing
this - rather the system was firing them in a specific way or there
were conditions in a few places enforcing that. Now this is centralized
and clean.

2. Updated the documentation with some new event types the were lacking.

3. Explicitly stated in the documentaition which events are dispatched to
the sub-tree of the source for text populatation.

bug:5394527

Change-Id: I86e383807d777019ac98b970c7d9d02a2f7afac6
/frameworks/base/core/java/android/widget/ScrollView.java
f6a6c97062d905be267fcb8f70e6eb06fb7e5ab4 29-Sep-2011 Adam Powell <adamp@google.com> Fix bug 5385274 - tabs in browser can't be scrolled

Fix a regression related to optimizing invalidation in scrolling
views.

Change-Id: I6a39075dc830d78436a274935a904a32084defac
/frameworks/base/core/java/android/widget/ScrollView.java
e9dbef85d36ce4030dae29af0d80db8d6fd0b972 13-Sep-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #5282141 ScrollView overscroll should not generate invalidations when not needed (ANR textview redraws constantly when touched)

- check if the overscroll range is not 0
- check if we are in the correct overscroll mode
- also udpate HorizontalScrollView the same way

Change-Id: I0bb37f9813a5871eb856914786db5c06de59e4d3
/frameworks/base/core/java/android/widget/ScrollView.java
89935e41c593a599e8955388b27fb926e60e5e94 31-Aug-2011 Adam Powell <adamp@google.com> Make EdgeEffect public API.

This enables apps to make use of the system's visual edge effect used
during overscroll in 2D content.

Also un-@hide the getCurrVelocity methods from Scroller/OverScroller,
without which it becomes cumbersome to obtain values to pass to the
EdgeEffect#onAbsorb method.

Change-Id: I40e452455f5cb5d45d1fb3687f739fc8eae65560
/frameworks/base/core/java/android/widget/ScrollView.java
13451a476a1951a19d3cb531c47bf5a51587800a 23-Aug-2011 Michael Jurka <mikejurka@google.com> Track motion events before we decide to start scrolling

Change-Id: I0e2de488c62814982a21b7a7debbf1cd78e5891c
/frameworks/base/core/java/android/widget/ScrollView.java
c7f2cdea3c16b7303c8f897293e9816029edd1d0 15-Jul-2011 Gilles Debunne <debunne@google.com> Merge "Bug 4382356: No automatic focus change in ScrollViews"
8202cd3602b87634eeb8b2729612d96f8dbf9416 15-Jul-2011 Gilles Debunne <debunne@google.com> Bug 4382356: No automatic focus change in ScrollViews

The current behavior in ScrollView is inconsistent: a slow scroll will
not change focus while a fling will. With this change, the focus is not
moved from field to field (resulting in poup due to keyboard / suggestion bar
state changes).

Also made sure any new input in a TextFields scrolls back the view to make the
EditText visible. Has no effect if the EditText is already visible.

Change-Id: I7ff301fe85f73c27d76e4893aeab7442d0539b13
/frameworks/base/core/java/android/widget/ScrollView.java
a6111377e1edbc5d63fc2a7205d58b2d9c21d978 15-Jul-2011 Jeff Brown <jeffbrown@google.com> Remove edge slop support.

The edge slop feature was added a long time ago for a specific
device that had severe non-linear touch response issues near
the edges of its touch screen. The feature is not useful on
modern hardware that is property calibrated.

Change-Id: I26716cbc7411c31883ddb4bb4ddd981027790d0f
/frameworks/base/core/java/android/widget/ScrollView.java
a0156177cdc809795dd8bc5a19943dd2b6f82b66 27-Jun-2011 Svetoslav Ganov <svetoslavganov@google.com> Added scroll and text selection change accessibility events.

1. Added scrolling accessibility event to provicde feedback
when a view is scrolled.

Note: We need scroll events for ICS since even though we have
touch exploration the user does not know when something
is scrollable and not feedback is provided while scrolling.

bug:4902097

2. Added a text selection change event to provide feedback
for selection changes including cursor movement.

Note: We need the text selection change events for ICS since
even though the IME supports navigation in text fields
the user receives no feedback for the current selection/
cursor position.

bug:4586186

3. Added a scrollable property to both AccessibilityEvent and
AccessibilityNodeInfo. The info has to describe the source
in terms of all properties that make sense for accessibility
purposes and the event has this property (kinda duplicated)
since clients will aways want to know if the source is
scrollable to provided clue to the user and we want to avoid
pulling the info of the source for every accessibility event.

Change-Id: I232d6825da78e6a12d52125f51320217e6fadb11
/frameworks/base/core/java/android/widget/ScrollView.java
e0a799a2ac1ca78e30fbac9e4e12a063425c08d3 05-May-2011 Patrick Dubroy <dubroy@google.com> Only delay pressed feedback for Views inside a scrolling parent

Add a method on ViewGroup to determine whether it supports scrolling.
This allows us to show the pressed feedback immediately in many cases,
improving responsiveness of buttons, etc.

This patch also lengthens the timeout in order to reduce flashes
when the user is scrolling.

Change-Id: Ieb91ae7a1f8e8f7e87448f2a730381a53947996f
/frameworks/base/core/java/android/widget/ScrollView.java
dddaa56f793ad9ecb4e20df746f562ac7f24d158 30-Apr-2011 Conley Owens <cco3@android.com> Merge commit 'b737647d' (Scrolling using arrow keys with padding) into m

Conflicts:
core/java/android/widget/ScrollView.java

Change-Id: I1cfd3f7091e92793ce9fa048a09ae08a04c10c80
5435a06010fb50dd8b495df6b7f21f15d82a2c0a 07-Apr-2011 Mattias Petersson <mattias.petersson@sonyericsson.com> Scolling using arrow keys with padding

It was impossible to reach the end of a large test when scrolling down
using the arrowkeys when the ScrollView had padding. A common example
of this would be an AlertDialog with a text that is too long to fit on
the screen.

Change-Id: I55464290a0cdeabde83ccccc76fe8d015ae57a8d
/frameworks/base/core/java/android/widget/ScrollView.java
9bc30d31322848d61f518c1db43544988faaba8f 28-Feb-2011 Adam Powell <adamp@google.com> Change behavior of multitouch in scrolling views.

New pointers touching the screen always become the active pointer.

Still to do: allow flings until another pointer moves enough to stop
it. Currently flings will be immediately stopped by the other pointers
still contacting the screen.

Change-Id: Ic1c7bf98dcf40252593cec0ab1f0d524aaeed8e4
/frameworks/base/core/java/android/widget/ScrollView.java
33bbfd2232ea9eaae9a9d87a05a95a430f09bd83 25-Feb-2011 Jeff Brown <jeffbrown@google.com> Add support for mouse hover and scroll wheel.

Dispatch ACTION_HOVER_MOVE and ACTION_SCROLL through the View
hierarchy as onGenericTouchEvent. Pointer events dispatched
this way are delivered to the view under the pointer. Non-pointer
events continue to be delivered to the focused view.

Added scroll wheel support to AbsListView, ScrollView,
HorizontalScrollView and WebView. Shift+VSCROLL is translated
to HSCROLL as appropriate.

Added logging of new pointer events in PointerLocationView.

Fixed a problem in EventHub when a USB device is removed that
resulted in a long stream of ENODEV errors being logged until INotify
noticed the device was gone.

Note that the new events are not supported by wallpapers at this time
because the wallpaper engine only delivers touch events.

Make all mouse buttons behave identically. (Effectively we only
support one button.)

Change-Id: I9ab445ffb63c813fcb07db6693987b02475f3756
/frameworks/base/core/java/android/widget/ScrollView.java
2ed2eacd7e0569675410f1e62238b708c5dcc8ac 25-Feb-2011 Gilles Debunne <debunne@google.com> Code clean-up around ScrollView.

Change-Id: Ia110f30279a93c96741e9afbd93ed6231aa97ef1
/frameworks/base/core/java/android/widget/ScrollView.java
7d86378b0c3a02499a5a9aab35851424ffa57bd8 16-Feb-2011 Adam Powell <adamp@google.com> Fix bug 3362273 - Make overscroll glow appear within padding region

Change-Id: I3c6513ada6bdd192c83f3ff59a2c85717156de22
/frameworks/base/core/java/android/widget/ScrollView.java
0fd89bf7221431260883cee4597e2db942d799a0 27-Jan-2011 Romain Guy <romainguy@google.com> Optimize invalidate() calls.

Change-Id: I09d99290ca74f96046702bc2604f125a1276ce05
/frameworks/base/core/java/android/widget/ScrollView.java
daf98e941e140e8739458126640183b9f296a2ab 10-Jan-2011 Chet Haase <chet@google.com> Use optimized display lists for all hwaccelerated rendering

Previously, display lists were used only if hardware acceleration
was enabled for an application (hardwareAccelerated=true) *and* if
setDrawingCacheEnabled(true) was called. This change makes the framework
use display lists for all views in an application if hardware acceleration
is enabled.

In addition, display list renderering has been optimized so that
any view's recreation of its own display list (which is necessary whenever
the visuals of that view change) will not cause any other display list
in its parent hierarchy to change. Instead, when there are any visual
changes in the hierarchy, only those views which need to have new
display list content will recreate their display lists.

This optimization works by caching display list references in each
parent display list (so the container of some child will refer to its
child's display list by a reference to the child's display list). Then when
a view needs to recreate its display list, it will do so inside the same
display list object. This will cause the content to get refreshed, but not
the reference to that content. Then when the view hierarchy is redrawn,
it will automatically pick up the new content from the old reference.

This optimization will not necessarily improve performance when applications
need to update the entire view hierarchy or redraw the entire screen, but it does
show significant improvements when redrawing only a portion of the screen,
especially when the regions that are not refreshed are complex and time-
consuming to redraw.

Change-Id: I68d21cac6a224a05703070ec85253220cb001eb4
/frameworks/base/core/java/android/widget/ScrollView.java
39bc6197baa7482dd070878a63992e8212965a4d 19-Jan-2011 Jeff Brown <jeffbrown@google.com> Never drag scroll views with no children. (DO NOT MERGE)

Fixes a regression from Froyo. Previously, when a scroll view
had no children, its onTouchEvent would return because the scroll
view would only start dragging if the user touched one of its children.
In Gingerbread, the user can drag from anywhere within the scroll
view, not just by touching a child. However, it makes no sense
to drag a scroll view that has no children so an empty scroll view
should just ignore touches like any other empty view group would.

This change fixes applications that for some reason or other happen
to have empty scroll views in strange places.

Bug: 3246230
Change-Id: I76c6136d3cd74968983033014d60deec1718ce30
/frameworks/base/core/java/android/widget/ScrollView.java
fb75738ee28839c67bef4abc15d6c7a407c34f55 19-Jan-2011 Jeff Brown <jeffbrown@google.com> Never drag scroll views with no children.

Fixes a regression from Froyo. Previously, when a scroll view
had no children, its onTouchEvent would return because the scroll
view would only start dragging if the user touched one of its children.
In Gingerbread, the user can drag from anywhere within the scroll
view, not just by touching a child. However, it makes no sense
to drag a scroll view that has no children so an empty scroll view
should just ignore touches like any other empty view group would.

This change fixes applications that for some reason or other happen
to have empty scroll views in strange places.

Bug: 3246230
Change-Id: Iada6e886e8363e6778f42fc4861de228512d8bed
/frameworks/base/core/java/android/widget/ScrollView.java
a174d7a0d5475dbae2b48f7359abf1637a882896 07-Jan-2011 Romain Guy <romainguy@google.com> Don't match wrap_content/match_parent children with child count = 1.
Bug #3328711

Change-Id: Ic131f2feecbeec4a7250d47193c9794aa70d22ee
/frameworks/base/core/java/android/widget/ScrollView.java
9c9573721140c260d4614c7ac58923dcfa0cea22 05-Jan-2011 Romain Guy <romainguy@google.com> Make FrameLayout support mixed wrap_content/match_parent children.
Bug #3259668

If a FrameLayout is measured with an UNSPECIFIED or AT_MOST spec,
it cannot correctly define the size of its children set to
match_parent. This change adds a second measurement pass similar
to what LinearLayout does in the same situation.

Change-Id: I20ac5203c2efc2e559f88b2c9573d4ad7df488b4
/frameworks/base/core/java/android/widget/ScrollView.java
b1297f76351795822c64236c4ce27b97d18e5bca 08-Dec-2010 Mindy Pereira <mindyp@google.com> Make horizotnalscrollview and scrollview edgeglows match the new algorithm.

Instead of going past the left and right sides, the glow now
stretches just to the width of the edge and stops.
For horizontalscrollview, instead of going past the top and bottom,
now stretches just to the height and stops.
Change-Id: I0cc9bdef3ab263b16dd32e088c6b64ff5a8809c8
/frameworks/base/core/java/android/widget/ScrollView.java
4e30d89ceda832300f80bf73f4f58cd2b51bf112 25-Nov-2010 Mindy Pereira <mindyp@google.com> Per designers, update the algorithm for when effect is clipped or stretched.

New algo is:
1) if view width < MIN_WIDTH (currently 300px), clip glow and edge to fit
2) else stretch glow and edge to fill width
3) make alpha and height of edge and glow 30% "more intense"

Change-Id: I8f121bb165a8fb835bc33950dbedd1bc80c5df65
/frameworks/base/core/java/android/widget/ScrollView.java
ce81f3a955a0e77e44e1f76c976905ec2a52c1d0 22-Nov-2010 Brad Fitzpatrick <bradfitz@android.com> StrictMode.Span annotations for ScrollView.

Between the animation system, ListView, and this, we can now account
for the large majority of animations in-flight at any point and annotate
StrictMode violations accordingly.

Note that StrictMode.Span goes out of its way to not allocate memory
and is very light-weight, especially on user builds where it's a
no-op.

I've tested this with the LOG_V debugging in StrictMode and I think
I've gotten all the entry/exit cases of ScrollView's animations. At
least, I'm not able to get it out-of-sync at least, even with
orientation changes during scroll/fling, etc. It's possible I missed
a path, but that should show up as excessive false positives during
dropbox uploads if so.

Change-Id: I3b0545111a775d9fa8e171f2a190031f1b56c4c0
/frameworks/base/core/java/android/widget/ScrollView.java
637d337b58d8eec6de19230a5dd5ca5581c0478d 25-Aug-2010 Adam Powell <adamp@google.com> Merge overscrolling from gingerbread.

Change-Id: I3eb4413261b38ddd8c609d6153bdfd4ae46c6a0f
/frameworks/base/core/java/android/widget/ScrollView.java
6fbc5d9c19388e8f1c9a1833bc0e15fcf6b499f1 20-Oct-2010 Mindy Pereira <mindyp@google.com> DO NOT MERGE. Make sure to invalidate after pulling on an edgeglow.

Fixes b/3111778 overscroll glitch in news & weather

Change-Id: Ic255da1f7c4301ea3980acc4fa033c9f17a60dac
/frameworks/base/core/java/android/widget/ScrollView.java
4de94de9c5ad18e1162fa30dd1149211485297c0 07-Oct-2010 Mindy Pereira <mindyp@google.com> DO NOT MERGE Only show edge glow effect on 1 side at a time.

Pulling on a side should force the opposite side into "decay".
Fixes b/3061753 new list "bounce" shouldn't show on both ends
This fixes scroller and horizontalscroller.

Change-Id: I4d9820c7178378b793ed9a29b119943eb1f46587
/frameworks/base/core/java/android/widget/ScrollView.java
737e8fe2c7ce167bc68ad779160488007a5e0b1d 05-Oct-2010 Adam Powell <adamp@google.com> DO NOT MERGE Fix bug 3001751 and bug 3001584 - Gingerbread API review for over-scroll

Change-Id: If34c8ea4e15697420adad0bc404f3c278efd7c1b
/frameworks/base/core/java/android/widget/ScrollView.java
62a744e17d32fed0208ad874392e68adc71b601e 03-Oct-2010 Adam Powell <adamp@google.com> Fix bug 3052686 - ScrollView padding treated incorrectly

Also allow grabbing scrollviews for dragging outside of content
bounds, which makes a difference for overscroll effects.

Change-Id: I344db4490ad59f393bb6de338009e251a76e6282
/frameworks/base/core/java/android/widget/ScrollView.java
e6ffce9f65a1a8f498eb51a993a8cbf5f13a109e 03-Sep-2010 Adam Powell <adamp@google.com> Fix bug 2973252 - Make overscroll glow respect ifContentScrolls

Change-Id: I0e4bf09c0cbc660c9b8d26a3526b09568c05e93d
/frameworks/base/core/java/android/widget/ScrollView.java
5916882c3f13429d29f95b89dd94bd2d5733da85 02-Sep-2010 Adam Powell <adamp@google.com> DO NOT MERGE Overscroll continues; asset and behavior tweaks.

Change-Id: I367643877a397e7b4fa9bd8c40639ff69436e7f0
/frameworks/base/core/java/android/widget/ScrollView.java
0a77ce277c6ed2aa25bbea5f8cd5687c0720cb68 25-Aug-2010 Adam Powell <adamp@google.com> New edge effects for scrolling widgets (overscroll)

TODO: Currently disabled for WebView. Assets used for the glow effect
need to be themable/styleable. Overscroll effect should take place
even when the user did not grab the widget within actual content.

Change-Id: I68277d14d37dc5bcdb9254eaddf6e4998b3f2bf4
/frameworks/base/core/java/android/widget/ScrollView.java
fdbf484be1eca388553d97a13a9500b98b18b474 16-Aug-2010 Romain Guy <romainguy@google.com> Add documentation for fillViewport.

Change-Id: I34f5418ca33933dc5cf65f4e417d918bce83ab96
/frameworks/base/core/java/android/widget/ScrollView.java
2d4cff64b4c864aa5f6859b73ffa65e31ee915ac 10-Apr-2010 Romain Guy <romainguy@google.com> Fix regression introduced when fixing focus issue with ScrollView.
Bug #2581646

The correct fix is to make ScrollView ignore the BACK key instead of consuming it.

Change-Id: I5c029a5c60ae8e7791391f63672c44b5c96fec71
/frameworks/base/core/java/android/widget/ScrollView.java
a0d645cb6980113a624e6e70a7fa9ae5e91bbac8 01-Apr-2010 Adam Powell <adamp@google.com> Fix bug 2562240 and clean up scrollbar behavior

Change-Id: I551803a1c997c9d10e1d004ce14472af6090f432
/frameworks/base/core/java/android/widget/ScrollView.java
9d32d24dbd8a015c9d5c44ed4901d5a666eb8e7f 30-Mar-2010 Adam Powell <adamp@google.com> Remove overscrolling

Change-Id: I7e9db8d8a9b8ef67f0c0c82bf57c9155b7ebabea
/frameworks/base/core/java/android/widget/ScrollView.java
6579b0b4ac0e781efab044aaaf3f66447cf5e067 25-Mar-2010 Adam Powell <adamp@google.com> API refactoring for OverScroller.

OverScroller is no longer a child class of Scroller and several
Scroller methods that do not make sense for OverScroller and could
cause misbehaving edge cases have been removed or hidden and
deprecated.

Change-Id: Ie055b607bd3b36c47ab9798d5c9518aef686b474
/frameworks/base/core/java/android/widget/ScrollView.java
352b978fa8332808ce38c6f52edd04c8dcb9e7e3 24-Mar-2010 Adam Powell <adamp@google.com> Fix some bugs/edge cases in ScrollView/HorizontalScrollView

Handle ACTION_CANCEL, fix edge cases related to grabbing content and
beginning a new scroll during overfling/springback. Will prevent
some cases where a view could get stuck overscrolled.

Change-Id: I7e89d9de9b7dc685d2ea278e6b2bd2c794364204
/frameworks/base/core/java/android/widget/ScrollView.java
9d0335b1e3a2c70506db2413ac8d8a0f88ba6bec 24-Mar-2010 Adam Powell <adamp@google.com> Fix for bug 2502886 - stupid monkeys.

Plugged a possible edge case with ScrollView/HorizontalScrollView that
could cause this error.

Change-Id: I509004189b9f5e536d6213c9fdfff598d9f958ca
/frameworks/base/core/java/android/widget/ScrollView.java
83d570cb3f1cc59d5a72e608b04d8f666db327a7 23-Mar-2010 Adam Powell <adamp@google.com> Fix bug 2537626.

Awaken scroll bars in onOverscrolled instead of based on the timing
reported by the Scroller's animation.

Change-Id: I8510b92b9fdf471fc8d6f8f089681eb23d10f190
/frameworks/base/core/java/android/widget/ScrollView.java
52964243dc95f74ac2ab9a96d031a36931a11931 24-Feb-2010 Gilles Debunne <debunne@google.com> New OverScroller with edge bouncing effect.

OverScroller has been made a Scroller child class. Both use a physical constant deceleration
force to compute the animation. OverScroller also includes a rubber edge bounce effect.

Approved by Jim Palmer.

Change-Id: I3f43a03694b8cb6bfa0784c2663b37c9c39322cc
/frameworks/base/core/java/android/widget/ScrollView.java
8a836a8b98557263152a476f614b6e05e19ffc5a 18-Mar-2010 Adam Powell <adamp@google.com> Eliminate haptic feedback when hitting an overscroll barrier due to a fling.

Change-Id: I434ec3edd95a19677ad9dbd1ac5ca3f3f5d091cb
/frameworks/base/core/java/android/widget/ScrollView.java
8e618e54ef0f009cac15972af9d9a72d6f6b6f94 08-Mar-2010 Romain Guy <romainguy@android.com> Report scroll events from ScrollView and HorizontalScrollView.
Bug #2342763

Also fix typos in TextView.

Change-Id: I58ab906b9bebe562c1a913977e2d6970bfcf3788
/frameworks/base/core/java/android/widget/ScrollView.java
4cd47702f00a2fd6d6bc16c5398edb884d98bdca 25-Feb-2010 Adam Powell <adamp@google.com> HorizontalScrollView multitouch scroll and only grip on content
AbsListView multitouch scroll and only grip on content
/frameworks/base/core/java/android/widget/ScrollView.java
bc4e7533b9c6a6e45e3cf4a889bcb913b8feefc5 23-Feb-2010 Adam Powell <adamp@google.com> ScrollView multiple pointer support. Fixed a bug where ScrollView
wouldn't scroll if the initially tapped child ignores the down event.
/frameworks/base/core/java/android/widget/ScrollView.java
9f0e8eeab2c9fdce182ad16fb28ad8fa3033eb75 24-Feb-2010 Joe Onorato <joeo@android.com> Make ScrollView only do overscroll if you're grabbing the child view.
/frameworks/base/core/java/android/widget/ScrollView.java
a2f91016840bf4f7274577d40f3610e38b77f2ad 16-Feb-2010 Adam Powell <adamp@google.com> Fix for [Horizontal]ScrollView scroll range reporting
/frameworks/base/core/java/android/widget/ScrollView.java
0b8bb4282a7d1afb24f8c4d5beb2ca4ecc731116 08-Feb-2010 Adam Powell <adamp@google.com> Overscrolling modifications. Overscroll will not allow the user to
scroll content out of view. Scrolling will slow down halfway to the
barrier point. API added in View. AbsListView, ScrollView,
HorizontalScrollView all use this API. Overscrolling uses haptic
feedback. Added scroll barrier pattern to config.xml.
/frameworks/base/core/java/android/widget/ScrollView.java
f54460576e88d7531b171575d37264dfe0a34f33 29-Jan-2010 Adam Powell <adamp@google.com> Don't bounce programmatic scrolls of ScrollView and HorizontalScrollView.
/frameworks/base/core/java/android/widget/ScrollView.java
3fc3737ceb0f5c3b086472fb2cf7ebfb089e1bc8 28-Jan-2010 Adam Powell <adamp@google.com> ScrollView and HorizontalScrollView now will spring back if smoothScrollBy scrolls out of bounds. Tweaked bounce physics for OverScroller.
/frameworks/base/core/java/android/widget/ScrollView.java
17dfce15d5c3e7eae7a3c129019f48e7c5f65063 26-Jan-2010 Adam Powell <adamp@google.com> Added OverScroller and overscroll effects for ScrollView and HorizontalScrollView.
/frameworks/base/core/java/android/widget/ScrollView.java
f7b4accbda1a4d98a5fadbf3984cb9666a4fe9e9 02-Dec-2009 Romain Guy <romainguy@android.com> Fix scroll jump in ScrollView.

If a touch event was targeted at a ScrollView child, the content would jump after
the user moved her finger by the required threshold. This is inconsistent with
ListView's behavior.

Fixes #2296622.
/frameworks/base/core/java/android/widget/ScrollView.java
f116bf8884b5b58aae261d148003811aa4a7c6e9 28-Sep-2009 Mike Cleron <mcleron@google.com> Fading scrollbars return. But you have to opt in.
/frameworks/base/core/java/android/widget/ScrollView.java
7d4200d03fa55a13eda63f979dcf47792f0af31d 22-Sep-2009 Jack Veenstra <veenstra@android.com> Fix bug with ScrollView so that text entry fields are not hidden by virtual keyboard.
/frameworks/base/core/java/android/widget/ScrollView.java
ef0e9ae0ddbf70f5e30fbfbffe379e3026b9dc13 10-Jul-2009 Romain Guy <romainguy@android.com> Fixes #1972421. Prevents crash in ScrollView/HorizontalScrollView.

Add several checks to make sure there's at least one child.
/frameworks/base/core/java/android/widget/ScrollView.java
4296fc4d326447875c26a925f12b3935632f13bb 06-Jul-2009 Romain Guy <romainguy@android.com> Fixes #1444844. Set a maximum fling velocity in scrollable views.
/frameworks/base/core/java/android/widget/ScrollView.java
9066cfe9886ac131c34d59ed0e2d287b0e3c0087 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/frameworks/base/core/java/android/widget/ScrollView.java
d83a98f4ce9cfa908f5c54bbd70f03eec07e7553 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/frameworks/base/core/java/android/widget/ScrollView.java
d24b8183b93e781080b2c16c487e60d51c12da31 11-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@130745
/frameworks/base/core/java/android/widget/ScrollView.java
9266c558bf1d21ff647525ff99f7dadbca417309 16-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@126645
/frameworks/base/core/java/android/widget/ScrollView.java
f013e1afd1e68af5e3b868c26a653bbfb39538f8 18-Dec-2008 The Android Open Source Project <initial-contribution@android.com> Code drop from //branches/cupcake/...@124589
/frameworks/base/core/java/android/widget/ScrollView.java
54b6cfa9a9e5b861a9930af873580d6dc20f773c 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution
/frameworks/base/core/java/android/widget/ScrollView.java