# legacydroid/android_packages_apps_blisslauncher3 architecture

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

- Interactive diagram: https://gitdiagram.com/legacydroid/android_packages_apps_blisslauncher3
- Repository: https://github.com/legacydroid/android_packages_apps_blisslauncher3

## Overview

BlissLauncher3 is the /e/ OS Android home-screen launcher, based on AOSP Launcher3. Its user-facing scope includes launcher workspace and app organization, search suggestions, widgets, and Quickstep gestures/recents; the tree also shows taskbar, notification, and weather features. The sampled drag code confirms workspace drag/drop and taskbar drag behavior, while the README documents product identity rather than internal wiring. Several subsystem links are therefore omitted where the available excerpts do not establish calls.

Main entry points: [`src/com/android/launcher3`](https://github.com/legacydroid/android_packages_apps_blisslauncher3/tree/legacydroid-14/src/com/android/launcher3) (Launcher Workspace), [`quickstep/src/com/android/quickstep/TouchInteractionService.java`](https://github.com/legacydroid/android_packages_apps_blisslauncher3/blob/legacydroid-14/quickstep/src/com/android/quickstep/TouchInteractionService.java) (Gesture Input Service), [`bliss/src/foundation/e/bliss/suggestions/SuggestionProvider.kt`](https://github.com/legacydroid/android_packages_apps_blisslauncher3/blob/legacydroid-14/bliss/src/foundation/e/bliss/suggestions/SuggestionProvider.kt) (Suggestion Provider), [`quickstep/src/com/android/launcher3/WidgetPickerActivity.java`](https://github.com/legacydroid/android_packages_apps_blisslauncher3/blob/legacydroid-14/quickstep/src/com/android/launcher3/WidgetPickerActivity.java) (Widget Picker)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_launcher["Home Screen"]
  node_launcher["Launcher Workspace"]
  node_launcher_drag["Workspace Drag Drop"]
  node_folder_preview["Folder Previews"]
end

subgraph group_quickstep["Gestures And Recents"]
  node_quickstep_input["Gesture Input Service"]
  node_recents["Recents And Tasks"]
  node_taskbar["Taskbar UI"]
  node_taskbar_drag["Taskbar Drag"]
  node_bubble_drag["Bubble Drag"]
end

subgraph group_bliss["Bliss Features"]
  node_search_input["Launcher Search<br/>[BlissInput.kt]"]
  node_suggestions["Suggestion Provider"]
  node_duckduckgo["DuckDuckGo Suggestions"]
  node_qwant["Qwant Suggestions<br/>[QwantProvider.kt]"]
  node_bliss_controller["Bliss Launcher Controller<br/>[BaseController.kt]"]
  node_notification["Notification Service"]
  node_weather["Weather Widget Provider"]
end

subgraph group_widgets["Widgets"]
  node_widgets_activity["Widget Picker"]
  node_widget_preview["Widget Previews"]
  node_widgets_db[("Widget State<br/>[WidgetsDbHelper.kt]")]
end

subgraph group_platform["Android Platform"]
  node_android(("Android System"))
end

node_user(("Launcher User"))
node_network(("Suggestion Services"))

node_user -->|"uses"| node_launcher
node_launcher -->|"starts drags"| node_launcher_drag
node_launcher -->|"renders folders"| node_folder_preview
node_user -->|"performs gestures"| node_quickstep_input
node_quickstep_input -->|"routes gestures"| node_recents
node_taskbar -->|"starts drags"| node_taskbar_drag
node_bubble_drag -->|"updates bubble UI"| node_taskbar
node_user -->|"enters searches"| node_search_input
node_search_input -->|"requests suggestions"| node_suggestions
node_suggestions -.->|"selects provider"| node_duckduckgo
node_suggestions -.->|"selects provider"| node_qwant
node_duckduckgo -.->|"fetches suggestions"| node_network
node_qwant -.->|"fetches suggestions"| node_network
node_widgets_activity -->|"loads previews"| node_widget_preview
node_widgets_activity -.->|"manages widget state"| node_widgets_db
node_quickstep_input -->|"receives system input"| node_android
node_notification -.->|"uses notifications"| node_android
node_weather -.->|"provides widget"| node_android

click node_launcher "https://github.com/legacydroid/android_packages_apps_blisslauncher3/tree/legacydroid-14/src/com/android/launcher3"
click node_launcher_drag "https://github.com/legacydroid/android_packages_apps_blisslauncher3/blob/legacydroid-14/src/com/android/launcher3/dragndrop/LauncherDragController.java"
click node_folder_preview "https://github.com/legacydroid/android_packages_apps_blisslauncher3/blob/legacydroid-14/src/com/android/launcher3/folder/PreviewItemManager.java"
click node_quickstep_input "https://github.com/legacydroid/android_packages_apps_blisslauncher3/blob/legacydroid-14/quickstep/src/com/android/quickstep/TouchInteractionService.java"
click node_recents "https://github.com/legacydroid/android_packages_apps_blisslauncher3/tree/legacydroid-14/quickstep/src/com/android/quickstep"
click node_taskbar "https://github.com/legacydroid/android_packages_apps_blisslauncher3/tree/legacydroid-14/quickstep/src/com/android/launcher3/taskbar"
click node_taskbar_drag "https://github.com/legacydroid/android_packages_apps_blisslauncher3/blob/legacydroid-14/quickstep/src/com/android/launcher3/taskbar/TaskbarDragController.java"
click node_bubble_drag "https://github.com/legacydroid/android_packages_apps_blisslauncher3/blob/legacydroid-14/quickstep/src/com/android/launcher3/taskbar/bubbles/BubbleDragController.java"
click node_search_input "https://github.com/legacydroid/android_packages_apps_blisslauncher3/blob/legacydroid-14/bliss/src/foundation/e/bliss/suggestions/BlissInput.kt"
click node_suggestions "https://github.com/legacydroid/android_packages_apps_blisslauncher3/blob/legacydroid-14/bliss/src/foundation/e/bliss/suggestions/SuggestionProvider.kt"
click node_duckduckgo "https://github.com/legacydroid/android_packages_apps_blisslauncher3/blob/legacydroid-14/bliss/src/foundation/e/bliss/suggestions/duckduckgo/DuckDuckGoProvider.kt"
click node_qwant "https://github.com/legacydroid/android_packages_apps_blisslauncher3/blob/legacydroid-14/bliss/src/foundation/e/bliss/suggestions/qwant/QwantProvider.kt"
click node_bliss_controller "https://github.com/legacydroid/android_packages_apps_blisslauncher3/blob/legacydroid-14/bliss/src/foundation/e/bliss/BaseController.kt"
click node_notification "https://github.com/legacydroid/android_packages_apps_blisslauncher3/blob/legacydroid-14/bliss/src/foundation/e/blisslauncher/features/notification/NotificationService.kt"
click node_weather "https://github.com/legacydroid/android_packages_apps_blisslauncher3/blob/legacydroid-14/bliss/src/foundation/e/blisslauncher/features/weather/WeatherAppWidgetProvider.kt"
click node_widgets_activity "https://github.com/legacydroid/android_packages_apps_blisslauncher3/blob/legacydroid-14/quickstep/src/com/android/launcher3/WidgetPickerActivity.java"
click node_widget_preview "https://github.com/legacydroid/android_packages_apps_blisslauncher3/blob/legacydroid-14/src/com/android/launcher3/widget/DatabaseWidgetPreviewLoader.java"
click node_widgets_db "https://github.com/legacydroid/android_packages_apps_blisslauncher3/blob/legacydroid-14/bliss/src/foundation/e/bliss/widgets/WidgetsDbHelper.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_launcher,node_launcher_drag,node_folder_preview,node_user toneBlue
class node_quickstep_input,node_recents,node_taskbar,node_taskbar_drag,node_bubble_drag toneAmber
class node_search_input,node_suggestions,node_duckduckgo,node_qwant,node_bliss_controller,node_notification,node_weather toneMint
class node_widgets_activity,node_widget_preview,node_widgets_db toneRose
class node_android,node_network toneIndigo
```

## Components

### Home Screen

- [Launcher Workspace](https://github.com/legacydroid/android_packages_apps_blisslauncher3/tree/legacydroid-14/src/com/android/launcher3): `src/com/android/launcher3`
- [Workspace Drag Drop](https://github.com/legacydroid/android_packages_apps_blisslauncher3/blob/legacydroid-14/src/com/android/launcher3/dragndrop/LauncherDragController.java): `src/com/android/launcher3/dragndrop/LauncherDragController.java`
- [Folder Previews](https://github.com/legacydroid/android_packages_apps_blisslauncher3/blob/legacydroid-14/src/com/android/launcher3/folder/PreviewItemManager.java): `src/com/android/launcher3/folder/PreviewItemManager.java`

### Gestures And Recents

- [Gesture Input Service](https://github.com/legacydroid/android_packages_apps_blisslauncher3/blob/legacydroid-14/quickstep/src/com/android/quickstep/TouchInteractionService.java): `quickstep/src/com/android/quickstep/TouchInteractionService.java`
- [Recents And Tasks](https://github.com/legacydroid/android_packages_apps_blisslauncher3/tree/legacydroid-14/quickstep/src/com/android/quickstep): `quickstep/src/com/android/quickstep`
- [Taskbar UI](https://github.com/legacydroid/android_packages_apps_blisslauncher3/tree/legacydroid-14/quickstep/src/com/android/launcher3/taskbar): `quickstep/src/com/android/launcher3/taskbar`
- [Taskbar Drag](https://github.com/legacydroid/android_packages_apps_blisslauncher3/blob/legacydroid-14/quickstep/src/com/android/launcher3/taskbar/TaskbarDragController.java): `quickstep/src/com/android/launcher3/taskbar/TaskbarDragController.java`
- [Bubble Drag](https://github.com/legacydroid/android_packages_apps_blisslauncher3/blob/legacydroid-14/quickstep/src/com/android/launcher3/taskbar/bubbles/BubbleDragController.java): `quickstep/src/com/android/launcher3/taskbar/bubbles/BubbleDragController.java`

### Bliss Features

- [Launcher Search](https://github.com/legacydroid/android_packages_apps_blisslauncher3/blob/legacydroid-14/bliss/src/foundation/e/bliss/suggestions/BlissInput.kt): `bliss/src/foundation/e/bliss/suggestions/BlissInput.kt`
- [Suggestion Provider](https://github.com/legacydroid/android_packages_apps_blisslauncher3/blob/legacydroid-14/bliss/src/foundation/e/bliss/suggestions/SuggestionProvider.kt): `bliss/src/foundation/e/bliss/suggestions/SuggestionProvider.kt`
- [DuckDuckGo Suggestions](https://github.com/legacydroid/android_packages_apps_blisslauncher3/blob/legacydroid-14/bliss/src/foundation/e/bliss/suggestions/duckduckgo/DuckDuckGoProvider.kt): `bliss/src/foundation/e/bliss/suggestions/duckduckgo/DuckDuckGoProvider.kt`
- [Qwant Suggestions](https://github.com/legacydroid/android_packages_apps_blisslauncher3/blob/legacydroid-14/bliss/src/foundation/e/bliss/suggestions/qwant/QwantProvider.kt): `bliss/src/foundation/e/bliss/suggestions/qwant/QwantProvider.kt`
- [Bliss Launcher Controller](https://github.com/legacydroid/android_packages_apps_blisslauncher3/blob/legacydroid-14/bliss/src/foundation/e/bliss/BaseController.kt): `bliss/src/foundation/e/bliss/BaseController.kt`
- [Notification Service](https://github.com/legacydroid/android_packages_apps_blisslauncher3/blob/legacydroid-14/bliss/src/foundation/e/blisslauncher/features/notification/NotificationService.kt): `bliss/src/foundation/e/blisslauncher/features/notification/NotificationService.kt`
- [Weather Widget Provider](https://github.com/legacydroid/android_packages_apps_blisslauncher3/blob/legacydroid-14/bliss/src/foundation/e/blisslauncher/features/weather/WeatherAppWidgetProvider.kt): `bliss/src/foundation/e/blisslauncher/features/weather/WeatherAppWidgetProvider.kt`

### Widgets

- [Widget Picker](https://github.com/legacydroid/android_packages_apps_blisslauncher3/blob/legacydroid-14/quickstep/src/com/android/launcher3/WidgetPickerActivity.java): `quickstep/src/com/android/launcher3/WidgetPickerActivity.java`
- [Widget Previews](https://github.com/legacydroid/android_packages_apps_blisslauncher3/blob/legacydroid-14/src/com/android/launcher3/widget/DatabaseWidgetPreviewLoader.java): `src/com/android/launcher3/widget/DatabaseWidgetPreviewLoader.java`
- [Widget State](https://github.com/legacydroid/android_packages_apps_blisslauncher3/blob/legacydroid-14/bliss/src/foundation/e/bliss/widgets/WidgetsDbHelper.kt): `bliss/src/foundation/e/bliss/widgets/WidgetsDbHelper.kt`

### Android Platform

- **Android System**

### Other components

- **Launcher User**
- **Suggestion Services**

## Connections

- Launcher User → Launcher Workspace: uses
- Launcher Workspace → Workspace Drag Drop: starts drags
- Launcher Workspace → Folder Previews: renders folders
- Launcher User → Gesture Input Service: performs gestures
- Gesture Input Service → Recents And Tasks: routes gestures
- Taskbar UI → Taskbar Drag: starts drags
- Bubble Drag → Taskbar UI: updates bubble UI
- Launcher User → Launcher Search: enters searches
- Launcher Search → Suggestion Provider: requests suggestions
- Suggestion Provider → DuckDuckGo Suggestions: selects provider
- Suggestion Provider → Qwant Suggestions: selects provider
- DuckDuckGo Suggestions → Suggestion Services: fetches suggestions
- Qwant Suggestions → Suggestion Services: fetches suggestions
- Widget Picker → Widget Previews: loads previews
- Widget Picker → Widget State: manages widget state
- Gesture Input Service → Android System: receives system input
- Notification Service → Android System: uses notifications
- Weather Widget Provider → Android System: provides widget
