diff --git a/interfaces/inner_api/notification_activity_content.h b/interfaces/inner_api/notification_activity_content.h new file mode 100644 index 0000000000000000000000000000000000000000..911bd2d9d399963228e9715fb55d887b83bf9de7 --- /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