SF: Reset RefreshRateConfigs policy when modes change

When the display modes change the old display policy may
no longer be valid, so we need reset it. This CL also adds
a test for the broken scenario.

Bug: 159590486

Test: atest RefreshRateConfigs
Test: manually 0. device boots in 60hz mode
               1. switch to 50hz from app
               2. disconnect display
               3. reconnect display
               4. verify that SF doesn't crash
Change-Id: Ib935fb4ebce241c4771ffef75b102741e51b96c0
diff --git a/services/surfaceflinger/Scheduler/RefreshRateConfigs.cpp b/services/surfaceflinger/Scheduler/RefreshRateConfigs.cpp
index e7a44a7..a03f793 100644
--- a/services/surfaceflinger/Scheduler/RefreshRateConfigs.cpp
+++ b/services/surfaceflinger/Scheduler/RefreshRateConfigs.cpp
@@ -627,6 +627,8 @@
 
     std::vector<const RefreshRate*> sortedModes;
     getSortedRefreshRateListLocked([](const RefreshRate&) { return true; }, &sortedModes);
+    // Reset the policy because the old one may no longer be valid.
+    mDisplayManagerPolicy = {};
     mDisplayManagerPolicy.defaultMode = currentModeId;
     mMinSupportedRefreshRate = sortedModes.front();
     mMaxSupportedRefreshRate = sortedModes.back();