| 123456789101112131415161718192021222324252627282930313233343536373839 | 
							- import { NativeModules, NativeEventEmitter } from 'react-native';
 - 
 - /**
 -  * Thin wrapper around Apple's CallKit functionality.
 -  *
 -  * In CallKit requests are performed via actions (either user or system started)
 -  * and async events are reported via dedicated methods. This class exposes that
 -  * functionality in the form of methods and events. One important thing to note
 -  * is that even if an action is started by the system (because the user pressed
 -  * the "end call" button in the CallKit view, for example) the event will be
 -  * emitted in the same way as it would if the action originated from calling
 -  * the "endCall" method in this class, for example.
 -  *
 -  * Emitted events:
 -  * - performAnswerCallAction: The user pressed the answer button.
 -  * - performEndCallAction: The call should be ended.
 -  * - performSetMutedCallAction: The call muted state should change. The
 -  *   ancillary `data` object contains a `muted` attribute.
 -  * - providerDidReset: The system has reset, all calls should be terminated.
 -  *   This event gets no associated data.
 -  *
 -  * All events get a `data` object with a `callUUID` property, unless stated
 -  * otherwise.
 -  */
 - let CallKit = NativeModules.RNCallKit;
 - 
 - // XXX Rather than wrapping RNCallKit in a new class and forwarding the many
 - // methods of the latter to the former, add the one additional method that we
 - // need to RNCallKit.
 - if (CallKit) {
 -     const eventEmitter = new NativeEventEmitter(CallKit);
 - 
 -     CallKit = {
 -         ...CallKit,
 -         addListener: eventEmitter.addListener.bind(eventEmitter)
 -     };
 - }
 - 
 - export default CallKit;
 
 
  |