Improve scrolling cache

Scrolling cache helps make short scrolls/flings smooth but will
cause stutter when long flings are made. This patch disables
scrolling cache when long flings are made.

This patch also fixes a related bug where scrolling cache will
not be enabled properly when transitioning from flinging to scrolling.

Patch Set 2: Calculate threshold based on maximum velocity (Sang Tae Park)

Credits: Pawit Pornkitprasan

Change-Id: I1fdbaad92263c9f983a32900e74eba1f0367902b
Signed-off-by: Arham Jamal <arhamjamal@gmail.com>
Return: Listanimation Views and Interpolator [1/2]

PatchSet:
    - optimize more:
    - call provider values only when needed and do not fire them permanently.
      so just do it if scroll state changed.
    - as well go out of the setAnimation method as soon as possible. We
      handle here methods which get called 10000 times during scrolling
      so we need to be as fast as possible.

PS:
- initialize the animation modes default to off just to be sure

PS:
- move state change out of OnScrollListener
- reduce the provider value call to only one call

Change-Id: I5e49d858318420e76101fa6334ff766bd9496c83

Conflicts:
	core/java/android/provider/Settings.java
	core/java/android/widget/AbsListView.java
Fix a programmatic smooth scroll bug

Bug: smoothScrollToPosition() stops at child view of which height is
higher than list view itself.

Change-Id: I695ca9db4c706aa7f365967dd3916f9a01917346
Signed-off-by: Yongyi Li <yongyi.li.cn@gmail.com>
Over scroll effects [1/2]

Change-Id: I4cc67715f8f3bc67674782f08b9e363ee0e8ac9e

Conflicts:
	core/java/android/provider/Settings.java
	core/java/android/widget/AbsListView.java