From 821413607a0718156f9d25d895e89b1c3d37aa8b Mon Sep 17 00:00:00 2001 From: Daniel Narvaez Date: Wed, 06 Feb 2013 13:49:14 +0000 Subject: Copy various bits from gaia --- (limited to 'apps/system/emergency-call/js/dialer.js') diff --git a/apps/system/emergency-call/js/dialer.js b/apps/system/emergency-call/js/dialer.js new file mode 100644 index 0000000..ff93009 --- /dev/null +++ b/apps/system/emergency-call/js/dialer.js @@ -0,0 +1,80 @@ +'use strict'; + +var CallHandler = { + _call: null, + _telephony: window.navigator.mozTelephony, + + call: function ch_call(number) { + var sanitizedNumber = number.replace(/-/g, ''); + var telephony = this._telephony; + if (telephony) { + this._call = telephony.dialEmergency(sanitizedNumber); + var call = this._call; + if (call) { + var cb = function clearPhoneView() { + KeypadManager.updatePhoneNumber(''); + }; + call.onconnected = cb; + + call.ondisconnected = function callEnded() { + cb(); + CallScreen.hide(); + }; + + CallScreen.number = call.number; + CallScreen.show(); + } + } + }, + + end: function ch_end() { + if (!this._call) { + CallScreen.hide(); + return; + } + + this._call.hangUp(); + this._call = null; + }, + + toggleSpeaker: function ch_toggleSpeaker() { + this._telephony.speakerEnabled = !this._telephony.speakerEnabled; + } +}; + +var CallScreen = { + screen: document.getElementById('call-screen'), + numberView: document.getElementById('emergency-number'), + + hangUpButton: document.getElementById('callbar-hang-up'), + speakerButton: document.getElementById('speaker'), + + set number(value) { + this.numberView.textContent = value; + }, + + init: function cs_init() { + this.hangUpButton.addEventListener('mouseup', + CallHandler.end.bind(CallHandler)); + this.speakerButton.addEventListener('click', this.toggleSpeaker.bind(this)); + }, + + show: function cs_show() { + this.screen.classList.add('displayed'); + }, + + hide: function cs_hide() { + this.screen.classList.remove('displayed'); + }, + + toggleSpeaker: function cs_toggleSpeaker() { + this.speakerButton.classList.toggle('speak'); + CallHandler.toggleSpeaker(); + } +}; + +window.addEventListener('load', function onload() { + window.removeEventListener('load', onload); + KeypadManager.init(); + CallScreen.init(); +}); -- cgit v0.9.1