@@ -143,18 +143,41 @@ The service provides audio feedback for PTT actions:
143143## Files Modified/Created
144144
145145### New Files
146- - ` src/services/media-button.service.ts ` - Main service
146+ - ` src/services/media-button.service.ts ` - Main TypeScript service
147147- ` src/services/__tests__/media-button.service.test.ts ` - Tests
148- - ` ios/ResgridUnit/MediaButtonModule.swift ` - iOS native module
149- - ` ios/ResgridUnit/MediaButtonModule.m ` - iOS bridge
150- - ` android/app/src/main/java/com/resgrid/unit/development/MediaButtonModule.kt ` - Android native module
151- - ` android/app/src/main/java/com/resgrid/unit/development/MediaButtonPackage.kt ` - Android package
152- - ` plugins/withMediaButtonModule.js ` - Expo config plugin
148+ - ` plugins/withMediaButtonModule.js ` - Expo config plugin (generates native modules during prebuild)
153149- ` docs/airpods-ptt-support.md ` - This documentation
154150
155151### Modified Files
156152- ` src/stores/app/bluetooth-audio-store.ts ` - Added media button settings
157153- ` src/stores/app/livekit-store.ts ` - Integration with room connection/disconnection
158- - ` ios/ResgridUnit/ResgridUnit-Bridging-Header.h ` - Added React Native imports
159- - ` android/app/src/main/java/com/resgrid/unit/development/MainApplication.kt ` - Registered package
160- - ` app.config.ts ` - Added config plugin
154+ - ` app.config.ts ` - Added config plugin reference
155+
156+ ### Generated During Prebuild (via config plugin)
157+ The following native files are generated automatically by ` withMediaButtonModule.js ` during ` expo prebuild ` :
158+
159+ ** iOS:**
160+ - ` ios/ResgridUnit/MediaButtonModule.swift ` - iOS native module using MPRemoteCommandCenter
161+ - ` ios/ResgridUnit/MediaButtonModule.m ` - Objective-C bridge file
162+ - Updates ` ResgridUnit-Bridging-Header.h ` with required React Native imports
163+
164+ ** Android:**
165+ - ` android/app/src/main/java/{package}/MediaButtonModule.kt ` - Android native module using MediaSession
166+ - ` android/app/src/main/java/{package}/MediaButtonPackage.kt ` - React Native package registration
167+ - Updates ` MainApplication.kt ` to register the MediaButtonPackage
168+
169+ ## Build Instructions
170+
171+ Since this project uses Expo with prebuild, the native modules are generated automatically:
172+
173+ ``` bash
174+ # Clean and regenerate native projects
175+ npx expo prebuild --clean
176+
177+ # Or for specific platform
178+ npx expo prebuild --platform ios --clean
179+ npx expo prebuild --platform android --clean
180+
181+ # Then build normally
182+ yarn ios # or yarn android
183+ ```
0 commit comments