/* global BaseModule */
'use strict';
(function() {
var TelephonyMonitor = function(telephony) {
this.telephony = telephony;
};
TelephonyMonitor.STATES = [
'inCall',
'hasActiveCall'
];
BaseModule.create(TelephonyMonitor, {
name: 'TelephonyMonitor',
inCall: false,
/**
* Check if there is active call
* @param {Number} index If not specified, it means any active call;
* if specified, it means the active call at this SIM slot.
* @return {Boolean} There is active call or not.
*/
hasActiveCall: function(index) {
if (index) {
return this.telephony.active &&
this.telephony.active.serviceId === index;
} else {
return !!this.telephony.active;
}
},
handleEvent: function(evt) {
this.inCall = this.telephony.calls.length > 0;
this.publish('callschanged', {
detail: evt.detail
});
},
_start: function() {
this.telephony.addEventListener('callschanged', this);
},
_stop: function() {
this.telephony.removeEventListener('callschanged', this);
}
});
}());