This works around a bug in standalone (e.g. non-Zygote)
runtimes when a device is attached to a host that is running
DDM.
There is a race condition:
When the runtime receives a HELLO from DDM it calls
TextUtils.isEmpty().
Calling any TextUtils methods statically initializes
Layout. Layout has dependencies on other classes, which in
turn have dependencies on native methods that are not always
registered when the call takes place. Registration and DDM
handling are done in separate threads.
This is not a fix, merely a workaround until the race can
be resolved.
Bug: 18081539
Change-Id: If1bd3de6597bc93da381c8f86dacf40156449561
Bug: 17420540
We need to be able to shutdown some of wearable devices programatically.
We should be able to do it by connecting to PowerManagerService directly,
but it would be nice to go through the official interface.
Change-Id: Id0cf3b36c03447356fc60fb90cbb2f4b47d8265e
- Relax internal timeout for JPEG captures in LEGACY mode.
- Make RequestThreadManager.quit() idempotent to avoid queuing
messages on a dead thread's handler.
- Catch RuntimeExceptions from other Camera1 API methods to
allow proper cleanup + release of Camera1 API client.
Bug: 19255187
Change-Id: I6cb08bb6b832b0d0df6ee6e8983c35de2df4a408
There is a bug in <scale>, but this works around it for now. Removes
the previous fix, which broke the initial state due to the level not
propagating when the current drawable was swapped out.
Bug: 19269656
Change-Id: Ibe586ef4ea326a7ce7516ca42a369c5386c24359
FULL and LIMITED is allowed to advertise [0,0], which indicates that the
exposure compensation is not supported.
Bug: 19219128
Change-Id: I6020a771201d754351f76617f68c06363fac78e8
We were using an approximation to determine where to send a pair of down
and up events to click on the view that has accessibility focus. We were
doing reverse computation to figuring out which portion of the view is
not covered by interactive views and get a point in this region. However,
determining whether a view is interactive is not feasible in general since
for example may override onTouchEvent. This results in views not being
activated or which is worse wrong views being activated.
This change swithes to a new approach to activate views in accessibility
mode which is guaranteed to always work except the very rare case of a
view that overrides dispatchTouchEvent (which developers shouldn't be
doing). The new approach is to flag the down and up events pair sent
by the touch explorer as targeting the accessibility focused view. Such
events are dispatched such that views predecessors of the accessibility
focus do not handle them guaranteeing that these events reach the accessibiliy
focused view. Once the accessibiliy focused view gets such an event it clears
the flag and the event is dispatched following the normal event dispatch
semantics.
The new approach is semantically equivalent to requesting the view to perform
a click accessiblitiy action but is more generic as it is not affected by
views not implementing click action support correctly.
bug:18986806
bug:18889611
Change-Id: Id4b7b886c9fd34f7eb11e606636d8e3bab122869
All supported locales use only U+2025 and U+2026 to represent
ellipses, and it will unlikely change in future. Given translated
resources are inconsistent and often use three dots it is safer
to use constants instead of resources.
(cherry-pick of ed0daa93e48d38e54a7ad1c99c461510a4c07599.)
Bug: 18542179
Change-Id: I51a6cb903f62f739fbadd6b78e5765c0028d641a