Bug #3081600
The OpenGL renderer in libhwui uses a single EGL context per process and
thus create it with an RGBA 8888 EGL configuration. To ensure that all
windows are compatible with this configuration, this change modifies
the window manager and SurfaceFlinger.
The window manager now checks the window's flags and if the window is
hardware accelerated, it forces the window's pixel format to be
translucent when creating the surface. The window itself is still
marked as opaque if we know that the window will be opaque on screen.
This keeps existing optimizations in place.
Similarly in SurfaceFlinger, a translucent Surface can now be created
with the Surface.OPAQUE flag, indicating SurfaceFlinger that the surface
does not require blending, despite its RGBA 8888 configuration.
Change-Id: Ic747b6b12564ba064412d842117880fcc199eb7c
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.
Cherry pick of b931a1b4 from gingerbread into master.
Change-Id: I700a5f07b8b227878cea9437a289a45a245c0424
Merge commit '41aabeb51305d19747687f246080f44fc2a74435'
* commit '41aabeb51305d19747687f246080f44fc2a74435':
Added more robust tracking and cancelation of events.
Merge commit '1e6a3a53fc4d56e3a0f86c8721dedfd46e738a32' into gingerbread-plus-aosp
* commit '1e6a3a53fc4d56e3a0f86c8721dedfd46e738a32':
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
Merge commit 'd00b4386aed2ef58077490ca7de7d93b98ed51fb' into gingerbread-plus-aosp
* commit 'd00b4386aed2ef58077490ca7de7d93b98ed51fb':
Clarify some comments on individual key codes.
The new animation package's reliance on the old Interpolator interface (in
android.view.animation) was an eyesore. Adding TimeInterpolator, and having the
old Interpolator interface extend it, allows the new Animator classes to break
the tie to the older animation package completely. However, developers can still
use the older Interpolator-based classes, such as AccelerateInterpolator,
because they all implicitly extend the new TimeInterpolator class.
Change-Id: I41132fa56167ba564f4839113289114d0ea31a92
* Make View.onDragEvent() public instead of protected.
* No longer @hide View.startDrag()
* Properly manage the boundaries of DRAG_STARTED / DRAG_ENDED notifications
to windows (and as a result don't send bogus empty DRAG_STARTED events or
double-recycle pooled DragEvents)
Change-Id: Ib75f5c1417640c82a5b043c555e02d6e6f4b4d9c
- Debug.countInstancesOfClass is just a wrapper on
dalvik.system.VMDebug.countInstancesOfClass to avoid code from
depending on the dalvik classes directly
- Existing usages of VMDebug.countInstancesOfClass in ActivityThread
and ViewDebug are converted to the new Debug.countInstancesOfClass
- Existing use of OpenSSLSocketImpl.instanceCount, which is being
removed, is converted to Debug.countInstancesOfClass(OpenSSLSocketImpl.class)
Bug: 3015791
Change-Id: Iefa781292d5b82a63bad7254c913a09deb3b7888
Merge commit 'a2a0a98ac7ce53f282a9a4caac9d382a0eb01ef9' into gingerbread-plus-aosp
* commit 'a2a0a98ac7ce53f282a9a4caac9d382a0eb01ef9':
Fix NPE if there is no accelerometer.
Merge commit '59c4cb9e8fee03f770aa0fa1a2f0ec84ffb945b8' into gingerbread-plus-aosp
* commit '59c4cb9e8fee03f770aa0fa1a2f0ec84ffb945b8':
DO NOT MERGE Fix bug 3001751 and bug 3001584 - Gingerbread API review for over-scroll
Merge commit 'ef11530874f86570aa04a10c16a416b274b3fdf5' into gingerbread-plus-aosp
* commit 'ef11530874f86570aa04a10c16a416b274b3fdf5':
fix build. SurfaceView.setFrame needed to be hidden
Thumbnail measurement & drawing has been moved out into a delegate
class called View.DragThumbnailBuilder. This consolidates the
thumbnail-related code as well as ensuring that the drag initiator
does not have to know a priori where to place the thumbnail relative
to the touch point *before* the thumbnail measurement step, as was
previously the case.
startDrag() no longer needs to be told where the current touch point
is at the time the drag is launched.
Drag events are now dispatched only to VISIBLE views.
Dispatch shouldn't double-recycle events any more when the target
window is local to the system process.
Change-Id: I49419103765a0cad2e18ddfcdd6dacb94daf1ff1
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
Merge commit '458fc5f52e25d7a8b4e482010711aed66f0b4999' into gingerbread-plus-aosp
* commit '458fc5f52e25d7a8b4e482010711aed66f0b4999':
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
Merge commit '57fa3e8b4c94125ddb5be015dd7fbde4a458894f'
* commit '57fa3e8b4c94125ddb5be015dd7fbde4a458894f':
Support haptic feedback for virtual keys defined in key layout.