Interact with DreamOverlay through distinct clients.
DreamOverlay clients currently interact with the service endpoint
through a single binder interface. From the DreamOverlay perspective,
it is impossible to distinguish between clients. This makes it
difficult to understand if requests are coming from the currently
active client. This surfaces in the product as two dreams that
interfere with each other. For example, an exiting dream might send
the dream ending signal after the current dream has started.
This changelist introduces a DreamOverlay client binder interface,
which is minted by the DreamOverlayService on demand. The existing
actions on the overlay have been moved to this client. The
DreamOverlayService maintains a reference to the active client so
that it can verify which one can act upon the overlay.
Test: atest DreamOverlayServiceTest
Fixes: 266703170
Change-Id: I23e2e2adea626361bb9d2e6969341aade33b1a23
7 files changed