Fix thread affinity of FingerprintManager.
FingerprintManager internally creates a Handler which needs to be bound to a Looper thread. Prior to this CL the Handler was bound to the Looper of the current thread. This caused issues: * Different instances of FingerprintManager could be bound to different Looper threads. * Callbacks from FingerprintManager were invoked on arbitrary threads (or not at all if the Looper was there but wasn't running). * FingerprintManager couldn't be obtained by apps on most non-main threads leading to java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare(). This CL fixes the issue by binding the FingerprintManager's Handler to the Looper running on the main thread. Bug: 20725228 Change-Id: I4a0382d6e11df9f23b8db9f0deec77369af31b5e
Loading
Please register or sign in to comment