Skip to content

Commit ff7eccd

Browse files
aatalykianlin
authored andcommitted
refactor/listener (#43)
1 parent a1bec02 commit ff7eccd

File tree

2 files changed

+72
-43
lines changed

2 files changed

+72
-43
lines changed

actions.js

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
import {
2+
NativeModules,
3+
NativeEventEmitter,
4+
} from 'react-native';
5+
6+
const _RNCallKit = NativeModules.RNCallKit;
7+
const _RNCallKitEmitter = new NativeEventEmitter(_RNCallKit);
8+
9+
const RNCallKitDidReceiveStartCallAction = 'RNCallKitDidReceiveStartCallAction';
10+
const RNCallKitPerformAnswerCallAction = 'RNCallKitPerformAnswerCallAction';
11+
const RNCallKitPerformEndCallAction = 'RNCallKitPerformEndCallAction';
12+
const RNCallKitDidActivateAudioSession = 'RNCallKitDidActivateAudioSession';
13+
const RNCallKitDidDisplayIncomingCall = 'RNCallKitDidDisplayIncomingCall';
14+
const RNCallKitDidPerformSetMutedCallAction = 'RNCallKitDidPerformSetMutedCallAction';
15+
16+
didReceiveStartCallAction = handler => {
17+
const listener = _RNCallKitEmitter.addListener(
18+
RNCallKitDidReceiveStartCallAction,
19+
(data) => { handler(data);}
20+
);
21+
_RNCallKit._startCallActionEventListenerAdded();
22+
return listener;
23+
}
24+
25+
answerCall = handler => (
26+
_RNCallKitEmitter.addListener(
27+
RNCallKitPerformAnswerCallAction,
28+
(data) => { handler(data);}
29+
)
30+
)
31+
32+
endCall = handler => (
33+
_RNCallKitEmitter.addListener(
34+
RNCallKitPerformEndCallAction,
35+
(data) => { handler(data); }
36+
)
37+
)
38+
39+
didActivateAudioSession = handler => (
40+
_RNCallKitEmitter.addListener(
41+
RNCallKitDidActivateAudioSession,
42+
() => { handler(); }
43+
)
44+
)
45+
46+
didDisplayIncomingCall = handler => (
47+
_RNCallKitEmitter.addListener(
48+
RNCallKitDidDisplayIncomingCall,
49+
(data) => { handler(data.error); }
50+
)
51+
)
52+
53+
didPerformSetMutedCallAction = handler => (
54+
_RNCallKitEmitter.addListener(
55+
RNCallKitDidPerformSetMutedCallAction,
56+
(data) => { handler(data.muted); }
57+
)
58+
)
59+
60+
export const listeners = {
61+
didReceiveStartCallAction,
62+
answerCall,
63+
endCall,
64+
didActivateAudioSession,
65+
didDisplayIncomingCall,
66+
didPerformSetMutedCallAction,
67+
};
68+

index.js

Lines changed: 4 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -2,59 +2,20 @@
22

33
import {
44
NativeModules,
5-
NativeEventEmitter,
65
Platform,
76
} from 'react-native';
87

8+
import { listeners } from './actions'
9+
910
const _RNCallKit = NativeModules.RNCallKit;
10-
const _RNCallKitEmitter = new NativeEventEmitter(_RNCallKit);
1111

1212
const _callkitEventHandlers = new Map();
1313

14-
const RNCallKitDidReceiveStartCallAction = 'RNCallKitDidReceiveStartCallAction';
15-
const RNCallKitPerformAnswerCallAction = 'RNCallKitPerformAnswerCallAction';
16-
const RNCallKitPerformEndCallAction = 'RNCallKitPerformEndCallAction';
17-
const RNCallKitDidActivateAudioSession = 'RNCallKitDidActivateAudioSession';
18-
const RNCallKitDidDisplayIncomingCall = 'RNCallKitDidDisplayIncomingCall';
19-
const RNCallKitDidPerformSetMutedCallAction = 'RNCallKitDidPerformSetMutedCallAction';
20-
2114
export default class RNCallKit {
15+
2216
static addEventListener(type, handler) {
2317
if (Platform.OS !== 'ios') return;
24-
var listener;
25-
if (type === 'didReceiveStartCallAction') {
26-
listener = _RNCallKitEmitter.addListener(
27-
RNCallKitDidReceiveStartCallAction,
28-
(data) => { handler(data);}
29-
);
30-
_RNCallKit._startCallActionEventListenerAdded();
31-
} else if (type === 'answerCall') {
32-
listener = _RNCallKitEmitter.addListener(
33-
RNCallKitPerformAnswerCallAction,
34-
(data) => { handler(data);}
35-
);
36-
} else if (type === 'endCall') {
37-
listener = _RNCallKitEmitter.addListener(
38-
RNCallKitPerformEndCallAction,
39-
(data) => { handler(data); }
40-
);
41-
} else if (type === 'didActivateAudioSession') {
42-
listener = _RNCallKitEmitter.addListener(
43-
RNCallKitDidActivateAudioSession,
44-
() => { handler(); }
45-
);
46-
} else if (type === 'didDisplayIncomingCall') {
47-
listener = _RNCallKitEmitter.addListener(
48-
RNCallKitDidDisplayIncomingCall,
49-
(data) => { handler(data.error); }
50-
);
51-
} else if (type === 'didPerformSetMutedCallAction') {
52-
listener = _RNCallKitEmitter.addListener(
53-
RNCallKitDidPerformSetMutedCallAction,
54-
(data) => { handler(data.muted); }
55-
);
56-
}
57-
18+
const listener = listeners[type](handler)
5819
_callkitEventHandlers.set(handler, listener);
5920
}
6021

0 commit comments

Comments
 (0)