Also fixes an infinite recursion when invoking
TestableContext.(un)registerComponentCallbacks().
Test: atest WindowInsetsPolicyTest
Bug: 126511573
Change-Id: I5c9f40054493a83746bce6124d72412e8eb8a0d1
With Life Tiles in QuickSteps (b/111697218), launcher will
“punch a hole” for TaskView & the app window will be transformed
in it & keep the task is running.
To prevent launcher animates on TaskView without the real app surface
during task switching, launcher start RecentsAnimation to monitor
onStackOrderChanged without cancel animation when swiping to recents.
We use this as signal to screenshot the previous app window when next
app transtion start, make leash with screenshot surface to let it below
homeAnimationLayer, so that launcher can still control the leash,
and then callback onAnimationCanceled with screenshot parameter for
launcher to know if need to call IRecentsAnimation#cleanupScreenshot for
clean up screenshot, to make the next app transtion animation can work
smoothly without flickering.
Bug: 122593881
Test: manual
Test: atest RecentsAnimationControllerTest RecentsAnimationTest
Change-Id: I83504d578a17856623a53c04a7d3c54e5bcab5f4
- In order to support swiping between tasks in a stable list, this allows
SystemUI to temporarily freeze the task list ordering until either an
interaction within the current app, or some timeout occurs.
This does not affect the actual task ordering, only the ordering of the
tasks via the call to getRecentTasks() made from SystemUI.
Bug: 111926330
Test: atest WmTests:RecentTasksTest
Change-Id: I9ebda02e4e0d34fd2211cfbbed9f7b0ec35f86cc
This also tells launcher that there is no assistant so it will not
consume input events.
Bug: 112934365
Test: manual
Change-Id: I5690cf2fffe45c955a9f165a0fdeac1db8641601
- The floating restart button will show when an size compatibility
mode activity shown with non-native screen configuration. e.g.
display size changed, move to another display.
- Consolidate onDisplayRemoved into CommandQueue.Callback so the
components which implement CommandQueue.Callbacks don't need to
register display listener individually. The leakage of
AutoHideController when removing display is also fixed by the way.
Bug: 112288258
Test: runtest systemui -c \
com.android.systemui.SizeCompatModeActivityControllerTest
Change-Id: Ib04efe983ae0d8d21b33fb9fd9c60e7f6f0dc92e
In lock task mode only apps from a specific whitelist can be started. To
avoid showing buttons that won't do anything when clicked we remove
smart actions linking to apps that are not whitelisted.
In this change we add several IPC calls during smart suggestions (in
notification) inflation - one in the common code flow, and several
others only for the case where lock task kiosk mode is enabled. This is
OK from a performance perspective because we inflate smart suggestions
on a background thread.
Bug: 117976013
Test: atest InflatedSmartRepliesTest
Test: start lock-task mode with 1. chrome whitelisted -> chrome actions
show up, 2. chrome not whitelisted -> chrome actions don't show up.
Test: ensure smart replies are still enabled in lock task mode.
Change-Id: I664ff2cdcfd1b212744d85d36d7a2b305bf4b3a9
singleTaskInstance displays will only contain one task and any attempt
to launch new task will re-route to the default display. Signal a callback
for listeners to handle the case.
Bug: 123642392
Test: atest ActivityManagerMultiDisplayTests#testSingleTaskInstanceDisplay
Change-Id: I16b98d47a798f920a551942d761f07b1df1defc0
This change dispatches TaskInfo directly for some methods
which currently only pass taskId. This eliminates the need
for second binder call to search for the TaskInfo.
See also: ag/6306456
Bug: 124058588
Bug: 123631242
Test: atest WmTests:TaskStackChangedListenerTest
Change-Id: I2e4c458f2a1ae684ef8d9f6a4ab2fbcfe13570b5
This involves adding the PinnedStackListenerForwarder, so that sysui can have multiple pinned stack listeners listening for updates from the WM. This looked easier and simpler than modifying all the WM code to support multiple listeners. We're also planning to integrate PIP and bubbles at some point, so that they're aware of each other and move together. At that time, we can simply delete the forwarder and use a single listener again, without modifying WM code.
Test: atest SystemUITests
Change-Id: Ie2f9f937fe0a19cac5a1ae83d83698db8d53aba2
This allows us to use platform logic for event deduping and
timestamp extrapolation (eg using velocity tracker on the main tread).
Test: Tested the library with launcher
Change-Id: Ic4544aab975db1447100618ad2cb66b0d6c19134
Test: Tested that compiles and option works in plugin
Change-Id: I4861e09fe4bba6c1a0ec57395939aa293dd95347
(cherry picked from commit 401c20314169cfd2f50c926bdabd78d4c76502d3)
The bitmap.createHardwareBitmap doesn't take a ColorSpace as input, as a result
the returned bitmap is always in SRGB color space. Given that we want to remove
the assumption of SRGB color space, we replace the usage of
createHardwareBitmap with wrapHardwareBuffer which takes an extra argument
ColorSpace. As a result, we will be able to also fix SurfaceControl and various
other places that use screenshot in follow up patches.
BUG: 120904891
Test: CtsUiRenderingTestCases
Change-Id: I57fc0c85d68df43b0e69f9a1ebac00d2ba39554d
Some devices shouldn't render rounded corners because of graphics
limitations.
Bug: 122347746
Test: swipe up on multiple types of devices: walleye, sailfish, blueline
Change-Id: I93fcb4283ed1aa3df5569454483a8867a3bfd06b
Implement controlWindowInsetsAnimation
Based on the leashes we have on the client, and the insets the
client has requested, we are able to move the surfaces around
such that the resulting insets will match what the client
requested.
Bug: 118118435
Change-Id: I0616e53455a6544aaf374c1b0eb10e258aced21d