Commit Graph

545 Commits

Author SHA1 Message Date
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
Jeff Brown
2f6d975b93 Minor MotionEvent optimization.
Change-Id: I862e934e8dae80f394ffd4ab4b4697037805022c
2010-08-19 18:22:35 -07:00
Gilles Debunne
d018a0ce72 Merge "Text selection without trackball." into gingerbread 2010-08-19 17:59:08 -07:00
Gilles Debunne
b0d6ba1ec4 Text selection without trackball.
Backported from HC.

Squashed commit of the following:

commit af214a595c7a9fdd11a2dc384f7d4665abf751c0
    Fixes in TextView's selection.

commit eb9fd59ebe6500a66c2003d46b5802299970ae8d
    TextView with Selection Contextual Mode

commit 4c4c338ef355b369ce4b57d6c6fba7ee8f9dddf4
    Cosmetic changes around TextView.

commit d4b4b054e87480d984ad18766f5e76553e3080d8
    Double and one and a half tap removed from TextView.

commit 897c2847ba1fca8ef01eadadd1bc3de007af3ee5
    Selection handlers in TextView

commit 832be74a5394649e28927484d9a86c6d53b430e7
    New cursor controller in TextViews.

Change-Id: I01cc64736e2abea605317ee53907a1713617fc17
2010-08-19 15:55:02 -07:00
Steve Howard
e0c8582e8a Merge "Improve orientation sensing when waking up while flat." into gingerbread 2010-08-19 08:29:29 -07:00
Steve Howard
5eb49583e2 Improve orientation sensing when waking up while flat.
This change makes the window manager pass the currently displayed
orientation to the WindowOrientationListener each time to calls to get
the currently sensed orientation.  Now, when the
WindowOrientationListener doesn't know for sure what the orientation
of the device should be (for example, if the sensed orientation is
flat on a table), then it trusts the already-displayed orientation,
rather than trusting whatever sensors reading it most recently
received.

The main use case this addresses is:
* user uses device in portrait
* user turns off device, puts it in pocket
* while in pocket, screen gets turned on, activating orientaiton
  sensor, which senses landscape orientation
* screen timed out
* user takes device out, places it on a table (or looks down at it,
  holding it flat), and unlocks it

Previously, when the device was unlocked, the
WindowOrientationListener would return landscape orientation based on
its previous sensor readings.  Now, it will override those previous
readings because it knows they never actually took effect and the
device is presently flat.

This change also slightly modifies the way we handle flat orientation,
now completely ignoring data when the tilt distrust is nonzero (even
if the current sensor reading shows non-tilted).

Change-Id: Ia4950a41827f8c53a80487d0c2e83b556df781b9
2010-08-18 14:22:19 -07:00
Konstantin Lopyrev
bef337f516 Making sure the draw time is measured.
Change-Id: I6bf8094aee03793f125008386c4fea730e95d07a
2010-08-18 11:31:27 -07:00
Svetoslav Ganov
3dfaf21dfc DO NOT MERGE 2928156 Accessibility event's parcelableData property not nullified during recycling (GINGERBREAD)
Change-Id: I18437d98032487329b6b9b579ed12abbfb77501f
2010-08-17 19:03:56 -07:00
Mathias Agopian
833533c929 Improve Display javadoc slightly
Change-Id: Iaa7d599e11d42d4aaf50e87b141f9b8d04ba445e
2010-08-16 13:30:20 -07:00
Jeff Brown
92ff1dd835 Fix ViewRoot bug attempting to finish synthetic KeyEvents.
Bug: 2834068
Change-Id: I34ee0c4479cee36b25a2c3e1cdf5d761b663ac1e
2010-08-11 16:18:13 -07:00
Jeff Brown
95af0c14a6 Merge "Add support for the PointerLocation overlay." into gingerbread 2010-08-11 16:15:48 -07:00
Jeff Brown
a41ca77fab Add support for the PointerLocation overlay.
This change involves adding a new method to IWindowManager,
monitorInput() that returns an InputChannel to receive a copy of all
input that is dispatched to applications.  The caller must have
the READ_INPUT_STATE permission to make this request (similar to
other window manager methods such as getKeycodeState).

Change-Id: Icd14d810174a5b2928671ef16de73af88302aea0
2010-08-11 14:46:32 -07:00
Konstantin Lopyrev
91a7f5fef8 Making sure that the prefix is handled properly.
Change-Id: Ic50327b1ed4d6b54753b5b3887508a53cd7a3497
2010-08-10 18:54:54 -07:00
Adam Powell
224ab9a5c6 Merge "Fix public bug http://code.google.com/p/android/issues/detail?id=10067" into gingerbread 2010-08-10 17:52:15 -07:00
Adam Powell
9bccdb7d5c Fix public bug http://code.google.com/p/android/issues/detail?id=10067
Change-Id: I7b7a9a32e82fc7541beabe286b20b01f39406cc8
2010-08-10 17:50:11 -07:00
Konstantin Lopyrev
f39d5987b9 Merge "Categorizing exported view properties." into gingerbread 2010-08-10 17:48:27 -07:00
Konstantin Lopyrev
bea95162ca Categorizing exported view properties.
Change-Id: I79c42019836973d80662c21d195d088ae01537a0
2010-08-10 17:45:03 -07:00
Jeff Brown
c3fc2d03d5 Fix safe mode and KeyEvent.getMaxKeyCode().
Bug: 2901731
Change-Id: I78617c1b9dee3790fc590e5af4b5083368873184
2010-08-10 16:28:03 -07:00
Jeff Brown
d98d0fc6e9 Merge "Optimize VelocityTracker to run in linear time." into gingerbread 2010-08-10 16:26:56 -07:00
Jeff Brown
88cf2fca38 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
2010-08-09 18:50:35 -07:00
Konstantin Lopyrev
63cca69157 Merge "Make sure profiling is done only for views that are actually measured, laid out and drawn." into gingerbread 2010-08-09 17:02:39 -07:00
Konstantin Lopyrev
c6dc45700b Make sure profiling is done only for views that are actually measured, laid out and drawn.
Change-Id: I88c66e882be2781d079c51b6580a19c4e359c5b1
2010-08-06 15:41:33 -07:00
Steve Howard
5f531ae6b3 Slight improvement (hopefully) to orientation sensing.
Since orientation sensing has been an issue for numerous users, I
decided a spend a little time experimenting with some possible
improvements.  I've settled on a couple major changes:

* Perform all lowpass filtering in spherical coordinates, not
  cartesian.  Since the rotations are what we're really concerned
  with, this makes more sense and gives more consistent results.

* Introduce a system of tracking "distrust" in the current data, based
  on external acceleration and on tilt.  The basic idea is after a
  signal of unreliable data -- repeated acceleration or
  nearly-horizontal tilt -- we wait for things to "stabilize" for some
  number of ticks before we start trusting the data again.  This is an
  extension of the basic lowpass filtering.  One simple example is
  after the phone is picked up off a table, we ignore the first few
  readings.  Another example is while the phone is under external
  acceleration for a while (i.e. in a car mount on a rough road), if a
  single "good" reading comes in, we distrust it, under the assumption
  that it was probably just a lucky reading (i.e. the magnitude
  happened to be close to that of gravity by chance).

These changes have allowed me to relax other constraints, such as the
filtering time constants, the maximum deviation from gravity, and the
max tilt before we start distrusting data.

The net effect is that orientation changes happen more quickly and can
happen under a wider variety of conditions, but false changes due to
tilt and acceleration are still avoided well.  I think the improvement
is subtle, but it's the best I've come up with in my limited time.

I've also included some refactoring and additonal comments to try and
further clarify the (somewhat twisted) logic.

Change-Id: I34c7297bd2061fae8317ffefd32a85c7538a3efb
2010-08-05 18:26:03 -07:00
Chris Tate
5d46ce24cc Merge "Enhanced VelocityTracker for > 5 pointers and fixed bugs." into gingerbread 2010-08-03 12:22:50 -07:00
Konstantin Lopyrev
f8e1219cf8 Improving profiling of views.
Change-Id: I1abb8c21f1769ad55416f37e7bfa1458b80ace63
2010-08-02 19:08:56 -07:00
Jeff Brown
9e2ad36be8 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
2010-07-30 20:08:29 -07:00
Jeff Brown
6ec402b5ae DO NOT MERGE: Fix input event injection ANRs on UI thread.
Added a new asynchronous injection mode and made the existing
synchronization mechanism more robust.

Change-Id: Ia4aa04fd9b75ea2461a844c5b7933c831c1027e6
2010-07-29 12:54:27 -07:00
Jeff Brown
6d0fec2de3 Refactor input reader to support new device types more easily.
Refactored the input reader so that each raw input protocol is handled
by a separate subclass of the new InputMapper type.  This way, behaviors
pertaining to keyboard, trackballs, touchscreens, switches and other
devices are clearly distinguished for improved maintainability.

Added partial support for describing capabilities of input devices
(incomplete and untested for now, will be fleshed out in later commits).

Simplified EventHub interface somewhat since InputReader is taking over
more of the work.

Cleaned up some of the interactions between InputManager and
WindowManagerService related to reading input state.

Fixed swiping finger from screen edge into display area.

Added logging of device information to 'dumpsys window'.

Change-Id: I17faffc33e3aec3a0f33f0b37e81a70609378612
2010-07-28 14:16:15 -07:00
Jeff Brown
e33348ba54 Fix bug with phantom input windows.
Add dumpsys integration for the native input dispatcher.
Add some InputDevice API stubs.
Add an appendFormat helper method to String8 for printf style
string formatting mainly for debugging purposes.
Use generic ArrayList<WindowState> everywhere in WindowManagerService
to eliminate unnecessary casts all over.

Change-Id: I9d1e3bd90eb7222d10620200477f11b7bfd25e44
2010-07-16 00:02:48 -07:00
Jeff Brown
c5ed5910c9 Add support for new input sources.
Added several new coordinate values to MotionEvents to capture
touch major/minor area, tool major/minor area and orientation.

Renamed NDK input constants per convention.

Added InputDevice class in Java which will eventually provide
useful information about available input devices.

Added APIs for manufacturing new MotionEvent objects with multiple
pointers and all necessary coordinate data.

Fixed a bug in the input dispatcher where it could get stuck with
a pointer down forever.

Fixed a bug in the WindowManager where the input window list could
end up containing stale removed windows.

Fixed a bug in the WindowManager where the input channel was being
removed only after the final animation transition had taken place
which caused spurious WINDOW DIED log messages to be printed.

Change-Id: Ie55084da319b20aad29b28a0499b8dd98bb5da68
2010-07-15 18:32:33 -07:00
Scott Main
5352d2378d am 38137d7a: Merge "docs: lots of additions to the resources docs new drawable resources add <merge> and <include> to layout resource update drawable class descriptioons to point to resources guide add ID resource type" into froyo
Merge commit '38137d7a27b037611c70a9d900aa53b4c15563bf' into gingerbread

* commit '38137d7a27b037611c70a9d900aa53b4c15563bf':
  docs: lots of additions to the resources docs
2010-07-15 11:20:32 -07:00
Dianne Hackborn
ed86eaa730 Merge "Argh oops I didn't mean to delete this." into gingerbread 2010-07-14 17:02:49 -07:00
Jim Miller
9d42c7f75c Merge "Fix 2797185: Re-enable thumbnail generation in framework" into gingerbread 2010-07-14 16:59:52 -07:00