summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author shawnlin <shawnlin@google.com> 2021-04-15 14:36:20 +0800
committer shawnlin <shawnlin@google.com> 2021-04-16 11:44:33 +0800
commita4977ae2bc6fc52dcd6c9d3c6ab6c15b6ff3ae24 (patch)
treec2ec163a97f3af3ab3786668f4489e1e0012e631
parentec28b329409b9fc9d4a0c15f146c10ed98cb8ff1 (diff)
Reset the layer of the nav bar when restoring it back
We set the layer of the nav bar to MAX_VALUE when attaching the nav bar to app during quick-step gesture. Hence, we also need to reset it when restoring it back. Bug: 184914153 Test: atest RecenteAnimationControlerTest Change-Id: I331a2992c1b965503f714683f8be56d473e03434
-rw-r--r--services/core/java/com/android/server/wm/RecentsAnimationController.java2
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/RecentsAnimationControllerTest.java6
2 files changed, 8 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/wm/RecentsAnimationController.java b/services/core/java/com/android/server/wm/RecentsAnimationController.java
index 129a6ce8e1d5..19c2e734a125 100644
--- a/services/core/java/com/android/server/wm/RecentsAnimationController.java
+++ b/services/core/java/com/android/server/wm/RecentsAnimationController.java
@@ -675,6 +675,8 @@ public class RecentsAnimationController implements DeathRecipient {
}
final SurfaceControl.Transaction t = mDisplayContent.getPendingTransaction();
final WindowContainer parent = navToken.getParent();
+ t.setLayer(navToken.getSurfaceControl(), navToken.getLastLayer());
+
if (animate) {
final NavBarFadeAnimationController navBarFadeAnimationController =
mDisplayContent.getDisplayPolicy().getNavBarFadeAnimationController();
diff --git a/services/tests/wmtests/src/com/android/server/wm/RecentsAnimationControllerTest.java b/services/tests/wmtests/src/com/android/server/wm/RecentsAnimationControllerTest.java
index 153fd3a68e82..23d57b89cf1c 100644
--- a/services/tests/wmtests/src/com/android/server/wm/RecentsAnimationControllerTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/RecentsAnimationControllerTest.java
@@ -518,6 +518,7 @@ public class RecentsAnimationControllerTest extends WindowTestsBase {
verify(mController.mStatusBar).setNavigationBarLumaSamplingEnabled(
mDefaultDisplay.mDisplayId, false);
verify(transaction).reparent(navToken.getSurfaceControl(), activity.getSurfaceControl());
+ verify(transaction).setLayer(navToken.getSurfaceControl(), Integer.MAX_VALUE);
final WindowContainer parent = navToken.getParent();
final NavBarFadeAnimationController navBarFadeAnimationController =
@@ -526,6 +527,7 @@ public class RecentsAnimationControllerTest extends WindowTestsBase {
mController.cleanupAnimation(REORDER_MOVE_TO_TOP);
verify(mController.mStatusBar).setNavigationBarLumaSamplingEnabled(
mDefaultDisplay.mDisplayId, true);
+ verify(transaction).setLayer(navToken.getSurfaceControl(), 0);
verify(transaction).reparent(navToken.getSurfaceControl(), parent.getSurfaceControl());
verify(navBarFadeAnimationController).fadeWindowToken(true);
}
@@ -543,6 +545,7 @@ public class RecentsAnimationControllerTest extends WindowTestsBase {
verify(mController.mStatusBar).setNavigationBarLumaSamplingEnabled(
mDefaultDisplay.mDisplayId, false);
verify(transaction).reparent(navToken.getSurfaceControl(), activity.getSurfaceControl());
+ verify(transaction).setLayer(navToken.getSurfaceControl(), Integer.MAX_VALUE);
final WindowContainer parent = navToken.getParent();
final NavBarFadeAnimationController navBarFadeAnimationController =
@@ -551,6 +554,7 @@ public class RecentsAnimationControllerTest extends WindowTestsBase {
mController.cleanupAnimation(REORDER_MOVE_TO_ORIGINAL_POSITION);
verify(mController.mStatusBar).setNavigationBarLumaSamplingEnabled(
mDefaultDisplay.mDisplayId, true);
+ verify(transaction).setLayer(navToken.getSurfaceControl(), 0);
verify(transaction).reparent(navToken.getSurfaceControl(), parent.getSurfaceControl());
verify(navBarFadeAnimationController, never()).fadeWindowToken(anyBoolean());
}
@@ -579,6 +583,7 @@ public class RecentsAnimationControllerTest extends WindowTestsBase {
verify(mController.mStatusBar).setNavigationBarLumaSamplingEnabled(
mDefaultDisplay.mDisplayId, false);
verify(transaction).reparent(navToken.getSurfaceControl(), activity.getSurfaceControl());
+ verify(transaction).setLayer(navToken.getSurfaceControl(), Integer.MAX_VALUE);
final WindowContainer parent = navToken.getParent();
final NavBarFadeAnimationController navBarFadeAnimationController =
@@ -591,6 +596,7 @@ public class RecentsAnimationControllerTest extends WindowTestsBase {
mController.cleanupAnimation(REORDER_MOVE_TO_TOP);
verify(mController.mStatusBar).setNavigationBarLumaSamplingEnabled(
mDefaultDisplay.mDisplayId, true);
+ verify(transaction).setLayer(navToken.getSurfaceControl(), 0);
verify(mockController).setOnShowRunnable(any());
verify(transaction, times(0)).reparent(navToken.getSurfaceControl(),
parent.getSurfaceControl());