Atomically apply windowing mode and display windowing mode

We currently call super.setWindowingMode() and
super.setDisplayWindowingMode() in DisplayContent#setWindowingMode(),
and super.setWindowingMode() calls onConfigurationChanged, which
can end up triggerring rotation update logic.

As some code assumes windowing mode and display windowing mode
always match, they should be atomically updated.

The concrete problem we are facing is that windowing mode change for
the  default dipslay triggers rotation incorrectly.

Bug: 159751214
Test: go/wm-smoke
Test: atest DisplayContentTests
Change-Id: Icca1673d8bf649f6cb17bceed8cd0d533d76fabd
2 files changed