How bitwarden/android works
Bitwarden Android is a password-manager app. Its visible product surface includes account authentication, Android autofill (including accessibility-based autofill), browser integration, and premium billing. The principal user-to-result workflow represented here is an Android autofill request being processed into a fill response. The tree identifies the relevant components, but most implementation excerpts are absent, so internal links are limited to relationships made explicit by the sampled source or component contracts.
Main entry points: AutofillProcessorImpl.kt Autofill processor · AuthRequestManagerImpl.kt Auth request manager · BitwardenAutofillService.kt Autofill service · BitwardenAccessibilityService.kt Accessibility service
Components 26
App entry
- Main activity
app/src/main/kotlin/com/x8bit/bitwarden/MainActivity.kt - Main view model
app/src/main/kotlin/com/x8bit/bitwarden/MainViewModel.kt - Auth callback
app/src/main/kotlin/com/x8bit/bitwarden/AuthCallbackActivity.kt
Authentication
- Auth repository
app/src/main/kotlin/com/x8bit/bitwarden/data/auth/repository/AuthRepositoryImpl.kt - Auth disk source
app/src/main/kotlin/com/x8bit/bitwarden/data/auth/datasource/disk/AuthDiskSourceImpl.kt - Auth SDK source
app/src/main/kotlin/com/x8bit/bitwarden/data/auth/datasource/sdk/AuthSdkSourceImpl.kt - Auth state manager
app/src/main/kotlin/com/x8bit/bitwarden/data/auth/manager/AuthStateManagerImpl.kt - Auth request manager
app/src/main/kotlin/com/x8bit/bitwarden/data/auth/manager/AuthRequestManagerImpl.kt - Auth request API
network/src/main/kotlin/com/bitwarden/network/service/NewAuthRequestService.kt
Autofill
- Autofill service
app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/BitwardenAutofillService.kt - Autofill processor
app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/processor/AutofillProcessorImpl.kt - Autofill parser
app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/parser/AutofillParserImpl.kt - Fill response builder
app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/builder/FillResponseBuilderImpl.kt - Accessibility service
app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/accessibility/BitwardenAccessibilityService.kt - Accessibility processor
app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/accessibility/processor/BitwardenAccessibilityProcessorImpl.kt - Browser autofill manager
app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/manager/browser/BrowserThirdPartyAutofillManagerImpl.kt
Platform services
- Review prompt manager
app/src/main/kotlin/com/x8bit/bitwarden/data/platform/manager/ReviewPromptManagerImpl.kt - Settings disk source
app/src/main/kotlin/com/x8bit/bitwarden/data/platform/datasource/disk/SettingsDiskSourceImpl.kt - Authenticator bridge
app/src/main/kotlin/com/x8bit/bitwarden/data/platform/service/AuthenticatorBridgeService.kt
Billing
- Billing repository
app/src/main/kotlin/com/x8bit/bitwarden/data/billing/repository/BillingRepositoryImpl.kt - Premium state manager
app/src/main/kotlin/com/x8bit/bitwarden/data/billing/manager/PremiumStateManagerImpl.kt - Play billing manager
app/src/main/kotlin/com/x8bit/bitwarden/data/billing/manager/PlayBillingManager.kt
Other components
- User
- Android system
- Autofill requester
- Supported browsers
Connections 13
- User → Main activity: interacts
- User → Autofill requester: requests fill
- Autofill requester → Autofill service: dispatches request
- Autofill service → Autofill processor: delegates
- Autofill processor → Autofill parser: parses request
- Autofill processor → Fill response builder: builds response
- Android system → Accessibility service: dispatches events
- Accessibility service → Accessibility processor: delegates
- Browser autofill manager → Supported browsers: queries status
- Auth callback → Auth request manager: handles callback
- Auth request manager → Auth request API: requests updates
- Review prompt manager → Settings disk source: reads and writes
- Billing repository → Play billing manager: uses billing