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