/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/reconnect-react-native-callkeep@4.1.1/index.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
import{NativeModules,Platform,Alert}from"react-native";import{listeners,emit}from"./actions";const RNCallKeepModule=NativeModules.RNCallKeep,isIOS="ios"===Platform.OS,supportConnectionService=!isIOS&&Platform.Version>=23,CONSTANTS={END_CALL_REASONS:{FAILED:1,REMOTE_ENDED:2,UNANSWERED:3,ANSWERED_ELSEWHERE:4,DECLINED_ELSEWHERE:isIOS?5:2,MISSED:isIOS?2:6}};export{CONSTANTS};class RNCallKeep{constructor(){this._callkeepEventHandlers=new Map}addEventListener=(e,l)=>{const a=listeners[e](l);this._callkeepEventHandlers.set(e,a)};removeEventListener=e=>{const l=this._callkeepEventHandlers.get(e);l&&(l.remove(),this._callkeepEventHandlers.delete(e))};setup=async e=>isIOS?this._setupIOS(e.ios):this._setupAndroid(e.android);registerPhoneAccount=()=>{isIOS||RNCallKeepModule.registerPhoneAccount()};registerAndroidEvents=()=>{isIOS||RNCallKeepModule.registerEvents()};hasDefaultPhoneAccount=async e=>{if(!isIOS)return this._hasDefaultPhoneAccount(e)};displayIncomingCall=(e,l,a="",t="number",o=!1,s=null)=>{if(!isIOS)return void RNCallKeepModule.displayIncomingCall(e,l,a);let n=!!(s?.ios?.supportsHolding??1),i=!!(s?.ios?.supportsDTMF??1),r=!!(s?.ios?.supportsGrouping??1),p=!!(s?.ios?.supportsUngrouping??1);RNCallKeepModule.displayIncomingCall(e,l,t,o,a,n,i,r,p)};answerIncomingCall=e=>{RNCallKeepModule.answerIncomingCall(e)};startCall=(e,l,a,t="number",o=!1)=>{isIOS?RNCallKeepModule.startCall(e,l,a,t,o):RNCallKeepModule.startCall(e,l,a)};checkPhoneAccountEnabled=async()=>{if(!isIOS)return RNCallKeepModule.checkPhoneAccountEnabled()};isConnectionServiceAvailable=async()=>!!isIOS||RNCallKeepModule.isConnectionServiceAvailable();reportConnectingOutgoingCallWithUUID=e=>{isIOS&&RNCallKeepModule.reportConnectingOutgoingCallWithUUID(e)};reportConnectedOutgoingCallWithUUID=e=>{isIOS&&RNCallKeepModule.reportConnectedOutgoingCallWithUUID(e)};reportEndCallWithUUID=(e,l)=>RNCallKeepModule.reportEndCallWithUUID(e,l);rejectCall=e=>{isIOS?RNCallKeepModule.endCall(e):RNCallKeepModule.rejectCall(e)};isCallActive=async e=>await RNCallKeepModule.isCallActive(e);getCalls=()=>{if(isIOS)return RNCallKeepModule.getCalls()};endCall=e=>RNCallKeepModule.endCall(e);endAllCalls=()=>RNCallKeepModule.endAllCalls();supportConnectionService=()=>supportConnectionService;hasPhoneAccount=async()=>!!isIOS||await RNCallKeepModule.hasPhoneAccount();hasOutgoingCall=async()=>isIOS?null:await RNCallKeepModule.hasOutgoingCall();setMutedCall=(e,l)=>{RNCallKeepModule.setMutedCall(e,l)};sendDTMF=(e,l)=>RNCallKeepModule.sendDTMF(e,l);toggleAudioRouteSpeaker=(e,l)=>isIOS?null:RNCallKeepModule.toggleAudioRouteSpeaker(e,l);checkIfBusy=()=>isIOS?RNCallKeepModule.checkIfBusy():Promise.reject("RNCallKeep.checkIfBusy was called from unsupported OS");checkSpeaker=()=>isIOS?RNCallKeepModule.checkSpeaker():Promise.reject("RNCallKeep.checkSpeaker was called from unsupported OS");setAvailable=e=>{isIOS||RNCallKeepModule.setAvailable(e)};setForegroundServiceSettings=e=>{isIOS||RNCallKeepModule.setForegroundServiceSettings({foregroundService:e})};canMakeMultipleCalls=e=>{isIOS||RNCallKeepModule.canMakeMultipleCalls(e)};setCurrentCallActive=e=>{isIOS||RNCallKeepModule.setCurrentCallActive(e)};updateDisplay=(e,l,a,t=null)=>{if(!isIOS)return void RNCallKeepModule.updateDisplay(e,l,a);let o={};t&&t.ios&&(o={...t.ios}),RNCallKeepModule.updateDisplay(e,l,a,o)};setOnHold=(e,l)=>RNCallKeepModule.setOnHold(e,l);setReachable=()=>RNCallKeepModule.setReachable();reportUpdatedCall=(e,l)=>(console.warn("RNCallKeep.reportUpdatedCall is deprecated, use RNCallKeep.updateDisplay instead"),isIOS?RNCallKeepModule.reportUpdatedCall(e,l):Promise.reject("RNCallKeep.reportUpdatedCall was called from unsupported OS"));_setupIOS=async e=>new Promise(((l,a)=>{e.appName||a('RNCallKeep.setup: option "appName" is required'),"string"!=typeof e.appName&&a('RNCallKeep.setup: option "appName" should be of type "string"'),l(RNCallKeepModule.setup(e))}));_setupAndroid=async e=>{RNCallKeepModule.setup(e)};promptAndroidPermissions=async e=>{const l=await RNCallKeepModule.checkPhoneAccountPermission(e.additionalPermissions||[]);return!!await this._alert(e,l)&&(RNCallKeepModule.openPhoneAccounts(),!0)};_hasDefaultPhoneAccount=async e=>{const l=await RNCallKeepModule.checkDefaultPhoneAccount();await this._alert(e,l)&&RNCallKeepModule.openPhoneAccountSettings()};_alert=async(e,l)=>new Promise(((a,t)=>{if(!l)return a(!1);Alert.alert(e.alertTitle,e.alertDescription,[{text:e.cancelButton,onPress:t,style:"cancel"},{text:e.okButton,onPress:()=>a(!0)}],{cancelable:!0})}));backToForeground(){isIOS||NativeModules.RNCallKeep.backToForeground()}}export default new RNCallKeep;
//# sourceMappingURL=/sm/c4f2d90c3ceb668d6e24e7ef245667acdf456a5d827e4e0cc6e31745020099d6.map