feat(applock): Add app lock with biometric/device credential authentication#10539
Open
thoomi wants to merge 5 commits intothunderbird:mainfrom
Open
feat(applock): Add app lock with biometric/device credential authentication#10539thoomi wants to merge 5 commits intothunderbird:mainfrom
thoomi wants to merge 5 commits intothunderbird:mainfrom
Conversation
8e8f727 to
b8b004d
Compare
fc121d6 to
911805d
Compare
Member
|
@thoomi Sorry for the delay. We’re currently quite busy, and since this isn’t on our immediate roadmap and involves AI-assisted written code, it requires a more thorough review—something we’re unfortunately not able to complete in a timely manner. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds an App Lock feature that allows users to protect access to Thunderbird using
biometric authentication (fingerprint, face) or device credentials (PIN/pattern/password).
This is a highly requested community feature:
Changes
New modules
feature/applock/api- Public contracts (AppLockCoordinator, AppLockGate, state types)feature/applock/impl- Implementation (coordinator, biometric auth, UI overlays, settings)Architecture
Key design decisions
ensureUnlocked()rather than coordinator pushing UIViewoverlay (not Compose) for synchronous rendering in task switcherIntegration
app-commonintegration viaActivityLifecycleCallbacksScreenshots & Videos
Settings UI
Unlock Flow
applock_happy_path_flow.mp4
Biometric prompt shown when opening the app
Videos
Enabling app lock (requires authentication first)
applock_settings_enable_flow.mp4
PIN fallback authentication
applock_settings_pin_fallback_flow.mp4
Unavailable: navigate to device settings to enroll
applock_unavailable_to_device_settings_flow.mp4
Full flow: unavailable → enroll biometrics → return to app
applock_unavailable_to_device_settings_biometric_back_to_app_flow.mp4
Testing
Manual testing checklist
Review
This PR is structured as 5 focused commits that can be reviewed individually. If the overall diff is too large, I'm happy to split this into smaller, incremental PRs — let me know what works best. I just wanted to put it into a one big PR to see how a full implementation would look like.
I also see this PR as a spark for the discussion on the topic. Lets discuss if we want to integrate such a feature at all, since many valid concerns have been raised about it in the past. 😊
Future work
The following enhancements are planned as follow-ups:
Disclaimer
Large parts of the PR have been written and reviewed by Coding Agents. I am more like an Android and Kotlin novice but i am of course very eager to learn more about it :)