Skip to content

Commit

Permalink
Added getIsWiredHeadsetPluggedIn to bridge methods (#42)
Browse files Browse the repository at this point in the history
* Added native method so can know initial state of isWiredHeadsetPluggedIn

* Changed Impelementation to async style and restrict only ios
  • Loading branch information
masaori authored and zxcpoiu committed Aug 8, 2017
1 parent 7e41276 commit dd6a4f7
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 1 deletion.
9 changes: 9 additions & 0 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,15 @@ class InCallManager {
_InCallManager.turnScreenOn();
}

async getIsWiredHeadsetPluggedIn() {
if (Platform.OS === 'ios') {
return await _InCallManager.getIsWiredHeadsetPluggedIn();
} else {
console.log("Android doesn't support getIsWiredHeadsetPluggedIn() yet.");
return null;
}
}

setFlashOn(enable, brightness) {
if (Platform.OS === 'ios') {
enable = (enable === true) ? true : false;
Expand Down
7 changes: 7 additions & 0 deletions ios/RNInCallManager/RNInCallManager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,13 @@ class RNInCallManager: NSObject, AVAudioPlayerDelegate {
return false
}

@objc func getIsWiredHeadsetPluggedIn(_ resolve: RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) -> Void {
let isWiredHeadsetPluggedIn = self.isWiredHeadsetPluggedIn()
resolve([
["isWiredHeadsetPluggedIn": isWiredHeadsetPluggedIn]
])
}

func isWiredHeadsetPluggedIn() -> Bool {
// --- only check for a audio device plugged into headset port instead bluetooth/usb/hdmi
return self.checkAudioRoute([AVAudioSessionPortHeadphones], "output") || self.checkAudioRoute([AVAudioSessionPortHeadsetMic], "input")
Expand Down
2 changes: 1 addition & 1 deletion ios/RNInCallManager/RNInCallManagerBridge.m
Original file line number Diff line number Diff line change
Expand Up @@ -26,5 +26,5 @@ @interface RCT_EXTERN_REMAP_MODULE(InCallManager, RNInCallManager, NSObject)
RCT_EXTERN_METHOD(checkCameraPermission:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
RCT_EXTERN_METHOD(requestCameraPermission:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
RCT_EXTERN_METHOD(getAudioUriJS:(NSString *)audioType fileType:(NSString *)fileType resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)

RCT_EXTERN_METHOD(getIsWiredHeadsetPluggedIn:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
@end

0 comments on commit dd6a4f7

Please sign in to comment.