History log of /frameworks/base/core/java/android/view/VelocityTracker.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
96804bc8fb3d6b2de11e3b9779c976e7b0e96ee8 08-Jan-2014 Ashok Bhat <ashok.bhat@arm.com> AArch64: Use long for pointers in VelocityTracker class

For storing pointers, long is used in VelocityTracker class,
as native pointers can be 64-bit.

Change-Id: I8c454663a97745c7440bb6f99ef49d28e9026876
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
/frameworks/base/core/java/android/view/VelocityTracker.java
abae2a1b891772d36d8f781adfcc8969e551691f 28-Nov-2012 Svetoslav Ganov <svetoslavganov@google.com> Simplification of the poolable management utils.

Before to implement a pool of objects, the pooled class had to implement an
interface which was leaking the pool management APIs. This requires
hiding APIs - inconvenient at best. Further, each client had to
implement the chaining of pooled instances which means adding a couple
of member variables which are manipulated by the implemented interface
methods. As a consequence the client is aware of how pooling is
implemented which is error prone and breaks encapsulation. Now the
pool objects are responsible for managing pooling state via reusable
wrapper objects and the clients are oblivious of how pooling is done.
Creating a thin cached wrapper for each pooled object has minimal
performance impact while making the code more maintainable. Actually
implementing of the old version of the APIs was taking as much code
as implementing the pooling yourself.

Also clients had to implement a poolable manager whose responsibility
was to create new instances and provide callbacks when an instance
is added to or removed from the pool. Now, the clinet class should
create a static member for the pool and expose obtain/aquire and
release/recycle methods in which it should create a new instance if
the pool did not return one and clear the state of the host when
it is returned to the pool. Updated the JavaDoc with a best practice.

The pooling was composed of several interfaces and classes scattered
over a few files, now all this is in a single small file.

Update all usages of the pooling APIs in the framework.

Also one had to write a poolable
manager which

Change-Id: Ib8dc286040eb3d7cb7d9668ba76fead05cb97647
/frameworks/base/core/java/android/view/VelocityTracker.java
9eb7d86181729c3eb769d71123c4ce9ffc868f08 01-Jun-2012 Jeff Brown <jeffbrown@google.com> Make velocity tracker strategy configurable.

This change is very useful for testing purposes because it makes it
easy to compare different implementations to see how they behave.

There is no change to the current default strategy.

Bug: 6413587
Change-Id: I4d8567aa4160571ba9fa397ce419882cd9366749
/frameworks/base/core/java/android/view/VelocityTracker.java
85bd0d62830a098c1bdc720dfdcf4fe1b18b657c 14-May-2012 Jeff Brown <jeffbrown@google.com> More VelocityTracker refactoring.

Bug: 6413587
Change-Id: Ida1152e7a34d5fe5caab5e6b5e1bc79f6c7a25e6
/frameworks/base/core/java/android/view/VelocityTracker.java
8a90e6e3174083f274538567d851f98478fc83e9 11-May-2012 Jeff Brown <jeffbrown@google.com> Minor refactoring before starting on velocity tracker changes.

Bug: 6413587
Change-Id: I5eba2bb57193bff78cb3740de5f87aca0b31d154
/frameworks/base/core/java/android/view/VelocityTracker.java
185b8256f570dfe620789130bb3861bdeecfffdd 17-Jan-2012 Gilles Debunne <debunne@google.com> Fixed doc typo and removed warning

Change-Id: I9c9e45837037a77df5852ff4ea3ad596952e4507
/frameworks/base/core/java/android/view/VelocityTracker.java
b59ab9f41faafb358afb4f951de96f34a656e0b4 14-Sep-2011 Jeff Brown <jeffbrown@google.com> Velocity Tracker II: The Revenge of Velocity Tracker
Bug: 5265529

Rewrote the velocity tracker to fit a polynomial curve
to pointer movements using least squares linear regression.
The velocity is simply the first derivative of this polynomial.

Clients can also obtain an Estimator that describes the
complete terms of the estimating polynomial including
the coefficient of determination which provides a measure
of the quality of the fit (confidence).

Enhanced PointerLocation to display the movement curve predicted
by the estimator in addition to the velocity vector.

By default, the algorithm computes a 2nd degree (quadratic)
polynomial based on a 100ms recent history horizon.

Change-Id: Id377bef44117fce68fee2c41f90134ce3224d3a1
/frameworks/base/core/java/android/view/VelocityTracker.java
8643aa0179e598e78d938c59035389054535a229 20-Apr-2011 Svetoslav Ganov <svetoslavganov@google.com> Interrogation of the view hierarchy from an AccessibilityService.

1. Views are represented as AccessibilityNodeInfos to AccessibilityServices.

2. An accessibility service receives AccessibilityEvents and can ask
for its source and gets an AccessibilityNodeInfo which can be used
to get its parent and children infos and so on.

3. AccessibilityNodeInfo contains some attributes and actions that
can be performed on the source.

4. AccessibilityService can request the system to preform an action
on the source of an AccessibilityNodeInfo.

5. ViewAncestor provides an interaction connection to the
AccessibiltyManagerService and an accessibility service uses
its connection to the latter to interact with screen content.

6. AccessibilityService can interact ONLY with the focused window
and all calls are routed through the AccessibilityManagerService
which imposes security.

7. Hidden APIs on AccessibilityService can find AccessibilityNodeInfos
based on some criteria. These API go through the AccessibilityManagerServcie
for security check.

8. Some actions are hidden and are exposes only to eng builds for UI testing.

Change-Id: Ie34fa4219f350eb3f4f6f9f45b24f709bd98783c
/frameworks/base/core/java/android/view/VelocityTracker.java
2ed2462aa29c564f5231f317c27b3188da875e52 15-Mar-2011 Jeff Brown <jeffbrown@google.com> Improve VelocityTracker numerical stability.

Replaced VelocityTracker with a faster and more accurate
native implementation. This avoids the duplicate maintenance
overhead of having two implementations.

The new algorithm requires that the sample duration be at least
10ms in order to contribute to the velocity calculation. This
ensures that the velocity is not severely overestimated when
samples arrive in bursts.

The new algorithm computes the exponentially weighted moving
average using weights based on the relative duration of successive
sample periods.

The new algorithm is also more careful about how it handles
individual pointers going down or up and their effects on the
collected movement traces. The intent is to preserve the last
known velocity of pointers as they go up while also ensuring
that other motion samples do not count twice in that case.

Bug: 4086785
Change-Id: I2632321232c64d6b8faacdb929e33f60e64dcdd3
/frameworks/base/core/java/android/view/VelocityTracker.java
c00972bb162779e52d1b0d8f662a9f6033bf9182 12-Oct-2010 Romain Guy <romainguy@google.com> Don't recreate a new texture every time we draw a layer.

Change-Id: I3c28aff5acffc7c6f1ac74805869725426c62d28
/frameworks/base/core/java/android/view/VelocityTracker.java
8ae0f3f6c7319717237af74c8d4aad2c082eef2b 09-Sep-2010 Adam Powell <adamp@google.com> Fix bug 2988160 - Flinging broken in certain apps/widgets

Change-Id: I89de767cecbbc37cb2fe90a0346e8e1591dec60b
/frameworks/base/core/java/android/view/VelocityTracker.java
88cf2fca38066e75f9349950c8e6255a91350d97 10-Aug-2010 Jeff Brown <jeffbrown@google.com> Optimize VelocityTracker to run in linear time.

Uses a linked list for efficient pointer addition and removal.
When possible, makes use of the fact that pointer ids are usually in
sorted order to avoid quadratic time lookups when adding new data.
Fixed an incorrect assumption that the pointer count would always change
when old pointers were removed.

Also fixed a bug in InputQueue FinishedCallback recycling.

Change-Id: Ie048d3bb022d39cf4185e2fe43923a861d94c4f3
/frameworks/base/core/java/android/view/VelocityTracker.java
9e2ad36be87f2703b3d737189944d82f93bd4f27 31-Jul-2010 Jeff Brown <jeffbrown@google.com> Enhanced VelocityTracker for > 5 pointers and fixed bugs.

Improved PointerLocation tool to use VelocityTracker more efficiently
and correctly when multiple pointers are down.

Fixed a bug in TouchInputMapper where it was not correctly copying
the id to index map in the last touch data. This could cause strange
behavior on secondary pointer up events.

Also added finished callback pooling in InputQueue.

Change-Id: Ia85e52ac2fb7350960ea1d7edfbe81a1b3e8267b
/frameworks/base/core/java/android/view/VelocityTracker.java
b1110149cccc3b99e59ead34ca46e5ac026f6db9 13-May-2010 The Android Open Source Project <initial-contribution@android.com> merge from open-source master

Change-Id: I88a580162b34a80d1e3e7987b7a301c253afa0e8
b79781af1ebc68dbaa1b44da43fd391de067a201 13-May-2010 Kenny Root <kroot@google.com> Use integer for loop counter instead of float

Change-Id: Iafaccbb3a3a7cbe0d67ed6827906d713c37ce89b
/frameworks/base/core/java/android/view/VelocityTracker.java
80ea00c8391d4fa3a1966903af50732c337aadab 10-Mar-2010 Romain Guy <romainguy@android.com> Fix the build.

Change-Id: I7ed20f3d2fb1a80974fbbfe42fdd2f8f135ee401
/frameworks/base/core/java/android/view/VelocityTracker.java
0bba68ddc7e489fd6fb1579417a656f77cbc1ab3 04-Mar-2010 Adam Powell <adamp@google.com> Fix VelocityTracker for CTS tests
/frameworks/base/core/java/android/view/VelocityTracker.java
73d8fca6ba1991dbcbcd4686212d087a5ae8de2d 13-Feb-2010 Adam Powell <adamp@google.com> VelocityTracker now uses pointer id instead of index when referring to
multiple pointers. VelocityTracker now correctly handles
multitouch. Addresses http://b/issue?id=2439030
/frameworks/base/core/java/android/view/VelocityTracker.java
87da860616009a86e260e49bbefffe12c1a06607 09-Feb-2010 Adam Powell <adamp@google.com> Manually merged VelocityTracker changes
ce760cd6df920efff026c8757a371692ac54fad4 03-Feb-2010 Marc Capdevielle <marc.capdevielle@gmail.com> Use a circular buffer in VelocityTracker

Optimizes the frequently called addPoint() method while keeping the
same velocity computation.

Thx Cyril Mottier for help and tests.
/frameworks/base/core/java/android/view/VelocityTracker.java
8acdb201bdad2cd03c07ebad9cda29f7971ed164 07-Jan-2010 Adam Powell <adamp@google.com> Added TransformGestureDetector (still in progress)
Modified VelocityTracker to track multiple pointers
Added TransformTest
/frameworks/base/core/java/android/view/VelocityTracker.java
cf4550c3198d6b3d92cdc52707fe70d7cc0caa9f 21-Jul-2009 Jean-Baptiste Queru <jbq@google.com> donut snapshot
/frameworks/base/core/java/android/view/VelocityTracker.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/view/VelocityTracker.java
843ef36f7b96cc19ea7d2996b7c8661b41ec3452 20-May-2009 Jean-Baptiste Queru <jbq@google.com> donut snapshot
/frameworks/base/core/java/android/view/VelocityTracker.java
2e9bbce84d9697a9dcccd02cec55dc485d985746 01-Apr-2009 Romain Guy <> AI 144013: Rename PoolFactory to Pools, to follow the java.util convention (Collections, Arrays.)

Automated import of CL 144013
/frameworks/base/core/java/android/view/VelocityTracker.java
d928d6837dee4df30b06529164326722075da063 01-Apr-2009 Romain Guy <> AI 143890: Fixes #1749387. Improve the pooling of the VelocityTracker class. This introduces a new, hidden, API for pooling objects easily.
BUG=1749387

Automated import of CL 143890
/frameworks/base/core/java/android/view/VelocityTracker.java
fb43fea68a00b7b147992b52b86305f6fbc1548e 01-Apr-2009 Romain Guy <> AI 143815: am: CL 143758 Fixes #1749387. When a client of VelocityTracker obtains an instance from the pool, actually remove the object from the pool. Otherwise, several clients can share the same VelocityTracker which can lead to really weird side effects (including concurrency and UI issues.)
Original author: romainguy
Merged from: //branches/cupcake/...

Automated import of CL 143815
/frameworks/base/core/java/android/view/VelocityTracker.java
d65addb4c9e8d552907bc2720e6127e0259b8f09 31-Mar-2009 Romain Guy <> AI 143758: Fixes #1749387. When a client of VelocityTracker obtains an instance from the pool, actually remove the object from the pool. Otherwise, several clients can share the same VelocityTracker which can lead to really weird side effects (including concurrency and UI issues.)
BUG=1749387

Automated import of CL 143758
/frameworks/base/core/java/android/view/VelocityTracker.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/view/VelocityTracker.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/view/VelocityTracker.java
54b6cfa9a9e5b861a9930af873580d6dc20f773c 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution
/frameworks/base/core/java/android/view/VelocityTracker.java