summaryrefslogtreecommitdiff
path: root/tools/aapt2/java/JavaClassGenerator_test.cpp
diff options
context:
space:
mode:
authorRiddle Hsu <riddlehsu@google.com>2020-03-31 21:41:18 +0800
committerRiddle Hsu <riddlehsu@google.com>2020-04-03 14:59:12 +0000
commit839b5f55f9d985b1abfac608df7928d713b51ce5 (patch)
tree0eac1da87cd290b542c472f8dd9e01dc6de294b1 /tools/aapt2/java/JavaClassGenerator_test.cpp
parent07217a0dacee26bee0e8933d81dfee877999ced0 (diff)
Do not remove window if IWindow#resized is failed
Even DeadObjectException is thrown, it is not equivalent to the window is died (transaction failed by small size data will be DeadObjectException). Sometimes it may be caused by the binder buffer of process is temporarily full. If the window is removed directly but the process is still alive, the application client and window manager are out of sync. Especially if the window is important system window, e.g. status bar, notification shade, navigation bar, which might need to reboot to recover. Ideally, if the process is really dead, there should be a binderDied callback that also removes the window. The original purpose of the removal is to avoid display frozen (e.g. rotation) always timeout which is caused by resetting WindowState#mOrientationChanging in each layout traversal. Now the window states are still updated as "resized" has reported, so it won't block unfreeze display. Bug: 151814107 Bug: 147448299 Test: atest WindowStateTests#testReportResizedWithRemoteException Test: Hard code to throw RemoteException for a specified window and rotate the display. Change-Id: Id295456cc99ab9af30aa5fad2eedada6afb862a2
Diffstat (limited to 'tools/aapt2/java/JavaClassGenerator_test.cpp')
0 files changed, 0 insertions, 0 deletions