Bumping gaia.json for 2 gaia revision(s) a=gaia-bump
[gecko.git] / dom / webidl / MozMobileMessageManager.webidl
blob1111ae35f67543aa6c8168c6618d347b67e259e5
1 /* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
4  * You can obtain one at http://mozilla.org/MPL/2.0/.
5  */
7 interface MozMmsMessage;
8 interface MozSmsMessage;
10 dictionary SmsSegmentInfo {
11   /**
12    * The number of total segments for the input string. The value is always
13    * larger-equal than 1.
14    */
15   long segments = 0;
17   /**
18    * The number of characters available per segment. The value is always
19    * larger-equal than 1.
20    */
21   long charsPerSegment = 0;
23   /**
24    * The maximum number of available characters in the last segment. The value
25    * is always larger-equal than 0.
26    */
27   long charsAvailableInLastSegment = 0;
30 dictionary MmsAttachment {
31   DOMString? id = null;
32   DOMString? location = null;
33   Blob? content = null;
36 dictionary MmsParameters {
37   sequence<DOMString> receivers;
38   DOMString? subject = null;
39   DOMString? smil = null;
40   sequence<MmsAttachment> attachments;
43 dictionary SmsSendParameters {
44   unsigned long serviceId; // The ID of the RIL service which needs to be
45                            // specified under the multi-sim scenario.
48 dictionary MmsSendParameters {
49   unsigned long serviceId; // The ID of the RIL service which needs to be
50                            // specified under the multi-sim scenario.
53 enum MobileMessageFilterDelivery { "sent", "received" };
55 dictionary MobileMessageFilter
57   // Close lower bound range for filtering by the message timestamp.
58   // Time in milliseconds since Epoch.
59   [EnforceRange] DOMTimeStamp? startDate = null;
61   // Close upper bound range for filtering by the message timestamp.
62   // Time in milliseconds since Epoch.
63   [EnforceRange] DOMTimeStamp? endDate = null;
65   // An array of string message participant addresses that any of which
66   // appears or matches a message's sendor or recipients addresses.
67   sequence<DOMString>? numbers = null;
69   MobileMessageFilterDelivery? delivery = null;
71   // Filtering by whether a message has been read or not.
72   boolean? read = null;
74   // Filtering by a message's threadId attribute.
75   [EnforceRange] unsigned long long? threadId = 0;
78 [Pref="dom.sms.enabled"]
79 interface MozMobileMessageManager : EventTarget
81   [Throws]
82   DOMRequest getSegmentInfoForText(DOMString text);
84   /**
85    * Send SMS.
86    *
87    * @param number
88    *        Either a DOMString (only one number) or an array of numbers.
89    * @param text
90    *        The text message to be sent.
91    * @param sendParameters
92    *        A SmsSendParameters object.
93    *
94    * @return
95    *        A DOMRequest object indicating the sending result if one number
96    *        has been passed; an array of DOMRequest objects otherwise.
97    */
98   [Throws]
99   DOMRequest send(DOMString number,
100                   DOMString text,
101                   optional SmsSendParameters sendParameters);
102   [Throws]
103   sequence<DOMRequest> send(sequence<DOMString> numbers,
104                             DOMString text,
105                             optional SmsSendParameters sendParameters);
107   /**
108    * Send MMS.
109    *
110    * @param parameters
111    *        A MmsParameters object.
112    * @param sendParameters
113    *        A MmsSendParameters object.
114    *
115    * @return
116    *        A DOMRequest object indicating the sending result.
117    */
118   [Throws]
119   DOMRequest sendMMS(optional MmsParameters parameters,
120                      optional MmsSendParameters sendParameters);
122   [Throws]
123   DOMRequest getMessage(long id);
125   // The parameter can be either a message id, or a Moz{Mms,Sms}Message, or an
126   // array of Moz{Mms,Sms}Message objects.
127   [Throws]
128   DOMRequest delete(long id);
129   [Throws]
130   DOMRequest delete(MozSmsMessage message);
131   [Throws]
132   DOMRequest delete(MozMmsMessage message);
133   [Throws]
134   DOMRequest delete(sequence<(long or MozSmsMessage or MozMmsMessage)> params);
136   // Iterates through Moz{Mms,Sms}Message.
137   [Throws]
138   DOMCursor getMessages(optional MobileMessageFilter filter,
139                         optional boolean reverse = false);
141   [Throws]
142   DOMRequest markMessageRead(long id,
143                              boolean read,
144                              optional boolean sendReadReport = false);
146   // Iterates through nsIDOMMozMobileMessageThread.
147   [Throws]
148   DOMCursor getThreads();
150   [Throws]
151   DOMRequest retrieveMMS(long id);
152   [Throws]
153   DOMRequest retrieveMMS(MozMmsMessage message);
155   [Throws]
156   DOMRequest getSmscAddress(optional unsigned long serviceId);
158   attribute EventHandler onreceived;
159   attribute EventHandler onretrieving;
160   attribute EventHandler onsending;
161   attribute EventHandler onsent;
162   attribute EventHandler onfailed;
163   attribute EventHandler ondeliverysuccess;
164   attribute EventHandler ondeliveryerror;
165   attribute EventHandler onreadsuccess;
166   attribute EventHandler onreaderror;
167   attribute EventHandler ondeleted;