diff --git a/frameworks/ans/native/src/notification.cpp b/frameworks/ans/native/src/notification.cpp index 4b8e26125243f47f0c901a924423bf3469945dec..63587b0589a1d2408f85879c9a7667849b924fa8 100644 --- a/frameworks/ans/native/src/notification.cpp +++ b/frameworks/ans/native/src/notification.cpp @@ -26,14 +26,14 @@ Notification::Notification() {}; Notification::Notification(const sptr &request) { request_ = request; - key_ = GenerateNotificationKey("", GetUid(), GetLabel(), GetId()); + key_ = GenerateNotificationKey("", GetUserId(), GetUid(), GetLabel(), GetId()); } Notification::Notification(const std::string &deviceId, const sptr &request) { deviceId_ = deviceId; request_ = request; - key_ = GenerateNotificationKey(deviceId, GetUid(), GetLabel(), GetId()); + key_ = GenerateNotificationKey(deviceId, GetUserId(), GetUid(), GetLabel(), GetId()); } Notification::Notification(const Notification &other) @@ -455,12 +455,12 @@ void Notification::SetRemindType(const NotificationConstant::RemindType &reminTy } std::string Notification::GenerateNotificationKey( - const std::string &deviceId, int32_t uid, const std::string &label, int32_t id) + const std::string &deviceId, int32_t userId, int32_t uid, const std::string &label, int32_t id) { const char *KEY_SPLITER = "_"; std::stringstream stream; - stream << deviceId << KEY_SPLITER << uid << KEY_SPLITER << label << KEY_SPLITER << id; + stream << deviceId << KEY_SPLITER << userId << KEY_SPLITER << uid << KEY_SPLITER << label << KEY_SPLITER << id; return stream.str(); } diff --git a/interfaces/innerkits/ans/native/include/notification.h b/interfaces/innerkits/ans/native/include/notification.h index a12b7f4a0c8326d0f8f1a83a04a3f8ad5b543589..0239ef51ee87bb65005b0dc83b93fe98a1e919ae 100644 --- a/interfaces/innerkits/ans/native/include/notification.h +++ b/interfaces/innerkits/ans/native/include/notification.h @@ -254,7 +254,7 @@ private: void SetVibrationStyle(const std::vector &style); void SetRemindType(const NotificationConstant::RemindType &reminType); std::string GenerateNotificationKey( - const std::string &deviceId, int32_t uid, const std::string &label, int32_t id); + const std::string &deviceId, int32_t userId, int32_t uid, const std::string &label, int32_t id); void SetRemoveAllowed(bool removeAllowed); void SetSourceType(NotificationConstant::SourceType sourceType); bool ReadFromParcel(Parcel &parcel); diff --git a/interfaces/innerkits/ans/native/include/notification_request.h b/interfaces/innerkits/ans/native/include/notification_request.h index e2f6190f8ec06c8b690ba0f72a2355336bd9ce9c..1e54918ea9c4ea66a9f224fb9afbd1e44e8c92c0 100644 --- a/interfaces/innerkits/ans/native/include/notification_request.h +++ b/interfaces/innerkits/ans/native/include/notification_request.h @@ -1004,7 +1004,7 @@ private: NotificationContent::Type notificationContentType_ {NotificationContent::Type::NONE}; bool showDeliveryTime_ {false}; - bool tapDismissed_ {false}; + bool tapDismissed_ {true}; bool colorEnabled_ {false}; bool alertOneTime_ {false}; bool showStopwatch_ {false}; diff --git a/interfaces/kits/napi/ans/src/common.cpp b/interfaces/kits/napi/ans/src/common.cpp index d8d8a57c1d1a8d72acd31f6dde6eca60df13a5bb..20c1f7701cb0ef413301409b66a63f3feabee6b6 100644 --- a/interfaces/kits/napi/ans/src/common.cpp +++ b/interfaces/kits/napi/ans/src/common.cpp @@ -1710,7 +1710,7 @@ napi_value Common::GetNotificationtapDismissed( napi_valuetype valuetype = napi_undefined; napi_value result = nullptr; bool hasProperty = false; - bool tapDismissed = false; + bool tapDismissed = true; NAPI_CALL(env, napi_has_named_property(env, value, "tapDismissed", &hasProperty)); if (hasProperty) { diff --git a/services/ans/src/advanced_notification_service.cpp b/services/ans/src/advanced_notification_service.cpp index 795c9ca54b5bc59d35451de484a12738584d6562..2b3a0fb1c0b9b52f7d61358fe43e7ed330e23611 100644 --- a/services/ans/src/advanced_notification_service.cpp +++ b/services/ans/src/advanced_notification_service.cpp @@ -110,6 +110,32 @@ inline bool IsSystemApp() return isSystemApp; } +inline int64_t ResetSeconds(int64_t date) +{ + auto milliseconds = std::chrono::milliseconds(date); + auto tp = std::chrono::time_point(milliseconds); + auto tp_minutes = std::chrono::time_point_cast(tp); + auto duration = std::chrono::duration_cast(tp_minutes.time_since_epoch()); + return duration.count(); +} + +inline int64_t GetCurrentTime() +{ + auto now = std::chrono::system_clock::now(); + auto duration = std::chrono::duration_cast(now.time_since_epoch()); + return duration.count(); +} + +inline tm GetLocalTime(time_t time) +{ + tm result = {0}; + tm *lt = localtime(&time); + if (lt != nullptr) { + result = *lt; + } + return result; +} + inline ErrCode AssignValidNotificationSlot(const std::shared_ptr &record) { sptr slot; @@ -180,6 +206,10 @@ ErrCode PrepereNotificationRequest(const sptr &request) request->SetCreatorUserId(userId); ErrCode result = CheckPictureSize(request); + if (request->GetDeliveryTime() <= 0) { + request->SetDeliveryTime(GetCurrentTime()); + } + return result; } @@ -2172,32 +2202,6 @@ ErrCode AdvancedNotificationService::RemoveGroupByBundle( return ERR_OK; } -inline int64_t ResetSeconds(int64_t date) -{ - auto milliseconds = std::chrono::milliseconds(date); - auto tp = std::chrono::time_point(milliseconds); - auto tp_minutes = std::chrono::time_point_cast(tp); - auto duration = std::chrono::duration_cast(tp_minutes.time_since_epoch()); - return duration.count(); -} - -inline int64_t GetCurrentTime() -{ - auto now = std::chrono::system_clock::now(); - auto duration = std::chrono::duration_cast(now.time_since_epoch()); - return duration.count(); -} - -inline tm GetLocalTime(time_t time) -{ - tm result = {0}; - tm *lt = localtime(&time); - if (lt != nullptr) { - result = *lt; - } - return result; -} - void AdvancedNotificationService::AdjustDateForDndTypeOnce(int64_t &beginDate, int64_t &endDate) { std::chrono::system_clock::time_point now = std::chrono::system_clock::now();