summaryrefslogtreecommitdiffstats
path: root/dom/system/gonk/RILSystemMessengerHelper.js
diff options
context:
space:
mode:
Diffstat (limited to 'dom/system/gonk/RILSystemMessengerHelper.js')
-rw-r--r--dom/system/gonk/RILSystemMessengerHelper.js169
1 files changed, 169 insertions, 0 deletions
diff --git a/dom/system/gonk/RILSystemMessengerHelper.js b/dom/system/gonk/RILSystemMessengerHelper.js
new file mode 100644
index 000000000..6ef263b66
--- /dev/null
+++ b/dom/system/gonk/RILSystemMessengerHelper.js
@@ -0,0 +1,169 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+"use strict";
+
+const {classes: Cc, interfaces: Ci, utils: Cu, results: Cr} = Components;
+
+Cu.import("resource://gre/modules/Services.jsm");
+Cu.import("resource://gre/modules/XPCOMUtils.jsm");
+
+var RSM = {};
+Cu.import("resource://gre/modules/RILSystemMessenger.jsm", RSM);
+
+const RILSYSTEMMESSENGERHELPER_CONTRACTID =
+ "@mozilla.org/ril/system-messenger-helper;1";
+const RILSYSTEMMESSENGERHELPER_CID =
+ Components.ID("{19d9a4ea-580d-11e4-8f6c-37ababfaaea9}");
+
+XPCOMUtils.defineLazyServiceGetter(this, "gSystemMessenger",
+ "@mozilla.org/system-message-internal;1",
+ "nsISystemMessagesInternal");
+
+XPCOMUtils.defineLazyServiceGetter(this, "gStkCmdFactory",
+ "@mozilla.org/icc/stkcmdfactory;1",
+ "nsIStkCmdFactory");
+
+var DEBUG = false;
+function debug(s) {
+ dump("-@- RILSystemMessenger: " + s + "\n");
+};
+
+// Read debug setting from pref.
+try {
+ let debugPref = Services.prefs.getBoolPref("ril.debugging.enabled");
+ DEBUG = DEBUG || debugPref;
+} catch (e) {}
+
+/**
+ * RILSystemMessengerHelper
+ */
+function RILSystemMessengerHelper() {
+ this.messenger = new RSM.RILSystemMessenger();
+ this.messenger.broadcastMessage = (aType, aMessage) => {
+ if (DEBUG) {
+ debug("broadcastMessage: aType: " + aType +
+ ", aMessage: "+ JSON.stringify(aMessage));
+ }
+
+ gSystemMessenger.broadcastMessage(aType, aMessage);
+ };
+
+ this.messenger.createCommandMessage = (aStkProactiveCmd) => {
+ return gStkCmdFactory.createCommandMessage(aStkProactiveCmd);
+ };
+}
+RILSystemMessengerHelper.prototype = {
+
+ classID: RILSYSTEMMESSENGERHELPER_CID,
+ QueryInterface: XPCOMUtils.generateQI([Ci.nsITelephonyMessenger,
+ Ci.nsISmsMessenger,
+ Ci.nsICellbroadcastMessenger,
+ Ci.nsIMobileConnectionMessenger,
+ Ci.nsIIccMessenger]),
+
+ /**
+ * RILSystemMessenger instance.
+ */
+ messenger: null,
+
+ /**
+ * nsITelephonyMessenger API
+ */
+ notifyNewCall: function() {
+ this.messenger.notifyNewCall();
+ },
+
+ notifyCallEnded: function(aServiceId, aNumber, aCdmaWaitingNumber, aEmergency,
+ aDuration, aOutgoing, aHangUpLocal) {
+ this.messenger.notifyCallEnded(aServiceId, aNumber, aCdmaWaitingNumber, aEmergency,
+ aDuration, aOutgoing, aHangUpLocal);
+ },
+
+ notifyUssdReceived: function(aServiceId, aMessage, aSessionEnded) {
+ this.messenger.notifyUssdReceived(aServiceId, aMessage, aSessionEnded);
+ },
+
+ /**
+ * nsISmsMessenger API
+ */
+ notifySms: function(aNotificationType, aId, aThreadId, aIccId, aDelivery,
+ aDeliveryStatus, aSender, aReceiver, aBody, aMessageClass,
+ aTimestamp, aSentTimestamp, aDeliveryTimestamp, aRead) {
+ this.messenger.notifySms(aNotificationType, aId, aThreadId, aIccId, aDelivery,
+ aDeliveryStatus, aSender, aReceiver, aBody, aMessageClass,
+ aTimestamp, aSentTimestamp, aDeliveryTimestamp, aRead);
+ },
+
+ /**
+ * nsICellbroadcastMessenger API
+ */
+ notifyCbMessageReceived: function(aServiceId, aGsmGeographicalScope, aMessageCode,
+ aMessageId, aLanguage, aBody, aMessageClass,
+ aTimestamp, aCdmaServiceCategory, aHasEtwsInfo,
+ aEtwsWarningType, aEtwsEmergencyUserAlert, aEtwsPopup) {
+ this.messenger.notifyCbMessageReceived(aServiceId, aGsmGeographicalScope, aMessageCode,
+ aMessageId, aLanguage, aBody, aMessageClass,
+ aTimestamp, aCdmaServiceCategory, aHasEtwsInfo,
+ aEtwsWarningType, aEtwsEmergencyUserAlert, aEtwsPopup);
+ },
+
+ /**
+ * nsIMobileConnectionMessenger API
+ */
+ notifyCdmaInfoRecDisplay: function(aServiceId, aDisplay) {
+ this.messenger.notifyCdmaInfoRecDisplay(aServiceId, aDisplay);
+ },
+
+ notifyCdmaInfoRecCalledPartyNumber: function(aServiceId, aType, aPlan,
+ aNumber, aPi, aSi) {
+ this.messenger.notifyCdmaInfoRecCalledPartyNumber(aServiceId, aType, aPlan,
+ aNumber, aPi, aSi);
+ },
+
+ notifyCdmaInfoRecCallingPartyNumber: function(aServiceId, aType, aPlan,
+ aNumber, aPi, aSi) {
+ this.messenger.notifyCdmaInfoRecCallingPartyNumber(aServiceId, aType, aPlan,
+ aNumber, aPi, aSi);
+ },
+
+ notifyCdmaInfoRecConnectedPartyNumber: function(aServiceId, aType, aPlan,
+ aNumber, aPi, aSi) {
+ this.messenger.notifyCdmaInfoRecConnectedPartyNumber(aServiceId, aType, aPlan,
+ aNumber, aPi, aSi);
+ },
+
+ notifyCdmaInfoRecSignal: function(aServiceId, aType, aAlertPitch, aSignal) {
+ this.messenger.notifyCdmaInfoRecSignal(aServiceId, aType, aAlertPitch, aSignal);
+ },
+
+ notifyCdmaInfoRecRedirectingNumber: function(aServiceId, aType, aPlan,
+ aNumber, aPi, aSi, aReason) {
+ this.messenger.notifyCdmaInfoRecRedirectingNumber(aServiceId, aType, aPlan,
+ aNumber, aPi, aSi, aReason);
+ },
+
+ notifyCdmaInfoRecLineControl: function(aServiceId, aPolarityIncluded,
+ aToggle, aReverse, aPowerDenial) {
+ this.messenger.notifyCdmaInfoRecLineControl(aServiceId, aPolarityIncluded,
+ aToggle, aReverse, aPowerDenial);
+ },
+
+ notifyCdmaInfoRecClir: function(aServiceId, aCause) {
+ this.messenger.notifyCdmaInfoRecClir(aServiceId, aCause);
+ },
+
+ notifyCdmaInfoRecAudioControl: function(aServiceId, aUpLink, aDownLink) {
+ this.messenger.notifyCdmaInfoRecAudioControl(aServiceId, aUpLink, aDownLink);
+ },
+
+ /**
+ * nsIIccMessenger API
+ */
+ notifyStkProactiveCommand: function(aIccId, aCommand) {
+ this.messenger.notifyStkProactiveCommand(aIccId, aCommand);
+ }
+};
+
+this.NSGetFactory = XPCOMUtils.generateNSGetFactory([RILSystemMessengerHelper]);