Introduce NotifBindPipeline (1/2)
Introduce NotifBindPipeline and friends which perform the following
roles.
NotifBindPipeline
* Knows when all view inflation + bind logic is done and calls callbacks
* Composes BindStage(s) to bind notif views when something changes
RowContentBindParams
* New place for inflation-related params in ExpandableNotificationRow to
live (inflation flags, increasedContentHeight, lowPriority)
RowContentBindStage
* Abstracted stage of work for pipeline to use that wraps around
NotificationRowContentBinderImpl in order to bind content.
* Provides params objects that clients can modify
* Provides invalidate call as part of BindStage that starts pipeline
This CL simply introduces the classes but does not use them. The latter
CL will focus on swapping out the existing NotificationRowContentBinder
API usage in ExpandableNotificationRow and attaching these classes.
See design at go/notification-bind-pipeline.
Bug: 145749521
Test: builds on wembley, crosshatch
Test: atest SystemUITests
Change-Id: I8366010afad1c8bd2d76cbe71d21b55bbbb11bbe
9 files changed