SystemUI: Add display mode provider for UDFPS on Pixel devices
This implements high brightness mode (HBM) control for the under-display fingerprint sensor on Pixel devices. It enables and disables local HBM through the Pixel display HAL, similar to Google's implementation in the stock OS. Blocking IPC calls to the display HAL are done on a background thread to avoid causing frame drops by blocking the main thread, but callbacks are always run on the main thread as specified by the UdfpsHbmProvider docs. Care is taken to avoid enabling LHBM when it's already enabled and vice versa, as doing so causes the display HAL's request to time out and throw an exception. For simplicity, global HBM is not supported as it has never been used in production on Pixel devices. Co-authored-by: Michael Bestas <mkbestas@lineageos.org> Co-authored-by: Tommy Webb <tommy@calyxinstitute.org> Original-Change-Id: I8d301c7e1ce54ee8ffd987708b6f0e2bf115f7ef Change-Id: Iefc334720a3db7d9f21045e5bd6b8a8a2ea7fd3e
Loading