History log of /frameworks/base/core/java/android/widget/AbsListView.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
f3b8e6fe7825bf31e7824041325ddedc0bd41bae 04-Oct-2012 Adam Powell <adamp@google.com> Fix regression in AbsListView CHOICE_MODE_SINGLE

Earlier patch reversed a few lines of code that allowed deselection of
the currently selected item in CHOICE_MODE_SINGLE. Put it back the way
it was.

Bug 7289436

Change-Id: Ia1c5f3238d2faa3dd79e474851333fda90978d3c
/frameworks/base/core/java/android/widget/AbsListView.java
5bb4e29aba21bf52873bc242102cdfabd9ec4aaa 03-Oct-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #7274075 Non-functional CheckedTextView on Nexus 7 Jelly Bean 4.1.1

This regression has been introduced by this Change: Ia846de16bbc54f0729608259aa4b530da9404245

- in CHOICE_MODE_SINGLE you need to clear the checked states before doing anything
- rename variables for better readability too

Change-Id: I89b4390e5ebb192ca280fea2c06f991b537a2870
/frameworks/base/core/java/android/widget/AbsListView.java
a6a4cbc18f7e5a3831d787d3f398e02c5eae6512 27-Sep-2012 Adam Cohen <adamcohen@google.com> Fixing Keyguard widget click handling (issue 7179972)

Change-Id: I2b268d08f5aff403a04db53c357fa45a6cb8d490
/frameworks/base/core/java/android/widget/AbsListView.java
e181bd9b5e6a3e5382a1ff3c40b9ce2cb43c7971 25-Sep-2012 Dianne Hackborn <hackbod@google.com> Fix AbsListView to correctly retain its state if not layed out.

This covers a hole where if the list view restores its state and
then is asked to save its state before its layout happens, the
original state is lost. Instead we just store that original state.

Also tweak FragmentManager to make sure an inactive fragment can
not have its state moved up out of CREATED.

Bug #7232088: ListView saved state being lost in some cases

Change-Id: I5b40f37c259c7bcbe17dd1330016f9531f1b5534
/frameworks/base/core/java/android/widget/AbsListView.java
b72fe7a2635906d6244efedfe302c2c46e564803 28-Aug-2012 alanv <alanv@google.com> Don't overwrite accessibility delegates in AbsListView items.

Bug: 6856579
Change-Id: I2963edcefdc0dd5e1413b57858e6f319904a269d
/frameworks/base/core/java/android/widget/AbsListView.java
a798170f2abe198f806b12dd904830bc25257525 24-Aug-2012 Adam Powell <adamp@google.com> More detailed error reporting for AbsListView/CHOICE_MODE_MULTIPLE_MODAL

Throw a more descriptive exception when an app has not set a
multi-choice mode listener and an item becomes checked.

Change-Id: Ib682fd7a467a3751bb81dacbd22676aaa4407d36
/frameworks/base/core/java/android/widget/AbsListView.java
94169a97fd8e553d8e46b6191d52b2b2f8f368e2 26-Jul-2012 Adam Cohen <adamcohen@google.com> am 956aefb3: am 26ed04ba: Merge "Caching the FixedSizeRemoteViewsCaches across rotation" into jb-dev

* commit '956aefb3c54c5b5a33b7faca8ce5246981995f88':
Caching the FixedSizeRemoteViewsCaches across rotation
335c3b681bf1c118d9bf22d1a508c87173632ec6 25-Jul-2012 Adam Cohen <adamcohen@google.com> Caching the FixedSizeRemoteViewsCaches across rotation

-> This prevents unnecessary flashing of collection widgets on rotation

Change-Id: Id29d4952aa640ca90b31dc3e02e2402cc0fb84d3
/frameworks/base/core/java/android/widget/AbsListView.java
27e2da7c171afa39358bbead18fbe3e6b8ea6637 03-Jul-2012 Svetoslav Ganov <svetoslavganov@google.com> Remove the accessibility focus search code.

1. In JellyBean we have added some APIs to search for next accessibility
focus in various directions and set accessibility focus from hover.
However, we have decided that there is not clean answer for how this
should behave and the APIs were hidden. Now the accessibility service
is responsible for that. The unused code is now taken out.

2. This patch also takes out the hidden attribute accessibiligyFocusable
since we moved the responsibility for implementing focus search strategy
to accessibility services and we did not need that for Jellybean which
is a good sign that this is not needed. I general this is one less thing
for an app developer to worry about. We can add this if needed later.

bug:6773816

Change-Id: I0c858d72c93a2b7ff1f8f35a08d33ec4b9eb85fd
/frameworks/base/core/java/android/widget/AbsListView.java
913bf80416a81f2783376939e7ad0b956975b05c 10-Jun-2012 Chet Haase <chet@google.com> Merge "Don't allow apps to request scrolls to out-of-bounds positions" into jb-dev
0061e16e538f800ff995ad05bc21cc7728f160e2 09-Jun-2012 Chet Haase <chet@google.com> Don't allow apps to request scrolls to out-of-bounds positions

An app was requesting smooth scrolling to a view position beyond the
number of items in the list. This caused our setup logic to execute on
every frame, waiting for the target view to be added.

This fix clamps the requested target position to the number of items
actually in the list.

Issue #6572175 Messaging: Sometimes conversation doesn't scroll when focus is brought to the compose field

Change-Id: I23707aeb213e67af4297713a03c2f5b446c8e2b6
/frameworks/base/core/java/android/widget/AbsListView.java
28048d011cb0887cd641977ca37e5f2fde04d191 07-Jun-2012 Adam Powell <adamp@google.com> Protect against bogus input for ListViews

Guard against cases where ListView might receive touch events while
detached.

Update ListMenuPresenter to dispatch a data set change when the
backing menu is changed.

Bug 6543282

Change-Id: If2fb9b6aa3cf4a1b7070a7cd0de0edf0fc2f4cca
/frameworks/base/core/java/android/widget/AbsListView.java
3016c1ae6a05a67106301fc5ffd7779338288e65 05-Jun-2012 Svetoslav Ganov <svetoslavganov@google.com> NullPointerException in AbsListView.focusSearch().

1. One of the loops was using the last visible position
as its end boundary as opposed to the child count
minus one.

bug:6610451

Change-Id: I600545ca3f64d1e982f909f893e5d34570ec5c8b
/frameworks/base/core/java/android/widget/AbsListView.java
30384653d2fc4d497ab3124c998c7d516f1bd25f 04-Jun-2012 Svetoslav Ganov <svetoslavganov@google.com> Merge "Focus search in AbsListView returns invisible views." into jb-dev
b1fa98bb1c30bdfafbe3f251e2f849ce2cd49106 04-Jun-2012 Svetoslav Ganov <svetoslavganov@google.com> Focus search in AbsListView returns invisible views.

1. The focus search algorithm considers only visible
views, specifically when adding focusables. Since
AbsListView implements a custom focus search strategy
for better user experience it also has to return
only views that are visible.

bug:6543878

Change-Id: I6207c29402e4ac6190c1e65d042e04449aa75ef8
/frameworks/base/core/java/android/widget/AbsListView.java
b552d89e901225e2b6aa2602e874ab984c638415 02-Jun-2012 Svetoslav Ganov <svetoslavganov@google.com> Double input focus and focus movement in list not working.

1. The clearFocus routine in ViewGroup was clearing the pointer
to the descendant which has focus after calling clear focus
on that child. However, currently clearing the focus of a view
causes the view that loses focus to try to give the focus to
the first focusable which potentially sets the pointer to the
child that has input focus in the ViewGroup but the ViewGruop
essentially clears that pointer. This resulted in having two
focused views at the same time in some cases.

2. AbsListView was not calling the super implementation of add
focusables if the focus type was not accessibility.

bug:6559819

Change-Id: I478dfed000b5de3f9b15e12eb82aa3d34c2301e4
/frameworks/base/core/java/android/widget/AbsListView.java
a90e4512ab81dcd8cdbefdd2ffa0de55fca1caa3 02-Jun-2012 Svetoslav Ganov <svetoslavganov@google.com> Calling the correct method when adding accessibility focusables.

1. Since we added explicit accessibility focusable attribute when
adding focusables views that do so should call this method. Some
views were not updated to do so.

bug:6581924

Change-Id: Id64c0b2d76e5269ebf3fbe17203e73b174bdb843
/frameworks/base/core/java/android/widget/AbsListView.java
00ca7a88271916f6022b2aa16acfb415fc1b5247 01-Jun-2012 Svetoslav Ganov <svetoslavganov@google.com> Merge "Accessibility focus traversal of lists inconsistent." into jb-dev
2dda468606fa4e6b4b6b44d38f42e06cb31e2785 01-Jun-2012 Svetoslav Ganov <svetoslavganov@google.com> Accessibility focus traversal of lists inconsistent.

1. Now the list traversal forward is the exact opposite
of the traversal backward.

2. The focus search starts from the view against which
the call is made as opposed to the one that has focus.
This is now consistent with the rest of the focus search.

bug:6537747

Change-Id: Ida6a696636a3099531155fcbff256f71264f5008
/frameworks/base/core/java/android/widget/AbsListView.java
325ea8deb86e09317683523625cf74666cd30c11 31-May-2012 alanv <alanv@google.com> Don't mark list headers or invalid items as disabled.

Bug: 6581689
Change-Id: I4088cdc7e785e60fe7e30807cdf045131584f29d
/frameworks/base/core/java/android/widget/AbsListView.java
161abf3d44feebb8462f7d0cbee81574d666234b 24-May-2012 Adam Powell <adamp@google.com> Fix a bug with deferred position scrolling in lists while data changes
are pending

Save the pending position scroll until the data change is actually
serviced before posting it to run. This avoids handler loops on
GONE subtrees or when the view is detached.

Bug 6547649

Change-Id: Iab108cfcb7dd11ece703762d311a5f5985f38c3b
/frameworks/base/core/java/android/widget/AbsListView.java
084c63eb6a44fdab7507f828062a2c4a8872f8c8 22-May-2012 Svetoslav Ganov <svetoslavganov@google.com> Merge "Fix accessibility actions in AbsListView." into jb-dev
4ce106f5cff5670bf1aae4190612dc8e972f5c28 22-May-2012 Svetoslav Ganov <svetoslavganov@google.com> Merge "Fixing some minor issues in accessibility focus." into jb-dev
f76a83cfcf32402edb78666733b5ebf9ec6ac2e2 22-May-2012 Svetoslav Ganov <svetoslavganov@google.com> Fixing some minor issues in accessibility focus.

1. Now accessibility focus does not drag input focus and
vice versa. Having the two focuses chase each other
can lead to some pathological cases. For example, a
container is input focusable and manages input focus
for its children i.e. as soon as it gets input focus
it sets input focus to a child. Now assume input and
accessibility focus are on a child and focus search
finds the parent to take accessibility focus, now
putting accessibility focus to the parent will put
input focus there and the parent will put input focus
to the child which as a result will put accessibility
focus there, thus resulting in traversal loop.

bug:6522900

2. Fixed asymmetrical behavior of accessibility focus search
for AbsListView.

bug:6520016

3. Fixed accessibility focus search getting stuck in an
empty AbsListView.

bug:6520049

Change-Id: Ia26e5be7b5a9f340f873861ff466c787467b98dc
/frameworks/base/core/java/android/widget/AbsListView.java
13b907353f18215b52b5ceda24bbf520d91d72a1 21-May-2012 Romain Guy <romainguy@google.com> Remove unused, obsolete debug code

All these features have either been abandonned and left un-maintained
for years or can be replaced by systrace.

Change-Id: I42e4579a8078744047e5fe08a7a15254970b09bc
/frameworks/base/core/java/android/widget/AbsListView.java
9c3e0e68260fe50456996d75304b73054cbde94a 19-May-2012 alanv <alanv@google.com> Fix accessibility actions in AbsListView.

Check adapter for position enabled state, check selection index.

Bug: 6508142
Change-Id: If25a133533a7316ef7eba8761522bd2ee4f6338d
/frameworks/base/core/java/android/widget/AbsListView.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/AbsListView.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/AbsListView.java
e5dfa47d84668376b84074c04570fb961870adeb 09-May-2012 Svetoslav Ganov <svetoslavganov@google.com> Improving accessibility focus traversal.

1. Now the views considered during the accessibility focus search
are the ones that would get accessibility focus when thovered
over. This way the user will get the same items i.e. feedback
if he touch explores the screen and uses focus traversal. This
is imperative for a good user experience.

2. Updated which focusables are considered when searching for access
focus in ViewGroup. Generally accessibility focus ignores focus
before/after descendants.

3. Implemented focus search strategy in AbsListView that will traverse
the items of the current list (and the stuff withing one item
before moving to the next) before continuing the search if
forward and backward accessibility focus direction.

4. View focus search stops at root namespace. This is not the right
way to prevent some stuff that is not supposed to get a focus in
a container for a specific state. Actually the addFocusables
for that container has to be overriden. Further this approach
leads to focus getting stuck. The accessibility focus ignores
root names space since we want to traverse the entire screen.

5. Fixed an bug in AccessibilityInteractionController which was not
starting to search from the root of a virtual node tree.

6. Fixed a couple of bugs in FocusFinder where it was possible to
get index out of bounds exception if the focusables list is empty.

bug:5932640

Change-Id: Ic3bdd11767a7d40fbb21f35dcd79a4746af784d4
/frameworks/base/core/java/android/widget/AbsListView.java
057a585fba01d92c38f27a8c080622dfd0c6f556 11-May-2012 Adam Powell <adamp@google.com> Automatic persistent text selection for ListViews

Use View transient state tracking to allow selection to persist across
ListView-style item view recycling.

Fix some bugs with transient state tracking.

Bug 6110122

Change-Id: Ic084b8fc2289bff718b19478a37ce64459b3ed4c
/frameworks/base/core/java/android/widget/AbsListView.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/AbsListView.java
f103758b7c78f4dc1c5bd57383d245ec138576a1 09-May-2012 Svetoslav Ganov <svetoslavganov@google.com> Merge "Delegate list item focus and click actions to the parent list." into jb-dev
aadf4fb68e640c0622a1070206f69a7724328632 09-May-2012 Adam Powell <adamp@google.com> More fun with AbsListView smooth scrolling

If any data set change is pending when a smooth scroll is requested,
post it for later - not just if the list is currently empty.

Fix a bug in relative smooth scrolling where the last view was being
determined incorrectly.

Bug 6434713

Change-Id: Ic249eefc594151a414a6a8758074a9a60888e2b4
/frameworks/base/core/java/android/widget/AbsListView.java
c1d7e770e123adfa992d013fa294693d077cbc78 08-May-2012 alanv <alanv@google.com> Delegate list item focus and click actions to the parent list.

Change-Id: Ie05c79f049896bfb498d4b33f0611da38f381140
/frameworks/base/core/java/android/widget/AbsListView.java
bf1b81fb25b140fb9a55fc6d6b2383c851290432 08-May-2012 Adam Powell <adamp@google.com> AbsListView: Toss transient state views once they no longer have
transient state.

Bug 6365897

Change-Id: Ib2bd546c74d3303ac01bcae9b01e221db36c1440
/frameworks/base/core/java/android/widget/AbsListView.java
e69370e16852c576890dd70733ad40669fd9367e 08-May-2012 Adam Powell <adamp@google.com> Fix misc. bugs in AbsListView smooth scrolling.

Handle the edge cases a bit better. Deal with padding. If a smooth
scroll begins, the list is empty, but a data change is pending, try
again on the next looper pass.

Bug 6453837
Bug 6434713

Change-Id: I53f22ebacdcbc5d981a6c8055c4fd3fc1ef140f6
/frameworks/base/core/java/android/widget/AbsListView.java
6f663c1a3c4d4a23bc71302add27b3d03d7d507b 01-May-2012 Adam Powell <adamp@google.com> Fix a bug in ListView where touch scrolling could skip a data set change

Bug 2597058

ListView's touch scrolling can query the adapter for new views. As we now
flush pending touch events before running layout/draw traversals (when we
normally bring ListView back in sync), this can now happen more often.

Resync data before executing a scroll if a data set change is pending.

Change-Id: I3e4eba4c2537911ba9cb3393ee4d9e68e46f84bb
/frameworks/base/core/java/android/widget/AbsListView.java
0b8acd81d5029385ec0ae3cafd90acf3036b89ac 26-Apr-2012 Adam Powell <adamp@google.com> Fix janky programmatic ListView scrolling

Adjust AbsListView to use a linear interpolator for smooth scrolling
rather than the default scroller behavior. This prevents irregular
motion as the scroll is altered in-flight to account for varying
height list items.

Bug 6397800

Change-Id: I8cc33dfc18903943369e1353930c48e2652b0142
/frameworks/base/core/java/android/widget/AbsListView.java
1fa179ef41c06bd19da70fd9bf95741238791940 13-Apr-2012 Adam Powell <adamp@google.com> Fix some smooth scrolling bugs in lists and update on the animation
timer.

Change-Id: I0cb03c6da204a34c9e942c3953b87287c3d4763d
/frameworks/base/core/java/android/widget/AbsListView.java
4213804541a8b05cd0587b138a2fd9a3b7fd9350 20-Mar-2012 Svetoslav Ganov <svetoslavganov@google.com> Accessibility focus - framework

Usefulness: Keep track of the current user location in the screen when
traversing the it. Enabling structural and directional
navigation over all elements on the screen. This enables
blind users that know the application layout to efficiently
locate desired elements as opposed to try touch exploring the
region where the the element should be - very tedious.

Rationale: There are two ways to implement accessibility focus One is
to let accessibility services keep track of it since they
have access to the screen content, and another to let the view
hierarchy keep track of it. While the first approach would
require almost no work on our part it poses several challenges
which make it a sub-optimal choice. Having the accessibility focus
in the accessibility service would require that service to scrape
the window content every time it changes to sync the view tree
state and the accessibility focus location. Pretty much the service
will have to keep an off screen model of the screen content. This
could be quite challenging to get right and would incur performance
cost for the multiple IPCs to repeatedly fetch the screen content.
Further, keeping virtual accessibility focus (i.e. in the service)
would require sync of the input and accessibility focus. This could
be challenging to implement right as well. Also, having an unlimited
number of accessibility services we cannot guarantee that they will
have a proper implementation, if any, to allow users to perform structural
navigation of the screen content. Assuming two accessibility
services implement structural navigation via accessibility focus,
there is not guarantee that they will behave similarly by default,
i.e. provide some standard way to navigate the screen content.
Also feedback from experienced accessibility researchers, specifically
T.V Raman, provides evidence that having virtual accessibility focus
creates many issues and it is very hard to get right.
Therefore, keeping accessibility focus in the system will avoid
keeping an off-screen model in accessibility services, it will always
be in sync with the state of the view hierarchy and the input focus.
Also this will allow having a default behavior for traversing the
screen via this accessibility focus that is consistent in all
accessibility services. We provide accessibility services with APIs to
override this behavior but all of them will perform screen traversal
in a consistent way by default.

Behavior: If accessibility is enabled the accessibility focus is the leading one
and the input follows it. Putting accessibility focus on a view moves
the input focus there. Clearing the accessibility focus of a view, clears
the input focus of this view. If accessibility focus is on a view that
cannot take input focus, then no other view should have input focus.
In accessibility mode we initially give accessibility focus to the topmost
view and no view has input focus. This ensures consistent behavior accross
all apps. Note that accessibility focus can move hierarchically in the
view tree and having it at the root is better than putting it where the
input focus would be - at the first input focusable which could be at
an arbitrary depth in the view tree. By default not all views are reported
for accessibility, only the important ones. A view may be explicitly labeled
as important or not for accessibility, or the system determines which one
is such - default. Important views for accessibility are all views that are
not dumb layout managers used only to arrange their chidren. Since the same
content arrangement can be obtained via different combintation of layout
managers, such managers cannot be used to reliably determine the application
structure. For example, a user should see a list as a list view with several
list items and each list item as a text view and a button as opposed to seeing
all the layout managers used to arrange the list item's content.
By default only important for accessibility views are regared for accessibility
purposes. View not regarded for accessibility neither fire accessibility events,
nor are reported being on the screen. An accessibility service may request the
system to regard all views. If the target SDK of an accessibility services is
less than JellyBean, then all views are regarded for accessibility.
Note that an accessibility service that requires all view to be ragarded for
accessibility may put accessibility focus on any view. Hence, it may implement
any navigational paradigm if desired. Especially considering the fact that
the system is detecting some standard gestures and delegates their processing
to an accessibility service. The default implementation of an accessibility
services performs the defualt navigation.

bug:5932640
bug:5605641

Change-Id: Ieac461d480579d706a847b9325720cb254736ebe
/frameworks/base/core/java/android/widget/AbsListView.java
a8bfeaf4f49fa33e96f37302f9c9b99c94aa1581 15-Mar-2012 Romain Guy <romainguy@google.com> Cleanup ListView glow's optimized invalidates

Change-Id: Ie9759fd95366866512ec55072aa482f972650d15
/frameworks/base/core/java/android/widget/AbsListView.java
9d849a2f6351caed83105b90cab79223ec2bfbd3 15-Mar-2012 Romain Guy <romainguy@google.com> Optimize invalidate calls in lists.

AbsListView was doing too many invalidates during scrolls/flings.
Some of them were also covering too large an area of the screen.

Change-Id: I68fe5dda3657bddd673996e7cf4f3c3672c66cfc
/frameworks/base/core/java/android/widget/AbsListView.java
29382d9d9d03553dfbc235d32d27be13b4c76c5f 23-Feb-2012 Adam Powell <adamp@google.com> Bug 6058721 - optimize changing checked states in AbsListView

Instead of treating a checked state change as a full data set change,
simply modify the checked or activated state of on-screen views.
Any resulting layout changes will be serviced as appropriate.

Change-Id: Ia846de16bbc54f0729608259aa4b530da9404245
/frameworks/base/core/java/android/widget/AbsListView.java
aebd28f729fa28016d70551d0372ab7fcd56ee1a 22-Feb-2012 Adam Powell <adamp@google.com> Fix bug 6048643 - verify ListView layoutparams while tracking stable IDs

Account for adapters that don't inflate item views using the ListView as
a parent.

Unify how AbsListView and subclasses generate layoutparams.

Change-Id: I963a5fcb4d98b721210a4d92d0db307f56acdf59
/frameworks/base/core/java/android/widget/AbsListView.java
539ee8716b4f81260bab2e9f3dc5d88d81c99985 04-Feb-2012 Adam Powell <adamp@google.com> Add transient state tracking to Views

Transient state is temporary bookkeeping that Views need to perform
that the app should not need to be aware of. Examples include text
selection regions and animation state.

Transient state is a problem for AdapterViews like ListView that do
view recycling. Unless the app takes responsibility for tracking and
restoring transient state as if it were a part of the adapter's data
set, it cannot correctly recycle views. Selections disappear when an
EditText is scrolled out of sight and animations seem to play on the
wrong views.

Views can now flag themselves as having transient state. (As the name
implies, this should be a temporary condition.) If a ViewGroup
contains a child with transient state, that ViewGroup also has
transient state.

AbsListView's recycler now tracks views with transient state
separately. Views with transient state will be retained, and until a
data set change occurs the same view will be reused for that position
instead of calling the adapter's getView() method.

The API to set and check transient state is currently hidden.

Change-Id: Idfd8eaac2c548337686d8d9f98fda4c64be5b8a0
/frameworks/base/core/java/android/widget/AbsListView.java
0764dee89cc82dd53196cce2865d3cabafed208f 18-Jan-2012 Svetoslav Ganov <svetoslavganov@google.com> Merge "AccessibilityEvent/AccessibilityNodeInfo class name property should be set to only framework classes."
b967392e0170af8cfd8053fd43fcdf8c46f703e9 05-Jan-2012 Adam Cohen <adamcohen@google.com> Hinting RemoteViewsAdapter as to which views are visible

-> This prevents collection widgets from flashing loading
views when they are updated with new content

Change-Id: I1241ff9a09edfd990ad03f76449d18b9359246b4
/frameworks/base/core/java/android/widget/AbsListView.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/AbsListView.java
43ee0ab8777632cf171b598153fc2c427586d332 09-Oct-2011 Dianne Hackborn <hackbod@google.com> Fix issue #5433910: RTE while adding an account from settings

Make the new marshalling/unmarshalling code for the long sparse
array of ints always consistent.

And sane.

Change-Id: Ifbfbe6e56f59e469acb66257c504b1168d6566fa
/frameworks/base/core/java/android/widget/AbsListView.java
e0f2515b444ceae20571cbe29e44237d259f54bd 07-Oct-2011 Adam Powell <adamp@google.com> Merge "Fix bug 5399568 - ListView check states inconsistent after data set change"
14c080497e427c4dd9395df5bacb28bcc4291a32 07-Oct-2011 Adam Powell <adamp@google.com> Fix bug 5399568 - ListView check states inconsistent after data set change

ListView tracks check states in two ways, by position and by ID if an
adapter reports stable IDs. After a data set change there was no
guarantee that the position checked mapping was consistent.

Fix up the position mapping from the ID mapping after a data set
change. In the future this should happen by asking the adapter where a
given ID is now located, but this will require new API and not all
adapters in the wild will implement it. For now make a best guess by
searching in a limited window around the item's last known position.

Change-Id: I70ba89eb103c438b0410c3c6d066acc3918459f9
/frameworks/base/core/java/android/widget/AbsListView.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/AbsListView.java
b84b94e1a04cd1f396dd6fef98d65ca1a2729c92 23-Sep-2011 Svetoslav Ganov <svetoslavganov@google.com> Scroll accessibility events should not populate text.

Scroll events are used to report position change and should not
contain the text content of the view that fires them because it
is usiually a containter for many other views and the text will
be long and not informative for accessibility purposes. Also
such evens are fired relatively frequently. If a client wants
to fetch some textual content for a scroll event he can use
the interrogation APIs.

bug:5352059

Change-Id: I43e02aca895c8ab16ba82ebe1cee3aea8ce7711a
/frameworks/base/core/java/android/widget/AbsListView.java
b0c71eb9f50ce06327fa6bb6219f0970e04fd856 17-Sep-2011 Jeff Brown <jeffbrown@google.com> Can't stop the fling!
Bug: 5335420

Fixed a bug in VelocityTracker where the output velocity was
not being set to zero when not available.

Added a condition to ensure that the velocity is at least
the minimum fling velocity before continuing. If not, then
the user is trying to stop the fling and scroll more precisely.

Change-Id: I36634b0c3f7a9a09cf20c33f71d41163a8e33eed
/frameworks/base/core/java/android/widget/AbsListView.java
a2b986e72c403f0b2ea593884e3135254bb83d30 14-Sep-2011 Adam Powell <adamp@google.com> Bug 5151927 - Monkeys should not play with detached lists.

Don't process ListView key events while detached from a window.

Change-Id: Ibf85e081887d47834a467f9fd2cb6a1e39b4857e
/frameworks/base/core/java/android/widget/AbsListView.java
1e83b3e6ab69456db5d308c12e367a5d7166610d 14-Sep-2011 Adam Powell <adamp@google.com> Fix bug 5312352 - ListView modal multi-select mode bugs

When the provided callback returned false for creating the mode, the
item was still getting checked and the bar was flickering. Don't do
that.

Change-Id: I384962742edeac0c43aec6f7898bd50dab064738
/frameworks/base/core/java/android/widget/AbsListView.java
7f2202b0bd6eb66e64d1bbed91c39181b754e90f 13-Sep-2011 Jeff Sharkey <jsharkey@android.com> Handle data changed during FlingRunnable.

Bug: 5297171
Change-Id: I733ed978bb1d237c992f5d003b212baeac102a3d
/frameworks/base/core/java/android/widget/AbsListView.java
78f6e63031da4ff06057be9a9e6c77ea83da4673 10-Sep-2011 Jeff Brown <jeffbrown@google.com> Handle DOWN/MOVE/UP gestures with fling.
Bug: 5265814

When MOVE events are batched, a ListView may not receive only
one MOVE event followed immediately by an UP in the case of
a quick fling. Unfortunately, the old code relied on there
being at least one additional MOVE event following the first
in order to really scroll or fling.

This change extracts common code from onTouchEvent to
handle scrolls as soon as they are started if there is additional
remaining motion beyond the initial touch slop (taken care of by
mMotionCorrection).

Change-Id: I8c8f03f580bfba96aa69cf111d245ba7fd3b4c2a
/frameworks/base/core/java/android/widget/AbsListView.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/AbsListView.java
9a5cc2810bbbcb0eab4579aa4131039820d92101 29-Aug-2011 Adam Powell <adamp@google.com> Fix bug 5124021 - Menu visibility incorrect when restoring ListView
selection mode

Fix visibility of menus when action modes are initiailized early.

Fix ListView problems persisting check states.

Change-Id: Idc21036dc39259e72f0e6831a0ccb4695f8858ef
/frameworks/base/core/java/android/widget/AbsListView.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/AbsListView.java
ee78b173aae7ecb35b065c7499ac4f89b9c2f06e 17-Aug-2011 Adam Powell <adamp@google.com> Fix bug 5048082 - Conversation doesn't scroll after you send a message

Fix TRANSCRIPT_MODE_NORMAL to work properly when multiple data set change
events happen before a relayout.

Change-Id: If866f7c649c1119d088020f1231b916047402b8c
/frameworks/base/core/java/android/widget/AbsListView.java
b3750133db256ffa5956c8836bc86c3c22918cb1 09-Aug-2011 Adam Powell <adamp@google.com> Fix bug 5135608 - Let AbsListView take focus while detached

While it is valid to request focus while detached from a window,
AbsListView did not handle it gracefully if it had an adapter whose
data changed while the view was detached, since DataSetObservers are
unregistered during this time. Assume that the data could have changed
if we gain focus while detached.

Change-Id: Id135693ffcc48ff5a9d530d335ab449180624c43
/frameworks/base/core/java/android/widget/AbsListView.java
4e03f5910cf641e2610f4cbe3fc24d84c430d1e8 30-Jul-2011 Svetoslav Ganov <svetoslavganov@google.com> Removing firing of spurious scroll accesibility events.

1. Adding a TextView to a layout fires an accessibility scroll event
with mScrollX = 8144. Now TextView does not fire scroll events
since they are not interesting for accessibility and also the
implementation fires scroll to frequently - though correctly.

2. AbsListView was firing accessibility events for the same location.
Here the caveat is that this class does not know its height and
calls onScrollChange every time is scroll as seen by the user
may have changed but for accessibility purposes we care for the
start and end indices of visible views. The fix is to avoid
sending access events with duplicate data.

bug:5097467

Change-Id: I7bf11efd638ea3673843f1095a03f518e57cfe9d
/frameworks/base/core/java/android/widget/AbsListView.java
2148d43eb23c702e834c93ae427f822f32d280a2 28-Jul-2011 Adam Cohen <adamcohen@google.com> Fixing widget notifyDataSetChanged() not getting called, issue 5092676

Change-Id: I61a034a77c0c9d07aba71bfabe7a0864ce92c2e9
/frameworks/base/core/java/android/widget/AbsListView.java
044a46bda5e2f6bc9f700e65d05ed17faae68f11 26-Jul-2011 Adam Powell <adamp@google.com> Fix bug 5051894 - drags/flings at the beginning/end of ListViews are
often dropped

Fix some weirdness in transitioning between overscroll states.

Change-Id: Ie0c2ba75cc60c340e654df58dee675ed1426edb9
/frameworks/base/core/java/android/widget/AbsListView.java
fc302cdeed5317b140a2a7813857434effb793af 22-Jul-2011 Adam Powell <adamp@google.com> Fix bug 5037537 - Revert "ListView focus bugfix."

This reverts commit a86127fe265896136d2e70273b7623e7c765fe2e.
/frameworks/base/core/java/android/widget/AbsListView.java
1e20946aa34372de5585e2a8ce3b73906a2d828b 15-Jul-2011 Jeff Brown <jeffbrown@google.com> Ensure selector state is updated when touch mode changes.

This fixes a problem where the focus selection rectangle
often remains visible even after entering touch mode.
This problem is particularly noticeable when using the
mouse to scroll the list while an item is selected.

Change-Id: I9938d2586725d91fd3f6738408233f2ead167319
/frameworks/base/core/java/android/widget/AbsListView.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/AbsListView.java
a79f4b7df9d6d80b9371ba289040a60fa93bb87c 23-Mar-2011 Jason Bayer <bayer@google.com> Refresh the drawable state when selecting a position.

It seems that mSelectorShowing is a dead (always false) field.

Bug: 4070346
Change-Id: Icf3cc6f19cc49dcfda15229a6d91232404c0743c
/frameworks/base/core/java/android/widget/AbsListView.java
a86127fe265896136d2e70273b7623e7c765fe2e 01-Jul-2011 Mark Lindner <mlindner@google.com> ListView focus bugfix.

resurrectSelection() didn't take into account disabled items
(which shouldn't ever get focus).

Bug: 4967915
Change-Id: I849d2d993ddf93f49108e7b867ff6d24643c07a8
/frameworks/base/core/java/android/widget/AbsListView.java
2585e9bd6ded294e426607717ccc85a56bade594 01-Jul-2011 Justin Koh <justinkoh@google.com> Frameworks: fixes possible invalid pointer index call.

Fixes possible invalid pointer index call in AbsListView.

Bug: 4982383
Change-Id: I9b88ab6a055c7678ef81fbe3187473edf8d12f6a
/frameworks/base/core/java/android/widget/AbsListView.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/AbsListView.java
eeee4d2c01d3c4ed99e4891dbc75c7de69a803fa 11-Jun-2011 Svetoslav Ganov <svetoslavganov@google.com> Final polish of the interrogation feature.

1. Added a new event type for notifying client accessibilitiy
services for changes in the layout. The event is fired at
most once for a given time frame and is delivered to clients
only if it originates from the window that can be interrogated.

2. Exposed the findByText functionality in AccessibilityNodeInfo.
This is very useful for an accessibility service since it allows
searching for something the user knows is on the screen thus
avoiding touch exploring the content. Touch exploring is
excellent for learning the apps but knowing them search is
much faster.

3. Fixed a bug causing an accessibiliby service not to receive
the event source in case of more than one service is registered
and one of them does not have paermission to interrogate the window.
The same event was dispatched to multiple services but if one
of them does not have interrogation permission the event is
modified to remove the source causing subsequent serivices not
to get the later.

4. Moved the getSource setSource methods to AccessibilityRecord
instead in AccessibilityEvent.

5. Hiden some protected members in AccessibilityRecod which should
not be made public since getters exist.

6. Added the View absolute coordinates in the screen to AccessibilityNodeInfo.
This is needed for fast computation of relative positions of
views from accessibility - common use case for the later.

7. Fixed a couple of marshalling bugs.

8. Added a test for the object contract of AccessibilityNodeInfo.

Change-Id: Id9dc50c33aff441e4c93d25ea316c9bbc4bd7a35
/frameworks/base/core/java/android/widget/AbsListView.java
b93ffdb5d5c42cb3d3ae3596428f50b3046ae3d4 03-Jun-2011 Adam Powell <adamp@google.com> am b30dda6b: am 036c40f4: am fa8ee177: Merge "Framework: bugfix for menu selector not showing up properly." into honeycomb-mr2

* commit 'b30dda6b550fedcf5c3b15671d483205a7757e1b':
Framework: bugfix for menu selector not showing up properly.
3c7b96a3466d05ad9979e86f44eb61a12ef67da3 01-Jun-2011 Justin Koh <justinkoh@google.com> Framework: bugfix for menu selector not showing up properly.

Menu selector wasn't showing up properly because selector state wasn't updated after touch mode. Added this to resurrectselection call.

http://b/issue?id=4372583

TESTED = runs on M4.

Change-Id: I349c3b86f4e8a1a02a20494b547859d0c12867ee
/frameworks/base/core/java/android/widget/AbsListView.java
bad9d97693a784ea37f1510550e0e4a98f9a9180 28-May-2011 Svetoslav Ganov <svetoslavganov@google.com> Refatoring a bit of accessibility code

Change-Id: I4df1741b622b21176c10311da0dc6347ca6fb390
/frameworks/base/core/java/android/widget/AbsListView.java
fe9f8ab03a63b1037f07dd85799fbea80ec6adaa 07-May-2011 Jeff Brown <jeffbrown@google.com> Add initial API for stylus and mouse buttons.

Added the concept of pointer properties in a MotionEvent.
This is currently used to track the pointer tool type to enable
applications to distinguish finger touches from a stylus.

Button states are also reported to application as part of touch events.

There are no new actions for detecting changes in button states.
The application should instead query the button state from the
MotionEvent and take appropriate action as needed.

A good time to check the button state is on ACTION_DOWN.

As a side-effect, applications that do not support multiple buttons
will treat primary, secondary and tertiary buttons identically
for all touch events.

The back button on the mouse is mapped to KEYCODE_BACK
and the forward button is mapped to KEYCODE_FORWARD.

Added basic plumbing for the secondary mouse button to invoke
the context menu, particularly in lists.

Added clamp and split methods on MotionEvent to take care of
common filtering operations so we don't have them scattered
in multiple places across the framework.

Bug: 4260011
Change-Id: Ie992b4d4e00c8f2e76b961da0a902145b27f6d83
/frameworks/base/core/java/android/widget/AbsListView.java
c6cc0f8c19d9eccf408a443fa2bf668af261dcd0 12-Apr-2011 Joe Onorato <joeo@google.com> Rename ViewRoot to ViewAncestor.

ViewRoot is about to be a new public class for poking at ViewAncestor.

Change-Id: Ie95d707c6d8bbb48f78d093d7b2667851812a7d5
/frameworks/base/core/java/android/widget/AbsListView.java
736c2756bf3c14ae9fef7255c119057f7a2be1ed 23-Apr-2011 Svetoslav Ganov <svetoslavganov@google.com> Touch exploration feature, event bubling, refactor

1. Added an Input Filter that interprets the touch screen motion
events to perfrom accessibility exploration. One finger explores.
Tapping within a given time and distance slop on the last exlopred
location does click and long press, respectively. Two fingers close
and in the same diretion drag. Multiple finglers or two fingers in
different directions or two fingers too far away are delegated to
the view hierarchy. Non moving fingers "accidentally grabbed the
device for the scrren" are ignored.

2. Added accessibility events for hover enter, hover exit, touch
exoloration gesture start, and end. Accessibility hover events
are fired by the hover pipeline. An accessibility event is
dispatched up the view tree and the topmost view fires it.
Thus predecessors can augment the fired event. An accessibility
event has several records and a predecessor can optionally
modify, delete, and add such to the event.

3. Added onPopulateAccessibilityEvent and refactored the existing
accessibility code to use it.

4. Added API for querying the currently enabled accessibility services
by feedback type.

Change-Id: Iea2258c07ffae9491071825d966dc453b07e5134
/frameworks/base/core/java/android/widget/AbsListView.java
3fb3d7c4e756bd32d5abde0abca9ab52d559bc84 23-Apr-2011 Adam Powell <adamp@google.com> Revert "Touch exploration feature, event bubling, refactor"

This reverts commit ac84d3ba81f08036308b17e1ab919e43987a3df5.

There seems to be a problem with this API change. Reverting for now to
fix the build.

Change-Id: Ifa7426b080651b59afbcec2d3ede09a3ec49644c
/frameworks/base/core/java/android/widget/AbsListView.java
ac84d3ba81f08036308b17e1ab919e43987a3df5 05-Apr-2011 Svetoslav Ganov <svetoslavganov@google.com> Touch exploration feature, event bubling, refactor

1. Added an Input Filter that interprets the touch screen motion
events to perfrom accessibility exploration. One finger explores.
Tapping within a given time and distance slop on the last exlopred
location does click and long press, respectively. Two fingers close
and in the same diretion drag. Multiple finglers or two fingers in
different directions or two fingers too far away are delegated to
the view hierarchy. Non moving fingers "accidentally grabbed the
device for the scrren" are ignored.

2. Added accessibility events for hover enter, hover exit, touch
exoloration gesture start, and end. Accessibility hover events
are fired by the hover pipeline. An accessibility event is
dispatched up the view tree and the topmost view fires it.
Thus predecessors can augment the fired event. An accessibility
event has several records and a predecessor can optionally
modify, delete, and add such to the event.

3. Added onPopulateAccessibilityEvent and refactored the existing
accessibility code to use it.

4. Added API for querying the currently enabled accessibility services
by feedback type.

Change-Id: Iec03c6c3fe298de3f14cb6efdbb9b198cd531a0c
/frameworks/base/core/java/android/widget/AbsListView.java
becb0be2bb769e819774d32d6f9e4f6b31668157 22-Mar-2011 Adam Powell <adamp@google.com> Fix bug 3175131 - listviews don't highlight properly

Fix up selector drawable state when we resurrect a selection.

Change-Id: Id883c8b416207a50951ec2852826b1eee17bc50c
/frameworks/base/core/java/android/widget/AbsListView.java
7b5b6abf852c039983eded25ebe43a70fef5a4ab 15-Mar-2011 Romain Guy <romainguy@google.com> Fix rendering artifact in edge fades.
Bug #4092053

The problem always existed but was made visible by partial invalidation.
When saving a layer, the renderer would try to postpone glClear()
operations until the next drawing command. This however does not work
since the clip might have changed. The fix is rather simple and
simply gets rid of this "optimization" (that turned out to be
usless anyway given how View issues saveLayer() calls.)

This change also fixes an issue with gradients (color stops where
not properly computed when using a null stops array) and optimizes
display lists rendering (quickly rejects larger portions of the
tree to avoid executing unnecessary code.)

Change-Id: I0f5b5f6e1220d41a09cc2fa84c212b0b4afd9c46
/frameworks/base/core/java/android/widget/AbsListView.java
07d6f7bd750655852da49ee1a3c64f7dc05cc00d 02-Mar-2011 Adam Powell <adamp@google.com> Fix bug 3502257 - overscroll effect api

Change-Id: I3bf8bb653e96151c51fb94b4571a72b210615e62
/frameworks/base/core/java/android/widget/AbsListView.java
498e43dd8e0314e1147321bef57d4fdd82cb5284 02-Mar-2011 Adam Powell <adamp@google.com> Fix bug 3501411 - ListView should ignore "up" events outside of its view

Do not dispatch item clicks if the up event occurs completely outside
of list bounds.

Change-Id: I2bc38040bcc98944e1449affcdbd75e0194637cf
/frameworks/base/core/java/android/widget/AbsListView.java
91b52b189550b20cdb4e3e1920fe81a479aec843 01-Mar-2011 Gilles Debunne <debunne@google.com> Merge "AbsListView notifies scroll events to the ViewTreeObserver."
0a1b818b8c45c8b100eeabb5c59bb4d85cf90868 01-Mar-2011 Gilles Debunne <debunne@google.com> AbsListView notifies scroll events to the ViewTreeObserver.

ViewTreeObserver OnScrollChangedListener will then get notified.

The scroll values are not specified, since they are passed to the
base View.onScrollChanged method that simply sets the flags.

No need to throw these from a Runnable (in case this happens during
a relayout) since the listeners will be notified later from ViewRoot.draw().

Calling View.onScrollChanged in invokeOnItemScrollListener for normal scroll and
in onOverScrolled to handle mScroller animation.

Change-Id: Ib41434e5cd82e5a45ca6653db576746e89ef072d
/frameworks/base/core/java/android/widget/AbsListView.java
5bf7658cb85a1e70f3ea89a3a674a96c2eb7531f 01-Mar-2011 Gilles Debunne <debunne@google.com> Merge "Removed ViewTreeObserver null checks"
f37fccd9d867af5c1ea1770dea64e600fda04500 01-Mar-2011 Adam Powell <adamp@google.com> Merge "Change behavior of multitouch in scrolling views."
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/AbsListView.java
bb579480494b78e5943408bde116850cdb2b61d3 01-Mar-2011 Jeff Brown <jeffbrown@google.com> Merge "Fix inverted scrolling condition in lists."
275d8238da4c19acefffdb701273de86c09d2472 28-Feb-2011 Jeff Brown <jeffbrown@google.com> Fix inverted scrolling condition in lists.

Change-Id: Iaf0de1f7cad565b59e8347cb3634cb620d8016b0
/frameworks/base/core/java/android/widget/AbsListView.java
ccf857cc4c388ecb3bf2e4d84d563853cc21dbfa 28-Feb-2011 Gilles Debunne <debunne@google.com> Merge "OnScrollListener fix in AbsListView"
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/AbsListView.java
e20a193754edec182fc0ea13f84a2a1e50add99f 25-Feb-2011 Gilles Debunne <debunne@google.com> OnScrollListener fix in AbsListView

Starting from a list at position 0 (first element displayed
at the top), touch and scroll down. The list cannot go further
down and the glow is displayed.

A connecter scrollListener will receive a FLING but will not
receive the IDLE after.

The reason is that the springback motion that should be started
at that point is not started because the overscroll distance is set to 0.

The fix is to report an IDLE state in that case.

Change-Id: I383babaf8412ee74d598efcf61e91cff44068c79
/frameworks/base/core/java/android/widget/AbsListView.java
0e7d652dbd7cc6415685bece745a752da39179c6 23-Feb-2011 Gilles Debunne <debunne@google.com> Removed ViewTreeObserver null checks

Change-Id: Ib11cbe188ac059cc3eaa24c178b2746a8b519918
/frameworks/base/core/java/android/widget/AbsListView.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/AbsListView.java
0211a0a10d20ec99bd78905ea9cd2960f7beb4c8 15-Feb-2011 Romain Guy <romainguy@google.com> Gracefully handle drawing caches allocation failure.
Bug #3431451

This bug was causing ListView to not render properly when showing an item
larger than the maximum drawing cache size. ListView relies on the drawing
cache to correctly mask all the background pixels. However, if the cache
is not properly created, the background will show through even though
ListView.isOpaque() == true. This change detects this case and falls
back to the default non opaque behavior.

Change-Id: I30a45e7a03fb7ebb2b12f0e85c075c2901954c44
/frameworks/base/core/java/android/widget/AbsListView.java
8d6d3b83fb765eefc6fd38de77f1f45d2523ab89 27-Jan-2011 Jeff Brown <jeffbrown@google.com> Fix down arrow in AutoCompleteTextView.

Bug: 3337416
Change-Id: I572d55c973b9adc68765ba02197e84f3558e65bc
/frameworks/base/core/java/android/widget/AbsListView.java
9e7c2c6ded1144122915cfb8bd663e789c7eb93b 27-Jan-2011 Romain Guy <romainguy@google.com> Merge "Optimize invalidate() calls." into honeycomb
0fd89bf7221431260883cee4597e2db942d799a0 27-Jan-2011 Romain Guy <romainguy@google.com> Optimize invalidate() calls.

Change-Id: I09d99290ca74f96046702bc2604f125a1276ce05
/frameworks/base/core/java/android/widget/AbsListView.java
16c8d8a558f94ec14ef52bb5ac11044e2d0d902c 21-Jan-2011 Winson Chung <winsonc@google.com> Re-enabling queued unbinding of services after requests to the service. (3394210)

- Fix for crash when detaching from window
- Potential fix for occasional IllegalStateException when updating List based widgets

Change-Id: I3d3f2bb691552a1136111043db686c4926b510c6
/frameworks/base/core/java/android/widget/AbsListView.java
4ce35419cea4c320b71f848cf00fd6f5d17e960e 24-Jan-2011 Adam Powell <adamp@google.com> Fix bug 3242393 - overscroll effect missing from lists which drag but
are always visible

Change-Id: I20d73c452c7b98f1a046e356d0c6cdbfc8e5fe7a
/frameworks/base/core/java/android/widget/AbsListView.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/AbsListView.java
2bed570bba183249c6ca9ca1151d1d23808de8c1 24-Jan-2011 Adam Powell <adamp@google.com> Fix bug 3367627 - spontaneous crash

Fix a little-traversed codepath that could cause some grief.

Change-Id: I75e6931c3208a0f18b40446f23a2fdd5a0065ce8
/frameworks/base/core/java/android/widget/AbsListView.java
d63d33581051fdffd16789551852368d21b89fe1 19-Jan-2011 Adam Powell <adamp@google.com> Merge "Fix bug 3362258 - Fastscroll is out of sync with the list" into honeycomb
b1f498afc379ec84b86137e91afda6eccb8f4c0a 19-Jan-2011 Adam Powell <adamp@google.com> Fix bug 3362258 - Fastscroll is out of sync with the list

Change-Id: I13282bfed355f5794041e83818ee2e9e97c1b318
/frameworks/base/core/java/android/widget/AbsListView.java
7890fe2da4719bf72b4fbcbef20a555d5fbd94bb 19-Jan-2011 Romain Guy <romainguy@google.com> Don't pass a null View to OnListItemClickListener.
Bug #3365153

Change-Id: I1328a554408bf16ec592ae1a747e57a5fb9305e3
/frameworks/base/core/java/android/widget/AbsListView.java
e0fd2eb2f143b2776b5e1a4e88144fddadd149b1 18-Jan-2011 Adam Powell <adamp@google.com> Fix bug 3357208 - List selector shows as dark black on first pressed state

Make sure AbsListView selector drawable state gets configured on touch.

Change-Id: Ic5863ee05517b426585f59aaf52ba75b72d8c020
/frameworks/base/core/java/android/widget/AbsListView.java
79303750df0e4d18f51f64c7ef3ca21fca893bbb 14-Jan-2011 Adam Powell <adamp@google.com> Fix bug 3352112 - crash in AbsListView.smoothScrollBy

Change-Id: I00b4e5855a1c0861993670a38ed2cd946fd18594
/frameworks/base/core/java/android/widget/AbsListView.java
4032252c997be9f5d013054dc23ace855007b3a5 13-Jan-2011 Adam Powell <adamp@google.com> Fix bugs 3077517 and 3309579 - ListView bugs

Fix smoothScrollPositionFromTop scrolling too far on reverse scrolls

Fix an invalid touch mode when smoothScrollBy attempts to scroll off
the end of a list
/frameworks/base/core/java/android/widget/AbsListView.java
b3ea92235c9ccc1ff295839a8f324dcd1c83dd6f 11-Jan-2011 Jeff Brown <jeffbrown@google.com> Fix NPEs in detached views.

Bug: 3297518
Change-Id: Ife1384f3a5bebbd28a29f97dc6d519f8a0b10ba9
/frameworks/base/core/java/android/widget/AbsListView.java
d0b8365fcbe891b0bb3b54d345337f60c292d09e 10-Jan-2011 Romain Guy <romainguy@google.com> Return the View that matches the clicked position.
Bug #3323669

Change-Id: If6093885283f962d20bf287ba8b82d7c76f9076c
/frameworks/base/core/java/android/widget/AbsListView.java
0633549799ec02e8aaea3242ea66bd501f3bb604 07-Jan-2011 Gilles Debunne <debunne@google.com> Removed XmlAdapters from frameworks.

Has been moved to samples.

Change-Id: Icc0530d78df9755a4a1fe9314fa557a91da408c6
/frameworks/base/core/java/android/widget/AbsListView.java
a13fc67b8147a1bc8c25d2f28ab027023e339426 06-Jan-2011 Adam Powell <adamp@google.com> Fix bug 3326380 - ListView motion scrolling stops too early when list
is padded

Change-Id: Iaca31e030aefc87f115d5022c2a42aefd73b88ea
/frameworks/base/core/java/android/widget/AbsListView.java
d173fa3b1cb8e4294aba7564c0171894be6c3c24 23-Dec-2010 Dianne Hackborn <hackbod@google.com> Possible fix to issue #3213749: NPE at...

...android.app.Fragment.startActivityForResult(Fragment.java)

Make sure to remove all pending messages when AbsListView is detached
from its window.

But... that's not enough.

It turns out that when a fragment's views are animating away, they of
course don't get detached until after the animation is done. However
the fragment itself is immediately destroyed, leaving its live views
still going after that.

Here's a possible solution: when fragment manager initiates an animation
on a fragment whose views are being removed, it makes note of that so
it can hold off on destroying the fragment until the animation is over.

There are a lot of interesting race conditions here, if further operations
happen on the fragment while it is being animated. I think the code here
does something sensible, and it does seem to work for the situations I
have tested, but it is hard to know all of the edge cases that may happen.

Change-Id: I4490ce8862a9bb714c7ea54baca3072c62126388
/frameworks/base/core/java/android/widget/AbsListView.java
dd830c21149c336139b28560c0e6fba9f3d0e0fc 23-Dec-2010 Dianne Hackborn <hackbod@google.com> am 60238734: am 2dda21b9: Merge "Another stab at fixing issue #3149290 java.lang.RuntimeException:..." into gingerbread

* commit '6023873463331d30b7ed12942c3323f1b6975ed8':
Another stab at fixing issue #3149290 java.lang.RuntimeException:...
7becaeea7b220ab6fbe93e35461c7734032e7af4 23-Dec-2010 Dianne Hackborn <hackbod@google.com> Another stab at fixing issue #3149290 java.lang.RuntimeException:...

...Unable to pause activity
{com.android.settings/com.android.settings.applications.StorageUse}

Change-Id: Ibfa28a1c5af50dd150dfcafe71e905426d312643
/frameworks/base/core/java/android/widget/AbsListView.java
4e6319b73c85082e18d1c532b86336ddd1f8cfaa 13-Dec-2010 Jeff Brown <jeffbrown@google.com> Add initial support for TAB navigation.

Bug: 3286652
Change-Id: I813a0318b3b8d9c9bc791ea6a2427be11c08de00
/frameworks/base/core/java/android/widget/AbsListView.java
fb60386b46d0c6216c765c10bd33ac42ca780917 17-Dec-2010 Adam Cohen <adamcohen@google.com> Addressing issues associated RemoteViewsAdapter's service crashes / disconnects

-See issue: 3052667

Change-Id: I95f1cac3defeadc38ac75453d9d59cd1b3cbcc83
/frameworks/base/core/java/android/widget/AbsListView.java
a8a9ff20dcf5e3fa40e9b5aa69a7e3bf24a3a3d7 15-Dec-2010 Dianne Hackborn <hackbod@google.com> am b32ea255: am 7daaa98c: Merge "Fix issue #3149290: java.lang.RuntimeException: Unable to pause activity" into gingerbread

* commit 'b32ea25529589a77ede8faf278068157107ba897':
Fix issue #3149290: java.lang.RuntimeException: Unable to pause activity
99441c45e48abd118bd38da6f0844750a710cd33 15-Dec-2010 Dianne Hackborn <hackbod@google.com> Fix issue #3149290: java.lang.RuntimeException: Unable to pause activity

{com.android.settings/com.android.settings.applications.StorageUse}

AbsListView could call mAdapter.getItemId() if a save state happened
after the data changed but before a layout occurred.

Change-Id: Ica020971dc458dff79b56dd810733e217f4f7da6
/frameworks/base/core/java/android/widget/AbsListView.java
bdccc2d3db85d6489ddf332871ebf082386bae53 15-Dec-2010 Adam Powell <adamp@google.com> Fix bug 3274422 - Prevent pop-in of items in certain lists

Change-Id: Ia4f253b1cb49fbed175d87f8d85fae838a99a614
/frameworks/base/core/java/android/widget/AbsListView.java
3cd0c571ead0795d6e3d86a2865d51ff35b01c6f 25-Oct-2010 Adam Powell <adamp@google.com> Fix bug 3281956 - Cherry-picked from GB

DO NOT MERGE Fix bug 3124899 - timeout in CTS test
ExpandableListViewBasicTest

A certain sequence of events could cause AbsListView to enter an
infinite event loop. Only report reaching a scroll boundary to the
overscroll code path if the Scroller wants to move further, not if
we're done moving.

Change-Id: Ib61897f619e83b28f08b91e82f2b901cb1739e1a
/frameworks/base/core/java/android/widget/AbsListView.java
2c6196aa557e4eaf09d1ec3ad1347742f7f9f7b5 10-Dec-2010 Adam Powell <adamp@google.com> Fix a bug where the fast scroll track would be positioned
incorrectly.

Make fast scroll theme attributes public.

Fix a bug where always-visible fast scrollers wouldn't appear on small
lists.

Change-Id: I377adf63d2fe88478f77b0b04466c6ae88557efe
/frameworks/base/core/java/android/widget/AbsListView.java
16bb80af66012cee1625dd4e926c1fbdf87b8670 10-Dec-2010 Adam Powell <adamp@google.com> Fix typo

Change-Id: I59e7009d054e376e4b48bcabb4a7343d0cab4bd1
/frameworks/base/core/java/android/widget/AbsListView.java
20232d0f7ce2220df72dd78bed052f6b4a643f10 09-Dec-2010 Adam Powell <adamp@google.com> Holo scrollbars and related tweaks.

Added setting for placing vertical scrollbars on left or right.

Added setting for showing fast scroll persistently.

Fixed a bug where inset padding was miscalculated for horizontal scroll bars.

Fixed a bug where padded ListViews would draw fading edges incorrectly

Change-Id: I1f8499895272d42598b4b3fd3375301115def461
/frameworks/base/core/java/android/widget/AbsListView.java
e1be66cdbce9f1bb6aa00bcfc32c1fe6a60e7574 09-Dec-2010 Mindy Pereira <mindyp@google.com> Make sure bottom overscroll feedback takes scrollY into account.

This fixes an issue where the overscroll feedback was rendering
several pixels above the bottom of the list on a flick.

Change-Id: I66160d1b72c04f0273f063910eff995e2b2569f0
/frameworks/base/core/java/android/widget/AbsListView.java
da13dbae6fe0619101433ac861da460b8be63a36 05-Dec-2010 Adam Powell <adamp@google.com> Fix bug 3214215 - ListView should stay scrolled to the bottom in transcript mode after a resize

Change-Id: Iaccc61d9b38e7add44216f3e39b196623773af91
/frameworks/base/core/java/android/widget/AbsListView.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/AbsListView.java
a5531d784b9b79fe3bf9b30d99e9c99ea3947c6d 23-Nov-2010 Mindy Pereira <mindyp@google.com> Update edge and glow rendering to match new specs.

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

Change-Id: I3eb4413261b38ddd8c609d6153bdfd4ae46c6a0f
/frameworks/base/core/java/android/widget/AbsListView.java
b43d6a30ad1e7bf0e64192a1f144b3fe1bcf7f95 20-Nov-2010 Erik <epastern@google.com> b/3215774 Fix scrollMode notifications

When transitioning from a fling to a touch the mode was being set
to idle instead of ending up in scroll. This corrects the
notifications to get sent in the correct order.

Change-Id: Ideed6e4064b2be62788307f4232015fa88e101b4
/frameworks/base/core/java/android/widget/AbsListView.java
5e9d94505bd7d4e294bfe309db25e293164e2d29 19-Nov-2010 Brad Fitzpatrick <bradfitz@android.com> Fix AbsListView StrictMode.Span end point on flings.

Noticed after logs showed a ton of false positives, I went back and
looked at the history. During the review of the previous CL, I
accidentally moved the finish() of the fling animation tracking inside
the PROFILE_FLINGING block, which is normally off.

Re-tested this CL with StrictMode debugging enabled and it now always
propertly resets to 0 animations in flight when no animations are
running.

Change-Id: Ie9746df36e2ec3f82679b20e91e3d93c05b863d4
/frameworks/base/core/java/android/widget/AbsListView.java
8c3e0fc84f69e9fe704dc20dd6c2bab1ce43fe93 18-Nov-2010 Adam Powell <adamp@google.com> Fix bug 3207067 - adjust AbsListView content pop-in when clipToPadding=false

Known issue: Dividers are not drawn on top. This should be handled
once overscroll is merged in.

Change-Id: I778703601183f919e7c4345cfc4af6036b4ada4e
/frameworks/base/core/java/android/widget/AbsListView.java
d348bb4feff72d047a1037537be2d334a00c380c 15-Nov-2010 Gilles Debunne <debunne@google.com> Changes to scrolling physics

Spline curve for Scroller fling motion (debunne)

Flywheel motion for AbsListView

Change-Id: Ic1f226878745ff4c302dc6bd0752868fa182dd7b
/frameworks/base/core/java/android/widget/AbsListView.java
1cc13b6d1cc7203ad126b0708f0bf697e111264f 17-Nov-2010 Brad Fitzpatrick <bradfitz@android.com> Annotate ListView with StrictMode.Span

Change-Id: Ibee1bfa73c85dac2e8103eb5900f0609cbb30ee7
/frameworks/base/core/java/android/widget/AbsListView.java
0046bd8ea6f56b632fd7b9c4c33e22f57232bcbc 16-Nov-2010 Adam Powell <adamp@google.com> Fix bug 3192412 - ListView doesn't reportScrollStateChange properly
for programmatic scrolls

Allow for onScrollStateChanged implementations that end up changing
scroll state again.

Change-Id: I53105f5be708bacc0d3ec8e76ba1cc22f4131467
/frameworks/base/core/java/android/widget/AbsListView.java
0785279dad89d90564f42beb2c4620bf387a966e 11-Nov-2010 Adam Powell <adamp@google.com> Refine AbsListView transcript mode behavior.

Make transcript mode only scroll to the bottom if the last item is
already scrolled fully to the bottom when the change occurs Before
this, transcript mode would cause a list to scroll to the bottom as
long as the last item in the adapter was visible at all. Long items
would make this behave unexpectedly.

Change-Id: Ia6a52c969ea6d50653cf2b8cd4dc30ba517cf803
/frameworks/base/core/java/android/widget/AbsListView.java
a0eeeac82010e03ce8949bf7efed909afdbaf41c 05-Nov-2010 Adam Powell <adamp@google.com> Fix bug 3167945 - list selection mode should persist across rotations

Modal multi-choice mode action modes will now be restarted when
restoring instance state provided that the application has set a
multi-choice mode callback before instance state is restored. This
matches other list state restoration behavior with adapters.

Change-Id: I8e96e079faa3a086d3d4480d65b8c53a60f4c0ea
/frameworks/base/core/java/android/widget/AbsListView.java
2614c6c1f9fb19af21b901c16c443335bbc9d50b 05-Nov-2010 Adam Powell <adamp@google.com> Fix bug 3167099 and bug 3009490 - GridView choice modes and
getCheckedItemCount after orientation change

Remove the restriction on choice modes for GridView - this is handled
by common code in AbsListView. Persist the checked item count in saved
instance state.

Change-Id: Iebb964bb3c43779c082a458ea3f2754ab694b69d
/frameworks/base/core/java/android/widget/AbsListView.java
e213677037f836529efcc0ac201fc61dd95481c5 04-Nov-2010 Dianne Hackborn <hackbod@google.com> Push the jumpDrawablesToCurrentState() thing off everywhere it should be.

Also add a new interface that items in AbsListView can implement to
adjust the bounds of the selection shown for them. This will allow
contacts to use list view's regular selection facility rather than
implementing something special in their item views.

Change-Id: I29cbdbc7122111ee97e47fe7d6ec55ff07be79cc
/frameworks/base/core/java/android/widget/AbsListView.java
079e23575024e103358c982152afb7a720ae1a8a 19-Oct-2010 Dianne Hackborn <hackbod@google.com> Add new fade in/out feature for drawable containers.

This is used to allow list view's pressed and activated indicators
to fade in an out, though of course it can be used elsewhere as well.

There is a lot of complexity in supporting this in list view. The
two main things that are being dealt with:

- When recycling views, we need to make sure that the view's drawable
state doesn't get animated from an old row's state. The recycler
now keeps track of which position a view was last in, and if it is
reused at a new position there is a new View/Drawable API to tell
it to jump to its current state instead of animating.

- For the pressed indicator to fade out, we need to keep displaying it
after it is hidden. There are new variables and code to keep track
of this state, and tweaks in various places to be able to remember
the last selected position and continue updating the drawable bounds
as needed.

Change-Id: Ic96aa1a3c05e519665abf3098892ff2cc4f0ef2f
/frameworks/base/core/java/android/widget/AbsListView.java
a32edd4b4c894f4fb3d9fd7e9d5b80321df79e20 26-Oct-2010 Adam Cohen <adamcohen@google.com> Adding click feedback to widget collections

Change-Id: I97fceb6c68ca6eb1b703eafacf201e1aed7c38e7
/frameworks/base/core/java/android/widget/AbsListView.java
b9b8f7b99b25eb9520e5d33e5a84d202d96e81af 25-Oct-2010 Adam Powell <adamp@google.com> DO NOT MERGE Fix bug 3124899 - timeout in CTS test
ExpandableListViewBasicTest

A certain sequence of events could cause AbsListView to enter an
infinite event loop. Only report reaching a scroll boundary to the
overscroll code path if the Scroller wants to move further, not if
we're done moving.

Change-Id: Ifdaf72d60ca25584e4a37d3d8f17365e0fcbfa40
/frameworks/base/core/java/android/widget/AbsListView.java
6a0d09944b550b15dce6ead35917e80205cbf09b 25-Oct-2010 Adam Powell <adamp@google.com> Fix bug 2964954 - Lists blow up if their adapter changes while detached.

If a list adapter's content changes while the ListView is detached
from a window, the data change is not registered and the next
layoutChildren call causes the ListView to detect a bad change that
the adapter did not notify ListView about. Any time a ListView becomes
attached to a window, has a valid adapter, and no attached data set
observer, treat it as a data set changed event.

Change-Id: Ic00c05a1a0d063399dc78d5d877e3d5f9b1bee16
/frameworks/base/core/java/android/widget/AbsListView.java
bf5f2b3ffebcf4201f228b73137f32486638775f 25-Oct-2010 Adam Powell <adamp@google.com> Fix bug 3005359 - onListItemClick and ActionMode conflict

CHOICE_MODE_MULTIPLE_MODAL should not dispatch item click events
when in selection mode.

Change-Id: I664fdd01e5c5691ea6ad071bc36a9497fd97ce4d
/frameworks/base/core/java/android/widget/AbsListView.java
299acb581205b6574bfa91824b1b887e265c4c40 21-Oct-2010 Marc Blank <mblank@google.com> Don't stop FlingRunnable when deltaY is rounded to zero

Change-Id: I6558d1b2e392c741108ca13da83351eadbce0824
/frameworks/base/core/java/android/widget/AbsListView.java
322171b333a1c796fcc1428a96ea1d854a3881fa 14-Oct-2010 Erik <roboerik@android.com> Adds a way to scroll to a position in a given duration

Adds a method to AbsListView to allow for a smooth scroll to an
offset position with an app defined duration.

Change-Id: I8cd690597cda078b25bce9aeba683be030d6b155
/frameworks/base/core/java/android/widget/AbsListView.java
21317d1ddaa7c7204dfea9b38f87c6991f4a41af 12-Oct-2010 Romain Guy <romainguy@google.com> Report scroll state change after cancelling the fling runnable.

Bug #3089972

This change also adds the ability to control the ListView's fling
velocity by introducing a new scale factor.

Change-Id: I4030d3fe3688f72b2b8250ac85bbf000e9adc883
/frameworks/base/core/java/android/widget/AbsListView.java
4bede9e425875542976a422222510fa4056a8339 12-Oct-2010 Romain Guy <romainguy@google.com> Add an API to control AbsListView's friction.

Change-Id: Iafb08cd28703d282c369c472a5d85a22cc5dacb7
/frameworks/base/core/java/android/widget/AbsListView.java
ca6eb210e6eb0afe84bdf0558085f555a9a32655 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

Change-Id: I4742e8c212f8e13da29ed887ebdd712903b533f7
/frameworks/base/core/java/android/widget/AbsListView.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/AbsListView.java
e6c4747276cd4e7f0243bcd8ea50ad3e66609fef 02-Oct-2010 Mindy Pereira <mindyp@google.com> DO NOT MERGE. Fix logic for switching between overscroll and scroll modes.

The issue here was originally that webview was showing twice
as intense of an effect for edge glow as lists. The root cause
was that abslistview was calling onPull half as often as webview. This
occurred because every time an action_move came into the touch handler
for abslistview when it was in overscroll, the mode was ALWAYS changed
back to scroll mode. Therefore, half the action_move events were
essentially being eating by the abslistview state machine.
After fixing that issue, needed to decrease the intensity of the effect
for webview and abslistview by halving the PULL_DISTANCE_GLOW_FACTOR.

Change-Id: I5dbdf4f1219f3bb157a71d4fccf8fa42e2abe047
/frameworks/base/core/java/android/widget/AbsListView.java
3ec9a45c36d3ca5ffbc6e85bbeb497b065e14155 24-Sep-2010 Winson Chung <winsonc@google.com> Re-architecting RemoteViewsAdapter internals due to new constraints.

- Respecting the AdapterView/Adapter contract using FrameLayout notification to update individual items
- Initial changes to allow for keeping (currently bitmap only) memory in check when loading numerous RemoteViews
- Fixing issue with leaking activities due to extra service connection references
- Fixing issue with multiple RemoteViewsAdapters being set on the same AdapterView
- Fixing small issue with StackView sometimes requesting indices out of bounds
- Removing background loading, reverting to previous message-queuing method (seems to be performant now)

Change-Id: I42313767aa791dfe35c247c97ae5d64389e6bb4c
/frameworks/base/core/java/android/widget/AbsListView.java
9b3a2cf2a0a482ce8212eb2775176dd4c23e8e9a 16-Sep-2010 Winson Chung <winsonc@google.com> Prevent multiple RemoteViewAdapters from being set for the same intent.

Fixing issue where we were comparing and storing intents incorrectly in the RemoteViewsService reference counting scheme.

Change-Id: Iedf5997ed3a3ee7f8729cf8689121913196571f8
/frameworks/base/core/java/android/widget/AbsListView.java
234a5715309ea74757780aff6123e3144efb5b69 14-Sep-2010 Adam Powell <adamp@google.com> Improve ListView smooth scrolling timing

Change-Id: Icbd727efd5bafa1a80d65003aead1697f6103fda
/frameworks/base/core/java/android/widget/AbsListView.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/AbsListView.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/AbsListView.java
5be37c81a72c2085db87ae9e6f235de358e4b4cb 01-Sep-2010 Daisuke Miyakawa <dmiyakawa@google.com> Clarify the behavior of ListView#setColorHint().

Bug: 2965521
Change-Id: Iacd139b0e9eec4bfdd007eb1391cc45c1d889b00
/frameworks/base/core/java/android/widget/AbsListView.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/AbsListView.java
4ef1da3c04aed2fc7af7796a731f5cf00712ae02 28-Aug-2010 Daniel Lehmann <lehmannd@google.com> Perform a float division for screenTravelCount

Change-Id: Ie0f23344a26c7ecf1a641e60d649ad0fc54fecbf
/frameworks/base/core/java/android/widget/AbsListView.java
f343e1ba7e796120eefa917dbf78348feea98e11 14-Aug-2010 Adam Powell <adamp@google.com> Add selection mode support to GridView.

Changed 9.xml to make update-api behave with the API change involved.
Several fields and methods moved from ListView to AbsListView. This
should not break source or binary compatibility.

Change-Id: Icad6e238522b8b7cc5bbc935ad89ac3e015572c1
/frameworks/base/core/java/android/widget/AbsListView.java
ecb1d5ded9afee63735dc91cfb08ada2c639d237 11-Aug-2010 Konstantin Lopyrev <klopyrev@google.com> resolved conflicts for merge of f00ee0f7 to master

Change-Id: I13b968bde37fad8fffdaa9bb94a0f1da9b2e6e0c
bea95162ca25bd00b0479d93739b6283795c3986 11-Aug-2010 Konstantin Lopyrev <klopyrev@google.com> Categorizing exported view properties.

Change-Id: I79c42019836973d80662c21d195d088ae01537a0
/frameworks/base/core/java/android/widget/AbsListView.java
8350f7dbc3a62211b2891f35911e4073d24c4cc5 28-Jul-2010 Adam Powell <adamp@google.com> Added CHOICE_MODE_MULTIPLE_MODAL to ListView.

Based on ActionModes, CHOICE_MODE_MULTIPLE_MODAL supports the new
Honeycomb-style selection mode.

Change-Id: I293ea22487db8e081c95e5236f1e053f7dd4ada6
/frameworks/base/core/java/android/widget/AbsListView.java
499cb9f516062b654952d282f211bee44c31a3c2 16-Jul-2010 Winson Chung <winsonc@google.com> Initial changes to allow collections in widgets.

Change-Id: I3cfa899bae88cd252912cecebc12e93c27a3b7c9
/frameworks/base/core/java/android/widget/AbsListView.java
266e05179cc8f5fe6324510aa54bb8c1779d2f6c 14-Jul-2010 Romain Guy <romainguy@google.com> Prevent crash in ListView when changing cache hint.
/frameworks/base/core/java/android/widget/AbsListView.java
371133174b84a72ba61d5dc53b34216bbf0ecf1c 09-Jul-2010 Adam Powell <adamp@google.com> Fix some issues with smooth scrolling ListViews

Change-Id: I8b0f3d318eb0508ed12b92584c368e6f0edeb0be
/frameworks/base/core/java/android/widget/AbsListView.java
e44afae7ff91edb80142fc62ce2bc2cb9d133d09 01-Jul-2010 Adam Powell <adamp@google.com> Add AbsListView#smoothScrollToPositionFromTop

Change-Id: I4dec9cdcf63b1075264c772faf1303c7281d0efe
/frameworks/base/core/java/android/widget/AbsListView.java
c047b956360a2476793b38d9d3e996fed941af8b 23-Jun-2010 Adam Powell <adamp@google.com> am bc337d2f: am 73ccafb5: Merge "Fix a bug where requestDisallowInterceptTouchEvent does not get called when scrolling is resumed after stopping a fling." into gingerbread

Merge commit 'bc337d2f675e8417be5534439e1b4ed1bc45a9c7'

* commit 'bc337d2f675e8417be5534439e1b4ed1bc45a9c7':
Fix a bug where requestDisallowInterceptTouchEvent does not get called
110486f932510fb49bfeff978b0b0e0237ee0656 23-Jun-2010 Adam Powell <adamp@google.com> Fix a bug where requestDisallowInterceptTouchEvent does not get called
when scrolling is resumed after stopping a fling.

Change-Id: I6796c5082cb81b3116de5baf1f27fe3addb40d00
/frameworks/base/core/java/android/widget/AbsListView.java
e46c1e817c4e801b309af9644b9c20a188147303 25-May-2010 Adam Powell <adamp@google.com> am 49551ca4: am 9a559970: am f67c874c: am 7e5e3745: Fix bug 2710825 - Prevent ExpandableListView from scrolling too far when expanding children.
7e5e3745cf0103219a13071fbd488c3c01da85d9 25-May-2010 Adam Powell <adamp@google.com> Fix bug 2710825 - Prevent ExpandableListView from scrolling too far when expanding children.

Change-Id: I21b37647c5ad16e4f57fdda433e3b3ee2c7c83ad
/frameworks/base/core/java/android/widget/AbsListView.java
82afc7b32b5a22fe5a0f1a98e8fd0873a4b7f9a1 13-May-2010 Romain Guy <romainguy@google.com> Prevent possible leak in AbsListViews.

This change unregisters a list's data observer from the adapter when the list
is detached from the window. The default data observer impl. is a non-static
inner class with a synthesized pointer to the list. Thus if an app keeps
the adapter around the list is also kept around. This can be a problem with
dialogs in particular.

Change-Id: Ia95a995d3f54b9caf1bbcd2c7239a0318511b08c
/frameworks/base/core/java/android/widget/AbsListView.java
57f65e04fdcdbca606a998e3d294cb06a454585d 07-Apr-2010 Adam Powell <adamp@google.com> am 203cd5e0: am 85a650fe: am c696b0df: am eb3d47e4: Merge "Fix bug 2574860 - fix AbsListView.trackMotionScroll edge detection" into froyo
91f234fe4d070121d65095e98c9b2e958cf22548 07-Apr-2010 Adam Powell <adamp@google.com> Fix bug 2574860 - fix AbsListView.trackMotionScroll edge detection

Change-Id: I0fc6d2b8547ab56937eeb5ef3438003a06b966ec
/frameworks/base/core/java/android/widget/AbsListView.java
702d985b5d4c28b04b948fd2d07bdb26a3bbe167 02-Apr-2010 Adam Powell <adamp@google.com> am 942d070c: am 1f29b4cd: am 21990922: Merge "Fix AbsListView scrolling behavior at edges." into froyo
b7795432a5512080fae2a0aa123c02b222f7bca6 02-Apr-2010 Adam Powell <adamp@google.com> Fix AbsListView scrolling behavior at edges.

Allow the user to start scrolling back into content immediately
after dragging past the end of content.

Remove some dead code.

Change-Id: Ife8f60499ac58179ba1e2500ca8745916392a4bc
/frameworks/base/core/java/android/widget/AbsListView.java
ffd8e0fe94b7571599710c7f03410062f9a966be 01-Apr-2010 Adam Powell <adamp@google.com> am fff52b6a: am 5af7ef60: am 40cd1cf6: Merge "Fix bug 2562240 and clean up scrollbar behavior" into froyo
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/AbsListView.java
30346c4399af45b46996f504004796177b975349 25-Mar-2010 Romain Guy <romainguy@android.com> Add support for XML-defined adapters.
This is preliminary work for new types of Launcher widgets.

See javadoc in android.widget.Adapters for more details.

Change-Id: I413b8d5f97673e255d84dc07ad112c333c0ce9dc
/frameworks/base/core/java/android/widget/AbsListView.java
005c0a445e32dfbf18bf93d209da857604925a58 31-Mar-2010 Adam Powell <adamp@google.com> Fix bug 2523622 - ListView invokes onItemClick for disabled adapter items

AbsListView was relying on TOUCH_MODE_DOWN to signal that the item was
enabled, but onInterceptTouchEvent uses it for other purposes. Check
before dispatching the event.

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

Change-Id: I7e9db8d8a9b8ef67f0c0c82bf57c9155b7ebabea
/frameworks/base/core/java/android/widget/AbsListView.java
aeb30e6d22e5dc92e0a82653cea3b36b392cfa4d 26-Mar-2010 Adam Powell <adamp@google.com> Fix bug 2544916 - Fun with AbsListView touch mode

Change-Id: I79de051891d535f44c0910295976d1f3634aca4c
/frameworks/base/core/java/android/widget/AbsListView.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/AbsListView.java
0ee0a2ea57197cb2f03905454098d9a7a309f77b 23-Mar-2010 Gilles Debunne <debunne@google.com> New edge effect when OverScrolled.

The constant force that was applied has been replaced by a spring force
when the OverScroller goes beyond valid position values.

Bounce coefficient can be set for each directions.

Change-Id: If7d506d3f35b3451f590c54d6c04a1deb8d9ca95
/frameworks/base/core/java/android/widget/AbsListView.java
45b3dcd07ef58164484e3648ec0ddc8fdba8e5d1 22-Mar-2010 Romain Guy <romainguy@android.com> Fix possible NPE in AdapterView's OnItemClickListener clients.
Bug #2533718

Change-Id: I32e72e29a7b4bb8331f2492f5c5b5507d1b3993a
/frameworks/base/core/java/android/widget/AbsListView.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/AbsListView.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/AbsListView.java
f3c2edaa213e6d8c779ab819ff630b4ce389007c 17-Mar-2010 Adam Powell <adamp@google.com> Make AbsListViews remeasure children after rotation

Fixes issues in Settings and other places where TextView separators
aren't resized properly after a rotation

Change-Id: Id5c53d4c5e6621e79e723ec2c300c8a43f12e379
/frameworks/base/core/java/android/widget/AbsListView.java
c5014294a07b33e537b76f62d053cdcfcc7a9a04 16-Mar-2010 Adam Powell <adamp@google.com> Fix bug 2516434

AbsListView shouldn't update mLastTouchMode in onTouchModeChanged;
it's only used in onWindowFocusChanged and since onTouchModeChanged
gets called first, the current and last modes will never be different
to trigger the right code path.

Change-Id: Ic9bc454c87826622df54417801fd8f13213c480e
/frameworks/base/core/java/android/widget/AbsListView.java
51a6bee6719820d09595f474264fcb833eff470a 15-Mar-2010 Adam Powell <adamp@google.com> Fix bugs when transitioning out of touch mode

Change-Id: I56cbac17fba500871af839a87d746ea8e1fd5d0f
/frameworks/base/core/java/android/widget/AbsListView.java
2a20ddd90bb9eeab56ffaa916ed062dfd5cf7fa6 12-Mar-2010 Adam Powell <adamp@google.com> Tame some monkeys

Change-Id: I1bdcd466d6bacb0cebdd6bb0b5339477c2c284b0
/frameworks/base/core/java/android/widget/AbsListView.java
84222e04252720cf681032e865db526ce4a612a4 11-Mar-2010 Adam Powell <adamp@google.com> Fix overscroll distance calculation for stack-from-bottom ListViews

Change-Id: Ic8278763586d03c152f7b30b7fdd0b37b0dfc9cb
/frameworks/base/core/java/android/widget/AbsListView.java
97566043afdb714fd4eea6bb22898964e95f16bc 10-Mar-2010 Adam Powell <adamp@google.com> Fix ListView filter popups when window focus changes

Change-Id: I8c468900d5dd4d8d82308e2bed3bf992b6c803c7
/frameworks/base/core/java/android/widget/AbsListView.java
fee20911e3ec97af64e4ac2c519d75b5f75e2a27 09-Mar-2010 Adam Powell <adamp@google.com> Fix bug with AbsListView position scrolling

Change-Id: I91338f0533178417c874325f5f126d1b5fbb5f92
/frameworks/base/core/java/android/widget/AbsListView.java
029cfbd6f28e1664e8ef77ea928560f20ac3fb8e 09-Mar-2010 Adam Powell <adamp@google.com> Fix issues with ListView.smoothScrollBy

Change-Id: I4a2752c56a1d2ad3227644f764d6be7a02c9eb8d
/frameworks/base/core/java/android/widget/AbsListView.java
090e0f08b9d8ea6328cd5210f1a27953fb0e4e67 05-Mar-2010 Romain Guy <romainguy@android.com> Do not select any item when the user clicks outside of the list content.
Bug #2485544
/frameworks/base/core/java/android/widget/AbsListView.java
ca8faae6b930abb2f1622c50ddee0b205b943ade 04-Mar-2010 Adam Powell <adamp@google.com> Awaken ListView scroll bars for overscroll
/frameworks/base/core/java/android/widget/AbsListView.java
0bf88594c43ced48d862d122e3e84967b3b63658 02-Mar-2010 Romain Guy <romainguy@android.com> Make sure all list items know they are in a window.
Bug #2476671

If you had a ListView with a layout_height equals to WRAP_CONTENT, you would
get list children with a parent but not attached to the window. This was caused
by the onMeasure() code: that code was obtaining views from the adapter to
measure them and putting them in the recyler for later reuse. Unfortunately
the recycler assumes that views have been attached to the window but detached
from the parent, thus causing much grief. The fix simply forces measured views
to be added to the window the first time they come out of the recycler.

ListView, bow before me for I am your master!
/frameworks/base/core/java/android/widget/AbsListView.java
9bf3c128509de5bd66222943a00acfcd1000cd62 26-Feb-2010 Adam Powell <adamp@google.com> ListView now tries to keep the position containing focused child views on-screen.
/frameworks/base/core/java/android/widget/AbsListView.java
9b1bb81fe256e3b342a7375be39da7e752eaf3d4 26-Feb-2010 Romain Guy <romainguy@android.com> Do not detach headers and footers from the list view.
/frameworks/base/core/java/android/widget/AbsListView.java
9c3184cc162ee8c10eabd3f996629a9397a1f551 26-Feb-2010 Romain Guy <romainguy@android.com> Do not recyle headers and footers when measuring the ListView.
Bug #2461893

This was causing headers and footers to be in a wrong state after the first
recycling pass, which would cause them to be detached from the window. This
was in turn preventing invalidate operations from performing successfully.
/frameworks/base/core/java/android/widget/AbsListView.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/AbsListView.java
a440b002aa59e1455bdfa2c5a1ca51c74bbc19ac 25-Feb-2010 Romain Guy <romainguy@android.com> Prevents ListView items children to modify properties of other children.
Bug #2464502

This fix introduce a new dispatch mechanism to tell views when they are temporary
detached/reattached from/to a ListView. This is very important to remove pending
callbacks or cleanup temporary states.

This change also modifies TextView which was relying on that callback in a very
particular case: a focused EditText in a ListView. The modified code acts only
when in that case, not if onStart/FinishTemporaryDetach() is called via
dispatch*() (== recycled views in ListView.)
/frameworks/base/core/java/android/widget/AbsListView.java
ab3e1052823620a91a1330b31da6aaf530ed8c3b 18-Feb-2010 Adam Powell <adamp@google.com> Don't switch layout modes in AbsListView#onTouchModeChanged()
Don't stomp mResurrectToPosition for LAYOUT_SPECIFIC in AbsListView#hideSelector()
/frameworks/base/core/java/android/widget/AbsListView.java
7fd28847f11f718033737976d85969869e0dc66d 17-Feb-2010 Adam Powell <adamp@google.com> Don't move the fast scroll thumb with a list on overscroll.
/frameworks/base/core/java/android/widget/AbsListView.java
c9fbaabc1bbf847b6e8bf2595068cbd990f3da55 17-Feb-2010 Adam Powell <adamp@google.com> XML attribute for overscrolling behavior
/frameworks/base/core/java/android/widget/AbsListView.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/AbsListView.java
498b2960d541fe271cc920eb92d60060fe219b35 08-Feb-2010 Romain Guy <romainguy@android.com> Always remember the last touch mode state when touch mode changes.

Do not just rely on getting an onWindowFocusChanged() event. There are cases
where we might not get it (view removed from the window for instance.)
/frameworks/base/core/java/android/widget/AbsListView.java
458034799861fef47e00d85d528b4dac5e00bd51 26-Jan-2010 Adam Powell <adamp@google.com> ListView updates. Fixed several overscrolling bugs. Added programmatic
scrolling to ListView. Added auto-scrolling to show expanded content
for ExpandableListView. Fixed an AbsListView recycler bug where
offscreen views would stick around in the view hierarchy.

Addresses bugs 1161597 and 1119429.
/frameworks/base/core/java/android/widget/AbsListView.java
eb6b1fa7b86e529ed7de1c77fbc77ccef65bf6a9 03-Feb-2010 Adam Powell <adamp@google.com> Fixed an overscrolling bug in AbsListView with a root in OverScroller.
/frameworks/base/core/java/android/widget/AbsListView.java
24562487126b48c8ff39a42b76f3705f238da6c8 01-Feb-2010 Romain Guy <romainguy@android.com> Do not reshow the filter popup after hiding it.

This was causing the popup to show after moving a list out of the screen in
the new music app.
/frameworks/base/core/java/android/widget/AbsListView.java
79ac3395b58de5b99f0bb43d8950f6b95348326d 29-Jan-2010 Adam Powell <adamp@google.com> Overscrolling in AbsListView; visibility cleanup for FlingRunnable
/frameworks/base/core/java/android/widget/AbsListView.java
43c9cdffb619f93d9d4525dffd05701dc9c8c4bf 27-Jan-2010 Romain Guy <romainguy@android.com> New View.dispatchDisplayHint() API.
Bug #2399147

This new API will be used by scrollable containers to tell children that they
are/are not displayed. This will allow lists to hide their filter popup window
for instance.
/frameworks/base/core/java/android/widget/AbsListView.java
52e2ef8cac0cd6d78c2c2f5783846e03c636a54c 14-Jan-2010 Romain Guy <romainguy@android.com> Update ListView's children when the drawing cache color hint changes.
Bug #2371777
/frameworks/base/core/java/android/widget/AbsListView.java
670dd819425b44ab4cb7565a322fd21ab6e811f5 14-Jan-2010 Mark Wagner <mxw@google.com> bugfix endfling case (bug 2300534)

When the menu comes up over the activity we call removeCallbacks(mFlingRunnable);
The effect of that is that our mTouchMode variable is left dangling in the fling
state. This change calls endFling() after removeCallbacks. In the specific bug
being addressed we depend on reportScrollStateChange() because we avoid doing
requeries while scrolling.
/frameworks/base/core/java/android/widget/AbsListView.java
21875052adddf2b52bc57fea62bf097b8aa04cbf 07-Jan-2010 Romain Guy <romainguy@android.com> Fix two ListView bugs related to onAttachedToWindow/onDetachedFromWindow.
Bug: #2359368.

onDetachedFromWindow() would never be called for views living in the scrap heap, but onAttachedToWindow() could be called several times for views recycled from the scrap heap.
/frameworks/base/core/java/android/widget/AbsListView.java
c7426628dfcf5f667ef398235a70de37be3df01f 05-Jan-2010 Adam Powell <adamp@google.com> Don't perform ListView click events for INVALID_POSITION.
Addresses bug 2329294
/frameworks/base/core/java/android/widget/AbsListView.java
cf6c5720a759709db69f253c36646d22ceb23f90 04-Jan-2010 Romain Guy <romainguy@android.com> Do not start filtering if the first character is a space.
Bug: #2347833.
/frameworks/base/core/java/android/widget/AbsListView.java
f3c7d4294dee6a271e417d81bdd74c87e57ce5b3 05-Dec-2009 Romain Guy <romainguy@android.com> Report SCROLL_STATE_IDLE after the user finishes a scroll (not a fling.)

When the user lifts her finger up, AbsListView computes the fling velocity
and report a SCROLL_STATE_FLING if the velocity is high enough. However,
when the fling is not initiated because the velocity is too low (case of
a normal scroll), the idle state was not set nor reported.
/frameworks/base/core/java/android/widget/AbsListView.java
83276b99987067938717b63d1b1763b168959ffe 07-Nov-2009 Romain Guy <romainguy@android.com> am 9d790678: Merge change I32ce8591 into eclair

Merge commit '9d790678bb83c829dddb9e4d0d6d6c4db7facc8b' into eclair-mr2

* commit '9d790678bb83c829dddb9e4d0d6d6c4db7facc8b':
Stop scrolling ListView when tapping a clickable item.
4b4f40f84e72579417604143e5f42115769649b8 07-Nov-2009 Romain Guy <romainguy@android.com> Stop scrolling ListView when tapping a clickable item.

Bug #2210279.

Approved by mcleron.

Change-Id: I32ce8591b00fada95072513f5de69674b45e4cf3
/frameworks/base/core/java/android/widget/AbsListView.java
18d1255ebe83d73df34832f2197a1e51ea717b96 02-Oct-2009 Romain Guy <romainguy@android.com> Prevents memory leaks by correctly detaching views in AbsListView.

AbsListView can reject views from the recycler's scrap heap but when that
happens the rejected view is not detached from the parent. This can be pretty
bad in the case of TextView since it prevents them from unregistering their
OnPreDrawListeners.
/frameworks/base/core/java/android/widget/AbsListView.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/AbsListView.java
8d37426c754e9822feaa8c6cc0b7c13e8523e217 15-Sep-2009 Dianne Hackborn <hackbod@google.com> Various fixed for back key handling.

My last change was far from perfect. Hopefully this gets us
a little closer.

Change-Id: I413e55b6af42400b565de3040859d25d668bc9d2
/frameworks/base/core/java/android/widget/AbsListView.java
83fe3f559249451706957b1a5f660b2b8272f114 13-Sep-2009 Dianne Hackborn <hackbod@google.com> Last big work on #1991910: Make swipes work with capacitive keys

This takes care of allowing us to cancel the back button. The
back button is a bear because it is strewn all over the place --
everywhere you can close something, there is some code looking
for the back button that now needs to deal with being canceled.

The main things changed are activity (of course), dialog,
input method, search dialog. There are some other misc places
in the framework (and some I missed here that I will get in a
second pass).

To facility all of this, the key dispatching APIs now provide
a lot more support for dealing with looking for cancelled keys,
and incidentally also provide an actual API for catching long
key presses. This also helped clean up the code in PhoneWindow
where it deals with all of the combinations of key pressed and
releases. (And also allows people to override
Activity.onKeyLongPress() to provide a different long press
action for a standard key like search.)

And while I was doing this, I reworked how we detect long
presses by having this be part of the key event delivered by
the window manager. This should greatly reduce (hopefully
outright eliminate) the problems with long presses being
mis-detected when an application is being slow.

Change-Id: Ia19066b8d588d573df3eee6d96e1c90fdc19f57d
/frameworks/base/core/java/android/widget/AbsListView.java
6198ae8468668bf7374535c2eeeab8de7f8e7e99 01-Sep-2009 Romain Guy <romainguy@android.com> Prevent ListView from scrolling/flinging its content when the content fits on screen.

Change-Id: Id46313bca3ae53b0717cd74a4a6f889a01f9fcb1
/frameworks/base/core/java/android/widget/AbsListView.java
df01607380c81e26c1c90129aa22b2e1118e2b71 17-Aug-2009 Romain Guy <romainguy@android.com> Fix listview clicks with the trackball.
/frameworks/base/core/java/android/widget/AbsListView.java
dd753ae6115fdcb389b5abd8320245228b2e1d2d 17-Aug-2009 Romain Guy <romainguy@android.com> Honor the clickable and enabled properties in ListView.
/frameworks/base/core/java/android/widget/AbsListView.java
1f7f3c336a767802a0cada789f6b2055f45911dc 22-Jul-2009 Romain Guy <romainguy@android.com> Fixes #1994125. Ensures AbsListView's filter window is always dismissed.
/frameworks/base/core/java/android/widget/AbsListView.java
6bdbfcfa77177eb7c8905123f44f2fa5aa0f17b1 17-Jul-2009 Romain Guy <romainguy@android.com> Fixes #1861763. Prevents IllegalArgumentException in AbsListView on focus
search.

This change makes sure the focus search does not attempt to traverse views from
the recycler.
/frameworks/base/core/java/android/widget/AbsListView.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/AbsListView.java
f642aa2a44e63aa105bbc6aec59f9bee261986ef 09-Jun-2009 Romain Guy <romainguy@android.com> Removes gestures from ListView.
/frameworks/base/core/java/android/widget/AbsListView.java
0a20264db87e26f5b392f16159860b902d8c5bd3 08-Jun-2009 Romain Guy <romainguy@android.com> Do not automatically enable gestures in list based on filtering/fastscroll status. Enable gestures in Contacts for now.
/frameworks/base/core/java/android/widget/AbsListView.java
834f0391b50d33a832bd583fd7763a9a12208e8d 05-Jun-2009 Romain Guy <romainguy@android.com> Fixes #1899273.

When a "ghost" stroke was showing, events would be intercepted in ListView. This patch modifies the logic used to detect when to still events: either the current stroke is a gesture, or the previous stroke was a gesture.
/frameworks/base/core/java/android/widget/AbsListView.java
f993ad5b89a8aa47fcbc7494811f45bb74cb8713 04-Jun-2009 Romain Guy <romainguy@android.com> Fixes #1882836.

Prevents the gestures window from leaking. This change does exactly what was
done for the filter popup window: the popup is dismissed in onSaveInstanceState()
as it is the only place that is executed early enough to avoid the dreaded
window leak error.
/frameworks/base/core/java/android/widget/AbsListView.java
0a63716ed0e44f7cd32b81a444429318d42d8f08 29-May-2009 Romain Guy <romainguy@android.com> Modify the base gestures API to use streams instead of files. Adds new wrappers to easily load/save gestures from files, resources, etc. Do the same for the letters recognizer.
/frameworks/base/core/java/android/widget/AbsListView.java
c51ef9702d7ccd3dac15ccaeb509d1150f0a2d7f 29-May-2009 Romain Guy <romainguy@android.com> Fixes #1873537.

Only update the popup window when it is shown. This avoids throwing an NPE in PopupWindow.
A PopupWindow is only aware of its content view after being shown.
/frameworks/base/core/java/android/widget/AbsListView.java
b0ded43d3844d9d97c5d554e8ca4ec3ee2c7bbe1 28-May-2009 Romain Guy <romainguy@android.com> Uninstalls the gestures overlay when the letters recognizer cannot be loaded instead of simply dismissing the popup. This is cleaner and reuses the setGestures() method.
/frameworks/base/core/java/android/widget/AbsListView.java
8ae3f6190244156bc6e750680654057bd7816309 27-May-2009 Marco Nelissen <marcone@google.com> Fix another crash in Gestures, this one caused by the data file
having the wrong version. I made the loader print a message to
the log for this, and made the calling code disable gestures
for the listview instead of crashing.
/frameworks/base/core/java/android/widget/AbsListView.java
fea57edf0dd27bc21c34e7f96cd6383d6f2dff42 26-May-2009 Marco Nelissen <marcone@google.com> Fix crash in GestureOverlayView
/frameworks/base/core/java/android/widget/AbsListView.java
82f3495b146b267f3786997752cef25310176349 25-May-2009 Romain Guy <romainguy@android.com> Cleanup Gestures API and make it easier to use in 3rd party apps. Also fix the events processing in the gestures overlay mechanism. Give better control of the various properties of the overlay through XML attributes.
/frameworks/base/core/java/android/widget/AbsListView.java
d6a463a9f23b3901bf729f2f27a6bb8f78b95248 22-May-2009 Romain Guy <romainguy@android.com> Add a new API to ListView: setGestures(int). This allows developers to enable gestures to jump inside the list or filter it. This change also introduces a new XML attribute to control this API. It also adds the ability to theme the GestureOverlayView from the gestures library. Finally, this adds a new VERSION header to the binary format used to store the letters for the recognizer.
/frameworks/base/core/java/android/widget/AbsListView.java
13922e03037d71a538f24ddf61c0b61bb4eb5af0 13-May-2009 Romain Guy <romainguy@android.com> Fixes #1836075. Adds consistency checks for the View hierarchy. To enable them, you need a debug build and ViewDebug.sConsistencyCheckEnabled set to true in debug.prop. This change also lets you easily enable drawing and layout profiling in ViewRoot by setting ViewRoot.sProfileDrawing, ViewRoot.sProfileLayout and ViewRoot.sShowFps in debug.prop with a debug build.
/frameworks/base/core/java/android/widget/AbsListView.java
6dfed24158b8fc9150abee23992db621cd82aa43 12-May-2009 Romain Guy <romainguy@android.com> Fixes 1844680. Interrupted scrolling could lead to rendering artifacts. The ListView was invalidating itself in opaque mode but before the drawing could happen, it was getting rid of its scrolling cache, thus becoming translucent again.
/frameworks/base/core/java/android/widget/AbsListView.java
24443ea3992e372e47daa50266b0f2ec38cac388 11-May-2009 Romain Guy <romainguy@android.com> Fixes #1596240. Optimize invalidate/draw passes by marking opaque views and avoiding drawing them. Whenever a View requests an invalidate its parent check whether the view is opaque or not. When the view is not opaque, the framework behaves as it used to. However, when a view is opaque, the parent marks itself as being dirty because of an opaque view. Its parent then does the same, and so on. When the framework then starts drawing the views, it does not draw views marked as dirty opaque. If a view is dirty opaque and receives an invalidate request from a non-opaque view, it then clears the dirty opaque flag and behaves as before.
/frameworks/base/core/java/android/widget/AbsListView.java
20fb46fa1e16b57fe7aba2ac7cdf1efbf1a12393 05-May-2009 Romain Guy <romainguy@android.com> Fixes 1830181. Tapping disabled items in a ListView would cause the framework to take a code path that wasn't resetting the mMotionCorrection variable if it had been previously set. This would force ListView to apply a scroll to its children even though it was unnecessary. This simple fix prevents the issue by resetting mMotionCorrection appropriately.
/frameworks/base/core/java/android/widget/AbsListView.java
875d50a4b9294b2be33cff6493cae7acd1d07ea7 24-Apr-2009 Karl Rosaen <> AI 147564: Merge back from search branch to donut. Notes:
- all public apis and framework changes have been reviewed by relevant folks in our branch (e.g romainguy)
- all new public apis are @hidden; they will still get reviewed by api council once we're in git
- other than that, it's mostly GlobalSearch and search dialog stuff, a new apps provider, and some tweaks
to the contacts provider that was reviewed by jham

Automated import of CL 147564
/frameworks/base/core/java/android/widget/AbsListView.java
f8a7ceaef2e7d5cd530c9426bde91b6fa9a40b75 11-Apr-2009 Andy Stadler <> AI 145778: Manual merge changes 145382-145384 from cupcake.

Automated import of CL 145778
/frameworks/base/core/java/android/widget/AbsListView.java
1bf5e22da72b477c8b7a45ed85a4dba94be39db5 25-Mar-2009 Dianne Hackborn <> Automated import from //branches/donutburger/...@141001,141001
/frameworks/base/core/java/android/widget/AbsListView.java
105925376f8d0f6b318c9938c7b83ef7fef094da 19-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake_rel/...@140373
/frameworks/base/core/java/android/widget/AbsListView.java
ba87e3e6c985e7175152993b5efcc7dd2f0e1c93 13-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake_rel/...@138607
/frameworks/base/core/java/android/widget/AbsListView.java
c39a6e0c51e182338deb8b63d07933b585134929 11-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@137873
/frameworks/base/core/java/android/widget/AbsListView.java
b2a3dd88a53cc8c6d19f6dc8ec4f3d6c4abd9b54 09-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@137197
/frameworks/base/core/java/android/widget/AbsListView.java
4df2423a947bcd3f024cc3d3a1a315a8dc428598 05-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@136594
/frameworks/base/core/java/android/widget/AbsListView.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/AbsListView.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/AbsListView.java
076357b8567458d4b6dfdcf839ef751634cd2bfb 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@132589
/frameworks/base/core/java/android/widget/AbsListView.java
3dec7d563a2f3e1eb967ce2054a00b6620e3558c 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@137055
/frameworks/base/core/java/android/widget/AbsListView.java
3001a035439d8134a7d70d796376d1dfbff3cdcd 19-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@132276
/frameworks/base/core/java/android/widget/AbsListView.java
da996f390e17e16f2dfa60e972e7ebc4f868f37e 13-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@131421
/frameworks/base/core/java/android/widget/AbsListView.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/AbsListView.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/AbsListView.java
b798689749c64baba81f02e10cf2157c747d6b46 10-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@125939
/frameworks/base/core/java/android/widget/AbsListView.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/AbsListView.java
54b6cfa9a9e5b861a9930af873580d6dc20f773c 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution
/frameworks/base/core/java/android/widget/AbsListView.java