Floating IME has zero insets and hence it becomes a special case where
Insets type to side map will have to be statically created per
form-factor. Realistically, IME side shouldn't change on any
form-factor.
Fix: 142713934
Test: Manually
1. Enable floating mode in gboard.
2. Tap on editor to verify gboard shows
3. press back to verify gboard hides.
Change-Id: Ie2e2df3fdc5f637cf2efdf14bb5b74f45e3a929f
Wire up the appearance and the transient state of system bars between
WMS and System UI. The derived classes of CommandQueue.Callbacks no
longer listen to setSystemUiVisibility, but listen to showTransient,
abortTransient, and onSystemBarAppearanceChanged instead.
Bug: 118118435
Test: atest InsetsSourceProviderTest InsetsStateControllerTest
InsetsPolicyTest WindowStateTests CommandQueueTest
RegisterStatusBarResultTest InsetsFlagsTest
LightBarControllerTest
Test: build on specific target
Change-Id: Ie35f4b4468bce7ef8c76f091e306610c069fba85
Wire up the appearance and the transient state of system bars between
WMS and System UI. The derived classes of CommandQueue.Callbacks no
longer listen to setSystemUiVisibility, but listen to showTransient,
abortTransient, and onSystemBarAppearanceChanged instead.
Bug: 118118435
Test: atest InsetsSourceProviderTest InsetsStateControllerTest
InsetsPolicyTest WindowStateTests CommandQueueTest
RegisterStatusBarResultTest InsetsFlagsTest
LightBarControllerTest
Change-Id: I1dcaff47ae57ccee91146fdc042cde5e26fc0b3f
After an accessibility service crashes a few times in a short period
of time, framework would add it into a “blacklist”. User wouldn’t be
able to use (re-enable) it. If users express an intent in them working
again, we remove the crashed accessibility service from the blacklist.
Bug: 129689483
Test: a11y CTS & unit tests
Test: manual
1. Install and enable an intentional crashed a11y service.
2. After it's crashed and malfunctioning, re-enable it.
3. Check if it's bound again.
Change-Id: Ia89121f11bc5e05fc829e0e3ecb266150409678b
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