InputMonitor already contains an inputchannel. And inputchannel has a
name. Using the latest codegen tool, toString would already properly
print name because InputChannel has toString. So we don't need to
duplicate this field in InputMonitor.
Bug: 142581626
Test: presubmit
Change-Id: I2915cdc9928ab50991539593e584173e2231c16f
Currently, when recents animation is cancelled from fail safe mechanism,
we put the previous app back to the top. It no longer makes sense when
live tile is in the picture since we don't want the user to see the
previous app being brought up when they turn off and on the phone.
Fixes: 142088072
Test: Turn off and screen and back on. Make sure the user goes back to
home instead of previous app in live tile mode.
Change-Id: I5f16c4c8c77b918dc706c45acadf143edc454de9
This followup CL implements hideInsets() introduced in 1/2.
Bug: 142461756
Bug: 111084606
Test: Manually tested using steps below:
1. Make sure new insets flag is enabled
2. Launch any activity which has child window with NOT_FOCUSABLE,
ALT_FOCUSABLE_IM (e.g. Instagram login screen)
3. Verify IME can be shown and hidden by this window.
Change-Id: I307594014eca8a06397c739ffbc9c12eac160fdc
> Moving the dump to UI thread instead of making every method call individually to UI thread
Test: Launcher view hierarchy dump changed from ~4.5 seconds to 260ms
Change-Id: I3a815755bc63fdd7a729aae46339dd3c55f09cd4
Input method frameworks uses focused window and some tricks
to best guestimate IME target. Though it doesn't always know the
actual IME target. e.g. when window has both NOT_FOCUSABLE,
ALT_FOCUSABLE_IM; IMF thinks focued window is IME target but it isn't
the case.
The right thing to do is to call both show(IME), hide(IME) on IME
target.
Bug: 142461756
Bug: 111084606
Test: Manually tested using steps below:
1. Make sure new insets flag is enabled
2. Launch any activity which has child window with NOT_FOCUSABLE,
ALT_FOCUSABLE_IM (e.g. Instagram login screen)
3. Verify IME can be shown and hidden by this window.
Change-Id: I13f3e04f6f9e1574db9cbb56bdb7817152499d03
The tokens are used to map input data to its window and its channel. Currently InputWindowHandle
tokens uses the client IWindow binder token if the input is associated with a client window or a
newly generated token for temporary surfaces (drag input surface), and windowless surfaces.
These tokens are also used to send policy related events. From the token, it is not obvious what
the token represents for which component. This is a cleanup cl that removes the use of client before adding an explicit token for handling policy related events.
One use case of client token was to support pointer capture but this will move to using
the input channel socket.
Removing the client token allows windows to share its input token with other processes to enable
features like transfer focus without leaking the client token.
Bug: 134365580
Test: go/wm-smoke
Test: atest PointerCaptureTest WindowFocusTests
Change-Id: I49e4c54d977f98e855af9e7ed54443588fdb66c9
If the Gradient angle is negative after
modding by 360, maintain the previous platform
behavior of TOP_BOTTOM oreintation instead of
attempting to wrap it
Test: Added CTS test to verify various negative
angle measurements
Bug: 142111195
Change-Id: Id9c050a9e15717bfaff331c6a37cb34cbce0f060
Removed calls to SurfaceControl methods that use the sGlobalTransaction
and changed to use the Transaction methods. Removed from all classes
except from WindowSurfaceController and deleted all unused methods from
SurfaceControl.
Test: go/wm-smoke
Change-Id: I69228214bdece20ea481c6d8041321f8385a446a
Exempt-From-Owner-Approval: Santos already +1'ed
Add support for ViewRootImpl submitting buffers using
BLAST and put this support behind a disabled-by-default
FLAG.
Bug: 135786080
Change-Id: Ia3f205e34db9f9aa574c9c2e2c499dd3046af220
Events from touchpads may have multiple fingers on them, and the down
event may be active with a finger which coordinate isn't in the view
where the mouse cursor is. Need to make sure it's dispatched to the view
under the mouse cursor.
Bug: 140312476
Test: Two-finger scroll on DualShock 4 always happen in the view under
the cursor, regardless of the order of finger put on the touch pad.
Test: atest FrameworksCoreTests:ViewGroupTest
Change-Id: I679a0a38c830bd418bb412bc6f0d78ba5c93224a
Events from multi-touch touchpads have mouse source and can have
multiple pointers. This is a whole gesture and shouldn't be split into
multiple views.
Bug: 140312476
Test: Attached a touchpad to crosshatch (in my case I used the touch pad
on DualShock 4). Moved the cursor around the edge of two scrollable
views and perform 2-finger scroll. Only one of the view responds to the
scroll. Note it may not be the view under the cursor that responds to
it, which is another bug that needs to be fixed.
Test: Multi-finger touches on touchscreen can still be split.
Change-Id: I1c1250291fa8a88b33f84ca3f80c8b7ac3a61e48
- New class AccessibilityShortcutInfo to describe accessibility
shortcut.
- New Intent category for the target of accessibility shortcut
Bug: 136293963
Test: atest AccessibilityShortcutInfoTest
Change-Id: Id47d397a03f3f710368550e551097214c7839943
1. Implementing the new API for supporting multi-display.
SparseArray<List<AccessibilityWindowInfo>> getWindowsOnAllDisplays()
2. Modifying the documents of this API and its function is to get the window lists of
default display.
List<AccessibilityWindowInfo> getWindows()
Bug: 133279356
Test: a11y CTS & unit tests
Change-Id: Id4e874f43390bdf4196d106a44bbca18bf9fd1d6
Added the WMS.mirrorDisplay API to mirror a specified displayId. The
request requires the ACCESS_SURFACE_FLINGER permission.
Added a sample app to demonstrate the useablility of this API and
different ways the mirror SurfaceControl can be used.
Test: mmma tests/MirrorSurfaceTest and install apk
Bug: 131622422
Change-Id: Ic86115786d37473650b3c7ed39cba0bd4c65b281
Create new API for adding content description into ImageSpan.
Bug: 135497450
Test: Adding CTS tests for new API in linked CL
Change-Id: I6cc58657c1dfbbddf00186aeea1faa0ce876f996
The client may pass null layout params in the case
that nothing has changed. To handle this we should
cache the previous values.
Bug: 134365580
Test: WindowlessWmTests
Change-Id: I3192b84d1550f16dcca108bd9746176a4e5ffe42
Add showInsets(types, fromIme) in IWindow in order for WM to be able to request
show for any of the InsetTypes.
Note: This will be used in followup CLs.
Bug: 139487540
Bug: 118118435
Test: Build passing
Change-Id: Ie988d0a234befa530ca236a3bb32c77d8a4dce21
We add support for resizing, and also add test API so we can get
some end-to-end tests going
Bug: 134365580
Test: WindowlessWmTests
Change-Id: I2f61fa15962523b9736f796c60ce799e4f9c9c18
Previously the IMM was logging error and warning logs every single time
it attempted to use an IMM method and ended up with the fallback IMM.
This is both extremely noisy since the IMM is accessed multiple times
per second in the case of the user typing and a little misleading since
this isn't truly an error condition on its own.
Downgrade the log to a VERBOSE log. This will still show up for apps
when in development but is less likely to wander into bug reports for
released apps.
Bug: 141884160
Fixes: 141884160
Test: Manually. Trigerred error condition and verified log level.
Change-Id: If25ef81c6b74679ebfa725f0c98e0bc633399e70
To test out the new codegen functionality, convert the InputMonitor
class to use the @DataClass annotation.
Test: presubmit
Bug: none
Change-Id: Idcddb410555aba0c45fe4997db8b662548ce1c39