Merge commit '5126633a3e7d04754792e0702231b1b6be2d1498'
* commit '5126633a3e7d04754792e0702231b1b6be2d1498':
Make sure SurfaceView use a 565 surface when requesting an OPAQUE format.
this is needed for backward compatibility with somewhat buggy applications.
not a big deal, since the app can request another format explicitely.
Change-Id: Ic73f8acedf94ffc0115637efac28fa8ffaa7e5a4
The old dispatch mechanism has been left in place and continues to
be used by default for now. To enable native input dispatch,
edit the ENABLE_NATIVE_DISPATCH constant in WindowManagerPolicy.
Includes part of the new input event NDK API. Some details TBD.
To wire up input dispatch, as the ViewRoot adds a window to the
window session it receives an InputChannel object as an output
argument. The InputChannel encapsulates the file descriptors for a
shared memory region and two pipe end-points. The ViewRoot then
provides the InputChannel to the InputQueue. Behind the
scenes, InputQueue simply attaches handlers to the native PollLoop object
that underlies the MessageQueue. This way MessageQueue doesn't need
to know anything about input dispatch per-se, it just exposes (in native
code) a PollLoop that other components can use to monitor file descriptor
state changes.
There can be zero or more targets for any given input event. Each
input target is specified by its input channel and some parameters
including flags, an X/Y coordinate offset, and the dispatch timeout.
An input target can request either synchronous dispatch (for foreground apps)
or asynchronous dispatch (fire-and-forget for wallpapers and "outside"
targets). Currently, finding the appropriate input targets for an event
requires a call back into the WindowManagerServer from native code.
In the future this will be refactored to avoid most of these callbacks
except as required to handle pending focus transitions.
End-to-end event dispatch mostly works!
To do: event injection, rate limiting, ANRs, testing, optimization, etc.
Change-Id: I8c36b2b9e0a2d27392040ecda0f51b636456de25
The current OpenGL ES 2.0 HardwareRenderer will fail and does not
even attempt to create a Canvas. The next step will be to create
a new native-backed Canvas that relies on OpenGL ES 2.0 and bypasses
the current OpenGL ES 1.0 implementation done in Skia.
Change-Id: I7a8e9f87f316e9137ef191bb5609213e160eaa4c
This change also prevents hardware acceleration when the ViewRoot is in the
system process. This causes problem in EGL intialization because of having
both a SurfaceControl and a Surface. This is not needed and better to leave
it off anyway (so that preview windows don't get unnecessary hw acceleration.)
Change-Id: I1cc55d7fb9a4c1a9c4c59f11f49d3e44de78acef
Also fix up how transactions are handled so that a series of transactions
can correctly be created and committed.
Change-Id: I948ba47d49e9b2246a1958bd9eac9dd36dc5a855
Merge commit '71d73a0dfc110d0bdfc1b7ba385db3e2cfe007e5' into kraken
* commit '71d73a0dfc110d0bdfc1b7ba385db3e2cfe007e5':
Add a method to hide/show a SurfaceView's surface.
This can be used to move a surface offscreen to avoid the cost of compositing it.
This preserves the window and therefore the OpenGL context when used in h/w
accelerated apps.
Change-Id: I280295376601b17989d0fc8a271af66650016f09
1. MotionEvent.recycle() never set mRecycled to true so it couldn't actually
detect doubly-recycled events (unless the TRACK_RECYCLED_LOCATION debuging
flag was enabled).
2. MotionEvent.obtain() did not set mNext to null before returning the event
so it would unnecessarily retain a reference to other events in the
recycled event linked list until recycled again.
Change-Id: I93709c402d260691875f632dfc080a355f85fbb0
Merge commit 'b1110149cccc3b99e59ead34ca46e5ac026f6db9' into kraken
* commit 'b1110149cccc3b99e59ead34ca46e5ac026f6db9':
Use integer for loop counter instead of float
New test in FrameworkTest for the VelocityTracker class
Preserve '+' in phone numbers imported from SIM.
- Implement all of the state saving and restoring machinery. This
caused some flux in the API.
- Add ability to have fragments that are retained across activity
instances.
- Fix some bugs.
Change-Id: Ib6b5b0752d7f8d667cfdcd3e76d127cc9b6d901b
MessageQueue now uses a socket for internal signalling, and is prepared
to also handle any number of event input pipes, once the plumbing is
set up with ViewRoot / Looper to tell it about them as appropriate.
Change-Id: If9eda174a6c26887dc51b12b14b390e724e73ab3
Merge commit 'f78964490d8098387d51444c87bf520ad3f674e2' into kraken
* commit 'f78964490d8098387d51444c87bf520ad3f674e2':
Add new keycodes for the convenience of Japanese IMEs
Call register_localized_collators() with the current locale.
Fixed deserialization problem in DatePicker.
Fix for bug 2467152 files with spaces fail to open.
Set alpha value for newly created dim surface.
telephony: Fix CID when CID is unknown
Merge commit 'fc12b5be2ee49ba2392274d413bd5d759c03c346' into kraken
* commit 'fc12b5be2ee49ba2392274d413bd5d759c03c346':
Fix bug 2594126 Do not crash when ViewRoot is trying to play a UI
Merge commit 'b5fa4dff0c4756ef7868926d4f373645ac0b00a9' into froyo-plus-aosp
* commit 'b5fa4dff0c4756ef7868926d4f373645ac0b00a9':
Fix bug 2594126 Do not crash when ViewRoot is trying to play a UI
sound.
This CL doesn't fix why mView can be null in the first place, but
prevents a crash when mView is null and a UI sound is to be played.
Change-Id: I74ea03567e8e6ebebb6c95c80a473abf11e1163d
Merge commit '3b20c9e80533401d8c423977ef86460d789d4e1e' into kraken
* commit '3b20c9e80533401d8c423977ef86460d789d4e1e':
Fix a minor bug in transitions to left-edge-up landscape.
Merge commit '81ac367be66905a5b53b8e7e98160546802bd98b' into froyo-plus-aosp
* commit '81ac367be66905a5b53b8e7e98160546802bd98b':
Fix a minor bug in transitions to left-edge-up landscape.
Fix MAX_TRANSITION_TILT to remove the entry for upside-down
orientation, which should've been removed when that orientation itself
was removed. This was causing the phone to require further vertical
tilt for transitions to left-edge-up landscape, as compared to
right-edge-up landscape or portait mode.
Bug: 2639310
Change-Id: I8fe2e2baecd6a9c2cecae95d316b0d4e2f8ee251
Raw types replaced. Added a asSubClass method in LayoutInflater which
will (correctly) throw a ClassCastException when the inflated class is
not a View subclass.
Reduced the number of warnings in GenericInflater, but those remaining
are valid. A lot of unsafe class casts happen between parent (P) and
item (T) types that will generate runtime errors if the XML is not valid.
Change-Id: I887fd67769a51ab54c6092e1270dbe3bfb6313ca