Loading repository data…
Loading repository data…
agupta07505 / repository
Smart Island is a modern, open-source implementation of Android's Dynamic Island experience. It transforms notifications, media playback, incoming calls, timers, charging status, and other live activities into a beautiful floating island with smooth animations and a premium user experience.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
Smart Island is an open-source Android app that adds a small animated pill near the status bar. It listens for notification events locally, groups active items, and expands into a richer view for quick actions, media details, incoming calls, and notification previews.
The project is designed to be transparent, hackable, and privacy-conscious: notification data is processed on the device, settings are stored locally, and the app currently does not request the Android INTERNET permission.
| Area | What Smart Island does |
|---|---|
| Floating overlay | Draws a compact island above other apps using Android's overlay window APIs. |
| Notification listener | Converts active notifications into glanceable island cards. |
| Smooth animation | Morphs between collapsed and expanded states with Compose animations. |
| Multiple notifications | Keeps a stack of active notifications and lets users move between them. |
| Calls and media | Detects incoming calls, music/media sessions, artwork, playback state, and progress. |
| Battery charging | Displays charging percentage, pulsing charging icon, and remaining charge time estimates. |
| Quick actions | Opens, dismisses, or launches supported notification content from the expanded island. |
| App shortcuts | Lets users select up to eight apps for quick access from the expanded island. |
| Custom controls | Lets users adjust width, height, position, corner radius, and indicator colors. |
| Theme support | Adapts the settings experience and overlay styling for light and dark themes. |
| Local settings | Persists island preferences with AndroidX DataStore Preferences. |
| Demo modes | Includes notification, call, music, and battery charging demo buttons for quick testing. |
| Gesture guide | Demonstrates swipe actions with looping animations and an interactive practice area. |
flowchart LR
A[Android notifications] --> B[SmartIslandNotificationListenerService]
B --> Repo[SmartIslandNotificationRepository]
E[DataStore settings] --> Repo
Repo --> D[SmartIslandOverlayService]
D --> F[WindowManager overlay]
F --> G[Jetpack Compose island UI]
G --> H[Open, dismiss, expand, or launch floating window]
| Layer | Tools |
|---|---|
| Language | Kotlin |
| UI | Jetpack Compose, Material 3 |
| Android services | NotificationListenerService, foreground service, WindowManager overlay |
| State and storage | Kotlin coroutines, StateFlow, AndroidX DataStore Preferences |
| Build | Gradle Wrapper, Android Gradle Plugin, JVM 17 |
minSdk 26)Clone the repository:
git clone https://github.com/agupta07505/SmartIsland.git
cd SmartIsland
Build a debug APK on Windows:
.\gradlew.bat assembleDebug
Build a debug APK on macOS or Linux:
./gradlew assembleDebug
Install the debug build on a connected device:
./gradlew installDebug
Then open Smart Island and complete the runtime setup:
Smart Island needs powerful Android permissions because it is an overlay and notification experience. The project keeps that behavior visible and local.
| Permission | Why it is used |
|---|---|
SYSTEM_ALERT_WINDOW | Draws the floating island above other apps. |
BIND_NOTIFICATION_LISTENER_SERVICE | Reads notification metadata so the island can show notification, call, and media states. |
FOREGROUND_SERVICE and FOREGROUND_SERVICE_SPECIAL_USE | Keeps the overlay service running while the island is enabled. |
At the time of this README, the app does not request INTERNET, does not include analytics, and does not send notification content to a remote server. See PRIVACY.md for the full privacy note.
SmartIsland/
|-- app/
| `-- src/main/
| |-- AndroidManifest.xml
| |-- java/com/agupta07505/smartisland/
| | |-- data/ # Settings model and DataStore repository
| | |-- model/ # Island notification and mode models
| | |-- service/ # Overlay and notification listener services
| | |-- ui/ # Compose screens and island components
| | `-- MainActivity.kt
| `-- res/
|-- gradle/
|-- build.gradle.kts
|-- settings.gradle.kts
`-- README.md
Contributions are welcome. Please read CONTRIBUTING.md before opening a pull request, and use the issue templates for bug reports or feature ideas.
By contributing, you agree that your contribution will be licensed under the same GNU General Public License v3.0 terms as the project.
Please report suspected vulnerabilities responsibly. See SECURITY.md for the reporting process and what information to include.
Smart Island is licensed under the GNU General Public License v3.0.
Copyright (C) 2026 Animesh Gupta.