The LayoutParams members, systemUiVisibility and
subtreeSystemUiVisibility are derived values rather than app-generated
values. When copying LayoutParams members make sure these values are
not overwritten.
Overwriting them was causing the STATUS_BAR_DISABLE_XXX flags to be
overwritten exposing elements that should have remained hidden.
Fixes bug b6374541.
Change-Id: Iaae4b4167e1b148bbdba4d05f473844f7fa3bf8d
When attached to an HDMI touch screen, the input system needs
to know the size and rotation of the external display independent
of the internal display. The size was already being reported
separately but not the rotation. The inconsistency can cause problems
if the internal display's natural rotation is portrait but
the external display's natural rotation is landscape.
Change-Id: Id344f04c1ba032625f6265766be66f9ddaa2cc0b
1. Virtual nodes should be made important since the implementer of
the tree represented by the nodes decides which node to report.
In the case with native widgets we decide in the framework but
in the case of the node provider, the implementer of the latter
makes the call. Hence, if a node in not important the provider
should not report it in the first place. The issue this patch
solves is to allow events from virtual nodes to be propagated
to the accessibility services.
bug:6432588
Change-Id: Ie01f84e9e0ef2280da934b98283962a5db38abc2
A bug in the invalidation logic meant that changes to a view
would not cause parents in the view hiearchy that were set to have
a layer (e.g., View.LAYER_TYPE_HARDWARE) to get invalidated properly.
So even though the child view was all set to recreate its display list
according to the property change, the layer in the tree above it would stay
as-is, meaning that the change would not show up on the screen.
Issue #5887530 DropTarget text does not change color with the icon
Change-Id: Ie6eac4f406d172cb437822d9fe76340ab2afaf1c
The window manager policy made some incorrect assumptions about the
meaning of the Configuration.keyboard field. We need to be more
careful about distinguishing between built-in and external keyboards.
Most of this change is to move the determination of the parts of
the Configuration related to input devices into the WindowManagerService
leveraging new features of the InputManagerService to good effect.
Then we plumb through the flag that indicates whether a device
is internal or external so that we can be more particular about
how the lid switch effects changes to the Configuration.
Bug: 6424373
Change-Id: I36a1c22ade35e578955465a25940a33f227b9763
1. The new actions were not added to this helper method so it was
throwing an InvalidArgumentException.
bug:6421059
Change-Id: I132348a50bb900ee19b95cc92c26ce47609ccb1c
1. Removed a change in the input focus behavior I forgot
to take out when submitted the main accessibility focus
patch. Ugh..
bug:6320098
Change-Id: Id7942e8aac64ba4bf6df7e19f733fa70b368d1bb
This change makes TextureView skip calling the onSurfaceTextureAvailable
callback when setSurfaceTexture is used to change the TextureView's
SurfaceTexture.
Change-Id: Ie08f72f157c3bfce3215076b21994026ef66d88d
1. Now we will enable the accessibility focus only if Explore by
Touch is enabled. Enabling this feature allows a blind user to
touch the screen and set the accessibility focus at this
location as well as get spoken feedback. Also an accessibility
service can move the accessibility as a result of user gestures
detected only if Explore by Touch is enabled. Since we will
handle some gestures by default if not accessibility service
does so to provide reasonable built-in navigation of the UI
by "objects" we need the accessibility focus functionality.
bug:6383361
Change-Id: I13ce6072a90f5838c7656379788144c99a772bf0
This will be used to determine which parts of a window a completely
hidden by system UI elements (status bar, nav bar, system bar) so
that they can be clipped out from rendering.
Change-Id: I2c6c6ac67dbdfeed82d2c089ef806fb483165bd9
1. The system does not allow performing an accessibility action
on an accessibility node info unless it explicitly states it
supports that action. Adding the new accessibility actions
to the info emitted by a view.
bug:6407647
Change-Id: I8dad1dc60ec68b4da5ed2349a1366a88820175a1
1. There was a double call to recycle of a pooled instance
which was causing an exception. Removed an unnecessary call.
bug:6408689
Change-Id: Ic74b743c6be28ca95ab84b15f28edb5bc95f0a88
1. Added a lacking null check for the accessibility node
info returned by an accessibility node provider. If
the provider implementation is not correct this may
happen.
2. Added clearing of the current accessibility focused
node when the window focus changes. Now it is cleared
in every case and if it happens that accessibility is
enabled when the window gets focus, the accessibility
focus will be properly set.
bug:6381296
Change-Id: Ieea1b07762745e6d932fc4ed4febfe77760b25b7
1. Make the feature opt-in (ViewGroup::layoutMode defaults to CLIP_BOUNDS) without inheritance.
2. Rename COMPONENT_BOUNDS to CLIP_BOUNDS.
3. Rename LAYOUT_BOUNDS to OPTICAL_BOUNDS.
4. Complete GridLayout implementation.
5. Change the default_gap between components to 8dp, to align with the Style Guide.
Change-Id: I8d40dfc5f4ca469f6424eb3ff60d07bec56e3a9f
Match behavior of removeViewLocked(), where InputMethodManager clears
any strong references to Views, and also clear mCurRootView. Without
this, IMM can leak a DecorView instance after the user has left the
application.
Bug: 6413553
Change-Id: Iad09cf5dbb7f6f156fd39ed243431432e00f8945
On some hardware allocating a new graphics buffer is quite
expensive, which blocks updates to the UI. This can cause
glitches when performing window animations.
To reduce these glitches, the view hierarchy will now only
allow itself to be drawn once if its window is being shown
while the window manager is animating, not resuming draws
until it is told that the animation is done.
Change-Id: Ie15192f6fddbd0931b022a72c76ddd55ca266d84
Calling doConsumeBatchedInput() from doTraversals() can result
in redundant attempts to consume batched input. Instead of making
this call directly, just schedule consume batched input at the
same time as traversals are scheduled. This should have the same
overall effect.
Bug: 6375101
Change-Id: Ie5799e6a68fedbd1978cca6d03852d9a7f1b1f64
Instead of using the current uptime millis, which can exhibit
substantial jitter depending on when the code runs, use the
current frame's vsync time when performing animations. The frame
time provides a more consistent pulse.
Bug: 6375101
Change-Id: Icf307cd8524246607db7496c6fef9a5eeb7c0439