Development environment setup for Calendar DND.
- Android Studio: Ladybug or newer
- JDK: 17 or higher
- Android SDK: API 26-36
# Clone the repository
git clone https://github.com/BrunoAFK/CalendarDND.git
cd CalendarDND
# Build debug APK
./gradlew assembleDebug
# Install on connected device
./gradlew installDebugCalendarDND/
├── app/
│ ├── src/
│ │ ├── main/ # Shared code
│ │ ├── play/ # Play Store flavor
│ │ └── manual/ # Manual distribution flavor
│ └── build.gradle.kts
├── docs/ # Documentation (you are here)
├── scripts/ # Build scripts
├── CLAUDE.md # AI assistant instructions
└── README.md # User-facing readme
com.brunoafk.calendardnd/
├── App.kt # Application class
├── ui/ # UI layer
│ ├── MainActivity.kt
│ ├── navigation/ # Navigation setup
│ ├── screens/ # All screens
│ ├── components/ # Reusable components
│ └── theme/ # Material theme
├── domain/ # Business logic (pure Kotlin)
│ ├── engine/ # AutomationEngine
│ ├── planning/ # Meeting resolvers
│ └── model/ # Data classes
├── data/ # Data access
│ ├── calendar/ # Calendar queries
│ ├── dnd/ # DND control
│ └── prefs/ # DataStore preferences
├── system/ # Android system integration
│ ├── alarms/ # Alarm scheduling
│ ├── workers/ # WorkManager jobs
│ ├── receivers/ # Broadcast receivers
│ └── notifications/ # Notification helpers
└── util/ # Utilities
./gradlew assembleDebugOutput: app/build/outputs/apk/play/debug/app-play-debug.apk
Debug tools are enabled by default in debug builds. To enable in release:
./gradlew assemblePlayRelease -PdebugToolsEnabled=true- Enable Developer Options on your Android device
- Enable USB Debugging
- Connect via USB
- Run:
./gradlew installDebugThe app needs these permissions to function. Grant them during testing:
- Calendar Access: Required to read events
- Notification Policy Access: Required to control DND (Settings > Apps > Special access)
- Exact Alarms: Required for precise scheduling (Android 12+)
- Notifications: Required for pre-meeting warnings (Android 13+)
- Open Android Studio
- File > Open > Select
CalendarDNDfolder - Wait for Gradle sync
- Select
appconfiguration - Click Run
- Kotlin
- Compose Multiplatform IDE Support
./gradlew clean
./gradlew --refresh-dependenciesEnsure Android Studio uses JDK 17:
- File > Settings > Build > Gradle > Gradle JDK
adb devices
adb kill-server
adb start-server- Architecture - Understand the codebase
- Testing - Run and write tests
- Configuration - Build flavors and toggles