|
1 | 1 | 'use strict'; |
2 | 2 | var _InCallManager = require('react-native').NativeModules.InCallManager; |
3 | 3 |
|
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) { |
6 | 13 | setup = (setup === undefined) ? {} : setup; |
7 | 14 | let auto = (setup.auto === false) ? false : true; |
8 | 15 | let media = (setup.media === 'video') ? 'video' : 'audio'; |
9 | 16 | let ringback = (!!setup.ringback) ? (typeof setup.ringback === 'string') ? setup.ringback : "" : ""; |
10 | 17 | _InCallManager.start(media, auto, ringback); |
11 | | - }, |
12 | | - stop: function(setup) { |
| 18 | + } |
| 19 | + |
| 20 | + stop(setup) { |
13 | 21 | setup = (setup === undefined) ? {} : setup; |
14 | 22 | let busytone = (!!setup.busytone) ? (typeof setup.busytone === 'string') ? setup.busytone : "" : ""; |
15 | 23 | _InCallManager.stop(busytone); |
16 | | - }, |
17 | | - turnScreenOff: function() { |
| 24 | + } |
| 25 | + |
| 26 | + turnScreenOff() { |
18 | 27 | _InCallManager.turnScreenOff(); |
19 | | - }, |
20 | | - turnScreenOn: function() { |
| 28 | + } |
| 29 | + |
| 30 | + turnScreenOn() { |
21 | 31 | _InCallManager.turnScreenOn(); |
22 | | - }, |
23 | | - setKeepScreenOn: function(enable) { |
| 32 | + } |
| 33 | + |
| 34 | + setKeepScreenOn(enable) { |
24 | 35 | enable = (enable === true) ? true : false; |
25 | 36 | _InCallManager.setKeepScreenOn(enable); |
26 | | - }, |
27 | | - setSpeakerphoneOn: function(enable) { |
| 37 | + } |
| 38 | + |
| 39 | + setSpeakerphoneOn(enable) { |
28 | 40 | enable = (enable === true) ? true : false; |
29 | 41 | _InCallManager.setSpeakerphoneOn(enable); |
30 | | - }, |
31 | | - setForceSpeakerphoneOn: function(_flag) { |
| 42 | + } |
| 43 | + |
| 44 | + setForceSpeakerphoneOn(_flag) { |
32 | 45 | let flag = (typeof _flag === "boolean") ? (_flag) ? 1 : -1 : 0; |
33 | 46 | _InCallManager.setForceSpeakerphoneOn(flag); |
34 | | - }, |
35 | | - setMicrophoneMute: function(enable) { |
| 47 | + } |
| 48 | + |
| 49 | + setMicrophoneMute(enable) { |
36 | 50 | enable = (enable === true) ? true : false; |
37 | 51 | _InCallManager.setMicrophoneMute(enable); |
38 | | - }, |
39 | | - startRingtone: function(ringtone) { |
| 52 | + } |
| 53 | + |
| 54 | + startRingtone(ringtone) { |
40 | 55 | ringtone = (typeof ringtone === 'string') ? ringtone : "_DEFAULT_"; |
41 | 56 | _InCallManager.startRingtone(ringtone); |
42 | | - }, |
43 | | - stopRingtone: function() { |
| 57 | + } |
| 58 | + |
| 59 | + stopRingtone() { |
44 | 60 | _InCallManager.stopRingtone(); |
45 | | - }, |
46 | | - stopRingback: function() { |
| 61 | + } |
| 62 | + |
| 63 | + stopRingback() { |
47 | 64 | _InCallManager.stopRingback(); |
48 | | - }, |
49 | | - checkRecordPermission: async function() { |
| 65 | + } |
| 66 | + |
| 67 | + async checkRecordPermission() { |
50 | 68 | let result = await _InCallManager.checkRecordPermission(); |
| 69 | + this.recordPermission = result; |
51 | 70 | return result; |
52 | | - }, |
53 | | - requestRecordPermission: async function() { |
| 71 | + } |
| 72 | + |
| 73 | + async requestRecordPermission() { |
54 | 74 | let result = await _InCallManager.requestRecordPermission(); |
| 75 | + this.recordPermission = result; |
55 | 76 | return result; |
56 | | - }, |
57 | | -}; |
| 77 | + } |
| 78 | +} |
58 | 79 |
|
59 | | -module.exports = InCallManager; |
| 80 | +export default new InCallManager(); |
0 commit comments