# ⚠️ IMPORTANT: Android Build File Locations ## Critical Information for Future Development **DO NOT EDIT FILES IN `src-tauri/gen/android/` DIRECTLY!** ### File Structure This project has **TWO** sets of Android source files: 1. **`src-tauri/android/`** - **SOURCE FILES** (edit these!) - This is the template directory - Changes here need to be copied to the generated directory 2. **`src-tauri/gen/android/`** - **GENERATED BUILD DIRECTORY** (do not edit directly!) - This is where Gradle actually builds the APK - Files here may be overwritten during builds ### How to Make Changes to Android Code When you need to modify Android/Kotlin files: 1. **Edit the files in `src-tauri/android/src/main/java/`** 2. **Build using the provided script (which auto-syncs files)** ```bash ./scripts/build-android.sh ``` The build script automatically runs `./scripts/sync-android-sources.sh` which copies: - `src-tauri/android/src/main/java/com/dtourolle/jellytau/player/` → generated directory - `src-tauri/android/src/main/java/com/dtourolle/jellytau/security/` → generated directory 3. **Manual sync (if needed)** ```bash ./scripts/sync-android-sources.sh ``` ### Why This Matters - If you only edit `src-tauri/gen/android/`, your changes will be lost - If you only edit `src-tauri/android/`, your changes won't be in the build - **You must edit both** (or edit source and copy to generated) ### Key Files Player-related Kotlin files: - `player/JellyTauPlayer.kt` - Main player implementation - `player/JellyTauPlaybackService.kt` - MediaSession service for lockscreen controls - `security/SecureStorage.kt` - Android Keystore integration for secure credential storage Always check BOTH locations exist and match after making changes!