1 /*
2 * Copyright (c) 2021-2023 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include "notification_helper.h"
17 #include "ans_notification.h"
18 #include "singleton.h"
19
20 namespace OHOS {
21 namespace Notification {
AddNotificationSlot(const NotificationSlot & slot)22 ErrCode NotificationHelper::AddNotificationSlot(const NotificationSlot &slot)
23 {
24 return DelayedSingleton<AnsNotification>::GetInstance()->AddNotificationSlot(slot);
25 }
26
AddSlotByType(const NotificationConstant::SlotType & slotType)27 ErrCode NotificationHelper::AddSlotByType(const NotificationConstant::SlotType &slotType)
28 {
29 return DelayedSingleton<AnsNotification>::GetInstance()->AddSlotByType(slotType);
30 }
31
AddNotificationSlots(const std::vector<NotificationSlot> & slots)32 ErrCode NotificationHelper::AddNotificationSlots(const std::vector<NotificationSlot> &slots)
33 {
34 return DelayedSingleton<AnsNotification>::GetInstance()->AddNotificationSlots(slots);
35 }
36
RemoveNotificationSlot(const NotificationConstant::SlotType & slotType)37 ErrCode NotificationHelper::RemoveNotificationSlot(const NotificationConstant::SlotType &slotType)
38 {
39 return DelayedSingleton<AnsNotification>::GetInstance()->RemoveNotificationSlot(slotType);
40 }
41
RemoveAllSlots()42 ErrCode NotificationHelper::RemoveAllSlots()
43 {
44 return DelayedSingleton<AnsNotification>::GetInstance()->RemoveAllSlots();
45 }
46
GetNotificationSlot(const NotificationConstant::SlotType & slotType,sptr<NotificationSlot> & slot)47 ErrCode NotificationHelper::GetNotificationSlot(
48 const NotificationConstant::SlotType &slotType, sptr<NotificationSlot> &slot)
49 {
50 return DelayedSingleton<AnsNotification>::GetInstance()->GetNotificationSlot(slotType, slot);
51 }
52
GetNotificationSlots(std::vector<sptr<NotificationSlot>> & slots)53 ErrCode NotificationHelper::GetNotificationSlots(std::vector<sptr<NotificationSlot>> &slots)
54 {
55 return DelayedSingleton<AnsNotification>::GetInstance()->GetNotificationSlots(slots);
56 }
57
GetNotificationSlotNumAsBundle(const NotificationBundleOption & bundleOption,uint64_t & num)58 ErrCode NotificationHelper::GetNotificationSlotNumAsBundle(const NotificationBundleOption &bundleOption, uint64_t &num)
59 {
60 return DelayedSingleton<AnsNotification>::GetInstance()->GetNotificationSlotNumAsBundle(bundleOption, num);
61 }
62
PublishNotification(const NotificationRequest & request)63 ErrCode NotificationHelper::PublishNotification(const NotificationRequest &request)
64 {
65 return DelayedSingleton<AnsNotification>::GetInstance()->PublishNotification(request);
66 }
67
PublishNotification(const std::string & label,const NotificationRequest & request)68 ErrCode NotificationHelper::PublishNotification(const std::string &label, const NotificationRequest &request)
69 {
70 return DelayedSingleton<AnsNotification>::GetInstance()->PublishNotification(label, request);
71 }
72
CancelNotification(int32_t notificationId)73 ErrCode NotificationHelper::CancelNotification(int32_t notificationId)
74 {
75 return DelayedSingleton<AnsNotification>::GetInstance()->CancelNotification(notificationId);
76 }
77
CancelNotification(const std::string & label,int32_t notificationId)78 ErrCode NotificationHelper::CancelNotification(const std::string &label, int32_t notificationId)
79 {
80 return DelayedSingleton<AnsNotification>::GetInstance()->CancelNotification(label, notificationId);
81 }
82
CancelAllNotifications()83 ErrCode NotificationHelper::CancelAllNotifications()
84 {
85 return DelayedSingleton<AnsNotification>::GetInstance()->CancelAllNotifications();
86 }
87
CancelAsBundle(int32_t notificationId,const std::string & representativeBundle,int32_t userId)88 ErrCode NotificationHelper::CancelAsBundle(
89 int32_t notificationId, const std::string &representativeBundle, int32_t userId)
90 {
91 return DelayedSingleton<AnsNotification>::GetInstance()->CancelAsBundle(
92 notificationId, representativeBundle, userId);
93 }
94
GetActiveNotificationNums(uint64_t & num)95 ErrCode NotificationHelper::GetActiveNotificationNums(uint64_t &num)
96 {
97 return DelayedSingleton<AnsNotification>::GetInstance()->GetActiveNotificationNums(num);
98 }
99
GetActiveNotifications(std::vector<sptr<NotificationRequest>> & request)100 ErrCode NotificationHelper::GetActiveNotifications(std::vector<sptr<NotificationRequest>> &request)
101 {
102 return DelayedSingleton<AnsNotification>::GetInstance()->GetActiveNotifications(request);
103 }
104
SetNotificationAgent(const std::string & agent)105 ErrCode NotificationHelper::SetNotificationAgent(const std::string &agent)
106 {
107 return DelayedSingleton<AnsNotification>::GetInstance()->SetNotificationAgent(agent);
108 }
109
GetNotificationAgent(std::string & agent)110 ErrCode NotificationHelper::GetNotificationAgent(std::string &agent)
111 {
112 return DelayedSingleton<AnsNotification>::GetInstance()->GetNotificationAgent(agent);
113 }
114
CanPublishNotificationAsBundle(const std::string & representativeBundle,bool & canPublish)115 ErrCode NotificationHelper::CanPublishNotificationAsBundle(const std::string &representativeBundle, bool &canPublish)
116 {
117 return DelayedSingleton<AnsNotification>::GetInstance()->CanPublishNotificationAsBundle(
118 representativeBundle, canPublish);
119 }
120
PublishNotificationAsBundle(const std::string & representativeBundle,const NotificationRequest & request)121 ErrCode NotificationHelper::PublishNotificationAsBundle(
122 const std::string &representativeBundle, const NotificationRequest &request)
123 {
124 return DelayedSingleton<AnsNotification>::GetInstance()->PublishNotificationAsBundle(representativeBundle, request);
125 }
126
SetNotificationBadgeNum()127 ErrCode NotificationHelper::SetNotificationBadgeNum()
128 {
129 return DelayedSingleton<AnsNotification>::GetInstance()->SetNotificationBadgeNum();
130 }
131
SetNotificationBadgeNum(int32_t num)132 ErrCode NotificationHelper::SetNotificationBadgeNum(int32_t num)
133 {
134 return DelayedSingleton<AnsNotification>::GetInstance()->SetNotificationBadgeNum(num);
135 }
136
IsAllowedNotify(bool & allowed)137 ErrCode NotificationHelper::IsAllowedNotify(bool &allowed)
138 {
139 return DelayedSingleton<AnsNotification>::GetInstance()->IsAllowedNotify(allowed);
140 }
141
IsAllowedNotifySelf(bool & allowed)142 ErrCode NotificationHelper::IsAllowedNotifySelf(bool &allowed)
143 {
144 return DelayedSingleton<AnsNotification>::GetInstance()->IsAllowedNotifySelf(allowed);
145 }
146
RequestEnableNotification(std::string & deviceId,sptr<IRemoteObject> & callerToken)147 ErrCode NotificationHelper::RequestEnableNotification(std::string &deviceId, sptr<IRemoteObject> &callerToken)
148 {
149 return DelayedSingleton<AnsNotification>::GetInstance()->RequestEnableNotification(deviceId, callerToken);
150 }
151
HasNotificationPolicyAccessPermission(bool & hasPermission)152 ErrCode NotificationHelper::HasNotificationPolicyAccessPermission(bool &hasPermission)
153 {
154 return DelayedSingleton<AnsNotification>::GetInstance()->HasNotificationPolicyAccessPermission(hasPermission);
155 }
156
GetBundleImportance(NotificationSlot::NotificationLevel & importance)157 ErrCode NotificationHelper::GetBundleImportance(NotificationSlot::NotificationLevel &importance)
158 {
159 return DelayedSingleton<AnsNotification>::GetInstance()->GetBundleImportance(importance);
160 }
161
SubscribeNotification(const NotificationSubscriber & subscriber)162 ErrCode NotificationHelper::SubscribeNotification(const NotificationSubscriber &subscriber)
163 {
164 return DelayedSingleton<AnsNotification>::GetInstance()->SubscribeNotification(subscriber);
165 }
166
SubscribeNotification(const NotificationSubscriber & subscriber,const NotificationSubscribeInfo & subscribeInfo)167 ErrCode NotificationHelper::SubscribeNotification(
168 const NotificationSubscriber &subscriber, const NotificationSubscribeInfo &subscribeInfo)
169 {
170 return DelayedSingleton<AnsNotification>::GetInstance()->SubscribeNotification(subscriber, subscribeInfo);
171 }
172
UnSubscribeNotification(NotificationSubscriber & subscriber)173 ErrCode NotificationHelper::UnSubscribeNotification(NotificationSubscriber &subscriber)
174 {
175 return DelayedSingleton<AnsNotification>::GetInstance()->UnSubscribeNotification(subscriber);
176 }
177
UnSubscribeNotification(NotificationSubscriber & subscriber,NotificationSubscribeInfo subscribeInfo)178 ErrCode NotificationHelper::UnSubscribeNotification(
179 NotificationSubscriber &subscriber, NotificationSubscribeInfo subscribeInfo)
180 {
181 return DelayedSingleton<AnsNotification>::GetInstance()->UnSubscribeNotification(subscriber, subscribeInfo);
182 }
183
RemoveNotification(const std::string & key,int32_t removeReason)184 ErrCode NotificationHelper::RemoveNotification(const std::string &key, int32_t removeReason)
185 {
186 return DelayedSingleton<AnsNotification>::GetInstance()->RemoveNotification(key, removeReason);
187 }
188
RemoveNotification(const NotificationBundleOption & bundleOption,const int32_t notificationId,const std::string & label,int32_t removeReason)189 ErrCode NotificationHelper::RemoveNotification(const NotificationBundleOption &bundleOption,
190 const int32_t notificationId, const std::string &label, int32_t removeReason)
191 {
192 return DelayedSingleton<AnsNotification>::GetInstance()->RemoveNotification(bundleOption,
193 notificationId, label, removeReason);
194 }
195
RemoveAllNotifications(const NotificationBundleOption & bundleOption)196 ErrCode NotificationHelper::RemoveAllNotifications(const NotificationBundleOption &bundleOption)
197 {
198 return DelayedSingleton<AnsNotification>::GetInstance()->RemoveAllNotifications(bundleOption);
199 }
200
RemoveNotifications(const std::vector<std::string> hashcodes,int32_t removeReason)201 ErrCode NotificationHelper::RemoveNotifications(const std::vector<std::string> hashcodes, int32_t removeReason)
202 {
203 return DelayedSingleton<AnsNotification>::GetInstance()->RemoveNotifications(hashcodes, removeReason);
204 }
205
RemoveNotificationsByBundle(const NotificationBundleOption & bundleOption)206 ErrCode NotificationHelper::RemoveNotificationsByBundle(const NotificationBundleOption &bundleOption)
207 {
208 return DelayedSingleton<AnsNotification>::GetInstance()->RemoveNotificationsByBundle(bundleOption);
209 }
210
RemoveNotifications()211 ErrCode NotificationHelper::RemoveNotifications()
212 {
213 return DelayedSingleton<AnsNotification>::GetInstance()->RemoveNotifications();
214 }
215
GetNotificationSlotsForBundle(const NotificationBundleOption & bundleOption,std::vector<sptr<NotificationSlot>> & slots)216 ErrCode NotificationHelper::GetNotificationSlotsForBundle(
217 const NotificationBundleOption &bundleOption, std::vector<sptr<NotificationSlot>> &slots)
218 {
219 return DelayedSingleton<AnsNotification>::GetInstance()->GetNotificationSlotsForBundle(bundleOption, slots);
220 }
221
UpdateNotificationSlots(const NotificationBundleOption & bundleOption,const std::vector<sptr<NotificationSlot>> & slots)222 ErrCode NotificationHelper::UpdateNotificationSlots(
223 const NotificationBundleOption &bundleOption, const std::vector<sptr<NotificationSlot>> &slots)
224 {
225 return DelayedSingleton<AnsNotification>::GetInstance()->UpdateNotificationSlots(bundleOption, slots);
226 }
227
GetAllActiveNotifications(std::vector<sptr<Notification>> & notification)228 ErrCode NotificationHelper::GetAllActiveNotifications(std::vector<sptr<Notification>> ¬ification)
229 {
230 return DelayedSingleton<AnsNotification>::GetInstance()->GetAllActiveNotifications(notification);
231 }
232
GetAllActiveNotifications(const std::vector<std::string> key,std::vector<sptr<Notification>> & notification)233 ErrCode NotificationHelper::GetAllActiveNotifications(
234 const std::vector<std::string> key, std::vector<sptr<Notification>> ¬ification)
235 {
236 return DelayedSingleton<AnsNotification>::GetInstance()->GetAllActiveNotifications(key, notification);
237 }
238
IsAllowedNotify(const NotificationBundleOption & bundleOption,bool & allowed)239 ErrCode NotificationHelper::IsAllowedNotify(const NotificationBundleOption &bundleOption, bool &allowed)
240 {
241 return DelayedSingleton<AnsNotification>::GetInstance()->IsAllowedNotify(bundleOption, allowed);
242 }
243
SetNotificationsEnabledForAllBundles(const std::string & deviceId,bool enabled)244 ErrCode NotificationHelper::SetNotificationsEnabledForAllBundles(const std::string &deviceId, bool enabled)
245 {
246 return DelayedSingleton<AnsNotification>::GetInstance()->SetNotificationsEnabledForAllBundles(deviceId, enabled);
247 }
248
SetNotificationsEnabledForDefaultBundle(const std::string & deviceId,bool enabled)249 ErrCode NotificationHelper::SetNotificationsEnabledForDefaultBundle(const std::string &deviceId, bool enabled)
250 {
251 return DelayedSingleton<AnsNotification>::GetInstance()->SetNotificationsEnabledForDefaultBundle(deviceId, enabled);
252 }
253
SetNotificationsEnabledForSpecifiedBundle(const NotificationBundleOption & bundleOption,std::string & deviceId,bool enabled)254 ErrCode NotificationHelper::SetNotificationsEnabledForSpecifiedBundle(
255 const NotificationBundleOption &bundleOption, std::string &deviceId, bool enabled)
256 {
257 return DelayedSingleton<AnsNotification>::GetInstance()->SetNotificationsEnabledForSpecifiedBundle(
258 bundleOption, deviceId, enabled);
259 }
260
SetShowBadgeEnabledForBundle(const NotificationBundleOption & bundleOption,bool enabled)261 ErrCode NotificationHelper::SetShowBadgeEnabledForBundle(const NotificationBundleOption &bundleOption, bool enabled)
262 {
263 return DelayedSingleton<AnsNotification>::GetInstance()->SetShowBadgeEnabledForBundle(bundleOption, enabled);
264 }
265
GetShowBadgeEnabledForBundle(const NotificationBundleOption & bundleOption,bool & enabled)266 ErrCode NotificationHelper::GetShowBadgeEnabledForBundle(const NotificationBundleOption &bundleOption, bool &enabled)
267 {
268 return DelayedSingleton<AnsNotification>::GetInstance()->GetShowBadgeEnabledForBundle(bundleOption, enabled);
269 }
270
GetShowBadgeEnabled(bool & enabled)271 ErrCode NotificationHelper::GetShowBadgeEnabled(bool &enabled)
272 {
273 return DelayedSingleton<AnsNotification>::GetInstance()->GetShowBadgeEnabled(enabled);
274 }
275
CancelGroup(const std::string & groupName)276 ErrCode NotificationHelper::CancelGroup(const std::string &groupName)
277 {
278 return DelayedSingleton<AnsNotification>::GetInstance()->CancelGroup(groupName);
279 }
280
RemoveGroupByBundle(const NotificationBundleOption & bundleOption,const std::string & groupName)281 ErrCode NotificationHelper::RemoveGroupByBundle(
282 const NotificationBundleOption &bundleOption, const std::string &groupName)
283 {
284 return DelayedSingleton<AnsNotification>::GetInstance()->RemoveGroupByBundle(bundleOption, groupName);
285 }
286
SetDoNotDisturbDate(const NotificationDoNotDisturbDate & doNotDisturbDate)287 ErrCode NotificationHelper::SetDoNotDisturbDate(const NotificationDoNotDisturbDate &doNotDisturbDate)
288 {
289 return DelayedSingleton<AnsNotification>::GetInstance()->SetDoNotDisturbDate(doNotDisturbDate);
290 }
291
GetDoNotDisturbDate(NotificationDoNotDisturbDate & doNotDisturbDate)292 ErrCode NotificationHelper::GetDoNotDisturbDate(NotificationDoNotDisturbDate &doNotDisturbDate)
293 {
294 return DelayedSingleton<AnsNotification>::GetInstance()->GetDoNotDisturbDate(doNotDisturbDate);
295 }
296
DoesSupportDoNotDisturbMode(bool & doesSupport)297 ErrCode NotificationHelper::DoesSupportDoNotDisturbMode(bool &doesSupport)
298 {
299 return DelayedSingleton<AnsNotification>::GetInstance()->DoesSupportDoNotDisturbMode(doesSupport);
300 }
301
IsDistributedEnabled(bool & enabled)302 ErrCode NotificationHelper::IsDistributedEnabled(bool &enabled)
303 {
304 return DelayedSingleton<AnsNotification>::GetInstance()->IsDistributedEnabled(enabled);
305 }
306
EnableDistributed(const bool enabled)307 ErrCode NotificationHelper::EnableDistributed(const bool enabled)
308 {
309 return DelayedSingleton<AnsNotification>::GetInstance()->EnableDistributed(enabled);
310 }
311
EnableDistributedByBundle(const NotificationBundleOption & bundleOption,const bool enabled)312 ErrCode NotificationHelper::EnableDistributedByBundle(const NotificationBundleOption &bundleOption, const bool enabled)
313 {
314 return DelayedSingleton<AnsNotification>::GetInstance()->EnableDistributedByBundle(bundleOption, enabled);
315 }
316
EnableDistributedSelf(const bool enabled)317 ErrCode NotificationHelper::EnableDistributedSelf(const bool enabled)
318 {
319 return DelayedSingleton<AnsNotification>::GetInstance()->EnableDistributedSelf(enabled);
320 }
321
IsDistributedEnableByBundle(const NotificationBundleOption & bundleOption,bool & enabled)322 ErrCode NotificationHelper::IsDistributedEnableByBundle(const NotificationBundleOption &bundleOption, bool &enabled)
323 {
324 return DelayedSingleton<AnsNotification>::GetInstance()->IsDistributedEnableByBundle(bundleOption, enabled);
325 }
326
GetDeviceRemindType(NotificationConstant::RemindType & remindType)327 ErrCode NotificationHelper::GetDeviceRemindType(NotificationConstant::RemindType &remindType)
328 {
329 return DelayedSingleton<AnsNotification>::GetInstance()->GetDeviceRemindType(remindType);
330 }
331
PublishContinuousTaskNotification(const NotificationRequest & request)332 ErrCode NotificationHelper::PublishContinuousTaskNotification(const NotificationRequest &request)
333 {
334 return DelayedSingleton<AnsNotification>::GetInstance()->PublishContinuousTaskNotification(request);
335 }
336
CancelContinuousTaskNotification(const std::string & label,int32_t notificationId)337 ErrCode NotificationHelper::CancelContinuousTaskNotification(const std::string &label, int32_t notificationId)
338 {
339 return DelayedSingleton<AnsNotification>::GetInstance()->CancelContinuousTaskNotification(label, notificationId);
340 }
341
IsSupportTemplate(const std::string & templateName,bool & support)342 ErrCode NotificationHelper::IsSupportTemplate(const std::string &templateName, bool &support)
343 {
344 return DelayedSingleton<AnsNotification>::GetInstance()->IsSupportTemplate(templateName, support);
345 }
346
IsAllowedNotify(const int32_t & userId,bool & allowed)347 ErrCode NotificationHelper::IsAllowedNotify(const int32_t &userId, bool &allowed)
348 {
349 return DelayedSingleton<AnsNotification>::GetInstance()->IsAllowedNotify(userId, allowed);
350 }
351
SetNotificationsEnabledForAllBundles(const int32_t & userId,bool enabled)352 ErrCode NotificationHelper::SetNotificationsEnabledForAllBundles(const int32_t &userId, bool enabled)
353 {
354 return DelayedSingleton<AnsNotification>::GetInstance()->SetNotificationsEnabledForAllBundles(
355 userId, enabled);
356 }
357
RemoveNotifications(const int32_t & userId)358 ErrCode NotificationHelper::RemoveNotifications(const int32_t &userId)
359 {
360 return DelayedSingleton<AnsNotification>::GetInstance()->RemoveNotifications(userId);
361 }
362
SetDoNotDisturbDate(const int32_t & userId,const NotificationDoNotDisturbDate & doNotDisturbDate)363 ErrCode NotificationHelper::SetDoNotDisturbDate(const int32_t &userId,
364 const NotificationDoNotDisturbDate &doNotDisturbDate)
365 {
366 return DelayedSingleton<AnsNotification>::GetInstance()->SetDoNotDisturbDate(userId, doNotDisturbDate);
367 }
368
GetDoNotDisturbDate(const int32_t & userId,NotificationDoNotDisturbDate & doNotDisturbDate)369 ErrCode NotificationHelper::GetDoNotDisturbDate(const int32_t &userId, NotificationDoNotDisturbDate &doNotDisturbDate)
370 {
371 return DelayedSingleton<AnsNotification>::GetInstance()->GetDoNotDisturbDate(userId, doNotDisturbDate);
372 }
373
SetEnabledForBundleSlot(const NotificationBundleOption & bundleOption,const NotificationConstant::SlotType & slotType,bool enabled)374 ErrCode NotificationHelper::SetEnabledForBundleSlot(
375 const NotificationBundleOption &bundleOption, const NotificationConstant::SlotType &slotType, bool enabled)
376 {
377 return DelayedSingleton<AnsNotification>::GetInstance()->SetEnabledForBundleSlot(bundleOption, slotType, enabled);
378 }
379
GetEnabledForBundleSlot(const NotificationBundleOption & bundleOption,const NotificationConstant::SlotType & slotType,bool & enabled)380 ErrCode NotificationHelper::GetEnabledForBundleSlot(
381 const NotificationBundleOption &bundleOption, const NotificationConstant::SlotType &slotType, bool &enabled)
382 {
383 return DelayedSingleton<AnsNotification>::GetInstance()->GetEnabledForBundleSlot(bundleOption, slotType, enabled);
384 }
385
SetSyncNotificationEnabledWithoutApp(const int32_t userId,const bool enabled)386 ErrCode NotificationHelper::SetSyncNotificationEnabledWithoutApp(const int32_t userId, const bool enabled)
387 {
388 return DelayedSingleton<AnsNotification>::GetInstance()->SetSyncNotificationEnabledWithoutApp(
389 userId, enabled);
390 }
391
GetSyncNotificationEnabledWithoutApp(const int32_t userId,bool & enabled)392 ErrCode NotificationHelper::GetSyncNotificationEnabledWithoutApp(const int32_t userId, bool &enabled)
393 {
394 return DelayedSingleton<AnsNotification>::GetInstance()->GetSyncNotificationEnabledWithoutApp(
395 userId, enabled);
396 }
397
SetBadgeNumber(int32_t badgeNumber)398 ErrCode NotificationHelper::SetBadgeNumber(int32_t badgeNumber)
399 {
400 return DelayedSingleton<AnsNotification>::GetInstance()->SetBadgeNumber(badgeNumber);
401 }
402
RegisterPushCallback(const sptr<IRemoteObject> & pushCallback)403 ErrCode NotificationHelper::RegisterPushCallback(const sptr<IRemoteObject> &pushCallback)
404 {
405 return DelayedSingleton<AnsNotification>::GetInstance()->RegisterPushCallback(pushCallback);
406 }
407
UnregisterPushCallback()408 ErrCode NotificationHelper::UnregisterPushCallback()
409 {
410 return DelayedSingleton<AnsNotification>::GetInstance()->UnregisterPushCallback();
411 }
412 } // namespace Notification
413 } // namespace OHOS