canmove, Confirmed users
725
edits
No edit summary |
No edit summary |
||
Line 5: | Line 5: | ||
= API = | = API = | ||
/ | /** | ||
* TODO should we merge with this with SmsManager? There are good reasons for and against it. | |||
* Pro: One API to rule them all, less API clutter, easier to write integrated SMS/MMS app | |||
* (which is what everybody wants anyway) | |||
* Con: MMS is vastly more complex than SMS, both in terms of API as in terms of implementation | |||
* and storing; implementations need to be acutely aware of MMS and how to deal with them. | |||
*/ | |||
interface MmsManager | interface MmsManager | ||
{ | { | ||
DOMRequest send(MmsMessage message); | |||
DOMRequest[] send(MmsMessage message[]); | |||
DOMRequest delete(long id); | |||
DOMRequest delete(MmsMessage message); | |||
DOMRequest getMessage(long id); | |||
DOMRequest getMessages(SMSFilter filter, bool reverse); | |||
/** | |||
* Fetch a message's data. Only applicable if message.delivery == "unfetched" | |||
*/ | |||
DOMRequest fetchMessage(MmsMessage message); | |||
/** | |||
* Forward a message to a different number. | |||
*/ | |||
DOMRequest forwardMessage(MmsMessage message, recipient); | |||
/** | |||
* Cancel a message's delivery with the MMSC. | |||
*/ | |||
DOMRequest cancelMessage(MmsMessage message); | |||
} | } | ||
Line 19: | Line 40: | ||
interface MmsMessage | interface MmsMessage | ||
{ | { | ||
/** | |||
* Cf. SmsMessage | |||
*/ | |||
readonly attribute long id; | readonly attribute long id; | ||
/** | |||
* Like SmsMessage::delivery, but with an additional possible value: "unfetched" | |||
*/ | |||
readonly attribute DOMString delivery; | readonly attribute DOMString delivery; | ||
/** | |||
* Cf. SmsMessage | |||
*/ | |||
readonly attribute DOMString sender; | readonly attribute DOMString sender; | ||
readonly attribute DOMString receiver; // | |||
/** | |||
* TODO Should this be plural? (AFAIK MMS supports group messaging.) | |||
*/ | |||
readonly attribute DOMString receiver; | |||
/** | |||
* Cf. SmsMessage | |||
*/ | |||
readonly attribute Date timestamp; | readonly attribute Date timestamp; | ||
/** | |||
* DOM document object representing the SMIL document. | |||
*/ | |||
readonly attribute Document contentDocument; | readonly attribute Document contentDocument; | ||
/** | /** | ||
* | * Object containing all other parts. | ||
*/ | */ | ||
readonly attribute | readonly attribute MmsAttachmentStorage attachments; | ||
} | } | ||
Line 89: | Line 129: | ||
navigator.mms.onreceived = function (event) { | navigator.mms.onreceived = function (event) { | ||
var message = event.message; | var message = event.message; | ||
if (message. | if (message.delivery == "unfetched") { | ||
message.fetch().onsuccess(function (event) { | message.fetch().onsuccess(function (event) { | ||
handleNewMessage(event.target.result); | handleNewMessage(event.target.result); |