Generated page. Written from IdaMilk/VolumeEnforcer at commit 6120773 on 2026-07-28. The repository has 1,002 files, nearly all Gradle and Android build scaffolding; the application is four Kotlin files.
VolumeEnforcer
What is it?
A minimal Android utility for Android Enterprise Dedicated Devices managed by Microsoft Intune. It sets every audio stream to maximum volume on boot and re-enforces it every 15 minutes. There is no visible UI.
Purpose
Kiosk devices used as alert stations or announcement terminals are useless if muted, and volume gets changed — by an accidental key press, a stray gesture, or someone silencing a device and forgetting.
An audible alert that nobody hears is a safety problem, not an inconvenience. This removes the failure mode entirely: whatever changes the volume, it comes back within fifteen minutes and always after a reboot.
Audio streams enforced
| Stream | Covers |
|---|---|
STREAM_MUSIC | Media playback |
STREAM_RING | Incoming calls |
STREAM_NOTIFICATION | Notifications |
STREAM_ALARM | Alarms |
STREAM_SYSTEM | System sounds |
STREAM_DTMF | Dial tones |
STREAM_ACCESSIBILITY | Accessibility audio |
All seven, rather than just the obvious ones — because which stream an alerting app uses is not always predictable.
How it Works
Four Kotlin classes, and the whole design is in their names:
| Class | Role |
|---|---|
BootReceiver | Broadcast receiver — enforces on device boot |
VolumeWorker | WorkManager worker — the 15-minute enforcement cycle |
VolumeManager | Applies maximum volume across all streams |
MainActivity | Entry point; the app has no meaningful UI |
Using WorkManager rather than a foreground service is the right call for a periodic task: it survives reboots, respects Doze, and needs no persistent notification. Fifteen minutes is also the shortest interval WorkManager permits for periodic work, so the cycle is as tight as the platform allows.
Tech Stack
| Technology | Purpose |
|---|---|
| Kotlin | Language |
| Android WorkManager | Periodic enforcement |
| Gradle | Build |
| Microsoft Intune | Deployment and device management |
Operations
Distributed through Intune as a line-of-business app to Android Enterprise Dedicated Device enrolments. A signed app-release.apk is committed under app/release/, so the deployable artefact is available without a build — convenient, though it means the committed APK and the current source can drift.
local.properties is also committed. It normally holds a machine-specific Android SDK path, so it is noise rather than a risk, but it is conventionally gitignored and will differ per developer.
Repository
| Repository | IdaMilk/VolumeEnforcer |
| Primary language | Kotlin |
| Files | 1,002 (about 20 meaningful) |
| Last activity | 2026-04-08 |
| Status | Active |
The only Android project in the organisation, and the largest repository by file count despite being one of the smallest by code — Gradle wrappers and generated Android resources account for nearly all of it. A CLAUDE.md is present.