# dragonte6967/wclock architecture

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

- Interactive diagram: https://gitdiagram.com/dragonte6967/wclock
- Repository: https://github.com/dragonte6967/wclock

## Overview

Wclock is a simple Android always-on standby clock intended for an e-ink display. The main flow starts when Android launches the activity: it keeps the screen on, hides system bars, and presents a Compose clock with Chinese year, date, weekday, and time. The composable refreshes its calendar state once per minute and formats the displayed values. The README identifies no additional product capabilities; sampled code shows no persistence or external service integrations.

Main entry points: [`app/src/main/java/top/dragonte/wclock/MainActivity.kt`](https://github.com/dragonte6967/wclock/blob/master/app/src/main/java/top/dragonte/wclock/MainActivity.kt) (Clock screen)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Clock app"]
  node_activity["Main activity<br/>[MainActivity.kt]"]
end

subgraph group_display["Clock display"]
  node_screen["Clock screen<br/>[MainActivity.kt]"]
  node_calendar["Calendar state<br/>[MainActivity.kt]"]
  node_format["Date formatting<br/>[MainActivity.kt]"]
  node_theme["App theme<br/>[Theme.kt]"]
end

node_user(("Device user"))
node_android(("Android system"))

node_android -->|"launches"| node_activity
node_activity -->|"sets content"| node_screen
node_activity -->|"keeps awake"| node_android
node_activity -->|"hides system bars"| node_android
node_screen -->|"refreshes each minute"| node_calendar
node_screen -->|"formats date and year"| node_format
node_calendar -->|"updates display"| node_screen
node_screen -->|"shows clock"| node_user

click node_activity "https://github.com/dragonte6967/wclock/blob/master/app/src/main/java/top/dragonte/wclock/MainActivity.kt"
click node_screen "https://github.com/dragonte6967/wclock/blob/master/app/src/main/java/top/dragonte/wclock/MainActivity.kt"
click node_calendar "https://github.com/dragonte6967/wclock/blob/master/app/src/main/java/top/dragonte/wclock/MainActivity.kt"
click node_format "https://github.com/dragonte6967/wclock/blob/master/app/src/main/java/top/dragonte/wclock/MainActivity.kt"
click node_theme "https://github.com/dragonte6967/wclock/blob/master/app/src/main/java/top/dragonte/wclock/ui/theme/Theme.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_activity,node_user toneBlue
class node_screen,node_calendar,node_format,node_theme toneAmber
class node_android toneIndigo
```

## Components

### Clock app

- [Main activity](https://github.com/dragonte6967/wclock/blob/master/app/src/main/java/top/dragonte/wclock/MainActivity.kt): `app/src/main/java/top/dragonte/wclock/MainActivity.kt`

### Clock display

- [Clock screen](https://github.com/dragonte6967/wclock/blob/master/app/src/main/java/top/dragonte/wclock/MainActivity.kt): `app/src/main/java/top/dragonte/wclock/MainActivity.kt`
- [Calendar state](https://github.com/dragonte6967/wclock/blob/master/app/src/main/java/top/dragonte/wclock/MainActivity.kt): `app/src/main/java/top/dragonte/wclock/MainActivity.kt`
- [Date formatting](https://github.com/dragonte6967/wclock/blob/master/app/src/main/java/top/dragonte/wclock/MainActivity.kt): `app/src/main/java/top/dragonte/wclock/MainActivity.kt`
- [App theme](https://github.com/dragonte6967/wclock/blob/master/app/src/main/java/top/dragonte/wclock/ui/theme/Theme.kt): `app/src/main/java/top/dragonte/wclock/ui/theme/Theme.kt`

### Other components

- **Device user**
- **Android system**

## Connections

- Android system → Main activity: launches
- Main activity → Clock screen: sets content
- Main activity → Android system: keeps awake
- Main activity → Android system: hides system bars
- Clock screen → Calendar state: refreshes each minute
- Clock screen → Date formatting: formats date and year
- Calendar state → Clock screen: updates display
- Clock screen → Device user: shows clock
