From 90d0606d3c2a7afd22157493212decb079ec9408 Mon Sep 17 00:00:00 2001 From: heguokai <275503077@qq.com> Date: Sun, 10 Aug 2025 20:25:47 +0800 Subject: [PATCH 1/4] fixed for pixMap Signed-off-by: heguokai <275503077@qq.com> --- frameworks/ets/ani/BUILD.gn | 4 +-- frameworks/ets/ani/include/sts_common.h | 6 ++--- .../ets/ani/include/sts_convert_other.h | 4 +-- frameworks/ets/ani/src/sts_common.cpp | 13 +++++----- frameworks/ets/ani/src/sts_convert_other.cpp | 25 +++++-------------- frameworks/ets/ani/src/sts_request.cpp | 18 ++++++++++++- .../ets/ets/@ohos.notificationManager.ets | 3 +++ .../ets/notification/notificationRequest.ets | 2 ++ .../notification/notificationSubscriber.ets | 1 + 9 files changed, 42 insertions(+), 34 deletions(-) diff --git a/frameworks/ets/ani/BUILD.gn b/frameworks/ets/ani/BUILD.gn index ec2da9c05..ad182c55a 100644 --- a/frameworks/ets/ani/BUILD.gn +++ b/frameworks/ets/ani/BUILD.gn @@ -129,7 +129,7 @@ if (distributed_notification_service_disable_control) { "ability_runtime:runtime", "napi:ace_napi", "image_framework:image_native", - "image_framework:image_ani", + "image_framework:image_taihe", "resource_management:global_resmgr", "ability_runtime:ani_base_context", "ability_runtime:ability_context_native", @@ -214,7 +214,7 @@ ohos_shared_library("notification_subscribe_ani") { "ability_runtime:ani_common", "ability_runtime:ani_wantagent_common", "image_framework:image_native", - "image_framework:image_ani", + "image_framework:image_taihe", "resource_management:global_resmgr", ] diff --git a/frameworks/ets/ani/include/sts_common.h b/frameworks/ets/ani/include/sts_common.h index d242a27b4..aa6600ef6 100644 --- a/frameworks/ets/ani/include/sts_common.h +++ b/frameworks/ets/ani/include/sts_common.h @@ -41,7 +41,7 @@ bool GetDateByObject(ani_env *env, ani_object timeObj, int64_t &time); ani_status GetAniStringByString(ani_env* env, const std::string str, ani_string &aniStr); ani_status GetStringByAniString(ani_env *env, ani_string str, std::string &res); bool GetStringArrayByAniObj(ani_env *env, const ani_object ani_obj, std::vector &stdVString); -ani_object GetAniStringArrayByVectorString(ani_env *env, std::vector &strs); +ani_object GetAniStringArrayByVectorString(ani_env *env, std::vector strs); ani_object newArrayClass(ani_env *env, int length); ani_object newRecordClass(ani_env *env); ani_object ConvertArrayDoubleToAniObj(ani_env *env, const std::vector values); @@ -73,8 +73,8 @@ bool SetOptionalFieldBoolean(ani_env *env, ani_class cls, ani_object &object, const std::string fieldName, bool value); bool SetOptionalFieldDouble(ani_env *env, ani_class cls, ani_object &object, const std::string fieldName, double value); -bool SetOptionalFieldArrayLong(ani_env *env, ani_class cls, ani_object &object, const std::string &fieldName, - const std::vector &values); +bool SetOptionalFieldArrayLong(ani_env *env, ani_class cls, ani_object &object, const std::string fieldName, + const std::vector values); // property bool SetPropertyOptionalByBoolean(ani_env *env, ani_object &object, const char *name, bool value); diff --git a/frameworks/ets/ani/include/sts_convert_other.h b/frameworks/ets/ani/include/sts_convert_other.h index 2c32dcb83..aec482f65 100644 --- a/frameworks/ets/ani/include/sts_convert_other.h +++ b/frameworks/ets/ani/include/sts_convert_other.h @@ -43,11 +43,11 @@ bool GetAniPictrueInfo(ani_env *env, std::map>> pictureMap); + std::map>> &pictureMap); // vector to AniArray ani_object GetAniArrayPixelMap(ani_env *env, const std::vector> &pixelMaps); -ani_status UnwrapResource(ani_env *env, ani_object obj, ResourceManager::Resource resource); +ani_status UnwrapResource(ani_env *env, ani_object obj, ResourceManager::Resource &resource); ani_status GetResourceArray(ani_env *env, ani_object param, const char *name, std::vector &res); ani_object GetAniResource(ani_env *env, const std::shared_ptr &resource); diff --git a/frameworks/ets/ani/src/sts_common.cpp b/frameworks/ets/ani/src/sts_common.cpp index 0da585c0e..d770dcbe0 100644 --- a/frameworks/ets/ani/src/sts_common.cpp +++ b/frameworks/ets/ani/src/sts_common.cpp @@ -192,7 +192,7 @@ ani_status GetPropertyDouble(ani_env *env, ani_object obj, const char *name, ANS_LOGE("Object_CallMethodByName_Boolean failed, status : %{public}d", status); return status; } - ANS_LOGD("Object_CallMethodByName_Double sucess, status: %{public}f", outvalue); + ANS_LOGD("Object_CallMethodByName_Double sucess"); return status; } @@ -216,7 +216,7 @@ ani_status GetPropertyInt(ani_env *env, ani_object obj, const char *name, ANS_LOGE("Object_CallMethodByName_Int failed, status : %{public}d", status); return status; } - ANS_LOGD("Object_CallMethodByName_Int sucess, status: %{public}d", outvalue); + ANS_LOGD("Object_CallMethodByName_Int sucess"); return status; } @@ -240,7 +240,7 @@ ani_status GetPropertyLong(ani_env *env, ani_object obj, const char *name, ANS_LOGE("Object_CallMethodByName_Boolean failed, status : %{public}d", status); return status; } - ANS_LOGD("Object_CallMethodByName_Long sucess, status: %{public}lld", outvalue); + ANS_LOGD("Object_CallMethodByName_Long sucess"); return status; } @@ -320,7 +320,6 @@ ani_status GetPropertyStringArray(ani_env *env, ani_object param, const char *na return status; } res.push_back(str); - ANS_LOGD("GetStdString index: %{public}d %{public}s", i, str.c_str()); } return status; } @@ -401,7 +400,7 @@ ani_status GetPropertyLongArray(ani_env *env, ani_object param, const char *name return status; } -ani_object GetAniStringArrayByVectorString(ani_env *env, std::vector &strs) +ani_object GetAniStringArrayByVectorString(ani_env *env, std::vector strs) { if (env == nullptr) { ANS_LOGE("GetAniStringArrayByVectorString fail, env is nullptr"); @@ -672,8 +671,8 @@ ani_object ConvertArrayLongToAniObj(ani_env *env, const std::vector &values) +bool SetOptionalFieldArrayLong(ani_env *env, ani_class cls, ani_object &object, const std::string fieldName, + const std::vector values) { if (env == nullptr || cls == nullptr || object == nullptr || fieldName.empty()) { ANS_LOGE("SetOptionalFieldArrayLong fail, has nullptr or fieldName is empty"); diff --git a/frameworks/ets/ani/src/sts_convert_other.cpp b/frameworks/ets/ani/src/sts_convert_other.cpp index 4d537c83a..c05cdaf0a 100644 --- a/frameworks/ets/ani/src/sts_convert_other.cpp +++ b/frameworks/ets/ani/src/sts_convert_other.cpp @@ -15,7 +15,7 @@ #include "sts_convert_other.h" #include "sts_common.h" -#include "pixel_map_ani.h" +#include "pixel_map_taihe_ani.h" namespace OHOS { namespace NotificationSts { @@ -43,7 +43,7 @@ std::shared_ptr UnwrapWantAgent(ani_env *env, ani_object agent) return wantAgentSp; } -ani_status UnwrapResource(ani_env *env, ani_object obj, ResourceManager::Resource resource) +ani_status UnwrapResource(ani_env *env, ani_object obj, ResourceManager::Resource &resource) { ANS_LOGD("UnwrapResource called"); if (env == nullptr || obj == nullptr) { @@ -84,7 +84,7 @@ ani_object CreateAniPixelMap(ani_env* env, std::shared_ptr pixelMap) ANS_LOGE("CreateAniPixelMap failed, has nullPtr"); return nullptr; } - return PixelMapAni::CreatePixelMap(env, pixelMap); + return PixelMapTaiheAni::CreateEtsPixelMap(env, pixelMap); } std::shared_ptr GetPixelMapFromEnvSp(ani_env* env, ani_object obj) @@ -94,20 +94,7 @@ std::shared_ptr GetPixelMapFromEnvSp(ani_env* env, ani_object obj) ANS_LOGE("GetPixelMapFromEnvSp failed, has nullPtr"); return nullptr; } - ani_status ret; - ani_long nativeObj {}; - if ((ret = env->Object_GetFieldByName_Long(obj, "nativeObj", &nativeObj)) != ANI_OK) { - ANS_LOGI("GetPixelMapFromEnvSp Object_GetField_Long fetch failed"); - return nullptr; - } - PixelMap* pixelmap = reinterpret_cast(nativeObj); - if (pixelmap == nullptr) { - ANS_LOGI("GetPixelMapFromEnvSp pixelmap nullptr"); - return nullptr; - } - std::shared_ptr pixelmapSp = std::make_shared(*pixelmap); - deletePoint(pixelmap); - return pixelmapSp; + return PixelMapTaiheAni::GetNativePixelMap(env, obj); } ani_status GetPixelMapArrayByRef(ani_env *env, ani_ref param, std::vector> &pixelMaps) @@ -299,7 +286,7 @@ ani_status GetPixelMapByRef( } ani_status GetMapOfPictureInfo(ani_env *env, ani_object obj, - std::map>> pictureMap) + std::map>> &pictureMap) { ANS_LOGD("GetMapOfPictureInfo call"); if (env == nullptr || obj == nullptr) { @@ -386,7 +373,7 @@ ani_object GetAniArrayPixelMap(ani_env *env, const std::vectorSetAdditionalData(extras); } +void GetNotificationExtendInfo(ani_env *env, ani_object obj, std::shared_ptr &request) +{ + ani_boolean isUndefined = ANI_TRUE; + ani_ref extendInfoRef = {}; + if (ANI_OK != GetPropertyRef(env, obj, "extendInfo", isUndefined, extendInfoRef) + || isUndefined == ANI_TRUE || extendInfoRef == nullptr) { + ANS_LOGE("GetNotificationExtendInfo: get ref failed"); + return; + } + WantParams wantParams = {}; + UnwrapWantParams(env, extendInfoRef, wantParams); + std::shared_ptr extras = std::make_shared(wantParams); + request->SetExtendInfo(extras); +} + void GetNotificationRemovalWantAgent(ani_env *env, ani_object obj, std::shared_ptr &request) { @@ -724,6 +739,7 @@ ani_status GetNotificationRequestByCustom(ani_env *env, ani_object obj, GetNotificationSlotType(env, obj, notificationRequest); GetNotificationWantAgent(env, obj, notificationRequest); GetNotificationExtraInfo(env, obj, notificationRequest); + GetNotificationExtendInfo(env, obj, notificationRequest); GetNotificationRemovalWantAgent(env, obj, notificationRequest); GetNotificationActionButtons(env, obj, notificationRequest); GetNotificationSmallIcon(env, obj, notificationRequest); diff --git a/frameworks/ets/ets/@ohos.notificationManager.ets b/frameworks/ets/ets/@ohos.notificationManager.ets index 3bd9e4e93..bf860abf8 100644 --- a/frameworks/ets/ets/@ohos.notificationManager.ets +++ b/frameworks/ets/ets/@ohos.notificationManager.ets @@ -571,6 +571,9 @@ export default namespace notificationManager { if (request?.wantAgent !== undefined && request.wantAgent == null) { return errorParamInvalid; } + if(request?.extraInfo !== undefined && request?.extraInfo == null) { + return errorParamInvalid; + } if(request?.extendInfo !== undefined && request?.extendInfo == null) { return errorParamInvalid; } diff --git a/frameworks/ets/ets/notification/notificationRequest.ets b/frameworks/ets/ets/notification/notificationRequest.ets index 7ef87e113..2cfb62aad 100644 --- a/frameworks/ets/ets/notification/notificationRequest.ets +++ b/frameworks/ets/ets/notification/notificationRequest.ets @@ -89,6 +89,7 @@ export interface NotificationRequest { tapDismissed?: boolean; autoDeletedTime?: long; wantAgent?: WantAgent; + extraInfo?: Record; extendInfo?: Record; color?: long; colorEnabled?: boolean; @@ -140,6 +141,7 @@ class NotificationRequestInner implements NotificationRequest { public tapDismissed?: boolean | undefined; public autoDeletedTime?: long | undefined; public wantAgent?: WantAgent | undefined; + public extraInfo?: Record | undefined; public extendInfo?: Record | undefined; public color?: long | undefined; public colorEnabled?: boolean | undefined; diff --git a/frameworks/ets/ets/notification/notificationSubscriber.ets b/frameworks/ets/ets/notification/notificationSubscriber.ets index 05c3693a7..9f7751783 100644 --- a/frameworks/ets/ets/notification/notificationSubscriber.ets +++ b/frameworks/ets/ets/notification/notificationSubscriber.ets @@ -97,6 +97,7 @@ class SubscribeCallbackDataInner implements SubscribeCallbackData { tapDismissed: undefined, autoDeletedTime: undefined, wantAgent: undefined, + extraInfo: undefined, extendInfo: undefined, color: undefined, colorEnabled: undefined, -- Gitee From 8a4c23d1014750f37cfe8f985ab507963e3af372 Mon Sep 17 00:00:00 2001 From: heguokai <275503077@qq.com> Date: Mon, 11 Aug 2025 04:42:40 +0800 Subject: [PATCH 2/4] add Signed-off-by: heguokai <275503077@qq.com> --- frameworks/ets/ani/src/sts_request.cpp | 18 +----------------- .../ets/ets/@ohos.notificationManager.ets | 3 --- .../ets/notification/notificationRequest.ets | 4 ++-- .../notification/notificationSubscriber.ets | 7 ++----- 4 files changed, 5 insertions(+), 27 deletions(-) diff --git a/frameworks/ets/ani/src/sts_request.cpp b/frameworks/ets/ani/src/sts_request.cpp index 5ff491a84..ad5dcee57 100644 --- a/frameworks/ets/ani/src/sts_request.cpp +++ b/frameworks/ets/ani/src/sts_request.cpp @@ -542,7 +542,7 @@ void GetNotificationExtraInfo(ani_env *env, ani_object obj, std::shared_ptrSetAdditionalData(extras); } -void GetNotificationExtendInfo(ani_env *env, ani_object obj, std::shared_ptr &request) -{ - ani_boolean isUndefined = ANI_TRUE; - ani_ref extendInfoRef = {}; - if (ANI_OK != GetPropertyRef(env, obj, "extendInfo", isUndefined, extendInfoRef) - || isUndefined == ANI_TRUE || extendInfoRef == nullptr) { - ANS_LOGE("GetNotificationExtendInfo: get ref failed"); - return; - } - WantParams wantParams = {}; - UnwrapWantParams(env, extendInfoRef, wantParams); - std::shared_ptr extras = std::make_shared(wantParams); - request->SetExtendInfo(extras); -} - void GetNotificationRemovalWantAgent(ani_env *env, ani_object obj, std::shared_ptr &request) { @@ -739,7 +724,6 @@ ani_status GetNotificationRequestByCustom(ani_env *env, ani_object obj, GetNotificationSlotType(env, obj, notificationRequest); GetNotificationWantAgent(env, obj, notificationRequest); GetNotificationExtraInfo(env, obj, notificationRequest); - GetNotificationExtendInfo(env, obj, notificationRequest); GetNotificationRemovalWantAgent(env, obj, notificationRequest); GetNotificationActionButtons(env, obj, notificationRequest); GetNotificationSmallIcon(env, obj, notificationRequest); diff --git a/frameworks/ets/ets/@ohos.notificationManager.ets b/frameworks/ets/ets/@ohos.notificationManager.ets index bf860abf8..3bd9e4e93 100644 --- a/frameworks/ets/ets/@ohos.notificationManager.ets +++ b/frameworks/ets/ets/@ohos.notificationManager.ets @@ -571,9 +571,6 @@ export default namespace notificationManager { if (request?.wantAgent !== undefined && request.wantAgent == null) { return errorParamInvalid; } - if(request?.extraInfo !== undefined && request?.extraInfo == null) { - return errorParamInvalid; - } if(request?.extendInfo !== undefined && request?.extendInfo == null) { return errorParamInvalid; } diff --git a/frameworks/ets/ets/notification/notificationRequest.ets b/frameworks/ets/ets/notification/notificationRequest.ets index 2cfb62aad..e695aff8e 100644 --- a/frameworks/ets/ets/notification/notificationRequest.ets +++ b/frameworks/ets/ets/notification/notificationRequest.ets @@ -82,6 +82,7 @@ export interface NotificationRequest { id?: int; appMessageId?: string; notificationSlotType?: notificationManager.SlotType; + notificationSlotLevel?: notificationManager.SlotLevel; isOngoing?: boolean; isUnremovable?: boolean; updateOnly?: boolean; @@ -89,7 +90,6 @@ export interface NotificationRequest { tapDismissed?: boolean; autoDeletedTime?: long; wantAgent?: WantAgent; - extraInfo?: Record; extendInfo?: Record; color?: long; colorEnabled?: boolean; @@ -134,6 +134,7 @@ class NotificationRequestInner implements NotificationRequest { public id?: int | undefined; public appMessageId?: string | undefined; public notificationSlotType?: notificationManager.SlotType | undefined; + public notificationSlotLevel?: notificationManager.SlotLevel | undefined; public isOngoing?: boolean | undefined; public isUnremovable?: boolean | undefined; public updateOnly?: boolean | undefined; @@ -141,7 +142,6 @@ class NotificationRequestInner implements NotificationRequest { public tapDismissed?: boolean | undefined; public autoDeletedTime?: long | undefined; public wantAgent?: WantAgent | undefined; - public extraInfo?: Record | undefined; public extendInfo?: Record | undefined; public color?: long | undefined; public colorEnabled?: boolean | undefined; diff --git a/frameworks/ets/ets/notification/notificationSubscriber.ets b/frameworks/ets/ets/notification/notificationSubscriber.ets index 9f7751783..e489beddf 100644 --- a/frameworks/ets/ets/notification/notificationSubscriber.ets +++ b/frameworks/ets/ets/notification/notificationSubscriber.ets @@ -18,9 +18,6 @@ import notificationManager from '@ohos.notificationManager'; import { NotificationContent } from 'notification.notificationContent'; import image from '@ohos.multimedia.image'; -// import type notificationManager from '@ohos.notificationManager'; -// import type notificationSubscribe from '@ohos.notificationSubscribe'; -// import { NotificationContent } from 'notification.notificationContent'; import { NotificationActionButton } from 'notification.notificationActionButton'; import { NotificationTemplate } from 'notification.notificationTemplate'; import { NotificationFlags } from 'notification.notificationFlags'; @@ -90,6 +87,7 @@ class SubscribeCallbackDataInner implements SubscribeCallbackData { id: undefined, appMessageId: undefined, notificationSlotType: undefined, + notificationSlotLevel: undefined, isOngoing: undefined, isUnremovable: undefined, updateOnly: undefined, @@ -97,7 +95,6 @@ class SubscribeCallbackDataInner implements SubscribeCallbackData { tapDismissed: undefined, autoDeletedTime: undefined, wantAgent: undefined, - extraInfo: undefined, extendInfo: undefined, color: undefined, colorEnabled: undefined, @@ -170,4 +167,4 @@ class BadgeNumberCallbackDataInner implements BadgeNumberCallbackData { public readonly appInstanceKey?: string; } -export type BadgeEnabledChangedCallback = (data: EnabledNotificationCallbackData) => void; \ No newline at end of file +export type BadgeEnabledChangedCallback = (data: EnabledNotificationCallbackData) => void; -- Gitee From 9cd37e46c350f070452c07fcd7e8ec1dad11fb9a Mon Sep 17 00:00:00 2001 From: heguokai Date: Sun, 10 Aug 2025 21:01:27 +0000 Subject: [PATCH 3/4] update frameworks/ets/ets/notification/notificationRequest.ets. Signed-off-by: heguokai --- frameworks/ets/ets/notification/notificationRequest.ets | 2 -- 1 file changed, 2 deletions(-) diff --git a/frameworks/ets/ets/notification/notificationRequest.ets b/frameworks/ets/ets/notification/notificationRequest.ets index e695aff8e..7ef87e113 100644 --- a/frameworks/ets/ets/notification/notificationRequest.ets +++ b/frameworks/ets/ets/notification/notificationRequest.ets @@ -82,7 +82,6 @@ export interface NotificationRequest { id?: int; appMessageId?: string; notificationSlotType?: notificationManager.SlotType; - notificationSlotLevel?: notificationManager.SlotLevel; isOngoing?: boolean; isUnremovable?: boolean; updateOnly?: boolean; @@ -134,7 +133,6 @@ class NotificationRequestInner implements NotificationRequest { public id?: int | undefined; public appMessageId?: string | undefined; public notificationSlotType?: notificationManager.SlotType | undefined; - public notificationSlotLevel?: notificationManager.SlotLevel | undefined; public isOngoing?: boolean | undefined; public isUnremovable?: boolean | undefined; public updateOnly?: boolean | undefined; -- Gitee From 928ec9e1d9683d2a5954e69416dc4ef6bc1634a2 Mon Sep 17 00:00:00 2001 From: heguokai Date: Sun, 10 Aug 2025 21:02:28 +0000 Subject: [PATCH 4/4] update frameworks/ets/ets/notification/notificationSubscriber.ets. Signed-off-by: heguokai --- frameworks/ets/ets/notification/notificationSubscriber.ets | 1 - 1 file changed, 1 deletion(-) diff --git a/frameworks/ets/ets/notification/notificationSubscriber.ets b/frameworks/ets/ets/notification/notificationSubscriber.ets index e489beddf..572e9d108 100644 --- a/frameworks/ets/ets/notification/notificationSubscriber.ets +++ b/frameworks/ets/ets/notification/notificationSubscriber.ets @@ -87,7 +87,6 @@ class SubscribeCallbackDataInner implements SubscribeCallbackData { id: undefined, appMessageId: undefined, notificationSlotType: undefined, - notificationSlotLevel: undefined, isOngoing: undefined, isUnremovable: undefined, updateOnly: undefined, -- Gitee