# sudip-pandey/bytehome-launcher architecture

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

- Interactive diagram: https://gitdiagram.com/sudip-pandey/bytehome-launcher
- Repository: https://github.com/sudip-pandey/bytehome-launcher

## Overview

ByteHome is an Android HOME launcher. Users land on the home screen, open the cached app drawer or search, and launch an app; they can also pick apps for favorites or dock slots and manage launcher/reset settings. The graph retains the documented A–Z navigation, status display, icon framing/cache, and system launcher selection. Source excerpts support the main calls and storage flow; README-only capabilities are identified through documented edges, while the UI layouts and manifest are not treated as inspected implementation.

Main entry points: [`app/src/main/java/com/pandey/bytehome/MainActivity.kt`](https://github.com/sudip-pandey/bytehome-launcher/blob/main/app/src/main/java/com/pandey/bytehome/MainActivity.kt) (Home dashboard), [`app/src/main/java/com/pandey/bytehome/AppDrawerActivity.kt`](https://github.com/sudip-pandey/bytehome-launcher/blob/main/app/src/main/java/com/pandey/bytehome/AppDrawerActivity.kt) (App drawer and search), [`app/src/main/java/com/pandey/bytehome/SettingsActivity.kt`](https://github.com/sudip-pandey/bytehome-launcher/blob/main/app/src/main/java/com/pandey/bytehome/SettingsActivity.kt) (Launcher settings), [`app/src/main/java/com/pandey/bytehome/data/AppRepository.kt`](https://github.com/sudip-pandey/bytehome-launcher/blob/main/app/src/main/java/com/pandey/bytehome/data/AppRepository.kt) (Cached app catalog)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_home["Home screen"]
  node_home["Home dashboard<br/>[MainActivity.kt]"]
end

subgraph group_drawer["App discovery"]
  node_drawer["App drawer and search"]
  node_alpha["A–Z index<br/>[AlphaIndexView.kt]"]
  node_grid["App grid adapter<br/>[AppGridAdapter.kt]"]
end

subgraph group_apps["App catalog and launch"]
  node_catalog["Cached app catalog<br/>[AppRepository.kt]"]
  node_appinfo["App metadata<br/>[AppInfo.kt]"]
  node_launcher["Defensive app launcher<br/>[AppLauncher.kt]"]
  node_icons["Icon cache<br/>[IconCache.kt]"]
end

subgraph group_state["Personalization state"]
  node_favorites[("Favorites storage<br/>[FavoritesStore.kt]")]
  node_dock[("Dock storage<br/>[DockStore.kt]")]
  node_settings["Launcher settings"]
end

subgraph group_system["Android integration"]
  node_packages["Package change receiver"]
  node_android{{"Android system"}}
end

node_user(("Device user"))

node_user -->|"opens HOME"| node_home
node_home -->|"opens drawer"| node_drawer
node_home -->|"opens settings"| node_settings
node_drawer -->|"loads app list"| node_catalog
node_home -->|"loads app list"| node_catalog
node_catalog -->|"creates entries"| node_appinfo
node_drawer -->|"sets letters"| node_alpha
node_drawer -->|"submits filtered apps"| node_grid
node_home -->|"renders favorites"| node_grid
node_grid -->|"loads icons"| node_icons
node_drawer -->|"launches selected app"| node_launcher
node_home -->|"launches favorite or dock"| node_launcher
node_drawer -->|"pins app"| node_favorites
node_home -->|"reads and updates"| node_favorites
node_home -->|"reads and assigns"| node_dock
node_settings -->|"resets assignments"| node_dock
node_settings -->|"resets pins"| node_favorites
node_packages -->|"invalidates cache"| node_catalog
node_packages -->|"evicts package icon"| node_icons
node_home -->|"reads device status"| node_android
node_home -->|"resolves dock defaults"| node_android
node_settings -->|"requests HOME role"| node_android
node_android -->|"sends package events"| node_packages
node_user -->|"searches or picks"| node_drawer
node_home -->|"registers battery updates"| node_android

click node_home "https://github.com/sudip-pandey/bytehome-launcher/blob/main/app/src/main/java/com/pandey/bytehome/MainActivity.kt"
click node_drawer "https://github.com/sudip-pandey/bytehome-launcher/blob/main/app/src/main/java/com/pandey/bytehome/AppDrawerActivity.kt"
click node_alpha "https://github.com/sudip-pandey/bytehome-launcher/blob/main/app/src/main/java/com/pandey/bytehome/ui/AlphaIndexView.kt"
click node_grid "https://github.com/sudip-pandey/bytehome-launcher/blob/main/app/src/main/java/com/pandey/bytehome/ui/AppGridAdapter.kt"
click node_catalog "https://github.com/sudip-pandey/bytehome-launcher/blob/main/app/src/main/java/com/pandey/bytehome/data/AppRepository.kt"
click node_appinfo "https://github.com/sudip-pandey/bytehome-launcher/blob/main/app/src/main/java/com/pandey/bytehome/data/AppInfo.kt"
click node_launcher "https://github.com/sudip-pandey/bytehome-launcher/blob/main/app/src/main/java/com/pandey/bytehome/util/AppLauncher.kt"
click node_icons "https://github.com/sudip-pandey/bytehome-launcher/blob/main/app/src/main/java/com/pandey/bytehome/util/IconCache.kt"
click node_favorites "https://github.com/sudip-pandey/bytehome-launcher/blob/main/app/src/main/java/com/pandey/bytehome/data/FavoritesStore.kt"
click node_dock "https://github.com/sudip-pandey/bytehome-launcher/blob/main/app/src/main/java/com/pandey/bytehome/data/DockStore.kt"
click node_settings "https://github.com/sudip-pandey/bytehome-launcher/blob/main/app/src/main/java/com/pandey/bytehome/SettingsActivity.kt"
click node_packages "https://github.com/sudip-pandey/bytehome-launcher/blob/main/app/src/main/java/com/pandey/bytehome/PackageChangeReceiver.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_home,node_user toneBlue
class node_drawer,node_alpha,node_grid toneAmber
class node_catalog,node_appinfo,node_launcher,node_icons toneMint
class node_favorites,node_dock,node_settings toneRose
class node_packages,node_android toneIndigo
```

## Components

### Home screen

- [Home dashboard](https://github.com/sudip-pandey/bytehome-launcher/blob/main/app/src/main/java/com/pandey/bytehome/MainActivity.kt): `app/src/main/java/com/pandey/bytehome/MainActivity.kt`

### App discovery

- [App drawer and search](https://github.com/sudip-pandey/bytehome-launcher/blob/main/app/src/main/java/com/pandey/bytehome/AppDrawerActivity.kt): `app/src/main/java/com/pandey/bytehome/AppDrawerActivity.kt`
- [A–Z index](https://github.com/sudip-pandey/bytehome-launcher/blob/main/app/src/main/java/com/pandey/bytehome/ui/AlphaIndexView.kt): `app/src/main/java/com/pandey/bytehome/ui/AlphaIndexView.kt`
- [App grid adapter](https://github.com/sudip-pandey/bytehome-launcher/blob/main/app/src/main/java/com/pandey/bytehome/ui/AppGridAdapter.kt): `app/src/main/java/com/pandey/bytehome/ui/AppGridAdapter.kt`

### App catalog and launch

- [Cached app catalog](https://github.com/sudip-pandey/bytehome-launcher/blob/main/app/src/main/java/com/pandey/bytehome/data/AppRepository.kt): `app/src/main/java/com/pandey/bytehome/data/AppRepository.kt`
- [App metadata](https://github.com/sudip-pandey/bytehome-launcher/blob/main/app/src/main/java/com/pandey/bytehome/data/AppInfo.kt): `app/src/main/java/com/pandey/bytehome/data/AppInfo.kt`
- [Defensive app launcher](https://github.com/sudip-pandey/bytehome-launcher/blob/main/app/src/main/java/com/pandey/bytehome/util/AppLauncher.kt): `app/src/main/java/com/pandey/bytehome/util/AppLauncher.kt`
- [Icon cache](https://github.com/sudip-pandey/bytehome-launcher/blob/main/app/src/main/java/com/pandey/bytehome/util/IconCache.kt): `app/src/main/java/com/pandey/bytehome/util/IconCache.kt`

### Personalization state

- [Favorites storage](https://github.com/sudip-pandey/bytehome-launcher/blob/main/app/src/main/java/com/pandey/bytehome/data/FavoritesStore.kt): `app/src/main/java/com/pandey/bytehome/data/FavoritesStore.kt`
- [Dock storage](https://github.com/sudip-pandey/bytehome-launcher/blob/main/app/src/main/java/com/pandey/bytehome/data/DockStore.kt): `app/src/main/java/com/pandey/bytehome/data/DockStore.kt`
- [Launcher settings](https://github.com/sudip-pandey/bytehome-launcher/blob/main/app/src/main/java/com/pandey/bytehome/SettingsActivity.kt): `app/src/main/java/com/pandey/bytehome/SettingsActivity.kt`

### Android integration

- [Package change receiver](https://github.com/sudip-pandey/bytehome-launcher/blob/main/app/src/main/java/com/pandey/bytehome/PackageChangeReceiver.kt): `app/src/main/java/com/pandey/bytehome/PackageChangeReceiver.kt`
- **Android system**

### Other components

- **Device user**

## Connections

- Device user → Home dashboard: opens HOME (evidence: `README.md`)
- Home dashboard → App drawer and search: opens drawer (evidence: `app/src/main/java/com/pandey/bytehome/MainActivity.kt`)
- Home dashboard → Launcher settings: opens settings (evidence: `app/src/main/java/com/pandey/bytehome/MainActivity.kt`)
- App drawer and search → Cached app catalog: loads app list (evidence: `app/src/main/java/com/pandey/bytehome/AppDrawerActivity.kt`)
- Home dashboard → Cached app catalog: loads app list (evidence: `app/src/main/java/com/pandey/bytehome/MainActivity.kt`)
- Cached app catalog → App metadata: creates entries (evidence: `app/src/main/java/com/pandey/bytehome/data/AppRepository.kt`)
- App drawer and search → A–Z index: sets letters (evidence: `README.md`)
- App drawer and search → App grid adapter: submits filtered apps (evidence: `app/src/main/java/com/pandey/bytehome/AppDrawerActivity.kt`)
- Home dashboard → App grid adapter: renders favorites (evidence: `app/src/main/java/com/pandey/bytehome/MainActivity.kt`)
- App grid adapter → Icon cache: loads icons (evidence: `app/src/main/java/com/pandey/bytehome/ui/AppGridAdapter.kt`)
- App drawer and search → Defensive app launcher: launches selected app (evidence: `app/src/main/java/com/pandey/bytehome/AppDrawerActivity.kt`)
- Home dashboard → Defensive app launcher: launches favorite or dock (evidence: `app/src/main/java/com/pandey/bytehome/MainActivity.kt`)
- App drawer and search → Favorites storage: pins app (evidence: `app/src/main/java/com/pandey/bytehome/AppDrawerActivity.kt`)
- Home dashboard → Favorites storage: reads and updates (evidence: `app/src/main/java/com/pandey/bytehome/MainActivity.kt`)
- Home dashboard → Dock storage: reads and assigns (evidence: `app/src/main/java/com/pandey/bytehome/MainActivity.kt`)
- Launcher settings → Dock storage: resets assignments (evidence: `app/src/main/java/com/pandey/bytehome/SettingsActivity.kt`)
- Launcher settings → Favorites storage: resets pins (evidence: `app/src/main/java/com/pandey/bytehome/SettingsActivity.kt`)
- Package change receiver → Cached app catalog: invalidates cache (evidence: `app/src/main/java/com/pandey/bytehome/PackageChangeReceiver.kt`)
- Package change receiver → Icon cache: evicts package icon (evidence: `app/src/main/java/com/pandey/bytehome/PackageChangeReceiver.kt`)
- Home dashboard → Android system: reads device status (evidence: `README.md`)
- Home dashboard → Android system: resolves dock defaults (evidence: `app/src/main/java/com/pandey/bytehome/MainActivity.kt`)
- Launcher settings → Android system: requests HOME role (evidence: `README.md`)
- Android system → Package change receiver: sends package events (evidence: `app/src/main/java/com/pandey/bytehome/PackageChangeReceiver.kt`)
- Device user → App drawer and search: searches or picks (evidence: `README.md`)
- Home dashboard → Android system: registers battery updates (evidence: `README.md`)
