How imtiaz-official/smart-edge works
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: FloatingPanelService.kt Floating panel service · PanelPreferences.kt Panel preferences · AppRepository.kt App repository · PanelAccessibilityService.kt Accessibility service
Components 21
Sidebar experience
- Edge handle
app/src/main/java/com/imi/smartedge/sidebar/panel/EdgeHandleView.kt - Notch handle
app/src/main/java/com/imi/smartedge/sidebar/panel/NotchHandleView.kt - Sidebar panel
app/src/main/java/com/imi/smartedge/sidebar/panel/SidePanelView.kt - App picker
app/src/main/java/com/imi/smartedge/sidebar/panel/AppPickerPanelView.kt
Service and actions
- Floating panel service
app/src/main/java/com/imi/smartedge/sidebar/panel/FloatingPanelService.kt - App repository
app/src/main/java/com/imi/smartedge/sidebar/panel/AppRepository.kt - Action dispatcher
app/src/main/java/com/imi/smartedge/sidebar/panel/ActionDispatcher.kt - Windowing helper
app/src/main/java/com/imi/smartedge/sidebar/panel/SplitScreenHelper.kt - Automation manager
app/src/main/java/com/imi/smartedge/sidebar/panel/AutomationManager.kt
Setup and customization
- Panel preferences
app/src/main/java/com/imi/smartedge/sidebar/panel/PanelPreferences.kt - Setup and home
app/src/main/java/com/imi/smartedge/sidebar/panel/MainActivity.kt - Appearance settings
app/src/main/java/com/imi/smartedge/sidebar/panel/SettingsActivity.kt - Interaction settings
app/src/main/java/com/imi/smartedge/sidebar/panel/InteractionSettingsActivity.kt - Icon packs
app/src/main/java/com/imi/smartedge/sidebar/panel/IconPackManager.kt
System integrations
- Accessibility service
app/src/main/java/com/imi/smartedge/sidebar/panel/PanelAccessibilityService.kt - Notification tracking
app/src/main/java/com/imi/smartedge/sidebar/panel/NotificationTrackingService.kt - Quick settings tile
app/src/main/java/com/imi/smartedge/sidebar/panel/PanelTileService.kt
Other components
- User
- Installed apps
- Android system
- Target apps
Connections 30
- 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