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/.
7 interface MozMmsMessage;
8 interface MozSmsMessage;
10 dictionary SmsSegmentInfo {
12 * The number of total segments for the input string. The value is always
13 * larger-equal than 1.
18 * The number of characters available per segment. The value is always
19 * larger-equal than 1.
21 long charsPerSegment = 0;
24 * The maximum number of available characters in the last segment. The value
25 * is always larger-equal than 0.
27 long charsAvailableInLastSegment = 0;
30 dictionary MmsAttachment {
32 DOMString? location = 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.
74 // Filtering by a message's threadId attribute.
75 [EnforceRange] unsigned long long? threadId = 0;
78 [Pref="dom.sms.enabled"]
79 interface MozMobileMessageManager : EventTarget
82 DOMRequest getSegmentInfoForText(DOMString text);
88 * Either a DOMString (only one number) or an array of numbers.
90 * The text message to be sent.
91 * @param sendParameters
92 * A SmsSendParameters object.
95 * A DOMRequest object indicating the sending result if one number
96 * has been passed; an array of DOMRequest objects otherwise.
99 DOMRequest send(DOMString number,
101 optional SmsSendParameters sendParameters);
103 sequence<DOMRequest> send(sequence<DOMString> numbers,
105 optional SmsSendParameters sendParameters);
111 * A MmsParameters object.
112 * @param sendParameters
113 * A MmsSendParameters object.
116 * A DOMRequest object indicating the sending result.
119 DOMRequest sendMMS(optional MmsParameters parameters,
120 optional MmsSendParameters sendParameters);
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.
128 DOMRequest delete(long id);
130 DOMRequest delete(MozSmsMessage message);
132 DOMRequest delete(MozMmsMessage message);
134 DOMRequest delete(sequence<(long or MozSmsMessage or MozMmsMessage)> params);
136 // Iterates through Moz{Mms,Sms}Message.
138 DOMCursor getMessages(optional MobileMessageFilter filter,
139 optional boolean reverse = false);
142 DOMRequest markMessageRead(long id,
144 optional boolean sendReadReport = false);
146 // Iterates through nsIDOMMozMobileMessageThread.
148 DOMCursor getThreads();
151 DOMRequest retrieveMMS(long id);
153 DOMRequest retrieveMMS(MozMmsMessage message);
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;