Redraw ScreenDecorations only if rotation changed

In ScreenDecorations.onConfigurationChanged(), only redraw OverlayWindow
views when rotation is changed

Bug: 229549809
Test: atest ScreenDecorationsTest
Change-Id: Ic596c065ac9f962de94277be858fdb2ab96bc833
This commit is contained in:
Milton Wu
2022-04-18 11:54:54 +08:00
parent 6d7970c9cd
commit cc79f24c49
2 changed files with 7 additions and 3 deletions

View File

@@ -971,10 +971,10 @@ public class ScreenDecorations extends CoreStartable implements Tunable , Dumpab
cutoutView.updateRotation(mRotation);
}
}
}
// update all provider views inside overlay
updateOverlayProviderViews();
// update all provider views inside overlay
updateOverlayProviderViews();
}
}
private boolean hasRoundedCorners() {

View File

@@ -63,6 +63,7 @@ import android.util.RotationUtils;
import android.util.Size;
import android.view.Display;
import android.view.DisplayCutout;
import android.view.Surface;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
@@ -974,6 +975,7 @@ public class ScreenDecorationsTest extends SysuiTestCase {
getTestsDrawable(com.android.systemui.tests.R.drawable.rounded4px)
/* roundedBottomDrawable */,
0 /* roundedPadding */, false /* fillCutout */, true /* privacyDot */);
doReturn(Surface.ROTATION_0).when(mDisplay).getRotation();
mScreenDecorations.start();
@@ -987,6 +989,8 @@ public class ScreenDecorationsTest extends SysuiTestCase {
getTestsDrawable(com.android.systemui.tests.R.drawable.rounded5px)
/* roundedBottomDrawable */,
0 /* roundedPadding */, false /* fillCutout */, true /* privacyDot */);
doReturn(Surface.ROTATION_270).when(mDisplay).getRotation();
mScreenDecorations.onConfigurationChanged(null);
assertEquals(new Size(4, 4), resDelegate.getTopRoundedSize());