diff -r 000000000000 -r 6474c204b198 dom/mobilemessage/interfaces/nsIRilMobileMessageDatabaseService.idl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dom/mobilemessage/interfaces/nsIRilMobileMessageDatabaseService.idl Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,146 @@ +/* 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/. */ + +#include "domstubs.idl" +#include "nsISupports.idl" +#include "nsIMobileMessageDatabaseService.idl" + +[scriptable, function, uuid(92986322-8d56-11e2-8816-73a531c493c2)] +interface nsIRilMobileMessageDatabaseCallback : nsISupports +{ + /** + * |aDomMessage|: the nsIDOMMoz{Mms,Sms}Message + */ + void notify(in nsresult aRv, in nsISupports aDomMessage); +}; + +[scriptable, function, uuid(32b02bbe-60a1-45e0-a748-ad40709b09dd)] +interface nsIRilMobileMessageDatabaseRecordCallback : nsISupports +{ + /** + * |aMessageRecord| Object: the mobile-message database record + * |aDomMessage|: the nsIDOMMoz{Mms,Sms}Message. Noted, this value might be null. + */ + void notify(in nsresult aRv, in jsval aMessageRecord, in nsISupports aDomMessage); +}; + +[scriptable, function, uuid(1b0ff03c-a2bc-11e3-a443-838d034c9805)] +interface nsIRilMobileMessageDatabaseConcatenationCallback : nsISupports +{ + /** + * |aCompleteMessage|: jsval: the completely concatenated message. Noted, this value might be null. + */ + void notify(in nsresult aRv, in jsval aCompleteMessage); +}; + +[scriptable, uuid(0b437a5c-a2bc-11e3-bd1b-dbb173eb35f8)] +interface nsIRilMobileMessageDatabaseService : nsIMobileMessageDatabaseService +{ + /** + * |aMessage| Object: should contain the following properties for internal use: + * - |type| DOMString: "sms" or "mms" + * - |timestamp| Number: the timestamp of received message + * - |iccId| DOMString: [optional] the ICC ID of the SIM for receiving + * message if available. + * + * - If |type| == "sms", we also need: + * - |messageClass| DOMString: the message class of received message + * - |receiver| DOMString: the phone number of receiver + * - |pid| Number: the TP-PID field of the SMS TPDU, default 0. + * - |sender| DOMString: the phone number of sender + * + * - If |type| == "mms", we also need: + * - |delivery| DOMString: the delivery state of received message + * - |deliveryStatus| DOMString: the delivery status of received message + * - |receivers| DOMString Array: the phone numbers of receivers + * - |phoneNumber| DOMString: [optional] my own phone number. + */ + void saveReceivedMessage(in jsval aMessage, + [optional] in nsIRilMobileMessageDatabaseCallback aCallback); + + /** + * |aMessage| Object: should contain the following properties for internal use: + * - |type| DOMString: "sms" or "mms" + * - |sender| DOMString: the phone number of sender + * - |timestamp| Number: the timestamp of sending message + * - |deliveryStatusRequested| Bool: true when the delivery report is requested. + * - |iccId| DOMString: the ICC ID of the SIM for sending message + * + * - If |type| == "sms", we also need: + * - |receiver| DOMString: the phone number of receiver + * + * - If |type| == "mms", we also need: + * - |receivers| DOMString Array: the phone numbers of receivers + */ + void saveSendingMessage(in jsval aMessage, + [optional] in nsIRilMobileMessageDatabaseCallback aCallback); + + /** + * |aMessageId| Number: the message's DB record ID. + * |aReceiver| DOMString: the phone number of receiver (for MMS; can be null). + * |aDelivery| DOMString: the new delivery value to update (can be null). + * |aDeliveryStatus| DOMString: the new delivery status to update (can be null). + * |aEnvelopeId| DOMString: the "message-id" specified in the MMS PDU headers. + * |aCallback| nsIRilMobileMessageDatabaseCallback: an optional callback. + */ + void setMessageDeliveryByMessageId(in long aMessageId, + in DOMString aReceiver, + in DOMString aDelivery, + in DOMString aDeliveryStatus, + in DOMString aEnvelopeId, + [optional] in nsIRilMobileMessageDatabaseCallback aCallback); + + /** + * |aEnvelopeId| DOMString: the "message-id" specified in the MMS PDU headers. + * |aReceiver| DOMString: the phone number of receiver (for MMS; can be null). + * |aDeliveryStatus| DOMString: the new delivery status to be updated (can be null). + * |aCallback| nsIRilMobileMessageDatabaseCallback: an optional callback. + */ + void setMessageDeliveryStatusByEnvelopeId(in DOMString aEnvelopeId, + in DOMString aReceiver, + in DOMString aDeliveryStatus, + [optional] in nsIRilMobileMessageDatabaseCallback aCallback); + + /** + * |aEnvelopeId| DOMString: the "message-id" specified in the MMS PDU headers. + * |aReceiver| DOMString: the phone number of receiver (for MMS; can be null). + * |aReadStatus| DOMString: the new read status to be updated. + * |aCallback| nsIRilMobileMessageDatabaseCallback: an optional callback. + */ + void setMessageReadStatusByEnvelopeId(in DOMString aEnvelopeId, + in DOMString aReceiver, + in DOMString aReadStatus, + [optional] in nsIRilMobileMessageDatabaseCallback aCallback); + + /** + * |aMessageId| Number: the message's DB record ID. + * |aCallback| nsIRilMobileMessageDatabaseRecordCallback: a callback which + * takes result flag, message record and domMessage as parameters. + */ + void getMessageRecordById(in long aMessageId, + in nsIRilMobileMessageDatabaseRecordCallback aCallback); + + /** + * |aTransactionId| DOMString: the transaction ID of MMS PDU. + * |aCallback| nsIRilMobileMessageDatabaseRecordCallback: a callback which + * takes result flag and message record as parameters. + */ + void getMessageRecordByTransactionId(in DOMString aTransactionId, + in nsIRilMobileMessageDatabaseRecordCallback aCallback); + + /** + * |aCrError| nsresult: the NS_ERROR defined in Components.results. + * + * @returns the error code defined in nsIMobileMessageCallback + */ + jsval translateCrErrorToMessageCallbackError(in nsresult aCrError); + + /** + * |aSmsSegment| jsval: Decoded Single SMS PDU. + * |aCallback| nsIRilMobileMessageDatabaseConcatenationCallback: a callback which + * takes result flag, and complete mesage as parameters. + */ + void saveSmsSegment(in jsval aSmsSegment, + in nsIRilMobileMessageDatabaseConcatenationCallback aCallback); +};