diff --git a/frameworks/ans/IAnsManager.idl b/frameworks/ans/IAnsManager.idl index 92ecf2280fedd1bbc89dd3d0556e2eda8696e113..c8203b8843b0fed2999a98c9832a45fbc2683d34 100644 --- a/frameworks/ans/IAnsManager.idl +++ b/frameworks/ans/IAnsManager.idl @@ -97,7 +97,7 @@ interface OHOS.Notification.IAnsManager { void RemoveNotification( [in] sptr bundleOption, - [in] FileDescriptor notificationId, + [in] int notificationId, [in] String label, [in] int removeReason); @@ -277,13 +277,13 @@ interface OHOS.Notification.IAnsManager { void AllowUseReminder([in] String bundleName, [out] boolean isAllowUseReminder); - void UpdateNotificationTimerByUid([in] int uid, [in] boolean isPaused); + [oneway] void UpdateNotificationTimerByUid([in] int uid, [in] boolean isPaused); void DisableNotificationFeature([in] sptr notificationDisable); void GetTargetDeviceStatus([in] String deviceType, [out] int status); - void DistributeOperation([out] null_sptr operationInfo, [in] IAnsOperationCallback operationCallback); + void DistributeOperation([in] null_sptr operationInfo, [in] IAnsOperationCallback operationCallback); void ReplyDistributeOperation([in] String hashCode, [in] int resultCode); diff --git a/frameworks/ans/IAnsSubscriber.idl b/frameworks/ans/IAnsSubscriber.idl index 0eb075a91aa5c0c45a5569211e0236b2a2f2e162..b14349d1ceb502ca048e53f9dba4d7af7e314684 100644 --- a/frameworks/ans/IAnsSubscriber.idl +++ b/frameworks/ans/IAnsSubscriber.idl @@ -27,8 +27,8 @@ interface OHOS.Notification.IAnsSubscriber { [oneway] void OnConsumed([in] sptr notification, [in] sptr notificationMap); [oneway] void OnConsumed([in] sptr notification); - [ipcincapacity 520] void OnConsumedWithMaxCapacity([in] sptr notification, [in] sptr notificationMap); - [ipcincapacity 520] void OnConsumedWithMaxCapacity([in] sptr notification); + [ipcincapacity 520, oneway] void OnConsumedWithMaxCapacity([in] sptr notification, [in] sptr notificationMap); + [ipcincapacity 520, oneway] void OnConsumedWithMaxCapacity([in] sptr notification); [ipcincapacity 520, oneway] void OnConsumedList([in] sptr[] notifications, [in] sptr notificationMap); [ipcincapacity 520, oneway] void OnConsumedList([in] sptr[] notifications); @@ -36,8 +36,8 @@ interface OHOS.Notification.IAnsSubscriber { [oneway] void OnCanceled([in] sptr notification, [in] sptr notificationMap, [in] int deleteReason); [oneway] void OnCanceled([in] sptr notification, [in] int deleteReason); - [ipcincapacity 520] void OnCanceledWithMaxCapacity([in] sptr notification, [in] sptr notificationMap, [in] int deleteReason); - [ipcincapacity 520] void OnCanceledWithMaxCapacity([in] sptr notification, [in] int deleteReason); + [ipcincapacity 520, oneway] void OnCanceledWithMaxCapacity([in] sptr notification, [in] sptr notificationMap, [in] int deleteReason); + [ipcincapacity 520, oneway] void OnCanceledWithMaxCapacity([in] sptr notification, [in] int deleteReason); [ipcincapacity 520, oneway] void OnCanceledList([in] sptr[] notifications, [in] sptr notificationMap, [in] int deleteReason); [ipcincapacity 520, oneway] void OnCanceledList([in] sptr[] notifications, [in] int deleteReason); diff --git a/services/ans/include/advanced_notification_service.h b/services/ans/include/advanced_notification_service.h index a2001aef2ebc7e81b134589698fc2b6d11cf19fd..19531421fdd9b4cdea4704d225c68a4f4fe30cef 100644 --- a/services/ans/include/advanced_notification_service.h +++ b/services/ans/include/advanced_notification_service.h @@ -1224,7 +1224,7 @@ public: * @param hashCode Unique ID of the notification. * @return Returns ERR_OK on success, others on failure. */ - ErrCode DistributeOperation(sptr& operationInfo, + ErrCode DistributeOperation(const sptr& operationInfo, const sptr &callback) override; /** diff --git a/services/ans/src/advanced_notification_publish_service.cpp b/services/ans/src/advanced_notification_publish_service.cpp index 23354848456d146d72ab1f7cac1b72721dd1c9c3..0e7dd539252fb89dd9a0b0b0adaf45c54f38d248 100644 --- a/services/ans/src/advanced_notification_publish_service.cpp +++ b/services/ans/src/advanced_notification_publish_service.cpp @@ -3356,7 +3356,7 @@ ErrCode AdvancedNotificationService::RemoveAllNotificationsByBundleName(const st return ERR_OK; } -ErrCode DistributeOperationParamCheck(sptr& operationInfo, +ErrCode DistributeOperationParamCheck(const sptr& operationInfo, const sptr &callback) { if (operationInfo == nullptr || operationInfo->GetHashCode().empty()) { @@ -3384,7 +3384,7 @@ ErrCode DistributeOperationParamCheck(sptr& operation return ERR_OK; } -ErrCode AdvancedNotificationService::DistributeOperation(sptr& operationInfo, +ErrCode AdvancedNotificationService::DistributeOperation(const sptr& operationInfo, const sptr &callback) { ErrCode result = DistributeOperationParamCheck(operationInfo, callback); diff --git a/services/ans/src/notification_subscriber_manager.cpp b/services/ans/src/notification_subscriber_manager.cpp index dcfc0e932feb7893172a53184df5ea38d5a19b2f..00a99784fdb18fcc184322370bf381c2cb92afa0 100644 --- a/services/ans/src/notification_subscriber_manager.cpp +++ b/services/ans/src/notification_subscriber_manager.cpp @@ -726,12 +726,13 @@ void NotificationSubscriberManager::BatchNotifyCanceledInner(const std::vector", currNotifications.size()); - if (record->subscriber != nullptr) { - if (notificationMap != nullptr) { - record->subscriber->OnCanceledList(currNotifications, notificationMap, deleteReason); - } else { - record->subscriber->OnCanceledList(currNotifications, deleteReason); - } + if (record->subscriber == nullptr) { + return; + } + if (notificationMap != nullptr) { + record->subscriber->OnCanceledList(currNotifications, notificationMap, deleteReason); + } else { + record->subscriber->OnCanceledList(currNotifications, deleteReason); } } }