Commit Graph

577 Commits

Author SHA1 Message Date
Niclas Kellgren
a1454becb9 Added check to make orientation calculations more robust
Added check avoid a division by zero resulting in NaN which in turn
makes checkFullyTilted to ignore high tilt angles from then on.
If (x, y, z) == (0, 0, 0) then there is no tilt or rotation and
this vector must be ignored. This check is extended to ignore all
small acceleration values where noise can be of big influence.

Low or zero readings can happen when space travelling free falling,
but more commonly when shaking or getting bad readings from the sensor.
The accelerometer is turned off when not used and polling it too soon
after it is turned on may result in (0, 0, 0).

Change-Id: I19aec653abb8ab6f7126778035c8c96449f1326f
2011-01-14 11:14:03 -08:00
Brad Fitzpatrick
69ea4e15e5 Documentation fixes found over vacation hacking.
Change-Id: I28900026465d66d950cf4f05f0c202b46c3c2d43
2011-01-05 13:07:34 -08:00
Jeff Brown
eb9f7a01b0 Fix policy issues when screen is off. (DO NOT MERGE)
Rewrote interceptKeyBeforeQueueing to make the handling more systematic.
Behavior should be identical except:
- We never pass keys to applications when the screen is off and the keyguard
  is not showing (the proximity sensor turned off the screen).
  Previously we passed all non-wake keys through in this case which
  caused a bug on Crespo where the screen would come back on if a soft key
  was held at the time of power off because the resulting key up event
  would sneak in just before the keyguard was shown.  It would then be
  passed through to the dispatcher which would poke user activity and
  wake up the screen.
- We propagate the key flags when broadcasting media keys which
  ensures that recipients can tell when the key is canceled.
- We ignore endcall or power if canceled (shouldn't happen anyways).

Changed the input dispatcher to not poke user activity for canceled
events since they are synthetic and should not wake the device.

Changed the lock screen so that it does not poke the wake lock when the
grab handle is released.  This fixes a bug where the screen would come
back on immediately if the power went off while the user was holding
one of the grab handles because the sliding tab would receive an up
event after screen turned off and release the grab handles.

Bug: 3144874
Change-Id: Iebb91e10592b4ef2de4b1dd3a2e1e4254aacb697
2010-12-22 16:00:21 -08:00
Mathias Agopian
e33811512e [3253328, 3171580] Treat GONE and INVISIBLE views the same when calculating transparent regions
We only used to check for INVISIBLE, which prevented some Surfaceview
optimization to take place.

Change-Id: I244b54696d861a022ca1c334ff61ab7efb899587
2010-12-03 17:35:06 -08:00
Adam Powell
26153a33df Fix bug 3163052 - always use 32-bit drawing caches when destination
window is 32-bit

Change-Id: I0b6de28eb2de583e1d10d0a65c1ab534ef5bb047
2010-11-08 18:09:12 -08:00
Mathias Agopian
1bd80ad7fd possibly fix [2265804] OpenGL GLSurfaceView apps don't draw status bar drop shadow correctly
request a layout when asking the transparent region to be recomputed, without this
it may never happen, since the transparent region is only calculated during layout.

this also fixes an issue where some fullscreen apps will run slower than expected
because their transparent region is never processed.

Change-Id: Iba187ef7b23f08ad3454aaa6707a3d262551e30c
2010-11-04 17:13:39 -07:00
Jeff Brown
2d3f159aa9 Add support for secure system overlays. (DO NOT MERGE)
This change adds a new window type for secure system overlays
created by the system itself from non-secure system overlays that
might be created by applications that have the system alert permission.
Secure views ignore the presence of secure system overlays.

Bug: 3098519
Change-Id: I8f8398f4fdeb0469e5d71124c21bedf121bd8c07
2010-10-15 16:03:35 -07:00
Jeff Brown
b931a1b418 Fix an event injection bug when the policy is bypassed.
Added the concept of a "trusted" event to distinguish between events from
attached input devices or trusted injectors vs. other applications.
This change enables us to move certain policy decisions out of the
dispatcher and into the policy itself where they can be handled more
systematically.

Change-Id: I4d56fdcdd31aaa675d452088af39a70c4e039970
2010-10-11 16:26:13 -07:00
Jeff Brown
b699726018 Added more robust tracking and cancelation of events.
This change fixes several issues where events would be dropped in the
input dispatch pipeline in such a way that the dispatcher could not
accurately track the state of the input device.

Given more robust tracking, we can now also provide robust cancelation
of input events in cases where an application might otherwise become
out of sync with the event stream due to ANR, app switch, policy decisions,
or forced focus transitions.

Pruned some of the input dispatcher log output.

Moved the responsibility for calling intercept*BeforeQueueing into
the input dispatcher instead of the input reader and added support for
early interception of injected events for events coming from trusted
sources.  This enables behaviors like injection of media keys while
the screen is off, haptic feedback of injected virtual keys, so injected
events become more "first class" in a way.

Change-Id: Iec6ff1dd21e5f3c7feb80ea4feb5382bd090dbd9
2010-10-10 14:45:51 -07:00
Jeff Brown
224d4a1535 Clarify some comments on individual key codes.
Change-Id: I03cce0ad69aaab5b71e5017982b01afd27285d2f
2010-10-07 20:28:53 -07:00
Dianne Hackborn
bfba7cab94 Fix issue #3001362: API REVIEW: android.view.InputQueue.Callback
Change-Id: Ibc12a7326a13c318205774e226ed1f62a5cf11eb
2010-10-06 17:58:05 -07:00
Dianne Hackborn
a2a0a98ac7 Merge "Fix NPE if there is no accelerometer." into gingerbread 2010-10-05 19:02:52 -07:00
Dianne Hackborn
b499bb1069 Fix NPE if there is no accelerometer.
Change-Id: I983290a7fc3deda2a82b03ff564f1b7201cc3dd3
2010-10-05 18:54:49 -07:00
Adam Powell
737e8fe2c7 DO NOT MERGE Fix bug 3001751 and bug 3001584 - Gingerbread API review for over-scroll
Change-Id: If34c8ea4e15697420adad0bc404f3c278efd7c1b
2010-10-05 15:22:07 -07:00
Mathias Agopian
ef11530874 fix build. SurfaceView.setFrame needed to be hidden
Change-Id: I96b0896e24483e9b5db19c938cb6058868f34e48
2010-10-04 20:15:08 -07:00
Mathias Agopian
7e6064ad7c Merge "fix [3008290] passion GB surface does not send surfaceChanged notification after size change." into gingerbread 2010-10-04 19:50:16 -07:00
Mathias Agopian
995bb9d24d fix [3008290] passion GB surface does not send surfaceChanged notification after size change.
The video has the same aspect ratio than the window, so the window size doesn't change.
In turn, onSizeChanged() is not called, which is where surfaceChanged() is eventually called from.

we now override setFrame() and always call updateWindow from there instead of from onSizeChanged()

Change-Id: I87064b577ff1d7b6ba50e563d7278813002d2b29
2010-10-04 17:13:15 -07:00
Dianne Hackborn
e5439f228f Fix issue #3041660: Camera image flips upside down when rotating device
Apps now must explicitly opt in to having their rotation changed while
forcing landscape mode.  Also add some new orientation constants for other
things apps may want to do.

Change-Id: If64d84b5ef54793ee717ebda9b4c76408efc9bfd
2010-10-04 14:01:39 -07:00
Jeff Brown
0eaf3931a3 Support haptic feedback for virtual keys defined in key layout.
Change-Id: I83e4108a87332692e03791dc066206becbc7941f
2010-10-01 15:08:56 -07:00
Dianne Hackborn
fd57416cc8 Fix build.
Change-Id: I99d362e6673252ade4da29f29852eccaedbc9709
2010-10-01 14:04:27 -07:00
Jeff Brown
14a288da6a Merge "Add suuport for splitting touch events across windows." into gingerbread 2010-09-27 12:33:14 -07:00
Jeff Brown
01ce2e9eee Add suuport for splitting touch events across windows.
This feature is currently used to enable dragging the start and end
selection handles of a TextView at the same time.  Could be used for
other things later.

Deleted some dead code in ArrowKeyMovementMethod and CursorControllers.

Change-Id: I930accd97ca1ca1917aab8a807db2c950fc7b409
2010-09-26 22:20:12 -07:00
Dianne Hackborn
f123e49bf0 Some debugging support.
- New feature to "am monitor" to have it automatically launch
  gdbserv for you when a crash/ANR happens, and tell you how to
  run the client.

- Update dumpstate to match new location of binder debug logs

- Various commented out logs that are being used to track down
  issues.

Change-Id: Ia5dd0cd2df983a1fc6be697642a4590aa02a26a5
2010-09-24 13:11:55 -07:00
Jeff Brown
93ed4e3052 Enforce serial ordering of MotionEvents.
This change modifies ViewRoot to wait until the MotionEvent has been
delivered before telling the input dispatcher that it is finished.
The serial ordering guarantee will be required by new features that
may need to transfer touch focus from one window to another.

Change-Id: I0a64d1f0c8bc3f08846f213d6e28ce48b1d48e58
2010-09-23 13:56:30 -07:00
Amith Yamasani
6e98c280f7 Merge "Fix for IndexOutOfBounds in setComposingRegion." into gingerbread 2010-09-23 11:03:49 -07:00
Amith Yamasani
4198918eed Fix for IndexOutOfBounds in setComposingRegion.
Bug: 3000457

Check upper and lower bounds of the composing region and clip them.

Change-Id: I8128a2b581ce3d8a9ff6c71cc648c3e87163b3f5
2010-09-22 16:58:13 -07:00
Steve Howard
127146ee1c Merge "Decrease sensitivity of orientation changes a bit." into gingerbread 2010-09-22 15:57:12 -07:00
Adam Powell
9aed300279 Text selection anchors changed to use windows
Change-Id: I14f138039f5e3175a8c07f21985715b8447708e5
2010-09-21 17:11:41 -07:00
Steve Howard
85b53adc75 Decrease sensitivity of orientation changes a bit.
I've noticed over the past couple weeks that my phone was flipping to
landscape when I placed it down too often, more like it did in Eclair.
I think my previous changes to make orientation changes quicker were a
bit too aggressive, so I'm backing off a couple of the time constants.

Change-Id: Ifffd45ac934984cc9091da56958bc2b6bcaa280a
2010-09-21 15:13:39 -07:00
Adam Powell
23bd5f5075 Fix some drawing artifacts/bugs around overlays/text anchors
Change-Id: I28170d4e120506c09a1cfea721244fbcd3c2576a
2010-09-17 18:57:25 -07:00
Adam Powell
b08013c312 Added overlay support for drawing/responding to text anchors.
Overlays let views draw and respond to touch events outside of their
bounds. This allows selection anchors to be friendlier and easier to
grab. This is currently private API, pending further evaluation.

Added themes/styles for text selection anchors.

Added assets for text selection anchors as provided by UX. The
left/right anchors are currently not suitable for use. They are here
for bookkeeping and replacement later. The theme currently uses the
'middle' anchor asset for all three. This will be changed once assets
are ready.

Change-Id: I01b21e5ae90cab201f86f38f2f5eeaf2bd7f6bcd
2010-09-17 13:31:33 -07:00
Jeff Brown
dc1ab4b5cc Input API review.
Drop currently unsupported input features.
Add documentation comments.

Change-Id: I407d2e1dd90c5ee82983a3ccf177430d35ee7592
2010-09-14 20:46:14 -07:00
Adam Powell
57361ef001 DO NOT MERGE Fix bug 2995887 - overscroll effect initialization issue
Change-Id: I03cc18616dec05eb9e0383dc02371366c70cc12b
2010-09-13 16:08:35 -07:00
Jeff Brown
692065128e Fix some API discrepancies in InputEvent.
Change-Id: I8e33e125e10075d6f256a1eb3dd46990f35074d6
2010-09-12 17:17:30 -07:00
Jeff Brown
85a3176704 Add support for secure views.
Added the MotionEvent.FLAG_WINDOW_IS_OBSCURED flag which is set by the
input manager whenever another visible window is partly or wholly obscured
the target of a touch event so that applications can filter touches
accordingly.

Added a "filterTouchesWhenObscured" attribute to View which can be used to
enable filtering of touches when the view's window is obscured.

Change-Id: I936d9c85013fd2d77fb296a600528d30a29027d2
2010-09-08 11:50:55 -07:00
Adam Powell
7627c221c6 DO NOT MERGE Tweak overscroll
Change-Id: I5ba00fc87ba7b286978acf577ba6461f79066437
2010-09-03 16:09:03 -07:00
Gilles Debunne
d4723bb415 Revert "Merge "InputMethodManager showSoftInput return documentation." into gingerbread"
This reverts commit 26d708d936, reversing
changes made to 3ac85d31de.

Change-Id: Ifc19f837bee7437707ddddf0b19cb6bce53dd2c5
2010-09-02 15:27:47 -07:00
Gilles Debunne
26d708d936 Merge "InputMethodManager showSoftInput return documentation." into gingerbread 2010-09-02 14:50:25 -07:00
Adam Powell
5916882c3f DO NOT MERGE Overscroll continues; asset and behavior tweaks.
Change-Id: I367643877a397e7b4fa9bd8c40639ff69436e7f0
2010-09-02 00:14:53 -07:00
Gilles Debunne
a18cf54731 InputMethodManager showSoftInput return documentation.
Change-Id: I12b1fe6d224e1b44377fb9152a33a818b1974925
2010-08-31 17:23:04 -07:00
Jeff Brown
6eb5ac9cee Fix doc link in InputDevice.
Change-Id: I3b356b8e3803661ccfe5bb4812021b6c6d576d21
2010-08-30 23:29:07 -07:00
Adam Powell
0a77ce277c 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
2010-08-30 19:14:07 -07:00
Jeff Brown
8d60866e21 Input device calibration and capabilities.
Finished the input device capability API.
Added a mechanism for calibrating touch devices to obtain more
accurate information about the touch contact area.
Improved pointer location to show new coordinates and capabilities.
Optimized pointer location display and formatting to avoid allocating large
numbers of temporary objects.  The GC churn was causing the application to
stutter very badly when more than a couple of fingers were down).
Added more diagnostics.

Change-Id: Ie25380278ed6f16c5b04cd9df848015850383498
2010-08-30 18:16:43 -07:00
Amith Yamasani
a90b7f0125 Add methods to InputConnection: setComposingRegion() to select a region of text for correction, and getSelectedText()
to return the selected text.

setComposingRegion:

The TextView may choose to highlight the text in some way (underline for now) to indicate
that the text is selected for correction, if the IME wants to provider alternatives.

Choosing an alternative in the IME can then call IC.commitText() to replace the highlighted
(not selected) text with a different candidate.

This change also ensures that any existing spans/styles are not wiped out. So we can now
correct rich text as well.

getSelectedText:

This is a convenience to get the selected text instead of using extracted text that is
more heavy weight. Existing getTextBeforeCursor() and getTextAfterCursor() fail to
retrieve the selected text, only what's before and after the selection.

Change-Id: Ieb5ecd5ff947ea04958589f501e7bd5228e00fb5
2010-08-26 14:53:39 -07:00
Dianne Hackborn
0a7f5fc474 Merge "Fix issue #2951784: Launcher crashes on startup" into gingerbread 2010-08-26 10:47:48 -07:00
Dianne Hackborn
9dae48e399 Fix issue #2951784: Launcher crashes on startup
Change-Id: I98aedacce9a7d6b8bc168f39ea5489b40dc0ec8d
2010-08-26 10:20:01 -07:00
Dianne Hackborn
3003a017d3 Merge "Don't retain global ref to last inflated context." into gingerbread 2010-08-25 22:00:28 -07:00
Dianne Hackborn
7e269644fc Don't retain global ref to last inflated context.
Also rework URI permission granting to support upcoming
clipboard use.

Change-Id: I9842920350955531c5a511c2ecc5215e8c783343
2010-08-25 21:50:54 -07:00
Konstantin Lopyrev
43b9b48f79 Preventing the hierarchy viewer from getting stuck, once when trying to load the window data for SurfaceView and the Wallpaper, and in the case the captured node has disappeared.
Change-Id: Iaff6bd501a2bb3faa7a394fff740479f6a95e899
2010-08-25 13:38:27 -07:00
Dianne Hackborn
baf72cd79c Merge "DO NOT MERGE 2928156 Accessibility event's parcelableData property not nullified during recycling (GINGERBREAD)" into gingerbread 2010-08-20 12:53:07 -07:00