# jteenoone/voice-lock-screen architecture

> Architecture diagram of the GitHub repository jteenoone/voice-lock-screen, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/jteenoone/voice-lock-screen
- Repository: https://github.com/jteenoone/voice-lock-screen

## Overview

Voice Lock is an Android app for configuring and using a voice-enabled screen lock, with additional lock methods, recovery, themes, settings, and premium features suggested by the source tree. The tree identifies these product areas, but the README is empty and the supplied source excerpts contain only build configuration. Consequently, the graph maps the principal components without asserting unverified calls or data flows.

Main entry points: [`app/src/main/java/com/example/voicelockscreen/MainActivity.kt`](https://github.com/jteenoone/voice-lock-screen/blob/main/app/src/main/java/com/example/voicelockscreen/MainActivity.kt) (Main activity)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["App entry"]
  node_main["Main activity<br/>[MainActivity.kt]"]
  node_application["Application<br/>[VoiceLockApp.kt]"]
end

subgraph group_setup["Setup and settings"]
  node_onboarding["Onboarding"]
  node_methods["Lock methods"]
  node_settings["Settings"]
  node_home["Home"]
end

subgraph group_locking["Lock runtime"]
  node_lockui["Lock interface"]
  node_locklogic["Lock logic"]
  node_voice["Voice recognition"]
  node_security["Credential security"]
  node_recovery["Recovery"]
  node_data[("Lock data<br/>[LockStore.kt]")]
end

subgraph group_services["Android integration"]
  node_service["Lock service<br/>[LockService.kt]"]
  node_boot["Boot receiver<br/>[BootReceiver.kt]"]
  node_launcher["Lock launcher<br/>[LockLauncher.kt]"]
end

subgraph group_capabilities["Product capabilities"]
  node_themes["Themes"]
  node_themecatalog["Theme catalog"]
  node_troubleshoot["Troubleshooting"]
  node_premium["Premium<br/>[PremiumSheet.kt]"]
  node_billing["Play billing"]
  node_ads["Advertising<br/>[AdsManager.kt]"]
end

node_user(("User"))

node_user -->|"opens app"| node_main

click node_main "https://github.com/jteenoone/voice-lock-screen/blob/main/app/src/main/java/com/example/voicelockscreen/MainActivity.kt"
click node_application "https://github.com/jteenoone/voice-lock-screen/blob/main/app/src/main/java/com/example/voicelockscreen/VoiceLockApp.kt"
click node_onboarding "https://github.com/jteenoone/voice-lock-screen/tree/main/app/src/main/java/com/example/voicelockscreen/ui/onboarding"
click node_methods "https://github.com/jteenoone/voice-lock-screen/tree/main/app/src/main/java/com/example/voicelockscreen/ui/methods"
click node_settings "https://github.com/jteenoone/voice-lock-screen/tree/main/app/src/main/java/com/example/voicelockscreen/ui/settings"
click node_home "https://github.com/jteenoone/voice-lock-screen/tree/main/app/src/main/java/com/example/voicelockscreen/ui/home"
click node_lockui "https://github.com/jteenoone/voice-lock-screen/tree/main/app/src/main/java/com/example/voicelockscreen/ui/lock"
click node_locklogic "https://github.com/jteenoone/voice-lock-screen/tree/main/app/src/main/java/com/example/voicelockscreen/core/lock"
click node_voice "https://github.com/jteenoone/voice-lock-screen/tree/main/app/src/main/java/com/example/voicelockscreen/core/voice"
click node_security "https://github.com/jteenoone/voice-lock-screen/tree/main/app/src/main/java/com/example/voicelockscreen/core/security"
click node_recovery "https://github.com/jteenoone/voice-lock-screen/tree/main/app/src/main/java/com/example/voicelockscreen/ui/recovery"
click node_data "https://github.com/jteenoone/voice-lock-screen/blob/main/app/src/main/java/com/example/voicelockscreen/core/data/LockStore.kt"
click node_service "https://github.com/jteenoone/voice-lock-screen/blob/main/app/src/main/java/com/example/voicelockscreen/core/service/LockService.kt"
click node_boot "https://github.com/jteenoone/voice-lock-screen/blob/main/app/src/main/java/com/example/voicelockscreen/core/service/BootReceiver.kt"
click node_launcher "https://github.com/jteenoone/voice-lock-screen/blob/main/app/src/main/java/com/example/voicelockscreen/core/service/LockLauncher.kt"
click node_themes "https://github.com/jteenoone/voice-lock-screen/tree/main/app/src/main/java/com/example/voicelockscreen/ui/themes"
click node_themecatalog "https://github.com/jteenoone/voice-lock-screen/tree/main/app/src/main/java/com/example/voicelockscreen/core/themes"
click node_troubleshoot "https://github.com/jteenoone/voice-lock-screen/tree/main/app/src/main/java/com/example/voicelockscreen/ui/troubleshoot"
click node_premium "https://github.com/jteenoone/voice-lock-screen/blob/main/app/src/main/java/com/example/voicelockscreen/ui/premium/PremiumSheet.kt"
click node_billing "https://github.com/jteenoone/voice-lock-screen/blob/main/app/src/main/java/com/example/voicelockscreen/core/billing/PlayPremiumBilling.kt"
click node_ads "https://github.com/jteenoone/voice-lock-screen/blob/main/app/src/main/java/com/example/voicelockscreen/core/ads/AdsManager.kt"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_main,node_application,node_user toneBlue
class node_onboarding,node_methods,node_settings,node_home toneAmber
class node_lockui,node_locklogic,node_voice,node_security,node_recovery,node_data toneMint
class node_service,node_boot,node_launcher toneRose
class node_themes,node_themecatalog,node_troubleshoot,node_premium,node_billing,node_ads toneIndigo
```

## Components

### App entry

- [Main activity](https://github.com/jteenoone/voice-lock-screen/blob/main/app/src/main/java/com/example/voicelockscreen/MainActivity.kt): `app/src/main/java/com/example/voicelockscreen/MainActivity.kt`
- [Application](https://github.com/jteenoone/voice-lock-screen/blob/main/app/src/main/java/com/example/voicelockscreen/VoiceLockApp.kt): `app/src/main/java/com/example/voicelockscreen/VoiceLockApp.kt`

### Setup and settings

- [Onboarding](https://github.com/jteenoone/voice-lock-screen/tree/main/app/src/main/java/com/example/voicelockscreen/ui/onboarding): `app/src/main/java/com/example/voicelockscreen/ui/onboarding`
- [Lock methods](https://github.com/jteenoone/voice-lock-screen/tree/main/app/src/main/java/com/example/voicelockscreen/ui/methods): `app/src/main/java/com/example/voicelockscreen/ui/methods`
- [Settings](https://github.com/jteenoone/voice-lock-screen/tree/main/app/src/main/java/com/example/voicelockscreen/ui/settings): `app/src/main/java/com/example/voicelockscreen/ui/settings`
- [Home](https://github.com/jteenoone/voice-lock-screen/tree/main/app/src/main/java/com/example/voicelockscreen/ui/home): `app/src/main/java/com/example/voicelockscreen/ui/home`

### Lock runtime

- [Lock interface](https://github.com/jteenoone/voice-lock-screen/tree/main/app/src/main/java/com/example/voicelockscreen/ui/lock): `app/src/main/java/com/example/voicelockscreen/ui/lock`
- [Lock logic](https://github.com/jteenoone/voice-lock-screen/tree/main/app/src/main/java/com/example/voicelockscreen/core/lock): `app/src/main/java/com/example/voicelockscreen/core/lock`
- [Voice recognition](https://github.com/jteenoone/voice-lock-screen/tree/main/app/src/main/java/com/example/voicelockscreen/core/voice): `app/src/main/java/com/example/voicelockscreen/core/voice`
- [Credential security](https://github.com/jteenoone/voice-lock-screen/tree/main/app/src/main/java/com/example/voicelockscreen/core/security): `app/src/main/java/com/example/voicelockscreen/core/security`
- [Recovery](https://github.com/jteenoone/voice-lock-screen/tree/main/app/src/main/java/com/example/voicelockscreen/ui/recovery): `app/src/main/java/com/example/voicelockscreen/ui/recovery`
- [Lock data](https://github.com/jteenoone/voice-lock-screen/blob/main/app/src/main/java/com/example/voicelockscreen/core/data/LockStore.kt): `app/src/main/java/com/example/voicelockscreen/core/data/LockStore.kt`

### Android integration

- [Lock service](https://github.com/jteenoone/voice-lock-screen/blob/main/app/src/main/java/com/example/voicelockscreen/core/service/LockService.kt): `app/src/main/java/com/example/voicelockscreen/core/service/LockService.kt`
- [Boot receiver](https://github.com/jteenoone/voice-lock-screen/blob/main/app/src/main/java/com/example/voicelockscreen/core/service/BootReceiver.kt): `app/src/main/java/com/example/voicelockscreen/core/service/BootReceiver.kt`
- [Lock launcher](https://github.com/jteenoone/voice-lock-screen/blob/main/app/src/main/java/com/example/voicelockscreen/core/service/LockLauncher.kt): `app/src/main/java/com/example/voicelockscreen/core/service/LockLauncher.kt`

### Product capabilities

- [Themes](https://github.com/jteenoone/voice-lock-screen/tree/main/app/src/main/java/com/example/voicelockscreen/ui/themes): `app/src/main/java/com/example/voicelockscreen/ui/themes`
- [Theme catalog](https://github.com/jteenoone/voice-lock-screen/tree/main/app/src/main/java/com/example/voicelockscreen/core/themes): `app/src/main/java/com/example/voicelockscreen/core/themes`
- [Troubleshooting](https://github.com/jteenoone/voice-lock-screen/tree/main/app/src/main/java/com/example/voicelockscreen/ui/troubleshoot): `app/src/main/java/com/example/voicelockscreen/ui/troubleshoot`
- [Premium](https://github.com/jteenoone/voice-lock-screen/blob/main/app/src/main/java/com/example/voicelockscreen/ui/premium/PremiumSheet.kt): `app/src/main/java/com/example/voicelockscreen/ui/premium/PremiumSheet.kt`
- [Play billing](https://github.com/jteenoone/voice-lock-screen/blob/main/app/src/main/java/com/example/voicelockscreen/core/billing/PlayPremiumBilling.kt): `app/src/main/java/com/example/voicelockscreen/core/billing/PlayPremiumBilling.kt`
- [Advertising](https://github.com/jteenoone/voice-lock-screen/blob/main/app/src/main/java/com/example/voicelockscreen/core/ads/AdsManager.kt): `app/src/main/java/com/example/voicelockscreen/core/ads/AdsManager.kt`

### Other components

- **User**

## Connections

- User → Main activity: opens app
