Fix double SCM Restart Icon

Fixes: 266567365
Test: Manual following bug detail instructions and run
      `atest WMShellUnitTests:CompatUILayoutTest`

Change-Id: Ia7283e289313bc114f1046ad9447f8c4edd38bf3
This commit is contained in:
Massimo Carli
2023-01-25 12:13:37 +00:00
parent 6dead15cd2
commit e213443daf
2 changed files with 10 additions and 3 deletions

View File

@@ -215,8 +215,14 @@ class CompatUIWindowManager extends CompatUIWindowManagerAbstract {
: taskStableBounds.right - taskBounds.left - mLayout.getMeasuredWidth();
final int positionY = taskStableBounds.bottom - taskBounds.top
- mLayout.getMeasuredHeight();
// To secure a proper visualisation, we hide the layout while updating the position of
// the {@link SurfaceControl} it belongs.
final int oldVisibility = mLayout.getVisibility();
if (oldVisibility == View.VISIBLE) {
mLayout.setVisibility(View.GONE);
}
updateSurfacePosition(positionX, positionY);
mLayout.setVisibility(oldVisibility);
}
private void updateVisibilityOfViews() {

View File

@@ -28,6 +28,7 @@ import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.Mockito.atLeastOnce;
import static org.mockito.Mockito.clearInvocations;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
@@ -359,14 +360,14 @@ public class CompatUIWindowManagerTest extends ShellTestCase {
mWindowManager.updateVisibility(/* canShow= */ false);
verify(mWindowManager, never()).createLayout(anyBoolean());
verify(mLayout).setVisibility(View.GONE);
verify(mLayout, atLeastOnce()).setVisibility(View.GONE);
// Show button.
doReturn(View.GONE).when(mLayout).getVisibility();
mWindowManager.updateVisibility(/* canShow= */ true);
verify(mWindowManager, never()).createLayout(anyBoolean());
verify(mLayout).setVisibility(View.VISIBLE);
verify(mLayout, atLeastOnce()).setVisibility(View.VISIBLE);
}
@Test