The screenshot animation must know whether the screenshot contains HDR
layers so that it can correctly inform SurfaceFlinger whether its layer
can be dimmed.
This is due to the interplay of the following:
1. Devices are now able to configure DisplayManager to send
significantly lower SDR white points relative to display brightness
to SurfaceFlinger when HDR is simultaneously on-screen.
2. AIDL composer is required to support per-layer dimming, so that SDR
layers may be dimmed to preserve the relative luminance of HDR video
content.
3. Because the screenshot does not contain an HDR transfer function,
SurfaceFlinger will treat the layer as SDR, and attempt to dim it.
4. Screen rotations containing HDR layers must request SurfaceFlinger to
present the rotated screenshot at display brightness, to override
(3) above. Otherwise, HDR content captured in the screenshot will
suddenly dim during the rotation animation.
5. Also due to (3), DisplayManager no longer thinks that there is HDR
content on screen, so a prior patch treated layers that requested to
to be dimmed to be reported as HDR
(I1d1b0dcaf230300ca34b84ea407d0817feb2c664). Otherwise, the display
brightness will decrease during the animation and ramp back up
afterwards.
6. But because of (5), screenshots that only contained SDR layers were
incorrectly treated as HDR, which caused the display brightness to
ramp up during the animation.
This patch fixes (6) by allowing for the screenshot animation to learn
whether the screenshot contains HDR layers, and request dimming
capabilities accordingly.
Bug: 230068567
Test: screen rotation
Change-Id: I6bbb2433f976e368bfe2c04e084e110cfb551c15
Remove app-pair flicker tests from presubmit and mark them with @Ignore
since app-pair is not currently used but kept in codebase for backup.
Fix: 223076688
Fix: 226869067
Fix: 214190843
Fix: 200778092
Fix: 200777653
Test: atest WMShellFlickerTests
Change-Id: I328d87f87bf9c5f01d86474b850d7d3056aa3ed9
Wrong container size causes some icon to be cropped. Set the icon size specified by spec as the container size to correct it.
Bug: 228928242
Bug: 229954549
Test: Manual resize the split and check the icon on both phone and large
screen device.
Manual drag to split and check the icon on both phone and large
screen device.
Change-Id: I556f2c1a44852439242a16a6216121036b8aed5e
Revert "Use new onStartSplitLegacy when starting split from overview"
Revert submission 17779173-startSplitLegacy
Reason for revert: Broken build: b/230129218
Reverted Changes:
I01590e53c:Remove check for preventing re-parenting non-split...
I696749f76:Use new onStartSplitLegacy when starting split fro...
Change-Id: I754bc308f37eea2fc50eda2b9df068adf711a268
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
When a task no longer supports multi-window, we should dismiss split
to the task so users can continue interacting with the task to prevent
bad UX. We should exit split and extand the side
NoLongerSupportMultiWindow let user could interact continuously.
Fix: 221255438
Test: manual
Test: pass existing tests
Change-Id: Iae61d821028755dcca96edb904912495b268bf8c
Merged-In: Iae61d821028755dcca96edb904912495b268bf8c
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