Automatically expands grouped Samsung notifications using Android Accessibility Service.
Auto Unstack is a lightweight utility that monitors the notification shade and automatically expands grouped notification stacks on Samsung devices. Never miss notifications hidden behind a badge count again.
- 🔄 Automatic expansion — Grouped notifications expand instantly when the notification shade opens
- 🔋 Lightweight — Minimal battery impact with smart event filtering
- 🛡️ Privacy-first — No personal data collection or network access
- ⚙️ Simple settings — Single toggle to enable/disable
- 📱 Kotlin + Compose — Modern, maintainable Android code
Auto Unstack uses Android's AccessibilityService to:
- Monitor the notification shade state
- Detect numeric badges on grouped notifications (e.g., "2", "5", "12")
- Identify clickable notification containers on the right side of the screen
- Automatically tap to expand the grouped notification stack
- Apply intelligent cooldown to prevent accidental double-clicks
The service runs only when the notification shade is active and stops processing once notifications are expanded.
This app requires the Accessibility Service permission to:
- Monitor notification shade state changes
- Access notification UI hierarchy
- Simulate user taps on notifications
This permission does NOT allow:
- Reading notification content or sensitive data
- Interfering with other app functionality
- Background activity outside the notification shade
See Android Accessibility Service documentation for more details.
Auto Unstack collects NO personal data:
- No analytics tracking
- No crash reporting with personal info
- No network requests
- No telemetry
- All processing happens locally on your device
The app only accesses:
- Notification UI structure (to find badges)
- Notification shade state
- Screen dimensions
- Download the latest
app-release.apkfrom Releases - Enable Unknown Sources in Settings → Security (if needed)
- Install the APK on your device
- Open Auto Unstack and enable the service
- Enable Accessibility Service in Settings → Accessibility → Auto Unstack
See Build Instructions below.
- Install and open the app
- Enable the toggle — "Enable Auto Unstack" in the app settings
- Enable Accessibility Service — Go to Settings → Accessibility → Auto Unstack → toggle on
- Pull down notification shade — Grouped notifications will expand automatically
That's it! The service runs in the background and monitors your notification shade.
On Samsung devices, battery optimization may block the Accessibility Service. If Auto Unstack stops working:
- Go to Settings → Apps → Battery → Battery Optimization
- Find "Auto Unstack"
- Select "Don't optimize" or remove from optimization list
- Restart the app
- Android Studio Koala or later
- Android SDK 29+ (for compilation)
- Kotlin 2.0+
- Gradle 9.4+
./gradlew assembleDebugOutput: app/build/outputs/apk/debug/app-debug.apk
First, create a keystore (if you haven't already):
keytool -genkey -v -keystore auto-unstack-key.jks \
-keyalg RSA -keysize 2048 -validity 10000 \
-alias auto-unstackThen, set environment variables and build:
export KEYSTORE_PATH=auto-unstack-key.jks
export KEYSTORE_PASSWORD=your_password
export KEY_ALIAS=auto-unstack
export KEY_PASSWORD=your_key_password
./gradlew assembleReleaseOutput: app/build/outputs/apk/release/app-release.apk
- Language: Kotlin
- UI Framework: Jetpack Compose
- Accessibility: Android AccessibilityService
- Storage: SharedPreferences
- Minimum API: 29
- Target API: 35
auto-unstack/
├── app/
│ ├── src/main/
│ │ ├── java/com/autounstack/app/
│ │ │ ├── MainActivity.kt # Settings screen (Compose)
│ │ │ ├── NotificationExpandService.kt # Core service
│ │ │ └── PreferencesManager.kt # SharedPreferences wrapper
│ │ ├── res/xml/
│ │ │ └── accessibility_service_config.xml # Service configuration
│ │ └── AndroidManifest.xml
│ └── build.gradle.kts
├── build.gradle.kts
├── gradle.properties
├── README.md
├── LICENSE
└── CONTRIBUTING.md
- Works with Samsung notifications — Designed specifically for Samsung's grouped notification stacks
- Requires Accessibility Service — Cannot function without this permission
- Limited to notification shade — Does not work when the shade is closed
- No root required — Uses standard Android Accessibility APIs
- Battery optimization may interfere on some Samsung devices (see Battery Optimization)
- Some third-party notification managers may not be compatible
This project is licensed under the MIT License. See LICENSE file for details.
See CONTRIBUTING.md for guidelines.
This app is provided "as-is" without warranty. Use at your own risk. The developer is not responsible for any device damage or data loss resulting from the use of this app.
Have questions or found a bug? Open an issue on GitHub.
Made with ❤️ for Samsung users who hate grouped notifications