Reset the flag of attaching nav to app to prevent flickering
The restoreNavigationBarFromApp() could now be called twice in live tile mode. Reset the mNavigationBarAttachedToApp once the nav bar is detached to prevent the nav fade-in animation playing twice. Bug: 189900722 Test: atest RecentsAnimationControllerTest Change-Id: Ifa02a7355d6503399de636646d73b9a4b6766a51
This commit is contained in:
@@ -658,6 +658,8 @@ public class RecentsAnimationController implements DeathRecipient {
|
||||
if (!mNavigationBarAttachedToApp) {
|
||||
return;
|
||||
}
|
||||
mNavigationBarAttachedToApp = false;
|
||||
|
||||
if (mStatusBar != null) {
|
||||
mStatusBar.setNavigationBarLumaSamplingEnabled(mDisplayId, true);
|
||||
}
|
||||
|
||||
@@ -519,12 +519,14 @@ public class RecentsAnimationControllerTest extends WindowTestsBase {
|
||||
eq(mDefaultDisplay.mDisplayId), eq(false));
|
||||
verify(transaction).reparent(navToken.getSurfaceControl(), activity.getSurfaceControl());
|
||||
verify(transaction).setLayer(navToken.getSurfaceControl(), Integer.MAX_VALUE);
|
||||
assertTrue(mController.isNavigationBarAttachedToApp());
|
||||
|
||||
mController.cleanupAnimation(REORDER_MOVE_TO_TOP);
|
||||
verify(mController).restoreNavigationBarFromApp(eq(true));
|
||||
verify(mController.mStatusBar).setNavigationBarLumaSamplingEnabled(
|
||||
eq(mDefaultDisplay.mDisplayId), eq(true));
|
||||
verify(transaction).setLayer(navToken.getSurfaceControl(), 0);
|
||||
assertFalse(mController.isNavigationBarAttachedToApp());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -541,6 +543,7 @@ public class RecentsAnimationControllerTest extends WindowTestsBase {
|
||||
eq(mDefaultDisplay.mDisplayId), eq(false));
|
||||
verify(transaction).reparent(navToken.getSurfaceControl(), activity.getSurfaceControl());
|
||||
verify(transaction).setLayer(navToken.getSurfaceControl(), Integer.MAX_VALUE);
|
||||
assertTrue(mController.isNavigationBarAttachedToApp());
|
||||
|
||||
final WindowContainer parent = navToken.getParent();
|
||||
|
||||
@@ -550,6 +553,7 @@ public class RecentsAnimationControllerTest extends WindowTestsBase {
|
||||
eq(mDefaultDisplay.mDisplayId), eq(true));
|
||||
verify(transaction).setLayer(navToken.getSurfaceControl(), 0);
|
||||
verify(transaction).reparent(navToken.getSurfaceControl(), parent.getSurfaceControl());
|
||||
assertFalse(mController.isNavigationBarAttachedToApp());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -566,6 +570,7 @@ public class RecentsAnimationControllerTest extends WindowTestsBase {
|
||||
eq(mDefaultDisplay.mDisplayId), eq(false));
|
||||
verify(transaction).reparent(navToken.getSurfaceControl(), activity.getSurfaceControl());
|
||||
verify(transaction).setLayer(navToken.getSurfaceControl(), Integer.MAX_VALUE);
|
||||
assertTrue(mController.isNavigationBarAttachedToApp());
|
||||
|
||||
final WindowContainer parent = navToken.getParent();
|
||||
|
||||
@@ -575,6 +580,7 @@ public class RecentsAnimationControllerTest extends WindowTestsBase {
|
||||
verify(mController.mStatusBar).setNavigationBarLumaSamplingEnabled(
|
||||
eq(mDefaultDisplay.mDisplayId), eq(true));
|
||||
verify(transaction).setLayer(navToken.getSurfaceControl(), 0);
|
||||
assertFalse(mController.isNavigationBarAttachedToApp());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -607,6 +613,7 @@ public class RecentsAnimationControllerTest extends WindowTestsBase {
|
||||
eq(mDefaultDisplay.mDisplayId), eq(false));
|
||||
verify(navWindow).setSurfaceTranslationY(-secondary.getBounds().top);
|
||||
verify(transaction).reparent(navToken.getSurfaceControl(), secondary.getSurfaceControl());
|
||||
assertTrue(mController.isNavigationBarAttachedToApp());
|
||||
reset(navWindow);
|
||||
|
||||
mController.cleanupAnimation(REORDER_MOVE_TO_ORIGINAL_POSITION);
|
||||
@@ -616,6 +623,7 @@ public class RecentsAnimationControllerTest extends WindowTestsBase {
|
||||
verify(navWindow).setSurfaceTranslationY(0);
|
||||
verify(transaction).reparent(navToken.getSurfaceControl(), parent.getSurfaceControl());
|
||||
verify(mController).restoreNavigationBarFromApp(eq(false));
|
||||
assertFalse(mController.isNavigationBarAttachedToApp());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user