- Remove unnecessary @Presubmit annotation
- Fix issue with test activity referencing wrong resources
- Disable protolog requirement for tests when running under studio
(like we do for SysUI studio builds)
- Ensure all tests extend ShellTestCase
Test: Run tests from studio, and also from atest WMShellUnitTests
Bug: 238444377
Change-Id: I60a96dfcbbf119d6736e96193f5a7d41611e2fd1
Turns out class inheritance doesn't work well with annotations, they are not being overriden.
Test: n/a, since it's annotations, but also: atest WMShellFlickerTests:AutoEnterPipOnGoToHomeTest
Bug: 238367575
Bug: 238255886
Change-Id: I337742b75643e633e4bc0e2815da1eab19c4441c
- If a task that should otherwise be organized but does not yet have a
surface when the task organizer is registered, then skip trying to
return that task as we can not leash it. Existing logic will send the
task to the organizer once a surface control is set on it.
- In the entry points to the shell where leashes are given from WM core
(ie. the organizers), ensure that we release them when we are notified
that they are no longer organized
Bug: 235858985
Test: atest ShellTaskOrganizerTests
Test: atest WindowOrganizerTests
Change-Id: I16d29315b615b9756a78310d6a62fb6f21ba1184
Fix: 233174334
Test: atest WMShellUnitTests
Test: manual check the behavior of long press to split
Change-Id: I779569a0781be613e3223cc473705d235cb48363
Effectively removing override, given that it always simply calls super method.
Test: atest WMShellFlickerTests
Bug: 206753786
Change-Id: I5b266b9aa46d3d5464dc8ad3b602b08df4a56799
WM shell may not receive the display added notifications when it
receives tasks appearing, so we need to wait for the display to show up
when it doesn't exist.
It's fairly difficult to test the case in real life, but it's a good
case for a unit test. Therefore this CL also makes WindowDecoration unit
tests friendly.
Bug: 236215336
Test: Caption in shell looks OK.
Test: atest WMShellUnitTests:WindowDecorationTests
Test: atest WMShellUnitTests:PipTaskOrganizerTest
Test: atest WMShellUnitTests:PipAnimationControllerTest
Change-Id: Ife0f85fdbd59b84303fc50f4ec896c53a259cec6
- If a task that should otherwise be organized but does not yet have a
surface when the task organizer is registered, then skip trying to
return that task as we can not leash it. Existing logic will send the
task to the organizer once a surface control is set on it.
- In the entry points to the shell where leashes are given from WM core
(ie. the organizers), ensure that we release them when we are notified
that they are no longer organized
Bug: 235858985
Test: atest ShellTaskOrganizerTests
Test: atest WindowOrganizerTests
Change-Id: I863ab057a4a566060a1efbe8a20f2dd854fa8c74
We use to rely on the onActivityPinned and onActivityUnpinned callbacks
from Window Manager in EdgeBackGestureHandler to determine the current
PiP state and it will always be reset to false when
EdgeBackGestureHandler is being re-created, for instance, as a result of
folded state change.
Deprecated also the Pip#setPinnedStackAnimationListener interface method
since it's not in use and it may cause confusions over
IPip#setPinnedStackAnimationListener.
Bug: 174702196
Bug: 198651351
Test: stash in unfolded state -> fold -> drag to unstash \
stash in folded state -> unfold -> drag to unstash
Test: atest WMShellUnitTests:PipControllerTest
Change-Id: Id874056415011ee8a55dadcd4ec6af6e1b568092
The attached frame is the frame of the parent window that its child
attaches to, as long as the child is not
TYPE_APPLICATION_ATTACHED_DIALOG. It is a factor while computing the
window frame.
Previously, we let the child obtain the attached frame from its parent
view root. However, if the parent and the child are not in the same
process, it can be tricky.
This CL sends the attached frame from the server to the client via
ClientWindowFrames. In this way, the child can compute its window frame
without having to accessing the parent view root.
Bug: 161810301
Bug: 175861127
Test: atest ActivityRecordTests WindowLayoutTests
Change-Id: Ia844a4c927027e305a56114216eaee2bf7933b1f
to BackAnimation.
The original MotionEvent instance may have been recycled by the time BackAnimation processes it, since BackAnimation runs in a different thread. This could cause crashes from both Java side and native side, as described in b/233163975#comment11.
We work around this by passing the numerical values that BackAnimation
need instead of the MotionEvent itself.
Test: Swipe back in various scenarios. Make sure back can be triggered.
Try cancel. Make sure back can be cancelled.
Test: atest BackAnimationControllerTest
Bug: 233163975
Change-Id: I4792debc705536b49d1caafcc43e5466941c1d43
This fix was introduced in ag/16150706 and recently got overridden with
ag/18751998, UnfoldAnimationController#resetTask happens in between
RecentsAnimationController cleanup and PipTaskOrganizer#onTaskAppeared
may cause flicker at the end of auto-enter-pip transition.
Fix it by intentionally ignore resetSurface if the task's pinned.
Bug: 235737615
Test: auto enter pip repeatedly on foldable
Test: atest WMShellUnitTests:UnfoldAnimationControllerTest
Change-Id: I5de034f5c0d3f150dd77aadb97c0d2b3f9c64c15
Add CUJ to enter split screen by dragging app icon from taskbar.
Bug: 231400119
Test: atest EnterSplitScreenByDragFromTaskbar
Change-Id: Ifb675112e761016799a565c90def2961b0a4a401
This fixes an issue in gesture nav, when the swipe would not be properly recognized.
Test: atest WMShellFlickerTests:EnterPipOnUserLeaveHintTest
Bug: 234848637
Change-Id: I011cd3a83531f48939d4ac4d7686e0f142b2766b
Adds real unfold animation for split-screen tasks when
doing the Shell unfold transition.
The approach is similar to full-screen tasks:
we animate the surfaces using shell transition
only when unfolding, when folding we are doing
it in the old way (by directly accessing
the surfaces from TaskOrganizer).
Refactored the previous fullscreen/splitscreen unfold
controllers flow to have one controller where we can
register diferrent 'animators'. This controller listens
to all task events in the shell task organizer.
Bug: 204925795
Test: folding/unfolding, rotating with a split layout
when Shell transitions enabled/disabled,
rotating display when folded/unfolded
Change-Id: Iff608bc8ab2390a57b01de8f07bad681c979be49
Revert "Update TaskListener constructors to match the upstream"
Revert submission 18628270-unfold-shell-p3
Reason for revert: b/235090315
Reverted Changes:
Ibe684471a:Migrate unfold animation to Shell transitions [Par...
I7bd398c96:Update TaskListener constructors to match the upst...
I7bd398c96:Migrate unfold animation to Shell transitions [Par...
Bug: 235090315
Change-Id: I8639d618131c09f7a5f0c776fb02c426b78b1fdd
Add setBackgroundAlpha and use that to change the alpha of the
expanded view background and pointer.
Test: manual - have a bunch of bubbles, expand them, dismiss the
selected one
=> verify that the arrow is visible for the next bubble
- turn on home animation, swipe up to collapse a bubble
=> verify pointer looks fine
Bug: 234739591
Change-Id: If5823840d148e2031312c54eba9c0132b8aa3a4c
There are apps using alias activity name, result to wm-shell not able to
determine whether it's launching the same component or not. Update to
check the component name in the intent that created the task instead to
prevent affected by alias component name.
Fix: 224901460
Fix: 234304765
Fix: 233922245
Fix: 233174334
Fix: 232034346
Test: atest WMShellUnitTests
Test: manual check drag to launch multi-instance or drag to switch
split position with reported apps work
Change-Id: I924120134bb3ce6abe582251e3afdc7a0825a6a5
Because ag/18529596 change the drop position, the test need to modify
the expected position of the app.
Bug: 232878493
Test: atest EnterSplitScreenByDragFromAllApps
Change-Id: Ib4823a899aa42ab2c0b23f9e654cbf13becb02bd
Adds real unfold animation for split-screen tasks when
doing the Shell unfold transition.
The approach is similar to full-screen tasks:
we animate the surfaces using shell transition
only when unfolding, when folding we are doing
it in the old way (by directly accessing
the surfaces from TaskOrganizer).
Refactored the previous fullscreen/splitscreen unfold
controllers flow to have one controller where we can
register diferrent 'animators'. This controller listens
to all task events in the shell task organizer.
Bug: 204925795
Test: folding/unfolding, rotating with a split layout
when Shell transitions enabled/disabled,
rotating display when folded/unfolded
Change-Id: I7bd398c963125ceb7c8f8e3786a274853366feb3
The algorithm computes a new position for PiP based on the registered
keep clear areas within the system. If no occlusion happens the original
position is being returned. Otherwise, the bounds are moved in one of the
available directions so that none of the keep clear areas are occluded
while keeping PiP within the display bounds.
Test: atest PipKeepClearAlgorithmTest
Bug: 183746978
Change-Id: Ic2d11861329a46e2da0448f90283f67f6e7125d7
Add more assertions for layers become visible.
Bug: 232878493
Test: atest EnterSplitScreenByDragFromAllApps
Change-Id: Ida948525b618b800915813cf2927523600e23724
BackNavigationController was still relying on a debug setting. Now the
animation request is handled via a boolean parameter passed by sysui,
which has access to the developer option.
Test: Existing test modified
Bug: 231502692
Change-Id: Icda4692e05396407d961610de0ce709492adadc1
Merged-In: Icda4692e05396407d961610de0ce709492adadc1