Skip to content

Commit d586596

Browse files
committed
RU-T46 Working on PTT for headsets
1 parent 8e89dd7 commit d586596

5 files changed

Lines changed: 516 additions & 20 deletions

File tree

.github/copilot-instructions.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ Best Practices:
4848
- Handle errors gracefully and provide user feedback.
4949
- Implement proper offline support.
5050
- Ensure the user interface is intuitive and user-friendly and works seamlessly across different devices and screen sizes.
51+
- This is an expo managed project that uses prebuild, do not make native code changes outside of expo prebuild capabilities.
5152

5253
Additional Rules:
5354

docs/airpods-ptt-support.md

Lines changed: 32 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)