# imtiaz-official/smart-edge architecture

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

- Interactive diagram: https://gitdiagram.com/imtiaz-official/smart-edge
- Repository: https://github.com/imtiaz-official/smart-edge
- Video tour (about a minute): https://gitdiagram.com/imtiaz-official/smart-edge/video

## Overview

Smart Edge is an Android edge-triggered sidebar for launching pinned apps, shortcuts, and utility tools, with customization and multitasking features. The principal flow is a user swipe through the edge handle to the floating panel, which presents app and tool actions; accessibility support enables system and windowing actions. Settings persist appearance and interaction choices, while notification access supplies active-notification information. The README documents additional theme, blur, gesture, icon, and windowing capabilities not fully shown in the sampled excerpts; links for those uncertain internals are omitted.

Main entry points: [`app/src/main/java/com/imi/smartedge/sidebar/panel/FloatingPanelService.kt`](https://github.com/imtiaz-official/smart-edge/blob/main/app/src/main/java/com/imi/smartedge/sidebar/panel/FloatingPanelService.kt) (Floating panel service), [`app/src/main/java/com/imi/smartedge/sidebar/panel/PanelPreferences.kt`](https://github.com/imtiaz-official/smart-edge/blob/main/app/src/main/java/com/imi/smartedge/sidebar/panel/PanelPreferences.kt) (Panel preferences), [`app/src/main/java/com/imi/smartedge/sidebar/panel/AppRepository.kt`](https://github.com/imtiaz-official/smart-edge/blob/main/app/src/main/java/com/imi/smartedge/sidebar/panel/AppRepository.kt) (App repository), [`app/src/main/java/com/imi/smartedge/sidebar/panel/PanelAccessibilityService.kt`](https://github.com/imtiaz-official/smart-edge/blob/main/app/src/main/java/com/imi/smartedge/sidebar/panel/PanelAccessibilityService.kt) (Accessibility service)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_panel["Sidebar experience"]
  node_handle["Edge handle<br/>[EdgeHandleView.kt]"]
  node_notch["Notch handle<br/>[NotchHandleView.kt]"]
  node_panelview["Sidebar panel<br/>[SidePanelView.kt]"]
  node_picker["App picker"]
end

subgraph group_control["Service and actions"]
  node_service["Floating panel service"]
  node_repository["App repository<br/>[AppRepository.kt]"]
  node_dispatcher["Action dispatcher"]
  node_multitasking["Windowing helper"]
  node_automation["Automation manager"]
end

subgraph group_customize["Setup and customization"]
  node_preferences[("Panel preferences")]
  node_main["Setup and home<br/>[MainActivity.kt]"]
  node_settings["Appearance settings"]
  node_interaction["Interaction settings"]
  node_iconpacks["Icon packs<br/>[IconPackManager.kt]"]
end

subgraph group_integrations["System integrations"]
  node_accessibility["Accessibility service"]
  node_notifications["Notification tracking"]
  node_tile["Quick settings tile"]
end

node_user(("User"))
node_apps[("Installed apps")]
node_android{{"Android system"}}
node_otherapps(("Target apps"))

node_user -->|"swipes edge"| node_handle
node_handle -->|"triggers panel"| node_service
node_service -->|"attaches overlay"| node_handle
node_service -->|"attaches overlay"| node_notch
node_service -->|"shows panel"| node_panelview
node_service -->|"loads apps"| node_repository
node_repository -->|"queries packages"| node_apps
node_service -->|"reads settings"| node_preferences
node_panelview -->|"dispatches actions"| node_dispatcher
node_panelview -->|"opens picker"| node_picker
node_picker -->|"loads app list"| node_repository
node_picker -->|"saves selections"| node_preferences
node_repository -->|"reads pinned apps"| node_preferences
node_dispatcher -->|"requests system actions"| node_accessibility
node_dispatcher -->|"requests windowing"| node_multitasking
node_multitasking -->|"launches window"| node_android
node_accessibility -->|"performs actions"| node_android
node_accessibility -->|"sends service intents"| node_service
node_accessibility -->|"observes foreground"| node_otherapps
node_notifications -->|"notifies updates"| node_service
node_service -->|"reads active packages"| node_notifications
node_main -->|"reads and writes"| node_preferences
node_main -->|"toggles service"| node_service
node_settings -->|"updates appearance"| node_preferences
node_interaction -->|"updates interaction"| node_preferences
node_repository -->|"loads themed icons"| node_iconpacks
node_iconpacks -->|"reads pack resources"| node_apps
node_tile -->|"toggles service state"| node_preferences
node_tile -->|"opens setup"| node_main
node_automation -.->|"executes shell actions"| node_android

click node_handle "https://github.com/imtiaz-official/smart-edge/blob/main/app/src/main/java/com/imi/smartedge/sidebar/panel/EdgeHandleView.kt"
click node_notch "https://github.com/imtiaz-official/smart-edge/blob/main/app/src/main/java/com/imi/smartedge/sidebar/panel/NotchHandleView.kt"
click node_service "https://github.com/imtiaz-official/smart-edge/blob/main/app/src/main/java/com/imi/smartedge/sidebar/panel/FloatingPanelService.kt"
click node_panelview "https://github.com/imtiaz-official/smart-edge/blob/main/app/src/main/java/com/imi/smartedge/sidebar/panel/SidePanelView.kt"
click node_picker "https://github.com/imtiaz-official/smart-edge/blob/main/app/src/main/java/com/imi/smartedge/sidebar/panel/AppPickerPanelView.kt"
click node_repository "https://github.com/imtiaz-official/smart-edge/blob/main/app/src/main/java/com/imi/smartedge/sidebar/panel/AppRepository.kt"
click node_dispatcher "https://github.com/imtiaz-official/smart-edge/blob/main/app/src/main/java/com/imi/smartedge/sidebar/panel/ActionDispatcher.kt"
click node_preferences "https://github.com/imtiaz-official/smart-edge/blob/main/app/src/main/java/com/imi/smartedge/sidebar/panel/PanelPreferences.kt"
click node_main "https://github.com/imtiaz-official/smart-edge/blob/main/app/src/main/java/com/imi/smartedge/sidebar/panel/MainActivity.kt"
click node_settings "https://github.com/imtiaz-official/smart-edge/blob/main/app/src/main/java/com/imi/smartedge/sidebar/panel/SettingsActivity.kt"
click node_interaction "https://github.com/imtiaz-official/smart-edge/blob/main/app/src/main/java/com/imi/smartedge/sidebar/panel/InteractionSettingsActivity.kt"
click node_iconpacks "https://github.com/imtiaz-official/smart-edge/blob/main/app/src/main/java/com/imi/smartedge/sidebar/panel/IconPackManager.kt"
click node_accessibility "https://github.com/imtiaz-official/smart-edge/blob/main/app/src/main/java/com/imi/smartedge/sidebar/panel/PanelAccessibilityService.kt"
click node_notifications "https://github.com/imtiaz-official/smart-edge/blob/main/app/src/main/java/com/imi/smartedge/sidebar/panel/NotificationTrackingService.kt"
click node_tile "https://github.com/imtiaz-official/smart-edge/blob/main/app/src/main/java/com/imi/smartedge/sidebar/panel/PanelTileService.kt"
click node_multitasking "https://github.com/imtiaz-official/smart-edge/blob/main/app/src/main/java/com/imi/smartedge/sidebar/panel/SplitScreenHelper.kt"
click node_automation "https://github.com/imtiaz-official/smart-edge/blob/main/app/src/main/java/com/imi/smartedge/sidebar/panel/AutomationManager.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_handle,node_notch,node_panelview,node_picker,node_user toneBlue
class node_service,node_repository,node_dispatcher,node_multitasking,node_automation,node_apps toneAmber
class node_preferences,node_main,node_settings,node_interaction,node_iconpacks toneMint
class node_accessibility,node_notifications,node_tile toneRose
class node_android,node_otherapps toneIndigo
```

## Components

### Sidebar experience

- [Edge handle](https://github.com/imtiaz-official/smart-edge/blob/main/app/src/main/java/com/imi/smartedge/sidebar/panel/EdgeHandleView.kt): `app/src/main/java/com/imi/smartedge/sidebar/panel/EdgeHandleView.kt`
- [Notch handle](https://github.com/imtiaz-official/smart-edge/blob/main/app/src/main/java/com/imi/smartedge/sidebar/panel/NotchHandleView.kt): `app/src/main/java/com/imi/smartedge/sidebar/panel/NotchHandleView.kt`
- [Sidebar panel](https://github.com/imtiaz-official/smart-edge/blob/main/app/src/main/java/com/imi/smartedge/sidebar/panel/SidePanelView.kt): `app/src/main/java/com/imi/smartedge/sidebar/panel/SidePanelView.kt`
- [App picker](https://github.com/imtiaz-official/smart-edge/blob/main/app/src/main/java/com/imi/smartedge/sidebar/panel/AppPickerPanelView.kt): `app/src/main/java/com/imi/smartedge/sidebar/panel/AppPickerPanelView.kt`

### Service and actions

- [Floating panel service](https://github.com/imtiaz-official/smart-edge/blob/main/app/src/main/java/com/imi/smartedge/sidebar/panel/FloatingPanelService.kt): `app/src/main/java/com/imi/smartedge/sidebar/panel/FloatingPanelService.kt`
- [App repository](https://github.com/imtiaz-official/smart-edge/blob/main/app/src/main/java/com/imi/smartedge/sidebar/panel/AppRepository.kt): `app/src/main/java/com/imi/smartedge/sidebar/panel/AppRepository.kt`
- [Action dispatcher](https://github.com/imtiaz-official/smart-edge/blob/main/app/src/main/java/com/imi/smartedge/sidebar/panel/ActionDispatcher.kt): `app/src/main/java/com/imi/smartedge/sidebar/panel/ActionDispatcher.kt`
- [Windowing helper](https://github.com/imtiaz-official/smart-edge/blob/main/app/src/main/java/com/imi/smartedge/sidebar/panel/SplitScreenHelper.kt): `app/src/main/java/com/imi/smartedge/sidebar/panel/SplitScreenHelper.kt`
- [Automation manager](https://github.com/imtiaz-official/smart-edge/blob/main/app/src/main/java/com/imi/smartedge/sidebar/panel/AutomationManager.kt): `app/src/main/java/com/imi/smartedge/sidebar/panel/AutomationManager.kt`

### Setup and customization

- [Panel preferences](https://github.com/imtiaz-official/smart-edge/blob/main/app/src/main/java/com/imi/smartedge/sidebar/panel/PanelPreferences.kt): `app/src/main/java/com/imi/smartedge/sidebar/panel/PanelPreferences.kt`
- [Setup and home](https://github.com/imtiaz-official/smart-edge/blob/main/app/src/main/java/com/imi/smartedge/sidebar/panel/MainActivity.kt): `app/src/main/java/com/imi/smartedge/sidebar/panel/MainActivity.kt`
- [Appearance settings](https://github.com/imtiaz-official/smart-edge/blob/main/app/src/main/java/com/imi/smartedge/sidebar/panel/SettingsActivity.kt): `app/src/main/java/com/imi/smartedge/sidebar/panel/SettingsActivity.kt`
- [Interaction settings](https://github.com/imtiaz-official/smart-edge/blob/main/app/src/main/java/com/imi/smartedge/sidebar/panel/InteractionSettingsActivity.kt): `app/src/main/java/com/imi/smartedge/sidebar/panel/InteractionSettingsActivity.kt`
- [Icon packs](https://github.com/imtiaz-official/smart-edge/blob/main/app/src/main/java/com/imi/smartedge/sidebar/panel/IconPackManager.kt): `app/src/main/java/com/imi/smartedge/sidebar/panel/IconPackManager.kt`

### System integrations

- [Accessibility service](https://github.com/imtiaz-official/smart-edge/blob/main/app/src/main/java/com/imi/smartedge/sidebar/panel/PanelAccessibilityService.kt): `app/src/main/java/com/imi/smartedge/sidebar/panel/PanelAccessibilityService.kt`
- [Notification tracking](https://github.com/imtiaz-official/smart-edge/blob/main/app/src/main/java/com/imi/smartedge/sidebar/panel/NotificationTrackingService.kt): `app/src/main/java/com/imi/smartedge/sidebar/panel/NotificationTrackingService.kt`
- [Quick settings tile](https://github.com/imtiaz-official/smart-edge/blob/main/app/src/main/java/com/imi/smartedge/sidebar/panel/PanelTileService.kt): `app/src/main/java/com/imi/smartedge/sidebar/panel/PanelTileService.kt`

### Other components

- **User**
- **Installed apps**
- **Android system**
- **Target apps**

## Connections

- User → Edge handle: swipes edge
- Edge handle → Floating panel service: triggers panel
- Floating panel service → Edge handle: attaches overlay
- Floating panel service → Notch handle: attaches overlay
- Floating panel service → Sidebar panel: shows panel
- Floating panel service → App repository: loads apps
- App repository → Installed apps: queries packages
- Floating panel service → Panel preferences: reads settings
- Sidebar panel → Action dispatcher: dispatches actions
- Sidebar panel → App picker: opens picker
- App picker → App repository: loads app list
- App picker → Panel preferences: saves selections
- App repository → Panel preferences: reads pinned apps
- Action dispatcher → Accessibility service: requests system actions
- Action dispatcher → Windowing helper: requests windowing
- Windowing helper → Android system: launches window
- Accessibility service → Android system: performs actions
- Accessibility service → Floating panel service: sends service intents
- Accessibility service → Target apps: observes foreground
- Notification tracking → Floating panel service: notifies updates
- Floating panel service → Notification tracking: reads active packages
- Setup and home → Panel preferences: reads and writes
- Setup and home → Floating panel service: toggles service
- Appearance settings → Panel preferences: updates appearance
- Interaction settings → Panel preferences: updates interaction
- App repository → Icon packs: loads themed icons
- Icon packs → Installed apps: reads pack resources
- Quick settings tile → Panel preferences: toggles service state
- Quick settings tile → Setup and home: opens setup
- Automation manager → Android system: executes shell actions
