From ef31d556227be71244a1783cfb78b6a64cc8685c Mon Sep 17 00:00:00 2001 From: xdongs Date: Tue, 12 Aug 2025 14:25:09 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=85=A8=E5=9C=BA=E6=99=AF=E4=BC=98?= =?UTF-8?q?=E5=8C=96-extendInfo/flags?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: xdongs --- frameworks/ans/src/notification_flags.cpp | 6 ++++-- .../advanced_notification_publish.cpp | 8 ++++++++ .../notification_smart_reminder/smart_reminder_center.cpp | 6 ++++++ 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/frameworks/ans/src/notification_flags.cpp b/frameworks/ans/src/notification_flags.cpp index 23955a36d..36ccdb9f5 100644 --- a/frameworks/ans/src/notification_flags.cpp +++ b/frameworks/ans/src/notification_flags.cpp @@ -42,11 +42,12 @@ NotificationFlags::NotificationFlags(uint32_t reminderFlags): reminderFlags_(rem void NotificationFlags::SetSoundEnabled(NotificationConstant::FlagStatus soundEnabled) { - soundEnabled_ = soundEnabled; if (soundEnabled == NotificationConstant::FlagStatus::OPEN) { reminderFlags_ |= NotificationConstant::ReminderFlag::SOUND_FLAG; + soundEnabled_ = NotificationConstant::FlagStatus::OPEN; } else { reminderFlags_ &= ~(NotificationConstant::ReminderFlag::SOUND_FLAG); + soundEnabled_ = NotificationConstant::FlagStatus::CLOSE; } } @@ -57,11 +58,12 @@ NotificationConstant::FlagStatus NotificationFlags::IsSoundEnabled() const void NotificationFlags::SetVibrationEnabled(NotificationConstant::FlagStatus vibrationEnabled) { - vibrationEnabled_ = vibrationEnabled; if (vibrationEnabled == NotificationConstant::FlagStatus::OPEN) { reminderFlags_ |= NotificationConstant::ReminderFlag::VIBRATION_FLAG; + vibrationEnabled_ = NotificationConstant::FlagStatus::OPEN; } else { reminderFlags_ &= ~(NotificationConstant::ReminderFlag::VIBRATION_FLAG); + vibrationEnabled_ = NotificationConstant::FlagStatus::CLOSE; } } diff --git a/services/ans/src/advanced_notification_manager/advanced_notification_publish.cpp b/services/ans/src/advanced_notification_manager/advanced_notification_publish.cpp index 606119b67..a37a507a0 100644 --- a/services/ans/src/advanced_notification_manager/advanced_notification_publish.cpp +++ b/services/ans/src/advanced_notification_manager/advanced_notification_publish.cpp @@ -187,6 +187,11 @@ ErrCode AdvancedNotificationService::PublishNotificationForIndirectProxy(const s return result; } auto tokenCaller = IPCSkeleton::GetCallingTokenID(); + bool isSystemApp = AccessTokenHelper::IsSystemApp(); + bool isSubsystem = AccessTokenHelper::VerifyNativeToken(tokenCaller); + if (!isSystemApp && !isSubsystem && request->GetExtendInfo() != nullptr) { + request->SetExtendInfo(nullptr); + } bool isAgentController = AccessTokenHelper::VerifyCallerPermission(tokenCaller, OHOS_PERMISSION_NOTIFICATION_AGENT_CONTROLLER); // SA not support sound @@ -425,6 +430,9 @@ ErrCode AdvancedNotificationService::CheckNotificationRequest(const sptrGetExtendInfo() != nullptr) { + request->SetExtendInfo(nullptr); + } return ERR_OK; } diff --git a/services/ans/src/notification_smart_reminder/smart_reminder_center.cpp b/services/ans/src/notification_smart_reminder/smart_reminder_center.cpp index 893c16f87..bef95da59 100644 --- a/services/ans/src/notification_smart_reminder/smart_reminder_center.cpp +++ b/services/ans/src/notification_smart_reminder/smart_reminder_center.cpp @@ -349,6 +349,12 @@ void SmartReminderCenter::InitValidDevices( smartDevices.insert(deviceType); request->SetNotificationControlFlags(notificationControlFlags | CONTROL_BY_SMART_REMINDER); } else { + if (NotificationConstant::SlotType::SOCIAL_COMMUNICATION != request->GetSlotType() && + NotificationConstant::SlotType::SERVICE_REMINDER != request->GetSlotType() && + NotificationConstant::SlotType::CUSTOMER_SERVICE != request->GetSlotType()) { + ANS_LOGI("unaffect slot"); + continue; + } bool distributedSwitch = GetDistributedSwitch(deviceType); if (!distributedSwitch) { ANS_LOGI("distributed switch is closed, deveiceType = %{public}s", deviceType.c_str()); -- Gitee From b148fc08558625e22e8c4528b78b8da44f98f621 Mon Sep 17 00:00:00 2001 From: xdongs2009 Date: Tue, 12 Aug 2025 06:50:20 +0000 Subject: [PATCH 2/2] update services/ans/src/advanced_notification_manager/advanced_notification_publish.cpp. Signed-off-by: xdongs2009 --- .../advanced_notification_publish.cpp | 2 +- services/ans/src/advanced_notification_slot_service.cpp | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/services/ans/src/advanced_notification_manager/advanced_notification_publish.cpp b/services/ans/src/advanced_notification_manager/advanced_notification_publish.cpp index a37a507a0..475bc7ea8 100644 --- a/services/ans/src/advanced_notification_manager/advanced_notification_publish.cpp +++ b/services/ans/src/advanced_notification_manager/advanced_notification_publish.cpp @@ -189,7 +189,7 @@ ErrCode AdvancedNotificationService::PublishNotificationForIndirectProxy(const s auto tokenCaller = IPCSkeleton::GetCallingTokenID(); bool isSystemApp = AccessTokenHelper::IsSystemApp(); bool isSubsystem = AccessTokenHelper::VerifyNativeToken(tokenCaller); - if (!isSystemApp && !isSubsystem && request->GetExtendInfo() != nullptr) { + if (!isSystemApp && !isSubsystem && request->GetExtendInfo() != nullptr) { request->SetExtendInfo(nullptr); } bool isAgentController = AccessTokenHelper::VerifyCallerPermission(tokenCaller, diff --git a/services/ans/src/advanced_notification_slot_service.cpp b/services/ans/src/advanced_notification_slot_service.cpp index 3a43138e7..04c8033da 100644 --- a/services/ans/src/advanced_notification_slot_service.cpp +++ b/services/ans/src/advanced_notification_slot_service.cpp @@ -673,7 +673,13 @@ void AdvancedNotificationService::SetRequestBySlotType(const sptr(); request->SetFlags(flags); #ifdef NOTIFICATION_SMART_REMINDER_SUPPORTED - DelayedSingleton::GetInstance()->ReminderDecisionProcess(request); + bool systemVoip = (request->GetClassification() == NotificationConstant::ANS_VOIP && + request->GetSlotType() == NotificationConstant::LIVE_VIEW); + if (!systemVoip) { + DelayedSingleton::GetInstance()->ReminderDecisionProcess(request); + } else { + ANS_LOGI("systemVoip"); + } #endif NotificationConstant::SlotType type = request->GetSlotType(); -- Gitee