2013-03-09 07:21:47 +00:00
|
|
|
/* -*- Mode: C++; 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/. */
|
|
|
|
|
|
|
|
#ifndef mozilla_dom_mobilemessage_MobileMessageManager_h
|
|
|
|
#define mozilla_dom_mobilemessage_MobileMessageManager_h
|
|
|
|
|
2014-06-25 03:57:16 +00:00
|
|
|
#include "mozilla/Attributes.h"
|
2014-04-01 06:13:50 +00:00
|
|
|
#include "mozilla/DOMEventTargetHelper.h"
|
2013-03-09 07:21:47 +00:00
|
|
|
#include "nsIObserver.h"
|
|
|
|
|
2014-06-25 03:57:15 +00:00
|
|
|
class nsISmsService;
|
2013-03-09 07:21:47 +00:00
|
|
|
class nsIDOMMozSmsMessage;
|
2013-03-09 07:22:42 +00:00
|
|
|
class nsIDOMMozMmsMessage;
|
2013-03-09 07:21:47 +00:00
|
|
|
|
|
|
|
namespace mozilla {
|
|
|
|
namespace dom {
|
|
|
|
|
2014-06-25 03:57:16 +00:00
|
|
|
class DOMRequest;
|
|
|
|
class DOMCursor;
|
|
|
|
struct MmsParameters;
|
|
|
|
struct MmsSendParameters;
|
2014-08-28 03:00:03 +00:00
|
|
|
struct MobileMessageFilter;
|
2014-10-01 18:43:26 +00:00
|
|
|
class OwningLongOrMozSmsMessageOrMozMmsMessage;
|
2014-06-25 03:57:16 +00:00
|
|
|
struct SmsSendParameters;
|
|
|
|
|
|
|
|
class MobileMessageManager MOZ_FINAL : public DOMEventTargetHelper
|
|
|
|
, public nsIObserver
|
2013-03-09 07:21:47 +00:00
|
|
|
{
|
|
|
|
public:
|
|
|
|
NS_DECL_ISUPPORTS_INHERITED
|
|
|
|
NS_DECL_NSIOBSERVER
|
|
|
|
|
2014-04-01 06:13:50 +00:00
|
|
|
NS_REALLY_FORWARD_NSIDOMEVENTTARGET(DOMEventTargetHelper)
|
2013-03-09 07:21:47 +00:00
|
|
|
|
2014-09-02 00:49:25 +00:00
|
|
|
explicit MobileMessageManager(nsPIDOMWindow* aWindow);
|
2014-06-25 03:57:16 +00:00
|
|
|
|
|
|
|
void Init();
|
2013-03-09 07:21:47 +00:00
|
|
|
void Shutdown();
|
|
|
|
|
2014-06-25 03:57:16 +00:00
|
|
|
nsPIDOMWindow*
|
|
|
|
GetParentObject() const { return GetOwner(); }
|
|
|
|
|
|
|
|
// WrapperCache
|
|
|
|
virtual JSObject*
|
|
|
|
WrapObject(JSContext* aCx) MOZ_OVERRIDE;
|
|
|
|
|
|
|
|
// WebIDL Interface
|
|
|
|
already_AddRefed<DOMRequest>
|
|
|
|
GetSegmentInfoForText(const nsAString& aText,
|
|
|
|
ErrorResult& aRv);
|
|
|
|
|
|
|
|
already_AddRefed<DOMRequest>
|
|
|
|
Send(const nsAString& aNumber,
|
|
|
|
const nsAString& aText,
|
|
|
|
const SmsSendParameters& aSendParams,
|
|
|
|
ErrorResult& aRv);
|
|
|
|
|
|
|
|
void
|
|
|
|
Send(const Sequence<nsString>& aNumbers,
|
|
|
|
const nsAString& aText,
|
|
|
|
const SmsSendParameters& aSendParams,
|
|
|
|
nsTArray<nsRefPtr<DOMRequest>>& aReturn,
|
|
|
|
ErrorResult& aRv);
|
|
|
|
|
|
|
|
already_AddRefed<DOMRequest>
|
|
|
|
SendMMS(const MmsParameters& aParameters,
|
|
|
|
const MmsSendParameters& aSendParams,
|
|
|
|
ErrorResult& aRv);
|
|
|
|
|
|
|
|
already_AddRefed<DOMRequest>
|
|
|
|
GetMessage(int32_t aId,
|
|
|
|
ErrorResult& aRv);
|
|
|
|
|
|
|
|
already_AddRefed<DOMRequest>
|
|
|
|
Delete(int32_t aId,
|
|
|
|
ErrorResult& aRv);
|
|
|
|
|
|
|
|
already_AddRefed<DOMRequest>
|
|
|
|
Delete(nsIDOMMozSmsMessage* aMessage,
|
|
|
|
ErrorResult& aRv);
|
|
|
|
|
|
|
|
already_AddRefed<DOMRequest>
|
|
|
|
Delete(nsIDOMMozMmsMessage* aMessage,
|
|
|
|
ErrorResult& aRv);
|
|
|
|
|
|
|
|
already_AddRefed<DOMRequest>
|
|
|
|
Delete(const Sequence<OwningLongOrMozSmsMessageOrMozMmsMessage>& aParams,
|
|
|
|
ErrorResult& aRv);
|
|
|
|
|
|
|
|
already_AddRefed<DOMCursor>
|
2014-08-28 03:00:03 +00:00
|
|
|
GetMessages(const MobileMessageFilter& aFilter,
|
2014-06-25 03:57:16 +00:00
|
|
|
bool aReverse,
|
|
|
|
ErrorResult& aRv);
|
|
|
|
|
|
|
|
already_AddRefed<DOMRequest>
|
|
|
|
MarkMessageRead(int32_t aId,
|
|
|
|
bool aRead,
|
|
|
|
bool aSendReadReport,
|
|
|
|
ErrorResult& aRv);
|
|
|
|
|
|
|
|
already_AddRefed<DOMCursor>
|
|
|
|
GetThreads(ErrorResult& aRv);
|
|
|
|
|
|
|
|
already_AddRefed<DOMRequest>
|
|
|
|
RetrieveMMS(int32_t aId,
|
|
|
|
ErrorResult& aRv);
|
|
|
|
|
|
|
|
already_AddRefed<DOMRequest>
|
|
|
|
RetrieveMMS(nsIDOMMozMmsMessage* aMessage,
|
|
|
|
ErrorResult& aRv);
|
|
|
|
|
|
|
|
already_AddRefed<DOMRequest>
|
|
|
|
GetSmscAddress(const Optional<uint32_t>& aServiceId,
|
|
|
|
ErrorResult& aRv);
|
|
|
|
|
|
|
|
IMPL_EVENT_HANDLER(received)
|
|
|
|
IMPL_EVENT_HANDLER(retrieving)
|
|
|
|
IMPL_EVENT_HANDLER(sending)
|
|
|
|
IMPL_EVENT_HANDLER(sent)
|
|
|
|
IMPL_EVENT_HANDLER(failed)
|
|
|
|
IMPL_EVENT_HANDLER(deliverysuccess)
|
|
|
|
IMPL_EVENT_HANDLER(deliveryerror)
|
|
|
|
IMPL_EVENT_HANDLER(readsuccess)
|
|
|
|
IMPL_EVENT_HANDLER(readerror)
|
2014-06-27 05:25:37 +00:00
|
|
|
IMPL_EVENT_HANDLER(deleted)
|
2014-06-25 03:57:16 +00:00
|
|
|
|
2013-03-09 07:21:47 +00:00
|
|
|
private:
|
2014-07-08 21:23:17 +00:00
|
|
|
~MobileMessageManager() {}
|
|
|
|
|
2013-03-09 07:21:47 +00:00
|
|
|
/**
|
|
|
|
* Internal Send() method used to send one message.
|
|
|
|
*/
|
2014-06-25 03:57:16 +00:00
|
|
|
already_AddRefed<DOMRequest>
|
|
|
|
Send(nsISmsService* aSmsService,
|
2014-06-25 03:57:15 +00:00
|
|
|
uint32_t aServiceId,
|
2014-06-25 03:57:16 +00:00
|
|
|
const nsAString& aNumber,
|
2014-06-25 03:57:15 +00:00
|
|
|
const nsAString& aText,
|
2014-06-25 03:57:16 +00:00
|
|
|
ErrorResult& aRv);
|
|
|
|
|
|
|
|
already_AddRefed<DOMRequest>
|
|
|
|
Delete(int32_t* aIdArray,
|
|
|
|
uint32_t aSize,
|
|
|
|
ErrorResult& aRv);
|
2013-03-09 07:21:47 +00:00
|
|
|
|
2014-06-25 03:57:15 +00:00
|
|
|
nsresult
|
|
|
|
DispatchTrustedSmsEventToSelf(const char* aTopic,
|
|
|
|
const nsAString& aEventName,
|
|
|
|
nsISupports* aMsg);
|
2013-05-10 08:45:05 +00:00
|
|
|
|
2014-06-27 05:25:37 +00:00
|
|
|
nsresult
|
|
|
|
DispatchTrustedDeletedEventToSelf(nsISupports* aDeletedInfo);
|
|
|
|
|
2013-05-10 08:45:05 +00:00
|
|
|
/**
|
|
|
|
* Helper to get message ID from SMS/MMS Message object
|
|
|
|
*/
|
2014-06-25 03:57:15 +00:00
|
|
|
nsresult
|
|
|
|
GetMessageId(JSContext* aCx,
|
|
|
|
const JS::Value& aMessage,
|
|
|
|
int32_t* aId);
|
2013-03-09 07:21:47 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
} // namespace dom
|
|
|
|
} // namespace mozilla
|
|
|
|
|
|
|
|
#endif // mozilla_dom_mobilemessage_MobileMessageManager_h
|