[ARR] Fix issues with apps that have internal rendering
This CL addresses two issues affecting apps with internal rendering. The root cause is that the value of mDrawnThisFrame is always set to false, preventing the calls to setFrameRate and setFrameRateCategory functions. This behavior results in two issues:
1. Touch boost never gets reset.
2. mSurfaceReplaced is never set to false, causing unnecessary setFrameRateCategory binder calls even when the previous and current frame rate categories are identical.
Solution:
1. When receiving the MSG_TOUCH_BOOST_TIMEOUT message and mDrawnThisFrame is false, call setPreferredFrameRateCategory(FRAME_RATE_CATEGORY_NO_PREFERENCE).
2. Always enforce a timeout to reset mSurfaceReplaced to false.
Bug: 374376214
Flag: EXEMPT bugfix
Test: atest ViewFrameRateTest and Manual test
Change-Id: I2e8c8b1f53e9ad38f4785bef9507b8d173e4f219
2 files changed