# leondevlifelog/gesturelockview architecture

> Architecture diagram of the GitHub repository leondevlifelog/gesturelockview, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-15). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/leondevlifelog/gesturelockview
- Repository: https://github.com/leondevlifelog/gesturelockview

## Overview

GestureLockView is an Android gesture-pattern input library, accompanied by a small sample app. The main workflow is touch input on the configurable grid, pattern collection and minimum-length/password checks, then success or error callbacks; the sample validates a hard-coded pattern and opens a second screen on success. The excerpts show those callback and sample-screen links, but not all drawing and touch-handling details. The README documents configurable appearance, grid size, security mode, vibration, and listener behavior.

Main entry points: [`gesturelockview/src/main/java/com/github/leondevlifelog/gesturelockview/GestureLockView.java`](https://github.com/leondevlifelog/gesturelockview/blob/master/gesturelockview/src/main/java/com/github/leondevlifelog/gesturelockview/GestureLockView.java) (Gesture input), [`app/src/main/java/com/github/leondevlifelog/gesturelockviewsample/MainActivity.java`](https://github.com/leondevlifelog/gesturelockview/blob/master/app/src/main/java/com/github/leondevlifelog/gesturelockviewsample/MainActivity.java) (Sample screen), [`app/src/main/java/com/github/leondevlifelog/gesturelockviewsample/SecondActivity.java`](https://github.com/leondevlifelog/gesturelockview/blob/master/app/src/main/java/com/github/leondevlifelog/gesturelockviewsample/SecondActivity.java) (Result screen)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_library["Gesture library"]
  node_gesture_view["Gesture input"]
end

subgraph group_sample["Sample app"]
  node_sample_activity["Sample screen<br/>[MainActivity.java]"]
  node_result_activity["Result screen"]
end

node_user(("User"))
node_vibrator["Android vibrator"]

node_user -->|"draws pattern"| node_gesture_view
node_gesture_view -->|"calls listener"| node_sample_activity
node_sample_activity -->|"configures listener"| node_gesture_view
node_sample_activity -->|"opens on success"| node_result_activity
node_gesture_view -->|"vibrates"| node_vibrator

click node_gesture_view "https://github.com/leondevlifelog/gesturelockview/blob/master/gesturelockview/src/main/java/com/github/leondevlifelog/gesturelockview/GestureLockView.java"
click node_sample_activity "https://github.com/leondevlifelog/gesturelockview/blob/master/app/src/main/java/com/github/leondevlifelog/gesturelockviewsample/MainActivity.java"
click node_result_activity "https://github.com/leondevlifelog/gesturelockview/blob/master/app/src/main/java/com/github/leondevlifelog/gesturelockviewsample/SecondActivity.java"

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_gesture_view,node_user toneBlue
class node_sample_activity,node_result_activity toneAmber
class node_vibrator toneIndigo
```

## Components

### Gesture library

- [Gesture input](https://github.com/leondevlifelog/gesturelockview/blob/master/gesturelockview/src/main/java/com/github/leondevlifelog/gesturelockview/GestureLockView.java): `gesturelockview/src/main/java/com/github/leondevlifelog/gesturelockview/GestureLockView.java`

### Sample app

- [Sample screen](https://github.com/leondevlifelog/gesturelockview/blob/master/app/src/main/java/com/github/leondevlifelog/gesturelockviewsample/MainActivity.java): `app/src/main/java/com/github/leondevlifelog/gesturelockviewsample/MainActivity.java`
- [Result screen](https://github.com/leondevlifelog/gesturelockview/blob/master/app/src/main/java/com/github/leondevlifelog/gesturelockviewsample/SecondActivity.java): `app/src/main/java/com/github/leondevlifelog/gesturelockviewsample/SecondActivity.java`

### Other components

- **User**
- **Android vibrator**

## Connections

- User → Gesture input: draws pattern (evidence: `README.md`)
- Gesture input → Sample screen: calls listener (evidence: `gesturelockview/src/main/java/com/github/leondevlifelog/gesturelockview/GestureLockView.java`)
- Sample screen → Gesture input: configures listener (evidence: `app/src/main/java/com/github/leondevlifelog/gesturelockviewsample/MainActivity.java`)
- Sample screen → Result screen: opens on success (evidence: `app/src/main/java/com/github/leondevlifelog/gesturelockviewsample/MainActivity.java`)
- Gesture input → Android vibrator: vibrates (evidence: `gesturelockview/src/main/java/com/github/leondevlifelog/gesturelockview/GestureLockView.java`)
