From 53bc93cb36d4c525b78c8c3b75e4fe94b4baf5d2 Mon Sep 17 00:00:00 2001 From: fyf Date: Thu, 19 Oct 2023 18:51:35 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0content=E5=A4=B4=E6=96=87?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inner_api/notification_activity_content.h | 136 ++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 interfaces/inner_api/notification_activity_content.h diff --git a/interfaces/inner_api/notification_activity_content.h b/interfaces/inner_api/notification_activity_content.h new file mode 100644 index 000000000..911bd2d9d --- /dev/null +++ b/interfaces/inner_api/notification_activity_content.h @@ -0,0 +1,136 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef BASE_NOTIFICATION_DISTRIBUTED_NOTIFICATION_SERVICE_INTERFACES_INNER_API_NOTIFICATION_ACTIVITY_CONTENT_H +#define BASE_NOTIFICATION_DISTRIBUTED_NOTIFICATION_SERVICE_INTERFACES_INNER_API_NOTIFICATION_ACTIVITY_CONTENT_H + +#include "notification_basic_content.h" +#include "parcel.h" +#include "want_params.h" + +namespace OHOS { +namespace Notification { +class NotificationActivityContent : public NotificationBasicContent { +public: + enum class ActivityStatus { + ACTIVITY_CREATE, + ACTIVITY_BATCH_UPDATE, + ACTIVITY_END, + ACTIVITY_FULL_UPDATE, + ACTIVITY_BUTT + }; + + NotificationActivityContent() = default; + + ~NotificationActivityContent() = default; + + /** + * @brief Set the status of the activity notification. + * + * @param status Indicates the status of activity notification. + */ + void SetActivityStatus(const ActivityStatus status); + + /** + * @brief Obtains the status of the activity notification. + * + * @return Returns the status that attached to this notification. + */ + ActivityStatus GetActivityStatus() const; + + /** + * @brief Set the version of the activity notification. + * + * @param status Indicates the version of activity notification. + */ + void SetVersion(const uint64_t version); + + /** + * @brief Obtains the version of the activity notification. + * + * @return Returns the version that attached to this notification. + */ + uint64_t GetVersion() const; + + /** + * @brief Sets extra parameters that are stored as key-value pairs for the notification content. + * + * @param extras Indicates the WantParams object containing the extra parameters in key-value pair format. + */ + void SetExtraInfo(const std::shared_ptr &extras); + + /** + * @brief Obtains the WantParams object set in the notification content. + * + * @return Returns the WantParams object. + */ + const std::shared_ptr GetExtraInfo() const; + + /** + * @brief Returns a string representation of the object. + * + * @return Returns a string representation of the object. + */ + std::string Dump() override; + + /** + * @brief Converts a NotificationActivityContent object into a Json. + * + * @param jsonObject Indicates the Json object. + * @return Returns true if succeed; returns false otherwise. + */ + virtual bool ToJson(nlohmann::json &jsonObject) const override; + + /** + * @brief Creates a NotificationActivityContent object from a Json. + * + * @param jsonObject Indicates the Json object. + * @return Returns the NotificationActivityContent object. + */ + static NotificationActivityContent *FromJson(const nlohmann::json &jsonObject); + + /** + * @brief Marshal a object into a Parcel. + * @param parcel the object into the parcel. + * @return Returns true if succeed; returns false otherwise. + */ + virtual bool Marshalling(Parcel &parcel) const override; + + /** + * @brief Unmarshal object from a Parcel. + * + * @param parcel Indicates the parcel object. + * @return Returns the NotificationActivityContent object. + */ + static NotificationActivityContent *Unmarshalling(Parcel &parcel); + +protected: + /** + * @brief Read a NotificationActivityContent object from a Parcel. + * + * @param parcel Indicates the parcel object. + * @return Returns true if succeed; returns false otherwise. + */ + bool ReadFromParcel(Parcel &parcel) override; + +private: + ActivityStatus activityStatus_; + uint32_t version_; + std::shared_ptr extraInfo_ {}; +}; +} // namespace Notification +} // namespace OHOS + +#endif // BASE_NOTIFICATION_DISTRIBUTED_NOTIFICATION_SERVICE_INTERFACES_INNER_API_NOTIFICATION_ACTIVITY_CONTENT_H -- Gitee