Keyguard: Fix leaking fingerprint registration

Fixes an issue where the fingerprint registration could leak for the following
sequence of requests:

- shouldListen becomes true
- updateListening (STOPPED -> RUNNING)
- shouldListen becomes false
- updateListening (RUNNING -> CANCELLING)
- shouldListen becomes true
- updateListening (CANCELLING -> RESTARTING)
- shouldListen becomes false
- updateListening (nop, because RESTARTING is not considered a running state)
- handleFingerprintError(reason=CANCELLED) wrongly restarts listening

Bug: 119813074
Test: Verify fingerprint unlocking still works. Verify fingerprint listening does not get stuck after unlocking via bouncer.
Change-Id: Ibd1bf3a161164586466d2b1d965e53a648c7038b
1 file changed