Commit Graph

1113 Commits

Author SHA1 Message Date
Jeff Brown
aaa55d3f45 Merge "New orientation listener." into honeycomb 2011-01-24 15:31:22 -08:00
Gilles Debunne
7c8c6d6892 Typo in InputMethodManager's documentation
Change-Id: I711e6d24462e336546b789fac0b9c6f529ebe260
2011-01-24 14:48:14 -08:00
Gilles Debunne
88b5953ab2 Merge "NULL inputType text fields should never show the IME." into honeycomb 2011-01-24 14:46:57 -08:00
Jeff Brown
4519f07e9c New orientation listener.
The objective in this listener is to be more careful about the
signal processing to prevent spurious orientation changes
and to make all of the tweakable factors physically meaningful.

The calibration is defined in terms of time constants and
does not assume a particular discrete sampling rate.  This is
useful because it allows us to change the accelerometer sampling
interval if desired without having to change the calibration.
Moreover, the accelerometer sampling interval can vary +/- 20ms
from one sample to the next even in normal circumstances.

Proposed orientation changes are weighted by confidence factors
that vary exponentially in relation to how close the device
is to the ideal orientation change posture (screen is vertical,
angle is exactly at the midpoint of the orientation quadrant,
and no external acceleration beside gravity).  When not in an ideal
posture, the device takes proportionally longer to settle into a
new orientation state.

Added a little tool to plot the log output of the
WindowOrientationListener.  Check the README for more information
about how to use it.

Change-Id: I787f02d03582ff26367df65eda8d9ce85c5cb343
2011-01-24 13:46:57 -08:00
Gilles Debunne
8cbb4c6e30 NULL inputType text fields should never show the IME.
Bug 3381317

Changes made in https://android-git.corp.google.com/g/#change,91880
displayed the IME onFocus. However, the test was not consistent to what
is done in touch event. textIsEditable is now checked too.

Change-Id: If11382c1c90a557839b87d62494253470c42b621
2011-01-24 12:33:56 -08:00
Huahui Wu
f93246923f A few small cleanning-ups.
1. Remove mDeferMultiTouch in WebView, it was for testing only but
we don't need it now since we always pass MultiTouch to WebKit.

2. Remove the use of mDeferMultiTouch in DRT tests.

3. Correct the index of getX(Y) for the second touch point in the
debug string of MotionEvent.

Change-Id: Ib63cfc5935af1a169ed26b2b138f74908492bc18
2011-01-24 12:07:37 -08:00
Joe Onorato
da34e13bb4 Merge "Remove unwanted parameter (it was a typo)." into honeycomb 2011-01-24 10:43:55 -08:00
Joe Onorato
e595cad6ee Remove unwanted parameter (it was a typo).
Bug: 3241144
Change-Id: I569f6c8dffb17041a422be6084b6eab89624a57b
2011-01-24 09:25:35 -08:00
Chet Haase
daf98e941e Use optimized display lists for all hwaccelerated rendering
Previously, display lists were used only if hardware acceleration
was enabled for an application (hardwareAccelerated=true) *and* if
setDrawingCacheEnabled(true) was called. This change makes the framework
use display lists for all views in an application if hardware acceleration
is enabled.

In addition, display list renderering has been optimized so that
any view's recreation of its own display list (which is necessary whenever
the visuals of that view change) will not cause any other display list
in its parent hierarchy to change. Instead, when there are any visual
changes in the hierarchy, only those views which need to have new
display list content will recreate their display lists.

This optimization works by caching display list references in each
parent display list (so the container of some child will refer to its
child's display list by a reference to the child's display list). Then when
a view needs to recreate its display list, it will do so inside the same
display list object. This will cause the content to get refreshed, but not
the reference to that content. Then when the view hierarchy is redrawn,
it will automatically pick up the new content from the old reference.

This optimization will not necessarily improve performance when applications
need to update the entire view hierarchy or redraw the entire screen, but it does
show significant improvements when redrawing only a portion of the screen,
especially when the regions that are not refreshed are complex and time-
consuming to redraw.

Change-Id: I68d21cac6a224a05703070ec85253220cb001eb4
2011-01-24 08:43:20 -08:00
Joe Onorato
4c541b1303 Merge "visibility ("lights out") API." into honeycomb 2011-01-23 19:26:13 -08:00
Joe Onorato
664644d9e0 visibility ("lights out") API.
1. Views may setSystemUiVisibility() to recommend that
the system chrome (status bar or other UI) show or hide
itself.  (This functionality was previously available only
via the FLAG_FULLSCREEN window flag for some SystemUI
implementations.)

2. Views may register a OnSystemUiVisibilityChangedListener
on a view, and find out when the system UI actually
appears or disappears, allowing apps to coordinate the
appearance of their own UI if desired.

Bug: 3241144
Change-Id: Ia1758d94099182d49a1e3688ea2738ae4995b829
2011-01-23 19:22:52 -08:00
Romain Guy
8b2f5267f1 Add support for arcs.
Change-Id: I96c057ff4eb1b464b03f132da0b85333777bee4f
2011-01-23 16:15:02 -08:00
Romain Guy
c1cd9ba335 Add support for ovals and stroked rectangles.
Change-Id: I1292e241386763c82e6622c8f7ed90b0f5b7bd4f
2011-01-23 14:18:41 -08:00
Dianne Hackborn
ff801ec713 Fix issue #3302006: Cannot see the dialog lunched from a transparent activity.
The activity manager was not performing the layout pass on the new window,
because its app token was still hidden, because the activity manager / window
manager were still waiting for it to be ready to show.

Just ignore whether the app token is hidden for this case.

Also fixes some problems with animations, and tweaks the ViewConfiguration
values for xlarge screens.

Change-Id: Icbe9c77ba8127d1e02df2d6f27b8e86ec842e50a
2011-01-22 18:13:13 -08:00
Romain Guy
596ba2fa79 Merge "Correctly invalidate views that transition from opaque to non-opaque. Bug #3337037" into honeycomb 2011-01-21 19:02:05 -08:00
Romain Guy
c5d55863ec Correctly invalidate views that transition from opaque to non-opaque.
Bug #3337037

Change-Id: I31397273a31b6004e2e3801866122bcbb3ebee5d
2011-01-21 19:03:58 -08:00
Adam Powell
3cb8b638c4 Fix bug 3362680 - calendar crash while tabbing among views
Remove pending click callbacks when a view is detached from its
window.

Change-Id: I51de184b8e95dbd594675ea6849647586a7c4ba2
2011-01-21 15:34:14 -08:00
Ken Wakasa
e31e942455 Update class doc for InputMethodSubtype
bug: 3370290
Change-Id: Ib86f81c1a5f6c9acca34b586d810c6e94db1b552
2011-01-21 15:57:37 +09:00
Romain Guy
99d49118b8 Merge "Add support for drawBitmapMesh()." into honeycomb 2011-01-20 19:07:28 -08:00
Romain Guy
5a7b466a2b Add support for drawBitmapMesh().
Change-Id: Ic77f9c534bb90dc7b9458299544bd50b8b6ae6a5
2011-01-20 19:09:30 -08:00
Dianne Hackborn
e69e0fde6c Merge "Fix issue #3374356: Buttons sometimes don't highlight" into honeycomb 2011-01-20 15:38:14 -08:00
Dianne Hackborn
be1f62260a Fix issue #3374356: Buttons sometimes don't highlight
On touch up, View would move itself to the pressed state if it
hadn't already shown as pressed.  However, it did this *after*
scheduling the message to deliver the onClick().  Thus if the
app took a little too long to execute inside of onClick(), the
invalidate to draw the highlight state would be executed right
before the following message to remove the highlight state,
causing it to basically not be shown.

This change just does the invalidate before scheduling the
onClick, so we can be sure it gets done first.

Change-Id: I6a4d1742a3aab60969c38b44bb3e163f48de62d4
2011-01-20 15:24:28 -08:00
Christopher Tate
7fb8b565f9 Include the local state obj in ACTION_DRAG_STARTED events
Fixes bug 3362502

The underlying cause was that the DragEvent.obtain() variant which
clones an existing event was failing to copy the local state field.

This change also moves the logic for inserting the local state object
into DragEvents about to be dispatched from the Binder incall thread
into the main-thread code sequence.  This is to eliminate any potential
SMP memory coherency issues around drag start vs incoming events
needing to refer to the local state object.

Change-Id: I368e8936dbf8a00b7d5cc19c2ef0101bd75b6b2d
2011-01-20 13:53:17 -08:00
Romain Guy
c8219299b0 Merge "Remove unnecessary code." into honeycomb 2011-01-20 11:37:22 -08:00
Romain Guy
ff26a0c1c9 Remove unnecessary code.
Change-Id: I83eba3406c26a4028af08b4d4c95ecd02803e75a
2011-01-20 11:39:09 -08:00
Ken Wakasa
586f051375 Refine InputMethodInfo API
bug: 3370297
Change-Id: I2a18f3bdbe2fccb22e22cdae0f75aec5c703ad6d
2011-01-21 01:02:58 +09:00
Romain Guy
ed8f8dd8cf Merge "Add rounded rects and circles support to OpenGLRenderer." into honeycomb 2011-01-19 21:52:49 -08:00
Romain Guy
01d58e43ed Add rounded rects and circles support to OpenGLRenderer.
Change-Id: I6cedf2b495d58de7c0437096809fa9e4518a1b8c
2011-01-19 21:55:10 -08:00
Jeff Brown
7e1e21fdc5 Rename KeyCharacterMap.UnavailableException.
Bug: 3370261
Change-Id: I5cdca8ef2300b70b7a0fcc7e2c26765079645ecc
2011-01-19 17:32:50 -08:00
Christopher Tate
28f0a53a88 Merge "Fail more gracefully when window state changes during drags" into honeycomb 2011-01-19 16:41:14 -08:00
Christopher Tate
f01af7551b Fail more gracefully when window state changes during drags
In particular, if a new window was created out from under the drag,
the drag-move event dispatch logic would wind up blithly assuming
that it would find a valid touch-dispatchable window under the
finger.  When this was untrue, it would NPE, but the NPE was caught
and discarded safely by higher-level guard code.

With this change, we now avoid the NPE entirely and report the
spurious condition as part of the debugging log stream.

(Also add the local-state object to DragEvent.toString()'s output.)

Change-Id: Idfa5f45d049e48415ee59c8b0ffb5b0ed4098ce3
2011-01-19 16:25:22 -08:00
Gilles Debunne
be2c4f92a9 Race condition patched in Email autocompletion.
Bug 3347962

Root cause of this problem: if the adapter's content gets updated by a backgroung
thread, the PopupDataSetObserver will call showDropDown which will popup the
list.

Added a flag to make this call show the popup iif it is already visible.
This relayout is needed to clear the mDataChanged flag set when the content was
modified and which otherwise prevents touch events on the result list.

ArrayAdapter didn't use its lock to protect access to mObject.

-------------------------------------------------

However, the study of the this race conditions revealed an other bug:

Updated adapter's content is not displayed in filtered AutoCompleteTextView
Bug 3369097

Change-Id: Icd90d452f98231866f4d8a1f6994c1492febecb9
2011-01-19 15:10:09 -08:00
Romain Guy
8f36bedcf3 Merge "Don't attempt to create empty layers. Bug #3369888" into honeycomb 2011-01-19 14:36:22 -08:00
Romain Guy
514fb18827 Don't attempt to create empty layers.
Bug #3369888

Change-Id: Ic17bbd1c04bbf760cb17d0eb9e6767fd6479948c
2011-01-19 14:38:29 -08:00
Christopher Tate
5383d077ed Merge "Fix a couple of drag & drop crashes" into honeycomb 2011-01-19 13:51:58 -08:00
Romain Guy
9335f5b2fd Merge "Make embedded hardware layers work. Bug #3369474" into honeycomb 2011-01-19 13:40:43 -08:00
Romain Guy
42f3a4b7c3 Make embedded hardware layers work.
Bug #3369474

Change-Id: Ib6d7fb44eedda9dc2933b5e1b176f307968af91d
2011-01-19 13:42:26 -08:00
Christopher Tate
1fc014fd00 Fix a couple of drag & drop crashes
1. ViewGroups being removed from the layout during a drag would wind up
crashing the app with an NPE at drag-ended time, due to blind dereference
of now-cleared object pointers.

2. Passing a 'null' ClipData to startDrag() would crash the system
process with an NPE.  Should this even be valid?  I'm inclined to say
yes, though it means that apps will need to guard against it.

Fixes bug 3369542

Change-Id: I168fc1284d6fd4403999946609725414cf254df0
2011-01-19 13:02:24 -08:00
Eric Laurent
733a42b24b Issue 3315999: catch ToneGenerator exceptions.
When the AudioFlinger runs out of available AudioTracks (max 32),
the ToneGenerator constructor throws a RuntimeException. Although this
denotes an abnormal situation, VolumePanel should catch this exception.

Change-Id: Ida1312fe4857e99a0ef38b4013cb03e819405689
2011-01-19 12:16:19 -08:00
Romain Guy
2a83f001fd Recreate the EGL surface when ViewRoot's surface changes.
Bug #3306150

Change-Id: Ifbf0ab9deca7a34eff7d844ea7276d12d7284788
2011-01-18 18:28:21 -08:00
Romain Guy
064f6ad392 Merge "Recreate the EGL surface when ViewRoot's surface changes. Bug #3306150" into honeycomb 2011-01-18 18:26:22 -08:00
Dianne Hackborn
661b6cfb2b Merge "Okay, new plan for dialogs." into honeycomb 2011-01-18 17:48:22 -08:00
Dianne Hackborn
ef57575887 Okay, new plan for dialogs.
Don't dismiss by default when tapping outside, even for AlertDialog.

If AlertDialog doesn't have any buttons, tapping outside will dismiss it.

Applications can make their own dialogs (or activities looking like
dialogs) can use the existing and new APIs to control this behavior
themselves so that it does the right thing.

Change-Id: I02bfb9161e169de0033200211b3a7ec80080bd83
2011-01-18 17:35:17 -08:00
Christopher Tate
17ed60c3d2 API CHANGE: add a no-View ctor for DragShadowBuilder
Cf conversation with the API council.  Also expand the javadoc
a bit.

Change-Id: I9d4edb1042e00492b3db5c6bb7c7d9648581efad
2011-01-18 16:07:06 -08:00
Dianne Hackborn
36c84403ec Merge "Fix issue #3362484: Can't dismiss activity picker by tapping outside dialog" into honeycomb 2011-01-18 15:31:21 -08:00
Dianne Hackborn
cfaf8878de Fix issue #3362484: Can't dismiss activity picker by tapping outside dialog
Change-Id: Idc2fe5a86c61e8f94fe9d902a0087a05f6f7918e
2011-01-18 15:28:41 -08:00
Romain Guy
807daf7df6 Add support for skew()
Change-Id: Ia3a9a867f74fd78b61f75179e3788fdc2f0cacd0
2011-01-18 11:19:19 -08:00
Romain Guy
d6cd572df8 Improve hardware layers rendering speed when setting a View's alpha.
Change-Id: Ib1275677f531c60d9919978c5538c663fdb823b5
2011-01-17 14:42:41 -08:00
Jeff Brown
5cdf075241 Merge "Support non-rectangular input regions." into honeycomb 2011-01-16 19:22:01 -08:00
Jeff Brown
fbf0977321 Support non-rectangular input regions.
This enables the system bar to carve out a region through which
events will be sent to the IME behind it.

Bug: 3238092
Change-Id: I69b855a8d9b5b3ee525266c0861826e53e5b5028
2011-01-16 18:58:49 -08:00