Skip to content
Commit 15d98dc3 authored by Chandru S's avatar Chandru S
Browse files

BypassEnabled change is not propagated when face enrollment state changes.

 - KeyguardStateController was not calling onFaceAuthEnabledChanged() when the enrollment state changes upstream in KeyguardUpdateMonitor
 - bypassEnabled getter combines three values: actual setting value && face auth enrolled && posture supports face auth
 - When the device first boots up, face enrollment state in KeyguardUpdateMonitor is always false
 - Once AuthController#onEnrollmentsChanged gets invoked, KeyguardUpdateMonitor gets the correct enrollment state
 - That change is not propagated down to KeyguardBypassController until the bypassEnabled property is read again.

Why is this not an issue currently?
 - In the old system, we keep re-reading the property value which ensures we don't miss the update.
 - With the new face auth system, we rely on state changes to be published always
 - When bypassEnabled is initially false, we assume there will be an update when it changes and don't keep re-checking the property value.
 - However, that update never comes until we auth once, which triggers state changes that eventually make us re-read the property.

Bug: 285523886
Test: atest KeyguardBypassControllerTest
Test: atest KeyguardUpdateMonitorTest
Test: atest KeyguardStateControllerTest
Change-Id: I544c3426972dcc03662848096fc1cac1c9412a75
parent 0c852330
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment