Build StatusBar Controllers with a Subcomponent
This is an important change. We have a lot of circular dependencies
and strange order of operations in our view inflation and controller
attachment. This is a first attempt to straighten them out.
This change introduces the idea of a Dagger "Subcomponent". When
inflating top-level views related to the StatusBar (only
StatusBarWindowView for now), we supply those views to the
StatusBarComponent, which can then be used to created injected
controllers. That is to say, the views do not create their
controllers directly.
Subcomponent lifetime can be tied to view lifecycle events, allowing
controllers to be implicitly destroyed and recreated along with their
views.
Bug: 144503618
Test: atest SystemUITests && manual
Change-Id: I68252c55810b4a8f280f43596416cf99f8f17306
12 files changed