Place window at top when adding by base layer

When addAppWindowToListLocked defaults to adding based on mBaseLayer
it went from the lowest window to the highest window looking for a
window whose base layer was larger and dropping the new window below
that window.

If the Home activity is the InputMethodTarget then when the home
ActivityStack moves to the back the InputMethod will follow. This
puts the InputMethod, with it's high base layer value below most
activities. If a new activity window is added using the mBaseLayer
rule above it was placed at the bottom of the window list below the
InputMethod window. Being at the bottom it never received focus and
input to the activity timed out causing ANR.

This change starts the mBaseLayer search at the top window and works
its way down looking for the first window whose mBaseLayer is less
than or equal to the new window's mBaseLayer and inserting the new
window above that window. This causes it to be placed at the top of
all activities even if the InputMethod is near the bottom.

Fixes bug 17721767.

Change-Id: I037064de7604b670841e985479eb5857b47af1d7
1 file changed