Propagate new shade displayId only after display change succeeded

This refactors the meaning of displayId in ShadeDisplaysRepository.

Before: displayId was changing before the shade was moved. So if listeners were listening to it and getting values from the context/resoruces, they would have been wrong

Now: there is a pendingDisplayId, and displayId is only changed after the move succeeded, so listeners to it can expect to have correct resources when it changes.

This will be needed in follow up cls.

Bug: 362719719
Bug: 398011576
Test: ShadeDisplaysRepositoryTest, ShadePrimaryDisplayCommandTest, ShadeDisplaysInteractorTest
Flag: com.android.systemui.shade_window_goes_around
Change-Id: If95ab47471a0914e6b7c2f7959d1c3f76a5deeee
7 files changed