diff --git a/services/ans/src/advanced_notification_publish_service.cpp b/services/ans/src/advanced_notification_publish_service.cpp index c7bac3a21ef78d748e13490deac7e6b2dec3c3c9..f1b24dd8117bb6e386221f40019a41b7026390bf 100644 --- a/services/ans/src/advanced_notification_publish_service.cpp +++ b/services/ans/src/advanced_notification_publish_service.cpp @@ -801,13 +801,14 @@ ErrCode AdvancedNotificationService::SetNotificationsEnabledForSpecialBundle( bundle, notificationEnable); // Local device result = NotificationPreferences::GetInstance()->SetNotificationsEnabledForBundle(bundle, enabled); - if (!enabled) { + bool enableSuccessed = result == ERR_OK; + if (!enabled && result == ERR_OK) { result = RemoveAllNotificationsForDisable(bundle); } if (saveRef != ERR_OK) { SetSlotFlagsTrustlistsAsBundle(bundle); } - if (result == ERR_OK) { + if (enableSuccessed) { NotificationSubscriberManager::GetInstance()->NotifyEnabledNotificationChanged(bundleData); PublishSlotChangeCommonEvent(bundle); }