History log of /frameworks/base/core/java/android/view/ScaleGestureDetector.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
67e2ae86396c6d0f989285275cbf908dee5e71f7 12-Oct-2016 Aurimas Liutikas <aurimas@google.com> Fix import statement in view|transition|animation packages.

This change also remove trailing whitespace.

Test: code still compiles
Change-Id: I7eff4546320d67d2bae58d31bad0625ea0791b8f
/frameworks/base/core/java/android/view/ScaleGestureDetector.java
c6df18f5fa9f08183af96de7433fd80d74325318 04-Apr-2016 Adam Powell <adamp@google.com> Tweaks for ScaleGestureDetector

Remove obsolete history and size tracking from ScaleGestureDetector.

Change-Id: I20c323a8a92e467b62eb412b718c2e9e906e7800
/frameworks/base/core/java/android/view/ScaleGestureDetector.java
d9ff4df850e9e22915d09047c953765c84dcfb84 05-Jun-2015 Mady Mellor <madym@google.com> Stylus scale - API review feedback

Fixed typo and javadoc error.

Bug: 21572278
Change-Id: Ia710971f1f4a97df7ed8e898d972f617465900b9
/frameworks/base/core/java/android/view/ScaleGestureDetector.java
772fcb96f19fbd6b86ac562863714019909634bf 22-May-2015 Mady Mellor <madym@google.com> Update button to BUTTON_STYLUS_PRIMARY

MotioneEvent.BUTTON_SECONDARY is no longer used for M+, instead it will
be BUTTON_STYLUS_PRIMARY.

Bug: 21148238
Change-Id: If08a82e7be57798a2a747d29436e0411c76ef58f
/frameworks/base/core/java/android/view/ScaleGestureDetector.java
7c36a685fea4ee2c93d1dad941061ed3b7c0c566 22-Apr-2015 Mady Mellor <madym@google.com> Enable stylus scale by default for apps targeting MNC+

Bug: 20467919
Change-Id: Icadd45c8031e362d8101419c298133d59165939b
/frameworks/base/core/java/android/view/ScaleGestureDetector.java
6895518d48f265371c26ab4c0d300c3313c4c210 16-Apr-2015 Mady Mellor <madym@google.com> Remove mouse association in scaling, only do it for stylus, update doc.

Change-Id: I55d1eb8a38bb74f724a36bc6aa0e1a01e734275c
/frameworks/base/core/java/android/view/ScaleGestureDetector.java
847d17fcba7e0fab3093d05b5405554df91c08e2 30-Mar-2015 Mady Mellor <madym@google.com> Recognizes the stylus scale gesture in ScaleGestureDetector

If a user drags with a stylus (or mouse) across the screen with
the stylus primary (or mouse secondary) button clicked, this will
initiate a scale gesture that functions similarly to the quick
scale gesture: drag below starting point zooms in, drag above
starting point zooms out.

Combines some of the logic for quick scale and button
scale due to similarities.

Bug: 19620246
Change-Id: Ic53499d07cf6cef48b467dbb41f83cea433febad
/frameworks/base/core/java/android/view/ScaleGestureDetector.java
33253a4baa6279f81a73425b49dfb6abe5f5416e 01-Oct-2014 Neil Fuller <nfuller@google.com> Switch from FloatMath -> Math and Math.hypot where possible

The motivation is an API change: FloatMath is going to be
deprecated and/or removed. Performance is not the goal of
this change.

That said...

Math is faster than FloatMath with AOT compilation.

While making the change, occurances of:

{Float}Math.sqrt(x * x + y * y) and
{Float}Math.sqrt({Float}Math.pow(x, 2) + {Float}Math.pow(y, 2))

have been replaced with:

{(float)} Math.hypot(x, y)

Right now there is no runtime intrinsic for hypot so is not faster
in all cases for AOT compilation:

Math.sqrt(x * x + y * y) is faster than Math.hypot(x, y) with
AOT, but all other combinations of FloatMath, use of pow() etc.
are slower than hypot().

hypot() has the advantage of being self documenting and
could be optimized in future. None of the behavior differences
around NaN and rounding appear to be important for the cases
looked at: they all assume results and arguments are in range
and usually the results are cast to float.

Different implementations measured on hammerhead / L:

AOT compiled:

[FloatMath.hypot(x, y)]
benchmark=Hypot_FloatMathHypot} 633.85 ns; σ=0.32 ns @ 3 trials

[FloatMath.sqrt(x*x + y*y)]
benchmark=Hypot_FloatMathSqrtMult} 684.17 ns; σ=4.83 ns @ 3 trials

[FloatMath.sqrt(FloatMath.pow(x, 2) + FloatMath.pow(y, 2))]
benchmark=Hypot_FloatMathSqrtPow} 1270.65 ns; σ=12.20 ns @ 6 trials

[(float) Math.hypot(x, y)]
benchmark=Hypot_MathHypot} 96.80 ns; σ=0.05 ns @ 3 trials

[(float) Math.sqrt(x*x + y*y)]
benchmark=Hypot_MathSqrtMult} 23.97 ns; σ=0.01 ns @ 3 trials

[(float) Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2))]
benchmark=Hypot_MathSqrtPow} 156.19 ns; σ=0.12 ns @ 3 trials

Interpreter:

benchmark=Hypot_FloatMathHypot} 1180.54 ns; σ=5.13 ns @ 3 trials
benchmark=Hypot_FloatMathSqrtMult} 1121.05 ns; σ=3.80 ns @ 3 trials
benchmark=Hypot_FloatMathSqrtPow} 3327.14 ns; σ=7.33 ns @ 3 trials
benchmark=Hypot_MathHypot} 856.57 ns; σ=1.41 ns @ 3 trials
benchmark=Hypot_MathSqrtMult} 1028.92 ns; σ=9.11 ns @ 3 trials
benchmark=Hypot_MathSqrtPow} 2539.47 ns; σ=24.44 ns @ 3 trials

Bug: https://code.google.com/p/android/issues/detail?id=36199
Change-Id: I06c91f682095e627cb547d60d936ef87941be692
/frameworks/base/core/java/android/view/ScaleGestureDetector.java
5823352c6c5bfa3824afacd023b01af537b5dfa0 15-Nov-2013 Mindy Pereira <mindyp@google.com> Cancel double tap mode on action_up

fixes b/11592408 Dragging immediately after double touch turns gesture into double touch drag

Change-Id: I3e7926a4f6f9ab4951f380bd004499c78b3bda69
/frameworks/base/core/java/android/view/ScaleGestureDetector.java
9f1221f87e4762457c8fa0b4c0e5a291d9aef5c9 16-Sep-2013 Mindy Pereira <mindyp@google.com> Add isQuickScaleEnabled to ScaleGestureDetector

Change-Id: I23dabb8bec69573ca833e06a4fd36435c75d7d04
/frameworks/base/core/java/android/view/ScaleGestureDetector.java
24870ce4f222fec664a24e47cf6b12db36dbdff2 10-Sep-2013 Mindy Pereira <mindyp@google.com> Scale feels too quick in relation to movement

Reduce scale factor in relation to amount of y movement

Change-Id: Iaf351edb2eb1a67f542aa9b3aa3587fc231f8c5c
/frameworks/base/core/java/android/view/ScaleGestureDetector.java
e8ce8ba2b5633e479ccaa82d8e3147ccbba62961 22-Aug-2013 Mindy Pereira <mindyp@google.com> Add doubletap swipe to scalegesturedetector

Change-Id: I070b09ed7295e0c3e07c6dffcdaba20226f7c2a3
/frameworks/base/core/java/android/view/ScaleGestureDetector.java
7232b0ad675402222bce3b478dbb682848d5e9e6 29-Nov-2012 Adam Powell <adamp@google.com> Fix time-related ScaleGestureDetector methods

Bug 7626515

Change-Id: Ie7abf9c166284a74b4e7bcf9de25520cf08e3b2d
/frameworks/base/core/java/android/view/ScaleGestureDetector.java
3307958c6b4b3707c8861db829893b1f5820b677 09-Oct-2012 Adam Powell <adamp@google.com> Allow more scaling values to be tuned in resource overlays

Bug 7267507

Change-Id: I3fba6882a0ac4cb7d34430ba36dec83c030a73cd
/frameworks/base/core/java/android/view/ScaleGestureDetector.java
5b5c414e31c4a8433a3290b931687a05dadc97b6 03-Oct-2012 Adam Powell <adamp@google.com> Further refine touchMajor processing in ScaleGestureDetector

On some devices the information coming from the touchscreen is very
noisy or otherwise unreliable. Perform some processing on the data
we have to try to provide a smoother experience.

Bug 7267507

Change-Id: I863125f58577f522de05a1361b81c2e42975fd89
/frameworks/base/core/java/android/view/ScaleGestureDetector.java
f3a2bf8edd2e070a24f0d7c105d78b38576e14ac 28-Sep-2012 Adam Powell <adamp@google.com> ScaleGestureDetector does the safety dance.

Warn in the event of possibly bogus event streams and don't try to
clear empty history.

Bug 7241640
Bug 7243006

Change-Id: I037cf1334cab790ef5998ca5f8f6b323ed5f4459
/frameworks/base/core/java/android/view/ScaleGestureDetector.java
abde042a824c3fc2f3537ef136017dfa006258b9 27-Sep-2012 Adam Powell <adamp@google.com> ScaleGestureDetector bugfixes

* Use radius, not diameter.

* Properly determine initial span on ACTION_DOWN.

Change-Id: Ia1dcff6589f8226181a9beaecef34440e9e16330
/frameworks/base/core/java/android/view/ScaleGestureDetector.java
d736d2069b94348b519089348f4a85eb482db668 26-Sep-2012 Adam Powell <adamp@google.com> Further tweak touchMajor/Minor stabilization in ScaleGestureDetector

Change-Id: Ifa717c7dee96c5a2eb18a414a257f01762365b00
/frameworks/base/core/java/android/view/ScaleGestureDetector.java
a4ce6ae0d379c8866697d064cfd1661ea156405e 25-Sep-2012 Adam Powell <adamp@google.com> Smooth out handling of touchMajor/touchMinor in ScaleGestureDetector.

Bug 7199099

Change-Id: I7268268237cc690c2ff952d4b2cd2ddc6dce2ca5
/frameworks/base/core/java/android/view/ScaleGestureDetector.java
b1861c3e89c3e869c95c5c01b78320a1dcef26ad 16-Sep-2012 Adam Powell <adamp@google.com> Minor fixes/clarifications for previous patch.

Change-Id: Ib44f6de570064b3f3ddf70b6727b479a09ae5d7a
/frameworks/base/core/java/android/view/ScaleGestureDetector.java
828e56ea6e8f4d5aa650052580f1f7873ad8296d 15-Sep-2012 Adam Powell <adamp@google.com> Squish!

Take touch point size into account during the detection of scaling
gestures. Average together the major/minor axes of the size.

Add a config resource for tuning the minimum span requred to begin
(or end) a scale. This may be altered in a device-specific overlay
for devices that deviate too far from their assigned density bucket.

Change-Id: I2986888e9427a7e4cb56717d59c4fa7858ba9ca7
/frameworks/base/core/java/android/view/ScaleGestureDetector.java
47ec2fb37046797bebc82b505a13c552021b9ff3 01-Sep-2012 Adam Powell <adamp@google.com> Delay starting scale gesture events until a touch slop threshold

Change-Id: I13132ce1d912b54e251f7afed5143c72a2ec2e78
/frameworks/base/core/java/android/view/ScaleGestureDetector.java
618cbea4e746196cbde43746706bec02e14b487b 28-Aug-2012 Adam Powell <adamp@google.com> New implementation for ScaleGestureDetector

This solves the problems around active pointer tracking when the
caller may skip events in the MotionEvent stream and replaces the
old implementation with a much simpler algorithm.

Change-Id: I6b15a2e215cab7b9559db800fcc57374702357fc
/frameworks/base/core/java/android/view/ScaleGestureDetector.java
076f17375b9530d40767b990016a83a9fcd18bf2 09-Jun-2012 Jeff Brown <jeffbrown@google.com> Remove edge slop handling from ScaleGestureDetector.

The edge slop code could violate invariants of ScaleGestureDetector,
such as the assumption that if an ACTION_POINTER_DOWN is observed
or if getPointerCount() >= 2, then there must be at least two
active pointers to choose from. But due to the edge slop handling,
it was possible for findNewActiveIndex to return -1 in this
case, resulting in a crash.

Bug: 6613154
Change-Id: I4e08e38a49ab27dac1be9484e19de086bc43624a
/frameworks/base/core/java/android/view/ScaleGestureDetector.java
aaedf740a9bb0085cbfb46c3f7d9d762d0b5e458 09-Jun-2011 Adam Powell <adamp@google.com> am 4e1504a6: am 7ed8ff18: am 68b81434: Merge "Fix bug 4533120 - rough handling of invalid event streams in ScaleGestureDetector" into honeycomb-mr2

* commit '4e1504a66b37b424c8839e64f97ac823e5358bd5':
Fix bug 4533120 - rough handling of invalid event streams in ScaleGestureDetector
982cb98393151921aceb0b214b14a1f9b473b71e 08-Jun-2011 Adam Powell <adamp@google.com> Fix bug 4533120 - rough handling of invalid event streams in
ScaleGestureDetector

Make ScaleGestureDetector a bit more tolerant of bogus event streams.

Change-Id: I28a8b1ea494b7f1ca9d4c4623b95aee38f213369
/frameworks/base/core/java/android/view/ScaleGestureDetector.java
bbdc50b102faf52768ac3028bc49e027ff140656 20-Apr-2011 Jeff Brown <jeffbrown@google.com> Track unhandled input events in consistency verifiers.

This fixes spurious verification errors that would be generated
when a view declined an initial event such as ACTION_DOWN. Since
the view would not receive the rest of the event stream, it would
not see the corresponding ACTION_UP and the next ACTION_DOWN would
trigger a spurious verification error.

Change-Id: I2386acf378cd1765d5446faed5ad9c6525f8b400
/frameworks/base/core/java/android/view/ScaleGestureDetector.java
21bc5c917d4ee2a9b2b8173091e6bba85eaff899 01-Mar-2011 Jeff Brown <jeffbrown@google.com> Add a little input event consistency verifier.

The idea is to assist with debugging by identifying cases in which
the input event stream is corrupted.

Change-Id: I0a00e52bbe2716be1b3dfc7c02a754492d8e7f1f
/frameworks/base/core/java/android/view/ScaleGestureDetector.java
d0197f3669efda060c7ee2069ff41bd970fd6d9c 17-Mar-2011 Adam Powell <adamp@google.com> Fix bug 4111271 and bug 4077526 - WebView touch event handling when
WebCore is too slow

Make sure that we can recover properly from a bad gesture with missing
events that never come back from webcore. Lower timeout to 1 second.

Confirm movement on touch event enqueue so that we don't get phantom
taps or long presses when webcore is slow to respond.

Add sanity check in ScaleGestureDetector to end a gesture early on a
bad MotionEvent stream rather than throwing up.

Change-Id: I69690409d7edd6b4320dbcf3b052aba4023360fe
/frameworks/base/core/java/android/view/ScaleGestureDetector.java
0818020d7cb04d83d51b71b8262d34bd79a76a95 08-Mar-2011 Adam Powell <adamp@google.com> Fix bug 3506292 - Add guards against bad event streams to ScaleGestureDetector

Change-Id: Id38ebb368168b7157369964e39948036405427b1
/frameworks/base/core/java/android/view/ScaleGestureDetector.java
0fe4a135b78e3ee993dd5111cc3e48a5b48952fb 28-Feb-2011 Adam Powell <adamp@google.com> Fix some bugs in the new ScaleGestureDetector logic.

Lifting an active pointer now properly ends/begins a new gesture.

Fix out of bounds errors.

Change-Id: I29cb802785b886f65e7fc16fa7d2870f9219a3c6
/frameworks/base/core/java/android/view/ScaleGestureDetector.java
e33cef8037cb87386e17bcf8701a47452d262fa6 24-Feb-2011 Adam Powell <adamp@google.com> Ensure WebView passes a complete/in-order event stream to
ScaleGestureDetector. Prerequisite for several ScaleGestureDetector
bugfixes.

Bugfixes for ScaleGestureDetector.

Make ScaleGestureDetector properly support >2 pointers. Track the most
recent two pointers for scale gestures.

Change-Id: I966319ad438c1c8e1103f245b53b3862c2d4e3c0
/frameworks/base/core/java/android/view/ScaleGestureDetector.java
47c41e807e36999e4d0d2072e41a82bc45655ff2 02-Sep-2010 Erik <roboerik@android.com> Added methods for getting the x and y span

We would like to separate x and y for our pinch gestures. This
change adds methods for returning those independently instead of
only allowing access to the total span.

Change-Id: I2f54cd83602e447174a49035237da379a573b63e
/frameworks/base/core/java/android/view/ScaleGestureDetector.java
9bccdb7d5c93e350337e707bc6edf3cd017b8f96 11-Aug-2010 Adam Powell <adamp@google.com> Fix public bug http://code.google.com/p/android/issues/detail?id=10067

Change-Id: I7b7a9a32e82fc7541beabe286b20b01f39406cc8
/frameworks/base/core/java/android/view/ScaleGestureDetector.java
346c8fb036b99a33756c66dcebeb5d0f67a1df72 12-Mar-2010 Adam Powell <adamp@google.com> Improvements to ScaleGestureDetector

Change-Id: I995bf7237a1de3ea194efdd21ed31156ff1c3c5b
/frameworks/base/core/java/android/view/ScaleGestureDetector.java
f5bcc6addd9c1f8f6bb8b8626540d003b3f964fa 02-Mar-2010 Adam Powell <adamp@google.com> InputDevice filtering for jumpy screens.
Updated ScaleGestureDetector for framework deprecations.
/frameworks/base/core/java/android/view/ScaleGestureDetector.java
ab905c87b7324d15715b78eaae7ef8558ad3bd10 03-Feb-2010 Adam Powell <adamp@google.com> Javadoc fixes to ScaleGestureDetector for SDK builds
/frameworks/base/core/java/android/view/ScaleGestureDetector.java
216bccf804db9c972b317620a27de6a8adf7fbfe 02-Feb-2010 Adam Powell <adamp@google.com> Updated GestureDetector to ignore multitouch if requested by the app
or if targetSdkVersion >= Froyo. Made ScaleGestureDetector
public. current.xml API updates for gestures.
/frameworks/base/core/java/android/view/ScaleGestureDetector.java
d5ada83c719d366d3063572ca6ce5ab8918fd39b 21-Jan-2010 Grace Kloba <klobag@google.com> ScaleGestureDetector needs to query the displaymetrics
for the width/height on each touch down as orientation
can change.

This should fix the problem where we can't pinch on the
top right corner when device is in landscape mode.
/frameworks/base/core/java/android/view/ScaleGestureDetector.java
8f9fbb0c45265a6f5da51cb3bc35362d8e5bc900 20-Jan-2010 Grace Kloba <klobag@google.com> Fix the sloppy detection in the ScaleGestureDetector.

Fix http://b/issue?id=2385061
/frameworks/base/core/java/android/view/ScaleGestureDetector.java
380b525220955ce4e4df8943b89082c7443ebfdd 20-Jan-2010 Adam Powell <adamp@google.com> Edge of screen slop detection for ScaleGestureDetector.
/frameworks/base/core/java/android/view/ScaleGestureDetector.java
ae542ff055301a4c3c8a18e8da1739df3a771958 14-Jan-2010 Adam Powell <adamp@google.com> TransformGestureDetector is now ScaleGestureDetector - scope reduced.
N1 screen can't reliably handle translation and scaling at the same time.
/frameworks/base/core/java/android/view/ScaleGestureDetector.java