From 701eafb4b5f58dc33339711aa73b94417a663ada Mon Sep 17 00:00:00 2001 From: zhangzezhong Date: Sun, 8 Jun 2025 13:43:00 +0800 Subject: [PATCH] =?UTF-8?q?UIAbilityContext.d.ts=E7=9A=84setColorMode?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhangzezhong --- .../ets/ets/application/UIAbilityContext.ets | 6 +++++ .../ability_runtime/sts_ability_context.cpp | 26 +++++++++++++++++++ .../ability_runtime/sts_ability_context.h | 1 + 3 files changed, 33 insertions(+) diff --git a/frameworks/ets/ets/application/UIAbilityContext.ets b/frameworks/ets/ets/application/UIAbilityContext.ets index cb57465023d..4ab571bd5da 100644 --- a/frameworks/ets/ets/application/UIAbilityContext.ets +++ b/frameworks/ets/ets/application/UIAbilityContext.ets @@ -27,6 +27,7 @@ import { HapModuleInfo } from 'bundleManager.HapModuleInfo'; import AsyncCallbackWrapper from '../utils/AbilityUtils'; import OpenLinkOptions from '@ohos.app.ability.OpenLinkOptions'; import { LocalStorage } from '@ohos.arkui.stateManagement'; +import ConfigurationConstant from '@ohos.app.ability.ConfigurationConstant'; export default class UIAbilityContext extends Context { static { @@ -62,6 +63,7 @@ export default class UIAbilityContext extends Context { private native nativeIsTerminating(): boolean; private native nativeMoveAbilityToBackground(callback: AsyncCallbackWrapper): void; private native nativeRequestModalUIExtension(pickerWant: Want, callback: AsyncCallbackWrapper): void; + private native nativeSetColorMode(colorMode: ConfigurationConstant.ColorMode): void; startAbility(want: Want, callback: AsyncCallback): void { let myCall = new AsyncCallbackWrapper(callback); taskpool.execute((): void => { @@ -330,4 +332,8 @@ export default class UIAbilityContext extends Context { }); }); } + + setColorMode(colorMode: ConfigurationConstant.ColorMode): void { + this.nativeSetColorMode(colorMode); + } } \ No newline at end of file diff --git a/frameworks/native/ability/native/ability_runtime/sts_ability_context.cpp b/frameworks/native/ability/native/ability_runtime/sts_ability_context.cpp index f333a2d17e0..032922b7e12 100644 --- a/frameworks/native/ability/native/ability_runtime/sts_ability_context.cpp +++ b/frameworks/native/ability/native/ability_runtime/sts_ability_context.cpp @@ -683,6 +683,29 @@ void StsAbilityContext::NativeRequestModalUIExtension(ani_env *env, ani_object a AppExecFwk::AsyncCallback(env, callbackObj, errorObject, nullptr); } +void StsAbilityContext::SetColorMode(ani_env *env, ani_object aniObj, ani_enum_item colorMode) +{ + TAG_LOGD(AAFwkTag::UIABILITY, "SetColorMode Call"); + if (env == nullptr) { + TAG_LOGE(AAFwkTag::UIABILITY, "null env"); + return; + } + auto context = StsAbilityContext::GetAbilityContext(env, aniObj); + if (context == nullptr) { + TAG_LOGE(AAFwkTag::CONTEXT, "context is already released"); + ThrowStsError(env, AbilityErrorCode::ERROR_CODE_INVALID_CONTEXT); + return; + } + ani_int mode = 0; + if (!AAFwk::AniEnumConvertUtil::EnumConvertStsToNative(env, colorMode, mode)) { + TAG_LOGE(AAFwkTag::UIABILITY, "Parse colorMode failed"); + ThrowStsInvalidParamError(env, "Parse param colorMode failed, colorMode must be number."); + return; + } + TAG_LOGD(AAFwkTag::UIABILITY, "colorMode is %{public}d", mode); + context->SetAbilityColorMode(static_cast(mode)); +} + bool BindNativeMethods(ani_env *env, ani_class &cls) { ani_status status = env->FindClass(UI_ABILITY_CONTEXT_CLASS_NAME, &cls); @@ -730,6 +753,9 @@ bool BindNativeMethods(ani_env *env, ani_class &cls) reinterpret_cast(StsAbilityContext::NativeMoveAbilityToBackground) }, ani_native_function { "nativeRequestModalUIExtension", nullptr, reinterpret_cast(StsAbilityContext::NativeRequestModalUIExtension) }, + ani_native_function {"nativeSetColorMode", + "L@ohos/app/ability/ConfigurationConstant/ConfigurationConstant/ColorMode;:V", + reinterpret_cast(StsAbilityContext::SetColorMode)}, }; status = env->Class_BindNativeMethods(cls, functions.data(), functions.size()); }); diff --git a/interfaces/kits/native/ability/native/ability_runtime/sts_ability_context.h b/interfaces/kits/native/ability/native/ability_runtime/sts_ability_context.h index 0ea60e801b7..e1179e61200 100644 --- a/interfaces/kits/native/ability/native/ability_runtime/sts_ability_context.h +++ b/interfaces/kits/native/ability/native/ability_runtime/sts_ability_context.h @@ -67,6 +67,7 @@ public: static void NativeMoveAbilityToBackground(ani_env *env, ani_object aniObj, ani_object callBack); static void NativeRequestModalUIExtension(ani_env *env, ani_object aniObj, ani_string pickerWantObj, ani_object callBackObj); + static void SetColorMode(ani_env *env, ani_object aniObj, ani_enum_item colorMode); private: static void InheritWindowMode(ani_env *env, ani_object aniObj, AAFwk::Want &want); -- Gitee