Bug 849739 1/5 - WebSMS: Replace GetThreadList() with DOMCursor based GetThreads(). Interface changes. sr=mounir, r=bent

This commit is contained in:
Vicamo Yang 2013-04-09 10:21:50 +08:00
Родитель fcfa72dde3
Коммит 19494e9e28
10 изменённых файлов: 63 добавлений и 30 удалений

Просмотреть файл

@ -20,7 +20,7 @@ dictionary MmsParameters
jsval attachments; // MmsAttachment[] jsval attachments; // MmsAttachment[]
}; };
[scriptable, builtinclass, uuid(44346294-6c8f-4a06-a412-1f38f7d45f2e)] [scriptable, builtinclass, uuid(370da692-b79a-45d3-a07a-f9284e8c392b)]
interface nsIDOMMozMobileMessageManager : nsIDOMEventTarget interface nsIDOMMozMobileMessageManager : nsIDOMEventTarget
{ {
nsIDOMMozSmsSegmentInfo getSegmentInfoForText(in DOMString text); nsIDOMMozSmsSegmentInfo getSegmentInfoForText(in DOMString text);
@ -39,11 +39,13 @@ interface nsIDOMMozMobileMessageManager : nsIDOMEventTarget
// The parameter can be either a message id or a nsIDOMMoz{Mms,Sms}Message. // The parameter can be either a message id or a nsIDOMMoz{Mms,Sms}Message.
nsIDOMDOMRequest delete(in jsval param); nsIDOMDOMRequest delete(in jsval param);
// Iterates through nsIDOMMoz{Mms,Sms}Message.
nsIDOMDOMCursor getMessages(in nsIDOMMozSmsFilter filter, in boolean reverse); nsIDOMDOMCursor getMessages(in nsIDOMMozSmsFilter filter, in boolean reverse);
nsIDOMDOMRequest markMessageRead(in long id, in boolean aValue); nsIDOMDOMRequest markMessageRead(in long id, in boolean aValue);
nsIDOMMozSmsRequest getThreadList(); // Iterates through nsIDOMMozMobileMessageThread.
nsIDOMDOMCursor getThreads();
[implicit_jscontext] attribute jsval onreceived; [implicit_jscontext] attribute jsval onreceived;
[implicit_jscontext] attribute jsval onsending; [implicit_jscontext] attribute jsval onsending;

Просмотреть файл

@ -0,0 +1,26 @@
/* 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 "nsISupports.idl"
[scriptable, builtinclass, uuid(ebc1db1a-07f9-4d79-b487-150298900ccc)]
interface nsIDOMMozMobileMessageThread : nsISupports
{
// Unique identity of the thread.
readonly attribute unsigned long long id;
// Message body of the last message in the thread.
readonly attribute DOMString body;
// Total unread messages in the thread.
readonly attribute unsigned long long unreadCount;
// Participant addresses of the thread.
[implicit_jscontext]
readonly attribute jsval participants; // DOMString[]
// Timestamp of the last message in the thread.
[implicit_jscontext]
readonly attribute jsval timestamp; // jsval is for Date.
};

Просмотреть файл

@ -10,7 +10,7 @@ interface nsIDOMMozSmsRequest;
interface nsIDOMMozSmsFilter; interface nsIDOMMozSmsFilter;
interface nsIDOMMozSmsSegmentInfo; interface nsIDOMMozSmsSegmentInfo;
[scriptable, builtinclass, uuid(aa03b43e-82ec-4325-906e-a1ea018e1b01)] [scriptable, builtinclass, uuid(7371acd3-136b-4081-b368-8f5c69a22103)]
interface nsIDOMMozSmsManager : nsIDOMEventTarget interface nsIDOMMozSmsManager : nsIDOMEventTarget
{ {
nsIDOMMozSmsSegmentInfo getSegmentInfoForText(in DOMString text); nsIDOMMozSmsSegmentInfo getSegmentInfoForText(in DOMString text);
@ -27,11 +27,13 @@ interface nsIDOMMozSmsManager : nsIDOMEventTarget
// The parameter can be either a message id or a SmsMessage. // The parameter can be either a message id or a SmsMessage.
nsIDOMMozSmsRequest delete(in jsval param); nsIDOMMozSmsRequest delete(in jsval param);
// Iterates through nsIDOMMozSmsMessage.
nsIDOMDOMCursor getMessages(in nsIDOMMozSmsFilter filter, in boolean reverse); nsIDOMDOMCursor getMessages(in nsIDOMMozSmsFilter filter, in boolean reverse);
nsIDOMMozSmsRequest markMessageRead(in long id, in boolean aValue); nsIDOMMozSmsRequest markMessageRead(in long id, in boolean aValue);
nsIDOMMozSmsRequest getThreadList(); // Iterates through nsIDOMMozMobileMessageThread.
nsIDOMDOMCursor getThreads();
[implicit_jscontext] attribute jsval onreceived; [implicit_jscontext] attribute jsval onreceived;
[implicit_jscontext] attribute jsval onsending; [implicit_jscontext] attribute jsval onsending;

Просмотреть файл

@ -13,7 +13,7 @@ dictionary SmsThreadListItem
unsigned long long unreadCount; unsigned long long unreadCount;
}; };
[scriptable, builtinclass, uuid(47498737-972d-49c9-8d4e-80ae2da51778)] [scriptable, builtinclass, uuid(5e993cfc-fb34-46a8-bb14-3df5c09ff748)]
interface nsIMobileMessageCallback : nsISupports interface nsIMobileMessageCallback : nsISupports
{ {
/** /**
@ -44,8 +44,4 @@ interface nsIMobileMessageCallback : nsISupports
void notifyMessageMarkedRead(in boolean read); void notifyMessageMarkedRead(in boolean read);
void notifyMarkMessageReadFailed(in long error); void notifyMarkMessageReadFailed(in long error);
[implicit_jscontext]
void notifyThreadList(in jsval threadList);
void notifyThreadListFailed(in long error);
}; };

Просмотреть файл

@ -16,7 +16,7 @@ interface nsIDOMMozSmsFilter;
interface nsIMobileMessageCallback; interface nsIMobileMessageCallback;
interface nsIMobileMessageCursorCallback; interface nsIMobileMessageCursorCallback;
[scriptable, uuid(487d15e1-fd23-40cc-ba45-7c0115032e17)] [scriptable, uuid(ec1ca45f-e621-4c67-9c50-74c16842e780)]
interface nsIMobileMessageDatabaseService : nsISupports interface nsIMobileMessageDatabaseService : nsISupports
{ {
[binaryname(GetMessageMoz)] [binaryname(GetMessageMoz)]
@ -34,5 +34,5 @@ interface nsIMobileMessageDatabaseService : nsISupports
in boolean value, in boolean value,
in nsIMobileMessageCallback request); in nsIMobileMessageCallback request);
void getThreadList(in nsIMobileMessageCallback request); nsICursorContinueCallback createThreadCursor(in nsIMobileMessageCursorCallback callback);
}; };

Просмотреть файл

@ -6,6 +6,7 @@
interface nsIDOMMozSmsMessage; interface nsIDOMMozSmsMessage;
interface nsIDOMMozMmsMessage; interface nsIDOMMozMmsMessage;
interface nsIDOMMozMobileMessageThread;
interface nsIDOMMozSmsSegmentInfo; interface nsIDOMMozSmsSegmentInfo;
%{C++ %{C++
@ -13,7 +14,7 @@ interface nsIDOMMozSmsSegmentInfo;
#define MOBILE_MESSAGE_SERVICE_CONTRACTID "@mozilla.org/mobilemessage/mobilemessageservice;1" #define MOBILE_MESSAGE_SERVICE_CONTRACTID "@mozilla.org/mobilemessage/mobilemessageservice;1"
%} %}
[scriptable, builtinclass, uuid(944297ed-0dc7-4dee-89a6-c962ea0218d3)] [scriptable, builtinclass, uuid(18e4b86e-4e19-4ee5-90bf-a29328149677)]
interface nsIMobileMessageService : nsISupports interface nsIMobileMessageService : nsISupports
{ {
[implicit_jscontext] [implicit_jscontext]
@ -44,4 +45,11 @@ interface nsIMobileMessageService : nsISupports
nsIDOMMozSmsSegmentInfo createSmsSegmentInfo(in long segments, nsIDOMMozSmsSegmentInfo createSmsSegmentInfo(in long segments,
in long charsPerSegment, in long charsPerSegment,
in long charsAvailableInLastSegment); in long charsAvailableInLastSegment);
[implicit_jscontext]
nsIDOMMozMobileMessageThread createThread(in unsigned long long id,
in jsval participants,
in jsval timestamp,
in DOMString body,
in unsigned long long unreadCount);
}; };

Просмотреть файл

@ -18,7 +18,7 @@ protocol PMobileMessageCursor
manager PSms; manager PSms;
child: child:
NotifyResult(SmsMessageData aMessageData); NotifyResult(MobileMessageCursorData aData);
/** /**
* Sent when the asynchronous cursor request has completed. * Sent when the asynchronous cursor request has completed.

Просмотреть файл

@ -41,7 +41,7 @@ struct MarkMessageReadRequest
bool value; bool value;
}; };
struct GetThreadListRequest struct CreateThreadCursorRequest
{ {
}; };
@ -51,7 +51,12 @@ union IPCSmsRequest
GetMessageRequest; GetMessageRequest;
DeleteMessageRequest; DeleteMessageRequest;
MarkMessageReadRequest; MarkMessageReadRequest;
GetThreadListRequest; };
union IPCMobileMessageCursor
{
CreateMessageCursorRequest;
CreateThreadCursorRequest;
}; };
sync protocol PSms { sync protocol PSms {
@ -86,7 +91,7 @@ parent:
/** /**
* Sent when the child makes an asynchronous cursor to the parent. * Sent when the child makes an asynchronous cursor to the parent.
*/ */
PMobileMessageCursor(CreateMessageCursorRequest request); PMobileMessageCursor(IPCMobileMessageCursor request);
sync HasSupport() sync HasSupport()
returns (bool aHasSupport); returns (bool aHasSupport);

Просмотреть файл

@ -65,16 +65,6 @@ struct ReplyMarkeMessageReadFail
int32_t error; int32_t error;
}; };
struct ReplyThreadList
{
ThreadListItem[] items;
};
struct ReplyThreadListFail
{
int32_t error;
};
union MessageReply union MessageReply
{ {
ReplyMessageSend; ReplyMessageSend;
@ -85,8 +75,6 @@ union MessageReply
ReplyMessageDeleteFail; ReplyMessageDeleteFail;
ReplyMarkeMessageRead; ReplyMarkeMessageRead;
ReplyMarkeMessageReadFail; ReplyMarkeMessageReadFail;
ReplyThreadList;
ReplyThreadListFail;
}; };
} // namespace mobilemessage } // namespace mobilemessage

Просмотреть файл

@ -45,15 +45,21 @@ struct SmsFilterData
ReadState read; ReadState read;
}; };
struct ThreadListItem struct ThreadData
{ {
uint64_t id; uint64_t id;
nsString senderOrReceiver; nsString[] participants;
uint64_t timestamp; uint64_t timestamp;
nsString body; nsString body;
uint64_t unreadCount; uint64_t unreadCount;
}; };
union MobileMessageCursorData
{
SmsMessageData;
ThreadData;
};
} }
} }
} }