diff options
author | Adrian Salido <salidoa@google.com> | 2019-09-03 14:41:19 -0700 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2019-09-03 14:41:19 -0700 |
commit | bd1285cfc9ae0f4f7d356607180ec03bd299c554 (patch) | |
tree | c2b7a88af9f4f965fd4466922782630552ae56b1 | |
parent | 997a9135c10fc141310650f38928048438515070 (diff) | |
parent | ab6ef6c8871506317dc7ada75707c19963daabe4 (diff) | |
download | native-bd1285cfc9ae0f4f7d356607180ec03bd299c554.tar.gz |
SurfaceFlinger: send config event changed on allowed modes change
am: ab6ef6c887
Change-Id: Ia8460b87510608cc00d37420d55fb19c1d109764
-rw-r--r-- | services/surfaceflinger/SurfaceFlinger.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp index b31bc3813a..ab22cd9016 100644 --- a/services/surfaceflinger/SurfaceFlinger.cpp +++ b/services/surfaceflinger/SurfaceFlinger.cpp @@ -6175,8 +6175,20 @@ void SurfaceFlinger::setAllowedDisplayConfigsInternal(const sp<DisplayDevice>& d return; } + const auto allowedDisplayConfigs = DisplayConfigs(allowedConfigs.begin(), + allowedConfigs.end()); + if (allowedDisplayConfigs == mAllowedDisplayConfigs) { + return; + } + ALOGV("Updating allowed configs"); - mAllowedDisplayConfigs = DisplayConfigs(allowedConfigs.begin(), allowedConfigs.end()); + mAllowedDisplayConfigs = std::move(allowedDisplayConfigs); + + // TODO(b/140204874): This hack triggers a notification that something has changed, so + // that listeners that care about a change in allowed configs can get the notification. + // Giving current ActiveConfig so that most other listeners would just drop the event + mScheduler->onConfigChanged(mAppConnectionHandle, display->getId()->value, + display->getActiveConfig()); // Set the highest allowed config by iterating backwards on available refresh rates const auto& refreshRates = mRefreshRateConfigs.getRefreshRates(); |