- Load resources from the current user's context to ensure the right
overlays are read
- Create a controller in sysui to dispatch mode change to prevent callers
from calling with the wrong user's context
- Clean up the quickstep contract to prevent launcher from calling methods
using the baked in fw resource ids
Bug: 130185871
Test: Switch to secondary user, ensure the mode is read correctly
Change-Id: I00d9276185777e340b3e758345a00d2e9b3e3e64
Also, make a copy of protected data to prevent accidental changes
from outside callers.
Bug: 130525551
Test: Manual.
Change-Id: I7b6efa32bc6db88b79579effaa7ffe1466a80380
- Ensure not in immersive mode, and also that the notification panel is
not expanded
Bug: 130340004
Bug: 130417141
Test: Manual, ensure back doesn't work when notification panel is down or
app is in immersive mode
Change-Id: I29f5cd80cc89b28802ca8b2c9e2956ae5b3b1151
Callers are supposed to close the hardware buffer themselves. Creating
a utility method around this
Bug: 123874711
Test: No more leak warning on device
Change-Id: I2cf215f0646222f63e564a58edab1ffffa396ff3
The new fully gestural navigation changes how user goes home from an
app as well as the animation of the app transition. The current PiP animation (bounds) is not compatible with the new model because of the direction of movements. Instead of animating bounds, we can fade the PiP window in after app closing animation finishes.
Fixes: 122609330
Test: 1. Open youtube, play a video, tap home to observe the new PiP
animation (demo video attached in the ticket b/122609330) 2. With gestural nav on, observe pip transition when swiping up to home.
atest ActivityManagerPinnedStackTests
atest BoundsAnimationControllerTests
atest RecentsAnimationTestTest
Change-Id: I28eeb1aa99c4fd569845ca7a42561f6b20796f9b
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