# kieronquinn/smartspacer architecture

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

- Interactive diagram: https://gitdiagram.com/kieronquinn/smartspacer
- Repository: https://github.com/kieronquinn/smartspacer

## Overview

Smartspacer is an Android app that builds configurable At a Glance-style content from targets, complications, plugins, and context requirements, then serves it through multiple Smartspace surfaces. The main workflow is user configuration and plugin discovery, followed by runtime session updates that deliver content to a launcher, widget, or system surface. The tree and README identify several product branches, but sampled implementation is limited; unsampled branches are represented at their existing source directories and only documented capability links are shown.

Main entry points: [`app/src/main/java/com/kieronquinn/app/smartspacer/components/smartspace`](https://github.com/kieronquinn/smartspacer/tree/main/app/src/main/java/com/kieronquinn/app/smartspacer/components/smartspace) (Surface Sessions), [`app/src/main/java/com/kieronquinn/app/smartspacer/service/SmartspacerSmartspaceService.kt`](https://github.com/kieronquinn/smartspacer/blob/main/app/src/main/java/com/kieronquinn/app/smartspacer/service/SmartspacerSmartspaceService.kt) (Native Service), [`app/src/main/java/com/kieronquinn/app/smartspacer/components/smartspace/targets`](https://github.com/kieronquinn/smartspacer/tree/main/app/src/main/java/com/kieronquinn/app/smartspacer/components/smartspace/targets) (Targets), [`app/src/main/java/com/kieronquinn/app/smartspacer/ui/screens`](https://github.com/kieronquinn/smartspacer/tree/main/app/src/main/java/com/kieronquinn/app/smartspacer/ui/screens) (Configuration UI)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_config["Configuration"]
  node_settings_ui["Configuration UI"]
  node_plugin_repo["Plugin Repository"]
  node_state[("App State")]
end

subgraph group_content["Content Providers"]
  node_plugin_runtime["Plugin Providers"]
  node_targets["Targets"]
  node_complications["Complications"]
  node_requirements["Requirements"]
  node_widgets["Smartspace Widgets"]
end

subgraph group_runtime["Smartspace Runtime"]
  node_manager_service["Manager Service"]
  node_manager["Smartspace Manager"]
  node_sessions["Surface Sessions"]
  node_native_service["Native Service"]
  node_expanded["Expanded Smartspace"]
  node_oem["OEM Smartspace"]
end

subgraph group_integration["Platform Integrations"]
  node_system["Android Smartspace"]
end

node_user(("User"))
node_launcher(("Launcher / Widget"))
node_shizuku(("Shizuku"))

node_user -->|"configures"| node_settings_ui
node_user -->|"browses plugins"| node_plugin_repo
node_settings_ui -->|"saves settings"| node_state
node_plugin_repo -->|"discovers plugins"| node_plugin_runtime
node_plugin_runtime -->|"provides content"| node_targets
node_requirements -->|"controls visibility"| node_targets
node_complications -->|"adds content"| node_sessions
node_targets -->|"supplies targets"| node_sessions
node_widgets -->|"supplies widgets"| node_sessions
node_manager_service -->|"binds"| node_manager
node_manager -->|"manages sessions"| node_sessions
node_native_service -->|"creates sessions"| node_sessions
node_native_service -->|"updates targets"| node_system
node_system -->|"delivers content"| node_launcher
node_sessions -->|"serves expanded view"| node_expanded
node_sessions -->|"supports OEM surface"| node_oem
node_shizuku -.->|"enables Pixel upgrade"| node_native_service

click node_settings_ui "https://github.com/kieronquinn/smartspacer/tree/main/app/src/main/java/com/kieronquinn/app/smartspacer/ui/screens"
click node_plugin_repo "https://github.com/kieronquinn/smartspacer/blob/main/app/src/main/java/com/kieronquinn/app/smartspacer/ui/screens/repository/PluginRepositoryFragment.kt"
click node_plugin_runtime "https://github.com/kieronquinn/smartspacer/tree/main/app/src/main/java/com/kieronquinn/app/smartspacer/components/smartspace"
click node_targets "https://github.com/kieronquinn/smartspacer/tree/main/app/src/main/java/com/kieronquinn/app/smartspacer/components/smartspace/targets"
click node_complications "https://github.com/kieronquinn/smartspacer/tree/main/app/src/main/java/com/kieronquinn/app/smartspacer/components/smartspace/complications"
click node_requirements "https://github.com/kieronquinn/smartspacer/tree/main/app/src/main/java/com/kieronquinn/app/smartspacer/components/smartspace/requirements"
click node_widgets "https://github.com/kieronquinn/smartspacer/tree/main/app/src/main/java/com/kieronquinn/app/smartspacer/components/smartspace/widgets"
click node_state "https://github.com/kieronquinn/smartspacer/tree/main/app/src/main/java/com/kieronquinn/app/smartspacer/model/database"
click node_manager_service "https://github.com/kieronquinn/smartspacer/blob/main/app/src/main/java/com/kieronquinn/app/smartspacer/service/SmartspacerManagerService.kt"
click node_manager "https://github.com/kieronquinn/smartspacer/blob/main/app/src/main/java/com/kieronquinn/app/smartspacer/components/smartspace/SmartspaceManager.kt"
click node_sessions "https://github.com/kieronquinn/smartspacer/tree/main/app/src/main/java/com/kieronquinn/app/smartspacer/components/smartspace"
click node_native_service "https://github.com/kieronquinn/smartspacer/blob/main/app/src/main/java/com/kieronquinn/app/smartspacer/service/SmartspacerSmartspaceService.kt"
click node_expanded "https://github.com/kieronquinn/smartspacer/blob/main/app/src/main/java/com/kieronquinn/app/smartspacer/components/smartspace/ExpandedSmartspacerSession.kt"
click node_oem "https://github.com/kieronquinn/smartspacer/blob/main/app/src/main/java/com/kieronquinn/app/smartspacer/components/smartspace/OemSmartspacerSession.kt"
click node_system "https://github.com/kieronquinn/smartspacer/blob/main/systemstubs/src/main/java/android/service/smartspace/SmartspaceService.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_settings_ui,node_plugin_repo,node_state,node_user toneBlue
class node_plugin_runtime,node_targets,node_complications,node_requirements,node_widgets toneAmber
class node_manager_service,node_manager,node_sessions,node_native_service,node_expanded,node_oem toneMint
class node_system toneRose
class node_launcher,node_shizuku toneIndigo
```

## Components

### Configuration

- [Configuration UI](https://github.com/kieronquinn/smartspacer/tree/main/app/src/main/java/com/kieronquinn/app/smartspacer/ui/screens): `app/src/main/java/com/kieronquinn/app/smartspacer/ui/screens`
- [Plugin Repository](https://github.com/kieronquinn/smartspacer/blob/main/app/src/main/java/com/kieronquinn/app/smartspacer/ui/screens/repository/PluginRepositoryFragment.kt): `app/src/main/java/com/kieronquinn/app/smartspacer/ui/screens/repository/PluginRepositoryFragment.kt`
- [App State](https://github.com/kieronquinn/smartspacer/tree/main/app/src/main/java/com/kieronquinn/app/smartspacer/model/database): `app/src/main/java/com/kieronquinn/app/smartspacer/model/database`

### Content Providers

- [Plugin Providers](https://github.com/kieronquinn/smartspacer/tree/main/app/src/main/java/com/kieronquinn/app/smartspacer/components/smartspace): `app/src/main/java/com/kieronquinn/app/smartspacer/components/smartspace`
- [Targets](https://github.com/kieronquinn/smartspacer/tree/main/app/src/main/java/com/kieronquinn/app/smartspacer/components/smartspace/targets): `app/src/main/java/com/kieronquinn/app/smartspacer/components/smartspace/targets`
- [Complications](https://github.com/kieronquinn/smartspacer/tree/main/app/src/main/java/com/kieronquinn/app/smartspacer/components/smartspace/complications): `app/src/main/java/com/kieronquinn/app/smartspacer/components/smartspace/complications`
- [Requirements](https://github.com/kieronquinn/smartspacer/tree/main/app/src/main/java/com/kieronquinn/app/smartspacer/components/smartspace/requirements): `app/src/main/java/com/kieronquinn/app/smartspacer/components/smartspace/requirements`
- [Smartspace Widgets](https://github.com/kieronquinn/smartspacer/tree/main/app/src/main/java/com/kieronquinn/app/smartspacer/components/smartspace/widgets): `app/src/main/java/com/kieronquinn/app/smartspacer/components/smartspace/widgets`

### Smartspace Runtime

- [Manager Service](https://github.com/kieronquinn/smartspacer/blob/main/app/src/main/java/com/kieronquinn/app/smartspacer/service/SmartspacerManagerService.kt): `app/src/main/java/com/kieronquinn/app/smartspacer/service/SmartspacerManagerService.kt`
- [Smartspace Manager](https://github.com/kieronquinn/smartspacer/blob/main/app/src/main/java/com/kieronquinn/app/smartspacer/components/smartspace/SmartspaceManager.kt): `app/src/main/java/com/kieronquinn/app/smartspacer/components/smartspace/SmartspaceManager.kt`
- [Surface Sessions](https://github.com/kieronquinn/smartspacer/tree/main/app/src/main/java/com/kieronquinn/app/smartspacer/components/smartspace): `app/src/main/java/com/kieronquinn/app/smartspacer/components/smartspace`
- [Native Service](https://github.com/kieronquinn/smartspacer/blob/main/app/src/main/java/com/kieronquinn/app/smartspacer/service/SmartspacerSmartspaceService.kt): `app/src/main/java/com/kieronquinn/app/smartspacer/service/SmartspacerSmartspaceService.kt`
- [Expanded Smartspace](https://github.com/kieronquinn/smartspacer/blob/main/app/src/main/java/com/kieronquinn/app/smartspacer/components/smartspace/ExpandedSmartspacerSession.kt): `app/src/main/java/com/kieronquinn/app/smartspacer/components/smartspace/ExpandedSmartspacerSession.kt`
- [OEM Smartspace](https://github.com/kieronquinn/smartspacer/blob/main/app/src/main/java/com/kieronquinn/app/smartspacer/components/smartspace/OemSmartspacerSession.kt): `app/src/main/java/com/kieronquinn/app/smartspacer/components/smartspace/OemSmartspacerSession.kt`

### Platform Integrations

- [Android Smartspace](https://github.com/kieronquinn/smartspacer/blob/main/systemstubs/src/main/java/android/service/smartspace/SmartspaceService.java): `systemstubs/src/main/java/android/service/smartspace/SmartspaceService.java`

### Other components

- **User**
- **Launcher / Widget**
- **Shizuku**

## Connections

- User → Configuration UI: configures
- User → Plugin Repository: browses plugins
- Configuration UI → App State: saves settings
- Plugin Repository → Plugin Providers: discovers plugins
- Plugin Providers → Targets: provides content
- Requirements → Targets: controls visibility
- Complications → Surface Sessions: adds content
- Targets → Surface Sessions: supplies targets
- Smartspace Widgets → Surface Sessions: supplies widgets
- Manager Service → Smartspace Manager: binds
- Smartspace Manager → Surface Sessions: manages sessions
- Native Service → Surface Sessions: creates sessions
- Native Service → Android Smartspace: updates targets
- Android Smartspace → Launcher / Widget: delivers content
- Surface Sessions → Expanded Smartspace: serves expanded view
- Surface Sessions → OEM Smartspace: supports OEM surface
- Shizuku → Native Service: enables Pixel upgrade
