1 /* -*- Mode: C++; 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
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 #ifndef mozilla_dom_mobilemessage_MobileMessageManager_h
7 #define mozilla_dom_mobilemessage_MobileMessageManager_h
9 #include "mozilla/Attributes.h"
10 #include "mozilla/DOMEventTargetHelper.h"
11 #include "nsIObserver.h"
14 class nsIDOMMozSmsMessage
;
15 class nsIDOMMozMmsMessage
;
24 struct MmsSendParameters
;
25 struct MobileMessageFilter
;
26 class OwningLongOrMozSmsMessageOrMozMmsMessage
;
27 struct SmsSendParameters
;
30 class MobileMessageManager MOZ_FINAL
: public DOMEventTargetHelper
34 NS_DECL_ISUPPORTS_INHERITED
37 NS_REALLY_FORWARD_NSIDOMEVENTTARGET(DOMEventTargetHelper
)
39 explicit MobileMessageManager(nsPIDOMWindow
* aWindow
);
45 GetParentObject() const { return GetOwner(); }
49 WrapObject(JSContext
* aCx
) MOZ_OVERRIDE
;
52 already_AddRefed
<DOMRequest
>
53 GetSegmentInfoForText(const nsAString
& aText
,
56 already_AddRefed
<DOMRequest
>
57 Send(const nsAString
& aNumber
,
58 const nsAString
& aText
,
59 const SmsSendParameters
& aSendParams
,
63 Send(const Sequence
<nsString
>& aNumbers
,
64 const nsAString
& aText
,
65 const SmsSendParameters
& aSendParams
,
66 nsTArray
<nsRefPtr
<DOMRequest
>>& aReturn
,
69 already_AddRefed
<DOMRequest
>
70 SendMMS(const MmsParameters
& aParameters
,
71 const MmsSendParameters
& aSendParams
,
74 already_AddRefed
<DOMRequest
>
75 GetMessage(int32_t aId
,
78 already_AddRefed
<DOMRequest
>
82 already_AddRefed
<DOMRequest
>
83 Delete(nsIDOMMozSmsMessage
* aMessage
,
86 already_AddRefed
<DOMRequest
>
87 Delete(nsIDOMMozMmsMessage
* aMessage
,
90 already_AddRefed
<DOMRequest
>
91 Delete(const Sequence
<OwningLongOrMozSmsMessageOrMozMmsMessage
>& aParams
,
94 already_AddRefed
<DOMCursor
>
95 GetMessages(const MobileMessageFilter
& aFilter
,
99 already_AddRefed
<DOMRequest
>
100 MarkMessageRead(int32_t aId
,
102 bool aSendReadReport
,
105 already_AddRefed
<DOMCursor
>
106 GetThreads(ErrorResult
& aRv
);
108 already_AddRefed
<DOMRequest
>
109 RetrieveMMS(int32_t aId
,
112 already_AddRefed
<DOMRequest
>
113 RetrieveMMS(nsIDOMMozMmsMessage
* aMessage
,
116 already_AddRefed
<DOMRequest
>
117 GetSmscAddress(const Optional
<uint32_t>& aServiceId
,
120 already_AddRefed
<Promise
>
121 SetSmscAddress(const SmscAddress
& aSmscAddress
,
122 const Optional
<uint32_t>& aServiceId
,
125 IMPL_EVENT_HANDLER(received
)
126 IMPL_EVENT_HANDLER(retrieving
)
127 IMPL_EVENT_HANDLER(sending
)
128 IMPL_EVENT_HANDLER(sent
)
129 IMPL_EVENT_HANDLER(failed
)
130 IMPL_EVENT_HANDLER(deliverysuccess
)
131 IMPL_EVENT_HANDLER(deliveryerror
)
132 IMPL_EVENT_HANDLER(readsuccess
)
133 IMPL_EVENT_HANDLER(readerror
)
134 IMPL_EVENT_HANDLER(deleted
)
137 ~MobileMessageManager() {}
140 * Internal Send() method used to send one message.
142 already_AddRefed
<DOMRequest
>
143 Send(nsISmsService
* aSmsService
,
145 const nsAString
& aNumber
,
146 const nsAString
& aText
,
149 already_AddRefed
<DOMRequest
>
150 Delete(int32_t* aIdArray
,
155 DispatchTrustedSmsEventToSelf(const char* aTopic
,
156 const nsAString
& aEventName
,
160 DispatchTrustedDeletedEventToSelf(nsISupports
* aDeletedInfo
);
163 * Helper to get message ID from SMS/MMS Message object
166 GetMessageId(JSContext
* aCx
,
167 const JS::Value
& aMessage
,
172 } // namespace mozilla
174 #endif // mozilla_dom_mobilemessage_MobileMessageManager_h