Refactor listener multiplexer
-Simplifies class structure around ListenerRegistration, moving
responsibility for requests into subclasses, adding an onRemove()
callback, and simplifying the overall class structure.
-Eliminates two locks (1 in ListenerMultiplexer, 1 in
LocationProviderManager) in favor of sharing the same lock. This
simplifies locking and reduces the changes of deadlock by messing
something up.
-Fixes a bug around callback invocation ordering
ListenerMultiplexer.onRegistrationReplaced.
-Overall normalizes ListenerMultiplexer usages with respect to other
codebases.
Test: presubmits
Change-Id: I8ad92c1ffe802eee17f5a5774c8ecee1d875252f
21 files changed