|
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/. */ |
|
5 |
|
6 #include "SmsServicesFactory.h" |
|
7 #include "nsXULAppAPI.h" |
|
8 #include "ipc/SmsIPCService.h" |
|
9 #ifdef MOZ_WIDGET_ANDROID |
|
10 #include "android/MobileMessageDatabaseService.h" |
|
11 #include "android/SmsService.h" |
|
12 #elif defined(MOZ_WIDGET_GONK) && defined(MOZ_B2G_RIL) |
|
13 #include "gonk/SmsService.h" |
|
14 #endif |
|
15 #include "nsServiceManagerUtils.h" |
|
16 |
|
17 #define RIL_MMSSERVICE_CONTRACTID "@mozilla.org/mms/rilmmsservice;1" |
|
18 #define RIL_MOBILE_MESSAGE_DATABASE_SERVICE_CONTRACTID "@mozilla.org/mobilemessage/rilmobilemessagedatabaseservice;1" |
|
19 |
|
20 namespace mozilla { |
|
21 namespace dom { |
|
22 namespace mobilemessage { |
|
23 |
|
24 /* static */ already_AddRefed<nsISmsService> |
|
25 SmsServicesFactory::CreateSmsService() |
|
26 { |
|
27 nsCOMPtr<nsISmsService> smsService; |
|
28 |
|
29 if (XRE_GetProcessType() == GeckoProcessType_Content) { |
|
30 smsService = new SmsIPCService(); |
|
31 } else { |
|
32 #ifdef MOZ_WIDGET_ANDROID |
|
33 smsService = new SmsService(); |
|
34 #elif defined(MOZ_WIDGET_GONK) && defined(MOZ_B2G_RIL) |
|
35 smsService = new SmsService(); |
|
36 #endif |
|
37 } |
|
38 |
|
39 return smsService.forget(); |
|
40 } |
|
41 |
|
42 /* static */ already_AddRefed<nsIMobileMessageDatabaseService> |
|
43 SmsServicesFactory::CreateMobileMessageDatabaseService() |
|
44 { |
|
45 nsCOMPtr<nsIMobileMessageDatabaseService> mobileMessageDBService; |
|
46 if (XRE_GetProcessType() == GeckoProcessType_Content) { |
|
47 mobileMessageDBService = new SmsIPCService(); |
|
48 } else { |
|
49 #ifdef MOZ_WIDGET_ANDROID |
|
50 mobileMessageDBService = new MobileMessageDatabaseService(); |
|
51 #elif defined(MOZ_WIDGET_GONK) && defined(MOZ_B2G_RIL) |
|
52 mobileMessageDBService = do_GetService(RIL_MOBILE_MESSAGE_DATABASE_SERVICE_CONTRACTID); |
|
53 #endif |
|
54 } |
|
55 |
|
56 return mobileMessageDBService.forget(); |
|
57 } |
|
58 |
|
59 /* static */ already_AddRefed<nsIMmsService> |
|
60 SmsServicesFactory::CreateMmsService() |
|
61 { |
|
62 nsCOMPtr<nsIMmsService> mmsService; |
|
63 |
|
64 if (XRE_GetProcessType() == GeckoProcessType_Content) { |
|
65 mmsService = new SmsIPCService(); |
|
66 } else { |
|
67 #if defined(MOZ_WIDGET_GONK) && defined(MOZ_B2G_RIL) |
|
68 mmsService = do_CreateInstance(RIL_MMSSERVICE_CONTRACTID); |
|
69 #endif |
|
70 } |
|
71 |
|
72 return mmsService.forget(); |
|
73 } |
|
74 |
|
75 } // namespace mobilemessage |
|
76 } // namespace dom |
|
77 } // namespace mozilla |