diff options
| author | 2023-06-23 15:37:17 -0700 | |
|---|---|---|
| committer | 2023-06-27 13:38:16 +0530 | |
| commit | 15d98dc30608fbde77b93dd86151802e5eb5e82f (patch) | |
| tree | 8ca202335744d49bcdffb9c9e13c7aaca3471eab /libs/androidfw/ObbFile.cpp | |
| parent | 0c852330af5f9ccb27dea3139c5becb15622afaf (diff) | |
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
Diffstat (limited to 'libs/androidfw/ObbFile.cpp')
0 files changed, 0 insertions, 0 deletions