This is a step to let the client layout its window locally. The ultimate
goal is to reduce the jank while laying out the window.
With the new AIDL methods, we can divide IWindowSession.relayout into:
- IWindowSession#updateVisibility (synchronized binder call)
- To get or update the surface
- To fetch the latest factors about window-layout
- Only called when the view visibility is changed
- WindowLayout#computeFrames (local function call)
- To compute the window frames
- IWindowSession#updateLayout (one way binder call)
- To report the result of layout to the server
In this way, if the view visibility is not changed, the UI thread of
the client won't be blocked by the binder call during relayout.
The local layout project won't be done in a single CL. In order not to
break the existing logic, this CL introduces a flag: LOCAL_LAYOUT. The
flag will be enabled when the logic of local layout is ready.
Bug: 161810301
Bug: 175861051
Test: presubmit (no behavior change)
Change-Id: Ic4b2fc78a318f3a68e1ef8a35d8f3ab705856702
Taskbar is also considered as a navigation bar. While its visibility is
changed, View#dispatchSystemUiVisibilityChanged should be called.
Bug: 225765490
Test: atest WindowInsetsControllerTests
Change-Id: Ie9624211aa6077085966d588c28601000c68a4f2
- Expose api via TestApi
- Add ASSOCIATE_INPUT_DEVICE_TO_DISPLAY permission to Shell
- Add port for uinput command
Bug: 215631144
Test: atest CtsInputTestCases
Ignore-AOSP-First: Permission that should be kept internal until T releases
Change-Id: I55f2141aabceb71475f5e7f7d590b2f95e05c5aa
Since the new split-screen doesn't need the fullscreen backdrop frame.
The backdrop frame will always be the window frame. The server doesn't
need to send the backdrop frame to the client. The client just needs to
offset the backdrop frame to (0, 0).
This CL also moves the logic of calling onWindowSizeIsChanging to the
handler thread because it reads some fields which should only be
accessed on the handler thread. Otherwise, there might be race
conditions.
Bug: 161810301
Test: 1. Perform drag-resize and drag-move on a freeform app, and see if
the layout is expected.
2. Move the divider in the split-screen mode, and see if there is
any abnormal.
Change-Id: Ie0058db0447260dd0561634179fc7721d965a9e2
The goal of this CL is to remove RELAYOUT_RES_DRAG_RESIZING_DOCKED and
RELAYOUT_RES_DRAG_RESIZING_FREEFORM, which is a step to make relayout an
oneway binder call.
When the resize mode is changed at the server side, the server will send
the new mode to the client via IWindow#resized, so the client doesn't
need to obtain the resize mode from the flags returned from relayout.
Bug: 161810301
Test: Perform drag-resize and drag-move on a freeform task and see if
there is any unexpected behavior.
Change-Id: I450abc113932b6c1dc0ce0e2b76bebdf85a60777
This will be used by clients such as Gboard to ensure they are
responding to translation events for the correct activity. Ideally we
would include the activity token, in case there are multiple activities
being translated in an app, but that isn't supported right now and it
requires changes to EditorInfo (in Input Method Framework) to get the
activity token.
Also fixed an issue where the callback methods are invoked twice when
the IME itself is the translated app is registering a callback for
itself. Note: This happens in UiTranslationManagerTest where the test
activity and IME have the same uid, but shouldn't happen outside of
tests.
Bug: 223979041
Test: atest CtsTranslationTestCases
Change-Id: Id99f501b065b92fe3358c2ae525175ad3ea4b119