SurfaceFlinger: clear LayerHistory on touch

Clear LayerHistory and mark all layers as inactive when getting
a touch event to prevent a quick refresh rate bounce as LayerHistory
picks up with the FPS.

Fixes: 134663749
Test: live wallpaper + Open notification shade + wait for 60Hz + Click on "USB debugging connected"
Change-Id: Ifa095fbcdb95ffe413cc77c5e062f1174815158b
diff --git a/services/surfaceflinger/Scheduler/LayerHistory.cpp b/services/surfaceflinger/Scheduler/LayerHistory.cpp
index 1db43a3..e762af3 100644
--- a/services/surfaceflinger/Scheduler/LayerHistory.cpp
+++ b/services/surfaceflinger/Scheduler/LayerHistory.cpp
@@ -173,5 +173,18 @@
     }
 }
 
+void LayerHistory::clearHistory() {
+    std::lock_guard lock(mLock);
+
+    auto it = mActiveLayerInfos.begin();
+    while (it != mActiveLayerInfos.end()) {
+        auto id = it->first;
+        auto layerInfo = it->second;
+        layerInfo->clearHistory();
+        mInactiveLayerInfos.insert({id, layerInfo});
+        it = mActiveLayerInfos.erase(it);
+    }
+}
+
 } // namespace scheduler
 } // namespace android
\ No newline at end of file