When changing the display (e.g. foldables that fold/unfolds) while the
menu is showing, it seems the SF layers go through some changes that get
the menu in a bad state and no longer renders correctly. Just teardown
and recreate/re-attach the menu instead.
Bug: 218987352
Test: Unfold/fold device while menu is showing, menu still shows up
afterwards
Change-Id: I4255191c3298cf663b6a0428ece6f34fd96ff3a6
To use this new custom close action on Phone
- We expect app providing actions via
PictureInPictureParams.Builder#setActions as they normally do
- We also expect app providing a custom close action via
PictureInPictureParams.Builder#setCloseAction
- The custom close action is used on Phone only if it matches one of the
actions listed in setActions (by comparing the PendingIntent)
SysUI will render the custom close action with a highlighted background
and ensures the PiP dismisses after certain timeout if the app fails to
respond in time.
Video: http://recall/-/aaaaaabFQoRHlzixHdtY/fR0hxeorlYrxXyzfZ02btK
Bug: 223896879
Test: see video
Change-Id: I65c585ae3224061311e476753bc4c72f00c4fa33
In current desgin, the confgis for cutout and rounded corner are based
on the original display size. If the display resolution is overridden,
cutous and rounded corners will be drawn in incorrect places with
incorrect size.
We should load the cutout & rounded corners with the orignal display
size and then scale the results with the display ratio which is
calculated by dividing current size with original size.
Bug: 209592558
Test: manual:
1. Go Settings-> Display-> Screen Resolution
2. Switch between FHD+ and QHD+
3. Check if the cutout and rounded corner looks the same as they
are in the original display size.
Test: manual:
1. adb shell wm size 1080x2340
2. Check if the cutout and rounded corner looks the same as they
are in the original display size.
Test: atest DisplayCutoutTest LocalDisplayAdapterTest
ScreenDecorationsTest RoundedCornerResDelegateTest
Change-Id: Iea42b73c0276b82983c1ddbce9455355afdc164d
Dragging a notification into split screen would fail if bubbles
were expanded while performing this action. I think it makes sense
to collapse the stack if its open when drag and drop for an app
starts.
Bug: 223909931
Test: atest DragAndDropControllerTest
Test: manual - have bubbles expanded
- swipe down the shade, long press on a notification
and drag it
=> bubbles are collapsed and the notif is able to be
put into split screen.
Change-Id: Ib5160b3d772452f1cdd704926887bd38a5fd1ef1
This is a follow-up of ag/17527240 in which we do not cover the case
that a Task in pinned mode is directly removed via Task#moveTaskToBack
Video: http://recall/-/aaaaaabFQoRHlzixHdtY/cMG5Uh1kLC7EyAs2EbDVkM
Bug: 228793904
Test: follow the reproduce step in bug, see video
Test: atest WMShellUnitTests:PipTaskOrganizerTest
Change-Id: Ib7472908a81d56d34216ca272afbd9f1a2668b89
This bug occured when it has multiple visible app targets need to
show. If surface didn't have specific layer, their display order
will be determined by create timing. By such rule, we should create
their animation leash by down to top rather than top to down.
This patch also fix wrong logic to create RecentsAnimationSplitTasks,
we should only do that when split is active.
Fix: 223396876
Fix: 207390696
Test: manual
Test: pass existing tests
Change-Id: I74a33cdc28d370f1db3910ebda8577c72416bc97
When a bubble gets dismissed while the stack is expanded, we should
select the next available bubble. Instead, we are collapsing.
This is because we get an onTaskMovedToFront event for the app
behind bubbles moving to the front, which causes the stack to
collapse. To fix this I add a check to see if the switch animation
is running, and if so we skip the collapse in onTaskMovedToFront.
Bug: 208648025
Test: manual - have multiple bubbles, expand the stack, visit each
bubble
- dismiss each bubble by dragging to dismiss target
=> observe that after dismissing each bubble, the next
bubble is selected (if available)
Change-Id: If82c004ecd1ec8920e934dbae2107b4c37853cb5
When the bubbles are shown vertically on the left side of the screen
and you tapped between them, the view would be misaligned for a bit
during the animation.
This was happening because the padding being applied to the view
didn't account for the space the pointer triangle took up.
The fix is to add the size of the pointer to the padding when
showing vertically on the left side.
Bug: 196444014
Test: manual - expand a bubble on a large screen on the left side
- tap between the bubble and the overflow or other
bubbles
=> observe that the expanded view doesn't jump a bit to
the left
manual - test switching between bubbles on phone, phone
landscape (left & right sides), and tablet on the
right side
=> observe that the animation looks correct
Change-Id: Icb3cd87843504ab31da8005fb72f36daae387d39
Bug: 228533817
Test: Try swipe back to home on Flag Flipper (with Predictive Back
Animation toggle enabled in Flipper) and make sure animation looks good.
Try in both landscape and portrait mode.
Change-Id: If2165827a0f66f8e0bd8f78483577c3ac4c9f213
Use a fixed icon size and fit to centor scale for split decor to avoid
unexpected icon size. Also sync the same icon size to drop zone area.
Bug: 228928242
Test: Manual resize the split and check the icon size.
Manual drag to split and check the icon size.
Change-Id: Idaf523810e3913a22787925817b6013464818147
If user start task and intent with same app but not support
multi-instance, in this case it will only start one side split and
the other one show as black screen.
We should avoid such status and do some error handling, this patch
prevent it by exiting split immediately and expand the that app as
full screen.
Fix: 224888879
Test: manual
Test: pass existing tests
Change-Id: I827debb01f3a2fc8f04f4b1931084f2fa475f8a6
The code was passing the index of the bubble rather than the
actual position onscreen so the resulting translation was incorrect.
Test: manual - be on a large screen / tablet
- expand bubbles, select the overflow
- rotate the device
=> observe that the overflow container remains with
the rest of the bubbles and doesn't jump around
Bug: 223911182
Change-Id: I95403f57e40e8c428ea9694e6fb93b0b0478c530
Add a condition in ActivityRecord#isSnapshotCompatible that skip to
add task snapshot window if the current task bounds does not match the
tasksnapshot size.
Bug: 216079545
Test: atest ActivityRecordTests
Test: start activity from recents after modify wm size, verify there
should use splash screen starting window.
Change-Id: I62e390e74d8de42211499c47fc282bacdd95aa6f
The code assumes that the views are in LTR order, so when the device
is in RTL, the wrong view gets highlighted. The code thinks dropzone1
is on the left side, but in RTL it'd be on the right.
Fix for this is to just always layout the views in LTR.
Bug: 228530510
Test: manual - put the device in RTL and drag an app into split
=> verify that the highlight is on the correct side
Change-Id: I05e548143ed7042c4151252b46fa1b96d8ac7409
We used to use the embedded matrix to correct the node bounds.
It is not necessary anymore because we now use the transform from
InputWindowHandle to comput the node bounds.
Test: manual test the pip menu buttons when talkback is enabled.
Bug: 200797785
Change-Id: Ie3be64b48735577139e66d34f0db367e16c26b88
The attachInfo from ViewRootImpl is not reliable
for DisplayArea manipulation or windowless window.
To fix this problem, we use the transform matrix of
InputWindowHandle, which could transform the bounds
from window coorindate to screen coordinate. We also
transfrom the bounds to logical display coordinates
with the associated display matrix.
Besides, we also record the magnification spec of the window,
which could get the bounds before magnification. We use
this value to decide the property 'visibleToUser'.
Bug: 200797785
Test: atest android.accessibilityservice.cts WindowInfoTest
atest com.android.server.accessibility
Change-Id: I0917b04fe8b027fb2bd932a6f0604ba1449ebc66