c7746aa3deb9deffcab5a50b80ffec4a08740982
Previously, leashes would be only released by GC in some cases, but the
timing could be late. This CL proactively release them as long as they
are not needed. The cases were:
1. The leashes in DisplayImeController. It didn't release leashes while
receiving a new one.
2. The leashes returned from addWindow/relayoutWindow. The leashes would
be copied to prevent others from releasing them before writeToParcel.
The copied leashes could be redundant after writeToParcel.
3. The leashes held by the client whose window is removed. If a window
is removed, the server won't invoke mClient.insetsControlChanged, so
the client would never get notified about losing control to release
the leashes. This could happen if the window doesn't have an exiting
animation.
Fix: 175851610
Test: Steps in the bug.
Test: Show and dismiss a dialog which doesn't have FLAG_ALT_FOCUSABLE_IM
or any window animation. Repeat this thousands of times. And see
if there are many insets leashes as offscreen layers in `dumpsys
SurfaceFlinger`
Change-Id: I5eb774ac071154a8d7205dbd1ab4a5f8eca215c3
Merge "[LSC] Add LOCAL_LICENSE_KINDS to frameworks/base" am:
7226ad3729 am: a087245e03 am: 3dd40d172b
Merge "[LSC] Add LOCAL_LICENSE_KINDS to frameworks/base" am:
7226ad3729 am: a087245e03 am: 3dd40d172b
Merge "[LSC] Add LOCAL_LICENSE_KINDS to frameworks/base" am:
7226ad3729 am: a087245e03 am: 3dd40d172b
…
Merge "Apply the same filtering for docstubs and jarstubs" am:
46dff8e09f am: 8f1928f4ca am: 9e8186aaaf
…
Merge "Move hiddenapi sort preupload tools to tools/platform-compat" am:
b82853357b am: 89aedd6cb8 am: af77c134d9
Description
No description provided
Languages
Java
73.7%
Kotlin
14%
PowerBuilder
5.8%
C++
5.2%
AIDL
1%