diff options
| author | 2017-05-24 23:48:45 +0000 | |
|---|---|---|
| committer | 2017-05-24 23:48:45 +0000 | |
| commit | 018ee76ef910e9ad8869d8ebb41a6688f9eb4dbd (patch) | |
| tree | 7ae214b631a5164864bf1cab6b6307149bc54f1a | |
| parent | bfea5cdb78c09e4d5f9a55d20e462536631e5e9a (diff) | |
| parent | 052ff89f65b667041f527f53d8e2509c5c68928b (diff) | |
Merge "Update the app window's thumbnail layer after starting window is removed" into oc-dev
am: 052ff89f65
Change-Id: I7a622e8e4fee766619828831315d11db1ace6ec9
| -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); + } + } } } } |