Skip to content

Commit 387bd17

Browse files
committed
index.js: use ES6 class singleton
1 parent 404ebcc commit 387bd17

File tree

1 file changed

+50
-29
lines changed

1 file changed

+50
-29
lines changed

index.js

Lines changed: 50 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,59 +1,80 @@
11
'use strict';
22
var _InCallManager = require('react-native').NativeModules.InCallManager;
33

4-
var InCallManager = {
5-
start: function(setup) {
4+
class InCallManager {
5+
constructor() {
6+
this.recordPermission = 'unknow';
7+
this.checkRecordPermission = this.checkRecordPermission.bind(this);
8+
this.requestRecordPermission = this.requestRecordPermission.bind(this);
9+
this.checkRecordPermission();
10+
}
11+
12+
start(setup) {
613
setup = (setup === undefined) ? {} : setup;
714
let auto = (setup.auto === false) ? false : true;
815
let media = (setup.media === 'video') ? 'video' : 'audio';
916
let ringback = (!!setup.ringback) ? (typeof setup.ringback === 'string') ? setup.ringback : "" : "";
1017
_InCallManager.start(media, auto, ringback);
11-
},
12-
stop: function(setup) {
18+
}
19+
20+
stop(setup) {
1321
setup = (setup === undefined) ? {} : setup;
1422
let busytone = (!!setup.busytone) ? (typeof setup.busytone === 'string') ? setup.busytone : "" : "";
1523
_InCallManager.stop(busytone);
16-
},
17-
turnScreenOff: function() {
24+
}
25+
26+
turnScreenOff() {
1827
_InCallManager.turnScreenOff();
19-
},
20-
turnScreenOn: function() {
28+
}
29+
30+
turnScreenOn() {
2131
_InCallManager.turnScreenOn();
22-
},
23-
setKeepScreenOn: function(enable) {
32+
}
33+
34+
setKeepScreenOn(enable) {
2435
enable = (enable === true) ? true : false;
2536
_InCallManager.setKeepScreenOn(enable);
26-
},
27-
setSpeakerphoneOn: function(enable) {
37+
}
38+
39+
setSpeakerphoneOn(enable) {
2840
enable = (enable === true) ? true : false;
2941
_InCallManager.setSpeakerphoneOn(enable);
30-
},
31-
setForceSpeakerphoneOn: function(_flag) {
42+
}
43+
44+
setForceSpeakerphoneOn(_flag) {
3245
let flag = (typeof _flag === "boolean") ? (_flag) ? 1 : -1 : 0;
3346
_InCallManager.setForceSpeakerphoneOn(flag);
34-
},
35-
setMicrophoneMute: function(enable) {
47+
}
48+
49+
setMicrophoneMute(enable) {
3650
enable = (enable === true) ? true : false;
3751
_InCallManager.setMicrophoneMute(enable);
38-
},
39-
startRingtone: function(ringtone) {
52+
}
53+
54+
startRingtone(ringtone) {
4055
ringtone = (typeof ringtone === 'string') ? ringtone : "_DEFAULT_";
4156
_InCallManager.startRingtone(ringtone);
42-
},
43-
stopRingtone: function() {
57+
}
58+
59+
stopRingtone() {
4460
_InCallManager.stopRingtone();
45-
},
46-
stopRingback: function() {
61+
}
62+
63+
stopRingback() {
4764
_InCallManager.stopRingback();
48-
},
49-
checkRecordPermission: async function() {
65+
}
66+
67+
async checkRecordPermission() {
5068
let result = await _InCallManager.checkRecordPermission();
69+
this.recordPermission = result;
5170
return result;
52-
},
53-
requestRecordPermission: async function() {
71+
}
72+
73+
async requestRecordPermission() {
5474
let result = await _InCallManager.requestRecordPermission();
75+
this.recordPermission = result;
5576
return result;
56-
},
57-
};
77+
}
78+
}
5879

59-
module.exports = InCallManager;
80+
export default new InCallManager();

0 commit comments

Comments
 (0)