From 06bab93a1ab636f15b2911e6b8aac4166da2bf6c Mon Sep 17 00:00:00 2001 From: Robert Horvath Date: Fri, 25 Mar 2022 18:07:44 +0100 Subject: [PATCH] Change PiP stash scoring to distance moved When there are multiple possible stashing positions for a PiP, before we chose the one that displaces the PiP by the least area (dx * height + dy * width). With eg. very tall expanded PiPs, this can lead a large dy to be preferred over a small dx because of the big height multiplier, causing the PiP to move a 'greater distance'. This change makes the stashing position with the least `dx + dy` preferred. Bug: 226579596 Test: manual Change-Id: I29f74a2bec670c3a3219c6d50bf1102a41d42b6b --- .../src/com/android/wm/shell/pip/tv/TvPipKeepClearAlgorithm.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/tv/TvPipKeepClearAlgorithm.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/tv/TvPipKeepClearAlgorithm.kt index e7eb8364466fe..8fe584d292b79 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/tv/TvPipKeepClearAlgorithm.kt +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/tv/TvPipKeepClearAlgorithm.kt @@ -399,7 +399,7 @@ class TvPipKeepClearAlgorithm(private val clock: () -> Long) { return stashCandidates.minByOrNull { val dx = abs(it.left - bounds.left) val dy = abs(it.top - bounds.top) - dx * bounds.height() + dy * bounds.width() + return@minByOrNull dx + dy }!! }