A lightweight Android overlay that turns notifications, calls, and media playback into a floating glanceable island.
Current release: v3.2.1
Downloads | Features | Getting Started | Privacy | Roadmap | Contributing | Telegram Community
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.
- Download APK: Obtain the pre-compiled application package directly from the GitHub Releases (Latest) page.
- Total Downloads:
- Telegram Channel: Join our community at telegram.me/SmartIslandApp to stay updated, suggest features, and discuss the app.
- Security Verification: To ensure transparency and safety, you can inspect the files using VirusTotal or review the automatic building and packaging logs under the GitHub Actions tab.
| Area | What Smart Island does |
|---|---|
| Floating overlay | Draws a compact island above other apps using Android's overlay window APIs. |
| Notification listener & suppression | Intercepts notifications locally, presenting them in the island while suppressing system shade duplicates. |
| Landscape auto-hide | Automatically detects landscape orientation and temporarily hides the overlay during gaming and media. |
| Battery optimization guide | Includes dedicated setup cards to guide users in setting background battery optimization to 'No restrictions'. |
| Lock screen privacy | Opt-in support for displaying island status on the lock screen with optional sensitive content hiding. |
| Wavy music player | Renders an animated organic wavy seek bar with heart/repeat actions, active track metadata, and dynamic color pickers. |
| Smooth animations | Morphs seamlessly between collapsed and expanded states with Compose animations. |
| Multiple notifications | Maintains an active notification stack allowing users to page horizontally between active items. |
| Calls and media | Detects incoming calls, music/media sessions, album artwork, playback state, and seek progress. |
| Battery charging | Displays charging percentage, pulsing indicator icon, and dynamic remaining time-until-full estimates. |
| Quick actions | Opens, dismisses, or launches supported notification content into floating windows. |
| App shortcuts | Lets users configure up to eight apps for instant launch from the empty expanded island. |
| Custom controls | Provides sliders for width, height, X/Y offsets, corner radius, and preset/custom RGB color themes. |
| Theme support | Native light and dark theme styling for the settings interface and floating overlay UI. |
| Local settings | Persists all preferences locally using AndroidX DataStore Preferences. |
| Demo modes | Includes quick-test preview triggers for notifications, call alerts, music player, and battery charging. |
| Gesture guide | Interactive playground and animated tutorials demonstrating swipe up, swipe down, and horizontal paging. |
flowchart LR
A[Android notifications] --> B[SmartIslandNotificationListenerService]
B -->|Filter & Suppress| C[NotificationFilter]
C --> Repo[SmartIslandNotificationRepository]
E[DataStore settings] --> Repo
Repo --> D[SmartIslandOverlayService]
Sensor[IslandOrientationListener] -->|Hide in Landscape| D
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 |
- Android Studio with Android SDK 36 installed
- JDK 17
- Android device or emulator running Android 8.0+ (
minSdk 26) - Overlay permission enabled on the test device
- Notification listener access enabled for Smart Island
Clone the repository:
git clone https://github.com/agupta07505/SmartIsland.git
cd SmartIslandBuild a debug APK on Windows:
.\gradlew.bat assembleDebugBuild a debug APK on macOS or Linux:
./gradlew assembleDebugInstall the debug build on a connected device:
./gradlew installDebugThen open Smart Island and complete the runtime setup:
- Grant overlay permission.
- Enable notification listener access.
- Turn on Smart Island from the app.
- Use the demo buttons or trigger real notifications to test the island.
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
- Use the Gradle Wrapper committed in this repository.
- Keep secrets, keystores, local SDK paths, generated APKs, and personal notification screenshots out of git.
- Test overlay behavior on a physical device when possible; OEM Android builds can handle overlay and background-service rules differently.
- Some floating-window behavior depends on Android version and device support.
- The pass-through touch region and freeform "open in floating window" gesture rely on best-effort platform APIs and may be unavailable on some devices/OEM Android builds.
- For signed GitHub Actions releases, see docs/RELEASE_SIGNING.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.











