diff options
| -rw-r--r-- | services/core/java/com/android/server/wm/AppWindowAnimator.java | 3 | ||||
| -rw-r--r-- | services/core/java/com/android/server/wm/WindowLayersController.java | 17 |
2 files changed, 17 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/wm/AppWindowAnimator.java b/services/core/java/com/android/server/wm/AppWindowAnimator.java index 65e3ec015bc6..f76926113ef8 100644 --- a/services/core/java/com/android/server/wm/AppWindowAnimator.java +++ b/services/core/java/com/android/server/wm/AppWindowAnimator.java @@ -78,6 +78,9 @@ public class AppWindowAnimator { // requires that the duration of the two animations are the same. SurfaceControl thumbnail; int thumbnailTransactionSeq; + // TODO(b/62029108): combine both members into a private one. Create a member function to set + // the thumbnail layer to +1 to the highest layer position and replace all setter instances + // with this function. Remove all unnecessary calls to both variables in other classes. int thumbnailLayer; int thumbnailForceAboveLayer; Animation thumbnailAnimation; diff --git a/services/core/java/com/android/server/wm/WindowLayersController.java b/services/core/java/com/android/server/wm/WindowLayersController.java index 172ec4871b48..01a3143a7b22 100644 --- a/services/core/java/com/android/server/wm/WindowLayersController.java +++ b/services/core/java/com/android/server/wm/WindowLayersController.java @@ -257,9 +257,20 @@ class WindowLayersController { w.mLayer = layer; w.mWinAnimator.mAnimLayer = w.getAnimLayerAdjustment() + w.getSpecialWindowAnimLayerAdjustment(); - if (w.mAppToken != null && w.mAppToken.mAppAnimator.thumbnailForceAboveLayer > 0 - && w.mWinAnimator.mAnimLayer > w.mAppToken.mAppAnimator.thumbnailForceAboveLayer) { - w.mAppToken.mAppAnimator.thumbnailForceAboveLayer = w.mWinAnimator.mAnimLayer; + if (w.mAppToken != null && w.mAppToken.mAppAnimator.thumbnailForceAboveLayer > 0) { + if (w.mWinAnimator.mAnimLayer > w.mAppToken.mAppAnimator.thumbnailForceAboveLayer) { + w.mAppToken.mAppAnimator.thumbnailForceAboveLayer = w.mWinAnimator.mAnimLayer; + } + // TODO(b/62029108): the entire contents of the if statement should call the refactored + // function to set the thumbnail layer for w.AppToken + int highestLayer = w.mAppToken.getHighestAnimLayer(); + if (highestLayer > 0) { + if (w.mAppToken.mAppAnimator.thumbnail != null + && w.mAppToken.mAppAnimator.thumbnailForceAboveLayer != highestLayer) { + w.mAppToken.mAppAnimator.thumbnailForceAboveLayer = highestLayer; + w.mAppToken.mAppAnimator.thumbnail.setLayer(highestLayer + 1); + } + } } } } |