Use callback of remote display change as timeout token

Previously, if the remote is slow and there are continuous new
callbacks coming, the timeout runnable is removed on new callback
which causes the timeout never reaches. Which makes
isWaitingForRemoteDisplayChange keeps true and blocks DisplayContent
to apply new configuration.

So now each callback has its own timeout. If there are multiple
callbacks and one of them is timed out, onContinueTimedOut will still
be called to completes all callbacks to unblock display change.

Bug: 334838294
Flag: EXEMPT bugfix
Test: Add sleep 1s in DisplayChangeWindowControllerImpl.
      Loop launch activity which requests different orientation
      in the same task. The display orientation can still change.
Change-Id: Id21c3cd4afcb306fc41e1de8405164711d20e678
1 file changed