7/n: Add mechanism to hold onto already-completed operations
The CoexCoordinator needs to hold onto successful operations in
some cases, as well as prevent them from being "finished" in the
scheduler (to prevent subsequent operations from starting while
the coordination is not complete yet). This change:
0) Splits AuthenticationClient "state" and "callback" (e.g. client
can be done with the sensor, but not notify the scheduler of
completion yet).
1) Adds a list of successful operations. This list should usually
be at most size 1
2) Each successful operation has an internal watchdog that removes
itself from the list and finishes the AuthenticationClient's
lifecycle, to prevent the scheduler from being stuck indefinitely
3) Adds support for additional coex cases. These should (I think)
all be covered by newly added unit tests
Test: atest com.android.server.biometrics
Test: atest CoexCoordinatorTest (subset of the above)
Bug: 193089985
Change-Id: I39a31a4e450001ab7db48055165c984a312b6bfa
11 files changed