Skip to content
Commit f5b13525 authored by Ming-Shin Lu's avatar Ming-Shin Lu
Browse files

Fix a redundant assignRelativeLayerForIme case

Somehow in FlickerTest#CloseAppBackButtonTest
with enabling shell-transition flag will see a weird case is that first
launcher be set relativeZ to above IME container during closing the IME
actiivty, which is understandable since home activity is not IME target
during transient launch,

but soonly in assignRelativeLayerForIme will
set IME container's relativeZ to be above launcher after recents
animation finish.

This action will confuse SurfaceFlinger side while invoking
Layer::isHiddenByPolicy() to traverse all layers using relativeZ and
cause stack-overflow due to circulated relativeZ relationship in between
launcher and IME container.

As we don't need to set relative layer if the IME target in non-multi-window
mode is the activity main window since updateImeParent will ensure the IME
surface be attached on the fullscreen activity.

Add a check in assignRelativeLayerForIme to not set RelativeZ if
the IME target is the full screen activity, to break out circulated
RelativeZ in between ImeContainer & Launcher window layer.

Fix: 219774897
Test: atest ZOrderingTest
Test: atest FlickerTests#CloseAppBackButtonTest --iterations 20

Change-Id: I5abff1980328dc47ee193429a76a5d39a8625899
parent 038fd80c
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment