Calling updateImeParent when the layering target is staled
Fix "Invisible keyboard" issue that when SystemUI dynamically remove
FLAG_ALT_FOCUSABLE_IM window flag to make NotificationShade be IME
focusable window after it focused.
The above use case happens when a direct-reply notification
with shown IME, SystemUI side will let NotificationShade be IME
focusable and then tapping the notification to show another message
activity with IME shown, then if go back to focus on the direct-reply
notification again, there is a timing issue that the new IME layering
target may updated after NotificationShade laid out but the system
keeps using the previous IME layering target as IME surface parent,
this caused the IME surface will behind the IME control target window.
To fix this issue, we should modify DC#updateImeControlTarget
to invoke updateImeParent when the IME layering target is staled.
Fix: 190057993
Test: manual as the steps
1. Make and install EditTextVariations
2. Launch EditTextVariations -> select "Direct Reply" menu item
3. Received HUP direct-reply notification
4 Press "Direct Reply Test" on notification > expect keyboard shown
5. Tap the notification to launch an Editor Activity to show keyboard
6. Again back to direct-reply notification Perform step 4 ~ 6
7. Observe if any "invisible keyboard" issue happened
Change-Id: Id3f5a82089c9d75c8536ada6a128de32ce5299e8
1 file changed