DisplayManagerGlobal: suppress redundant AChoreographer_refreshRateCallback calls


With Frame Rate Override enabled, an app could get an
AChoreographer_refreshRateCallback callbacks which seem redundant.
An example would be:
1. Display changed refresh rate to 60Hz - callback
2. App's frame rate override changed to 60Hz - callback

To avoid sending these redundant callbacks, DisplayManagerGlobal caches
the last DisplayInfo that was reported to the app and based on it, it
decides whether to send the event or not.

Bug: 184588343
Bug: 189174620
Test: atest SetFrameRateTest
Test: atest FrameRateOverrideHostTest
Test: atest ChoreographerNativeTest
Change-Id: Ia0278e98d06bc790810c31dcda8244181e8e1d5d
1 file changed