1 /* 2 * Copyright (c) 2025 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef BASE_NOTIFICATION_DISTRIBUTED_NOTIFICATION_SERVICE_FRAMEWORKS_ETS_ANI_INCLUDE_STS_SLOT_H 17 #define BASE_NOTIFICATION_DISTRIBUTED_NOTIFICATION_SERVICE_FRAMEWORKS_ETS_ANI_INCLUDE_STS_SLOT_H 18 #include "ani.h" 19 #include "notification_constant.h" 20 #include "notification_slot.h" 21 22 namespace OHOS { 23 namespace NotificationSts { 24 using SlotType = OHOS::Notification::NotificationConstant::SlotType; 25 using SlotLevel = OHOS::Notification::NotificationSlot::NotificationLevel; 26 using NotificationSlot = OHOS::Notification::NotificationSlot; 27 28 constexpr const char* NOTIFICATION_SOLT_CLASSNAME = "Lnotification/notificationSlot/NotificationSlotInner;"; 29 bool SetOptionalFieldSlotType(ani_env *env, const ani_class cls, ani_object &object, const std::string fieldName, 30 const SlotType value); 31 bool SetOptionalFieldSlotLevel(ani_env *env, const ani_class cls, ani_object &object, const std::string fieldName, 32 const SlotLevel value); 33 bool WrapNotificationSlot(ani_env *env, sptr<NotificationSlot> slot, ani_object &outAniObj); 34 bool WrapNotificationSlotArray(ani_env *env, const std::vector<sptr<NotificationSlot>>& slots, 35 ani_object &outAniObj); 36 bool ParseNotificationSlotByBasicType(ani_env *env, ani_object notificationSlotObj, 37 NotificationSlot &slot); 38 bool UnwrapNotificationSlot(ani_env *env, ani_object notificationSlotObj, NotificationSlot &slot); 39 bool UnwrapNotificationSlotArrayByAniObj(ani_env *env, ani_object notificationSlotArrayObj, 40 std::vector<NotificationSlot> &slots); 41 } // namespace NotificationSts 42 } // OHOS 43 #endif