From 248ca927db24974638b04fc315afa99dcee0370a Mon Sep 17 00:00:00 2001 From: Mupceet Date: Fri, 22 Jul 2022 11:10:15 +0800 Subject: [PATCH 1/2] update config functions Signed-off-by: Mupceet --- .../acfwk/include/accessibility_config_impl.h | 9 +- frameworks/acfwk/src/accessibility_config.cpp | 16 +-- .../acfwk/src/accessibility_config_impl.cpp | 34 ++++- .../acfwk/include/accessibility_config.h | 8 +- .../accessibilityconfig_fuzzer.cpp | 4 +- .../kits/js/@ohos.accessibility.config.d.ts | 125 +++++++++++++----- .../src/napi_accessibility_config.cpp | 48 ++++--- .../src/native_module.cpp | 34 ++--- .../napi/include/napi_accessibility_utils.h | 4 +- .../napi_accessibility_config_observer.cpp | 5 +- ...pi_accessibility_system_ability_client.cpp | 42 +++--- .../napi/src/napi_accessibility_utils.cpp | 35 ++++- 12 files changed, 252 insertions(+), 112 deletions(-) diff --git a/frameworks/acfwk/include/accessibility_config_impl.h b/frameworks/acfwk/include/accessibility_config_impl.h index 5ea2099dd..1ee965d22 100644 --- a/frameworks/acfwk/include/accessibility_config_impl.h +++ b/frameworks/acfwk/include/accessibility_config_impl.h @@ -43,8 +43,8 @@ public: void SetScreenMagnificationState(const bool state); void SetShortKeyState(const bool state); void SetMouseKeyState(const bool state); - void SetCaptionState(const bool state); - void SetCaptionProperty(const CaptionProperty &caption); + void SetCaptionsState(const bool state); + void SetCaptionsProperty(const CaptionProperty &caption); void SetMouseAutoClick(const int32_t time); void SetShortkeyTarget(const std::string &name); void SetHighContrastTextState(bool state); @@ -59,8 +59,8 @@ public: void GetScreenMagnificationState(bool &state); void GetShortKeyState(bool &state); void GetMouseKeyState(bool &state); - void GetCaptionState(bool &state); - void GetCaptionProperty(CaptionProperty &caption); + void GetCaptionsState(bool &state); + void GetCaptionsProperty(CaptionProperty &caption); void GetMouseAutoClick(int32_t &time); void GetShortkeyTarget(std::string &name); void GetInvertColorState(bool &state); @@ -208,6 +208,7 @@ private: void UpdateAnimationOffEnabled(const bool enabled); void UpdateInvertColorEnabled(const bool enabled); void UpdateHighContrastTextEnabled(const bool enabled); + void InitVar(); sptr enableAbilityListsObserverStub_ = nullptr; sptr serviceProxy_ = nullptr; diff --git a/frameworks/acfwk/src/accessibility_config.cpp b/frameworks/acfwk/src/accessibility_config.cpp index 21144af71..90a9a6f46 100644 --- a/frameworks/acfwk/src/accessibility_config.cpp +++ b/frameworks/acfwk/src/accessibility_config.cpp @@ -94,16 +94,16 @@ void AccessibilityConfig::SetMouseKeyState(const bool state) pImpl_->SetMouseKeyState(state); } -void AccessibilityConfig::SetCaptionState(const bool state) +void AccessibilityConfig::SetCaptionsState(const bool state) { CHECK_IMPL_PTR() - pImpl_->SetCaptionState(state); + pImpl_->SetCaptionsState(state); } -void AccessibilityConfig::SetCaptionProperty(const CaptionProperty &caption) +void AccessibilityConfig::SetCaptionsProperty(const CaptionProperty &caption) { CHECK_IMPL_PTR() - pImpl_->SetCaptionProperty(caption); + pImpl_->SetCaptionsProperty(caption); } void AccessibilityConfig::SetMouseAutoClick(const int32_t time) @@ -184,16 +184,16 @@ void AccessibilityConfig::GetMouseKeyState(bool &state) const pImpl_->GetMouseKeyState(state); } -void AccessibilityConfig::GetCaptionState(bool &state) const +void AccessibilityConfig::GetCaptionsState(bool &state) const { CHECK_IMPL_PTR() - pImpl_->GetCaptionState(state); + pImpl_->GetCaptionsState(state); } -void AccessibilityConfig::GetCaptionProperty(CaptionProperty &caption) const +void AccessibilityConfig::GetCaptionsProperty(CaptionProperty &caption) const { CHECK_IMPL_PTR() - pImpl_->GetCaptionProperty(caption); + pImpl_->GetCaptionsProperty(caption); } void AccessibilityConfig::GetMouseAutoClick(int32_t &time) const diff --git a/frameworks/acfwk/src/accessibility_config_impl.cpp b/frameworks/acfwk/src/accessibility_config_impl.cpp index e58cd6019..5ae83fff8 100644 --- a/frameworks/acfwk/src/accessibility_config_impl.cpp +++ b/frameworks/acfwk/src/accessibility_config_impl.cpp @@ -49,6 +49,8 @@ AccessibilityConfig::Impl::Impl() return; } serviceProxy_->RegisterConfigObserver(configObserver_); + + InitVar(); } bool AccessibilityConfig::Impl::ConnectToService() @@ -128,7 +130,7 @@ bool AccessibilityConfig::Impl::DisableAbility(const std::string &name) return serviceProxy_->DisableAbility(name); } -void AccessibilityConfig::Impl::GetCaptionState(bool &state) +void AccessibilityConfig::Impl::GetCaptionsState(bool &state) { HILOG_INFO(); std::lock_guard lock(mutex_); @@ -140,7 +142,7 @@ void AccessibilityConfig::Impl::GetCaptionState(bool &state) state = serviceProxy_->GetCaptionState(); } -void AccessibilityConfig::Impl::GetCaptionProperty(CaptionProperty &caption) +void AccessibilityConfig::Impl::GetCaptionsProperty(CaptionProperty &caption) { HILOG_INFO(); std::lock_guard lock(mutex_); @@ -151,7 +153,7 @@ void AccessibilityConfig::Impl::GetCaptionProperty(CaptionProperty &caption) caption = serviceProxy_->GetCaptionProperty(); } -void AccessibilityConfig::Impl::SetCaptionProperty(const CaptionProperty& caption) +void AccessibilityConfig::Impl::SetCaptionsProperty(const CaptionProperty& caption) { HILOG_INFO(); std::lock_guard lock(mutex_); @@ -162,7 +164,7 @@ void AccessibilityConfig::Impl::SetCaptionProperty(const CaptionProperty& captio serviceProxy_->SetCaptionProperty(caption); } -void AccessibilityConfig::Impl::SetCaptionState(const bool state) +void AccessibilityConfig::Impl::SetCaptionsState(const bool state) { HILOG_INFO("state = [%{public}s]", state ? "True" : "False"); std::lock_guard lock(mutex_); @@ -1223,5 +1225,29 @@ void AccessibilityConfig::Impl::OnAccessibleAbilityManagerShortkeyTargetChanged( NotifyShortkeyTargetChanged(observers, shortkeyTarget); } + +void AccessibilityConfig::Impl::InitVar() +{ + if(!serviceProxy_){ + HILOG_ERROR("AAMS Service is not connected"); + return; + } + highContrastText_ = serviceProxy_->GetHighContrastTextState();; + invertColor_ = serviceProxy_->GetInvertColorState(); + animationOff_ = serviceProxy_->GetAnimationOffState(); + audioMono_ = serviceProxy_->GetAudioMonoState(); + mouseKey_ = serviceProxy_->GetMouseKeyState(); + captionState_ = serviceProxy_->GetCaptionState(); + screenMagnifier_ = serviceProxy_->GetScreenMagnificationState(); + shortkey_ = serviceProxy_->GetShortKeyState(); + mouseAutoClick_ = serviceProxy_->GetMouseAutoClick(); + daltonizationColorFilter_ = serviceProxy_->GetDaltonizationColorFilter(); + contentTimeout_ = serviceProxy_->GetContentTimeout(); + brightnessDiscount_ = serviceProxy_->GetBrightnessDiscount(); + audioBalance_ = serviceProxy_->GetAudioBalance(); + shortkeyTarget_ = serviceProxy_->GetShortkeyTarget(); + captionProperty_ = serviceProxy_->GetCaptionProperty(); + +} } // namespace AccessibilityConfig } // namespace OHOS \ No newline at end of file diff --git a/interfaces/innerkits/acfwk/include/accessibility_config.h b/interfaces/innerkits/acfwk/include/accessibility_config.h index b026fd9b9..4f8cf5abf 100644 --- a/interfaces/innerkits/acfwk/include/accessibility_config.h +++ b/interfaces/innerkits/acfwk/include/accessibility_config.h @@ -176,14 +176,14 @@ public: * @param state true:enable caption function; false:disable caption function * @return - */ - void SetCaptionState(const bool state); + void SetCaptionsState(const bool state); /** * @brief Set caption properties * @param caption caption properties * @return - */ - void SetCaptionProperty(const CaptionProperty &caption); + void SetCaptionsProperty(const CaptionProperty &caption); /** * @brief Set the time for the cursor to stop for the mouse to automatically perform the click action @@ -281,14 +281,14 @@ public: * @param state(out) true:the caption function is enabled; false:the caption function is disabled * @return - */ - void GetCaptionState(bool &state) const; + void GetCaptionsState(bool &state) const; /** * @brief Get caption properties * @param caption(out) caption properties * @return - */ - void GetCaptionProperty(CaptionProperty &caption) const; + void GetCaptionsProperty(CaptionProperty &caption) const; /** * @brief Get the time for the cursor to stop for the mouse to automatically perform the click action diff --git a/interfaces/innerkits/test/fuzztest/accessibilityconfig_fuzzer/accessibilityconfig_fuzzer.cpp b/interfaces/innerkits/test/fuzztest/accessibilityconfig_fuzzer/accessibilityconfig_fuzzer.cpp index cfa6d512c..af6e21a89 100644 --- a/interfaces/innerkits/test/fuzztest/accessibilityconfig_fuzzer/accessibilityconfig_fuzzer.cpp +++ b/interfaces/innerkits/test/fuzztest/accessibilityconfig_fuzzer/accessibilityconfig_fuzzer.cpp @@ -78,7 +78,7 @@ bool DoSomethingInterestingWithMyAPI(const uint8_t* data, size_t size) abConfig.SetScreenMagnificationState(data[startPos++] & 0x01); abConfig.SetShortKeyState(data[startPos++] & 0x01); abConfig.SetMouseKeyState(data[startPos++] & 0x01); - abConfig.SetCaptionState(data[startPos++] & 0x01); + abConfig.SetCaptionsState(data[startPos++] & 0x01); abConfig.SetHighContrastTextState(data[startPos++] & 0x01); abConfig.SetInvertColorState(data[startPos++] & 0x01); abConfig.SetAnimationOffState(data[startPos++] & 0x01); @@ -110,7 +110,7 @@ bool DoSomethingInterestingWithMyAPI(const uint8_t* data, size_t size) OHOS::AccessibilityConfig::CaptionProperty property; startPos += GenerateCaptionProperty(property, &data[startPos], size - startPos); - abConfig.SetCaptionProperty(property); + abConfig.SetCaptionsProperty(property); std::memcpy(&name, &data[startPos], LEN); std::string abilityName1(name); diff --git a/interfaces/kits/js/@ohos.accessibility.config.d.ts b/interfaces/kits/js/@ohos.accessibility.config.d.ts index 2464bd0ac..9897104a7 100644 --- a/interfaces/kits/js/@ohos.accessibility.config.d.ts +++ b/interfaces/kits/js/@ohos.accessibility.config.d.ts @@ -1,27 +1,75 @@ import accessibility from './@ohos.accessibility'; import { AsyncCallback, Callback } from './basic'; - + +/** + * Configuration of the accessibility. + * + * @since 9 + * @syscap SystemCapability.BarrierFree.Accessibility.Core + * @systemapi + */ declare namespace config { + /** + * Indicates the configuration of high-contrast text. + */ var highContrastText: Config; + /** + * Indicates the configuration of invert color. + */ var invertColor: Config; + /** + * Indicates the configuration of daltonization color filter. + */ var daltonizationColorFilter: Config; - // number int scope: 0 - 5000 ms + /** + * Indicates the configuration of content timeout. + */ var contentTimeout: Config; + /** + * Indicates the configuration of animation state. + */ var animationOff: Config; - // number float scope: 0.0 - 1.0 + /** + * Indicates the configuration of brightness discount. + */ var brightnessDiscount: Config; + /** + * Indicates the configuration of screen magnifier. + */ var screenMagnifier: Config; + /** + * Indicates the configuration of audio mono. + */ var audioMono: Config; - // number float scope: -1.0 - 1.0 + /** + * Indicates the configuration of audio balance. + */ var audioBalance: Config; + /** + * Indicates the configuration of monse key state. + */ var mouseKey: Config; - // number int scope: -1 off / 0 - 5000 ms on + /** + * Indicates the configuration of mouse auto click. + */ var mouseAutoClick: Config; + /** + * Indicates the configuration of shortkey state. + */ var shortkey: Config; - var shortkey_target: Config; - var caption: Config; - var captionStyle: Config; - + /** + * Indicates the configuration of shortkey target. + */ + var shortkeyTarget: Config; + /** + * Indicates the configuration of captions state. + */ + var captions: Config; + /** + * Indicates the configuration of captions style. + */ + var captionsStyle: Config; + /** * Enable the acceessibility extension ability. * @param name Indicates the accessibility extension name, in "bundleName/abilityName" format. @@ -38,35 +86,52 @@ declare namespace config { function disableAbility(name: string, callback: AsyncCallback): void; /** - * Register the observe of the AbilityLists enable status changed. - * @since 9 - * @sysCap Accessibility - * @param - - * @return - - */ + * Register the listener to listen for for changes in the enabled status of accessibility extensions. + * @param type Indicates the enableAbilityListsStateChanged type. + * @param callback Indicates the listener. + */ function on(type: 'enableAbilityListsStateChanged', callback: Callback): void; - - /** - * Deregister the observe of the AbilityLists enable status changed. - * @since 9 - * @sysCap Accessibility - * @param - - * @return - - */ + + /** + * Deregister listener that watch for changes in the enabled status of accessibility extensions. + * @param type Indicates the enableAbilityListsStateChanged type. + * @param callback Indicates the listener. + */ function off(type: 'enableAbilityListsStateChanged', callback?: Callback): void; - + + /** + * Indicates setting, getting, and listening to changes in configuration. + */ interface Config { - // permission: accessibility.config.write - set(value: T, callback: AsyncCallback): void; + /** + * Setting configuration value. + * @param value Indicates the value. + */ set(value: T): Promise; - // permission: accessibility.config.read - get(callback: AsyncCallback): void; + set(value: T, callback: AsyncCallback): void; + + /** + * Getting configuration value. + */ get(): Promise; - // permission: accessibility.config.read + get(callback: AsyncCallback): void; + + /** + * Register the listener to listen for configuration changes. + * @param callback Indicates the listener. + */ on(callback: Callback): void; + + /** + * Deregister the listener to listen for configuration changes. + * @param callback Indicates the listener. + */ off(callback?: Callback): void; } - + + /** + * Indicates the type of daltonization color filter. + */ type DaltonizationColorFilter = 'Normal' | 'Protanomaly' | 'Deuteranomaly' | 'Tritanomaly'; } export default config; \ No newline at end of file diff --git a/interfaces/kits/napi/accessibility_config/src/napi_accessibility_config.cpp b/interfaces/kits/napi/accessibility_config/src/napi_accessibility_config.cpp index 76ab9cc34..a986ba12f 100644 --- a/interfaces/kits/napi/accessibility_config/src/napi_accessibility_config.cpp +++ b/interfaces/kits/napi/accessibility_config/src/napi_accessibility_config.cpp @@ -239,7 +239,11 @@ void NAccessibilityConfig::SetConfigComplete(napi_env env, napi_status status, v napi_get_undefined(env, &undefined); napi_get_undefined(env, &ret); if (callbackInfo->callback_) { - result[PARAM0] = GetErrorValue(env, CODE_SUCCESS); + if (callbackInfo->ret_) { + result[PARAM0] = GetErrorValue(env, CODE_SUCCESS); + } else { + result[PARAM0] = GetErrorValue(env, CODE_FAILED); + } result[PARAM1] = ret; napi_get_reference_value(env, callbackInfo->callback_, &callback); napi_value returnVal; @@ -247,7 +251,11 @@ void NAccessibilityConfig::SetConfigComplete(napi_env env, napi_status status, v napi_delete_reference(env, callbackInfo->callback_); HILOG_DEBUG("complete function callback mode"); } else { - napi_resolve_deferred(env, callbackInfo->deferred_, undefined); + if (callbackInfo->ret_) { + napi_resolve_deferred(env, callbackInfo->deferred_, undefined); + } else { + napi_reject_deferred(env, callbackInfo->deferred_, undefined); + } HILOG_DEBUG("complete function promise mode"); } napi_delete_async_work(env, callbackInfo->work_); @@ -263,6 +271,10 @@ void NAccessibilityConfig::SetConfigExecute(napi_env env, void* data) HILOG_ERROR("callbackInfo is nullptr"); return; } + if (!callbackInfo->ret_) { + HILOG_ERROR("check param error"); + return; + } auto &instance = Singleton::GetInstance(); switch (callbackInfo->id_) { case OHOS::AccessibilityConfig::CONFIG_ID::CONFIG_HIGH_CONTRASTE_TEXT: @@ -287,7 +299,7 @@ void NAccessibilityConfig::SetConfigExecute(napi_env env, void* data) instance.SetShortKeyState(callbackInfo->boolConfig_); break; case OHOS::AccessibilityConfig::CONFIG_ID::CONFIG_CAPTION_STATE: - instance.SetCaptionState(callbackInfo->boolConfig_); + instance.SetCaptionsState(callbackInfo->boolConfig_); break; case OHOS::AccessibilityConfig::CONFIG_ID::CONFIG_CONTENT_TIMEOUT: instance.SetContentTimeout(callbackInfo->uint32Config_); @@ -311,7 +323,7 @@ void NAccessibilityConfig::SetConfigExecute(napi_env env, void* data) instance.SetShortkeyTarget(callbackInfo->stringConfig_); break; case OHOS::AccessibilityConfig::CONFIG_ID::CONFIG_CAPTION_STYLE: - instance.SetCaptionProperty(callbackInfo->captionProperty_); + instance.SetCaptionsProperty(callbackInfo->captionProperty_); break; default: break; @@ -343,8 +355,6 @@ void NAccessibilityConfig::GetConfigComplete(napi_env env, napi_status status, v napi_get_boolean(env, callbackInfo->boolConfig_, &result[PARAM1]); break; case OHOS::AccessibilityConfig::CONFIG_ID::CONFIG_CONTENT_TIMEOUT: - napi_create_uint32(env, callbackInfo->uint32Config_, &result[PARAM1]); - break; case OHOS::AccessibilityConfig::CONFIG_ID::CONFIG_MOUSE_AUTOCLICK: napi_create_int32(env, callbackInfo->int32Config_, &result[PARAM1]); break; @@ -411,10 +421,14 @@ void NAccessibilityConfig::GetConfigExecute(napi_env env, void* data) instance.GetShortKeyState(callbackInfo->boolConfig_); break; case OHOS::AccessibilityConfig::CONFIG_ID::CONFIG_CAPTION_STATE: - instance.GetCaptionState(callbackInfo->boolConfig_); + instance.GetCaptionsState(callbackInfo->boolConfig_); break; case OHOS::AccessibilityConfig::CONFIG_ID::CONFIG_CONTENT_TIMEOUT: - instance.GetContentTimeout(callbackInfo->uint32Config_); + { + uint32_t timeout = 0; + instance.GetContentTimeout(timeout); + callbackInfo->int32Config_ = static_cast(timeout); + } break; case OHOS::AccessibilityConfig::CONFIG_ID::CONFIG_MOUSE_AUTOCLICK: instance.GetMouseAutoClick(callbackInfo->int32Config_); @@ -436,7 +450,7 @@ void NAccessibilityConfig::GetConfigExecute(napi_env env, void* data) instance.GetShortkeyTarget(callbackInfo->stringConfig_); break; case OHOS::AccessibilityConfig::CONFIG_ID::CONFIG_CAPTION_STYLE: - instance.GetCaptionProperty(callbackInfo->captionProperty_); + instance.GetCaptionsProperty(callbackInfo->captionProperty_); break; default: break; @@ -478,21 +492,21 @@ napi_value NAccessibilityConfig::SetConfig(napi_env env, napi_callback_info info case OHOS::AccessibilityConfig::CONFIG_ID::CONFIG_CAPTION_STATE: { bool state = false; - ParseBool(env, state, parameters[PARAM0]); + callbackInfo->ret_ = ParseBool(env, state, parameters[PARAM0]); callbackInfo->boolConfig_ = state; } break; case OHOS::AccessibilityConfig::CONFIG_ID::CONFIG_CONTENT_TIMEOUT: { - uint32_t timeout = 0; - ParseUint32(env, timeout, parameters[PARAM0]); - callbackInfo->uint32Config_ = timeout; + int32_t timeout = 0; + callbackInfo->ret_ = ParseInt32(env, timeout, parameters[PARAM0]); + callbackInfo->uint32Config_ = static_cast(timeout); } break; case OHOS::AccessibilityConfig::CONFIG_ID::CONFIG_MOUSE_AUTOCLICK: { int32_t time = 0; - ParseInt32(env, time, parameters[PARAM0]); + callbackInfo->ret_ = ParseInt32(env, time, parameters[PARAM0]); callbackInfo->int32Config_ = time; } break; @@ -500,7 +514,7 @@ napi_value NAccessibilityConfig::SetConfig(napi_env env, napi_callback_info info case OHOS::AccessibilityConfig::CONFIG_ID::CONFIG_BRIGHTNESS_DISCOUNT: { double doubleTemp = 0; - napi_get_value_double(env, parameters[PARAM0], &doubleTemp); + callbackInfo->ret_ = ParseDouble(env, doubleTemp, parameters[PARAM0]); callbackInfo->floatConfig_ = static_cast(doubleTemp); } break; @@ -508,12 +522,12 @@ napi_value NAccessibilityConfig::SetConfig(napi_env env, napi_callback_info info case OHOS::AccessibilityConfig::CONFIG_ID::CONFIG_SHORT_KEY_TARGET: { std::string target = ""; - ParseString(env, target, parameters[PARAM0]); + callbackInfo->ret_ = ParseString(env, target, parameters[PARAM0]) && target.length() > 0; callbackInfo->stringConfig_ = target; } break; case OHOS::AccessibilityConfig::CONFIG_ID::CONFIG_CAPTION_STYLE: - ConvertObjToCaptionProperty(env, parameters[PARAM0], &callbackInfo->captionProperty_); + callbackInfo->ret_ = ConvertObjToCaptionProperty(env, parameters[PARAM0], &callbackInfo->captionProperty_); break; default: break; diff --git a/interfaces/kits/napi/accessibility_config/src/native_module.cpp b/interfaces/kits/napi/accessibility_config/src/native_module.cpp index 2c33c3a3e..9de67f1df 100644 --- a/interfaces/kits/napi/accessibility_config/src/native_module.cpp +++ b/interfaces/kits/napi/accessibility_config/src/native_module.cpp @@ -283,11 +283,11 @@ static napi_value InitShortKeyTarget(napi_env env) return shortKeyTargetValue; } -static napi_value InitCaptionState(napi_env env) +static napi_value InitCaptionsState(napi_env env) { - napi_value captionValue; - napi_create_object(env, &captionValue); - NAPI_CALL(env, napi_define_properties(env, captionValue, + napi_value captionsValue; + napi_create_object(env, &captionsValue); + NAPI_CALL(env, napi_define_properties(env, captionsValue, sizeof(configDesc) / sizeof(configDesc[0]), configDesc)); NAccessibilityConfigClass* nativeObj = @@ -297,16 +297,16 @@ static napi_value InitCaptionState(napi_env env) return nullptr; } nativeObj->SetEnv(env); - NAPI_CALL(env, napi_wrap(env, captionValue, reinterpret_cast(nativeObj), + NAPI_CALL(env, napi_wrap(env, captionsValue, reinterpret_cast(nativeObj), NAccessibilityConfigClass::Destructor, nullptr, nativeObj->GetWrapper())); - return captionValue; + return captionsValue; } -static napi_value InitCaptionStyle(napi_env env) +static napi_value InitCaptionsStyle(napi_env env) { - napi_value captionStyleValue; - napi_create_object(env, &captionStyleValue); - NAPI_CALL(env, napi_define_properties(env, captionStyleValue, + napi_value captionsStyleValue; + napi_create_object(env, &captionsStyleValue); + NAPI_CALL(env, napi_define_properties(env, captionsStyleValue, sizeof(configDesc) / sizeof(configDesc[0]), configDesc)); NAccessibilityConfigClass* nativeObj = @@ -316,9 +316,9 @@ static napi_value InitCaptionStyle(napi_env env) return nullptr; } nativeObj->SetEnv(env); - NAPI_CALL(env, napi_wrap(env, captionStyleValue, reinterpret_cast(nativeObj), + NAPI_CALL(env, napi_wrap(env, captionsStyleValue, reinterpret_cast(nativeObj), NAccessibilityConfigClass::Destructor, nullptr, nativeObj->GetWrapper())); - return captionStyleValue; + return captionsStyleValue; } static napi_value InitConfigModule(napi_env env, napi_value exports) @@ -336,8 +336,8 @@ static napi_value InitConfigModule(napi_env env, napi_value exports) napi_value mouseAutoClickValue = InitMouseAutoClick(env); napi_value shortKeyValue = InitShortKey(env); napi_value shortKeyTargetValue = InitShortKeyTarget(env); - napi_value captionValue = InitCaptionState(env); - napi_value captionStyleValue = InitCaptionStyle(env); + napi_value captionsValue = InitCaptionsState(env); + napi_value captionsStyleValue = InitCaptionsStyle(env); napi_property_descriptor desc[] = { DECLARE_NAPI_FUNCTION("on", NAccessibilityConfig::SubscribeState), @@ -356,9 +356,9 @@ static napi_value InitConfigModule(napi_env env, napi_value exports) DECLARE_NAPI_STATIC_PROPERTY("mouseKey", mouseKeyValue), DECLARE_NAPI_STATIC_PROPERTY("mouseAutoClick", mouseAutoClickValue), DECLARE_NAPI_STATIC_PROPERTY("shortkey", shortKeyValue), - DECLARE_NAPI_STATIC_PROPERTY("shortkey_target", shortKeyTargetValue), - DECLARE_NAPI_STATIC_PROPERTY("caption", captionValue), - DECLARE_NAPI_STATIC_PROPERTY("captionStyle", captionStyleValue), + DECLARE_NAPI_STATIC_PROPERTY("shortkeyTarget", shortKeyTargetValue), + DECLARE_NAPI_STATIC_PROPERTY("captions", captionsValue), + DECLARE_NAPI_STATIC_PROPERTY("captionsStyle", captionsStyleValue), }; NAPI_CALL(env, napi_define_properties(env, exports, sizeof(desc) / sizeof(desc[0]), desc)); diff --git a/interfaces/kits/napi/include/napi_accessibility_utils.h b/interfaces/kits/napi/include/napi_accessibility_utils.h index df2a8213f..95c7052a1 100644 --- a/interfaces/kits/napi/include/napi_accessibility_utils.h +++ b/interfaces/kits/napi/include/napi_accessibility_utils.h @@ -50,13 +50,13 @@ bool ParseBool(napi_env env, bool& param, napi_value args); bool ParseString(napi_env env, std::string& param, napi_value args); bool ParseUint32(napi_env env, uint32_t& param, napi_value args); bool ParseInt32(napi_env env, int32_t& param, napi_value args); +bool ParseDouble(napi_env env, double& param, napi_value args); napi_value GetErrorValue(napi_env env, int errCode); std::string ConvertWindowTypeToString(OHOS::Accessibility::AccessibilityWindowType type); std::string ConvertDaltonizationTypeToString(OHOS::AccessibilityConfig::DALTONIZATION_TYPE type); void ConvertOperationToJS(napi_env env, napi_value result, const OHOS::Accessibility::AccessibleAction& operation); void ConvertGridInfoToJS(napi_env env, napi_value nGrid, const OHOS::Accessibility::GridInfo& grid); -void ConvertRangeInfoToJS(napi_env env, napi_value nRangeInfo, const OHOS::Accessibility::RangeInfo& rangeInfo); void ConvertGridItemToJS(napi_env env, napi_value nGridItem, const OHOS::Accessibility::GridItemInfo& gridItem); void ConvertRectToJS(napi_env env, napi_value result, const OHOS::Accessibility::Rect& rect); void ConvertAccessibleAbilityInfosToJS(napi_env env, napi_value& result, @@ -69,7 +69,7 @@ void ConvertActionArgsJSToNAPI( void ConvertKeyEventToJS(napi_env env, napi_value result, const std::shared_ptr &keyEvent); void ConvertCaptionPropertyToJS(napi_env env, napi_value& result, OHOS::AccessibilityConfig::CaptionProperty captionProperty); -void ConvertObjToCaptionProperty( +bool ConvertObjToCaptionProperty( napi_env env, napi_value object, OHOS::AccessibilityConfig::CaptionProperty* ptrCaptionProperty); void ConvertJSToStringVec(napi_env env, napi_value arrayValue, std::vector &values); void ConvertStringVecToJS(napi_env env, napi_value &result, std::vector values); diff --git a/interfaces/kits/napi/src/napi_accessibility_config_observer.cpp b/interfaces/kits/napi/src/napi_accessibility_config_observer.cpp index 5988a43b6..685bc60aa 100644 --- a/interfaces/kits/napi/src/napi_accessibility_config_observer.cpp +++ b/interfaces/kits/napi/src/napi_accessibility_config_observer.cpp @@ -52,10 +52,10 @@ void NAccessibilityConfigObserver::OnConfigChanged(const ConfigValue &value) NotifyIntChanged2JS(value.mouseAutoClick); break; case CONFIG_DALTONIZATION_COLOR_FILTER: - NotifyUintChanged2JS(value.daltonizationColorFilter); + NotifyStringChanged2JS(ConvertDaltonizationTypeToString(value.daltonizationColorFilter)); break; case CONFIG_CONTENT_TIMEOUT: - NotifyUintChanged2JS(value.contentTimeout); + NotifyIntChanged2JS(static_cast(value.contentTimeout)); break; case CONFIG_BRIGHTNESS_DISCOUNT: NotifyFloatChanged2JS(value.brightnessDiscount); @@ -110,6 +110,7 @@ void NAccessibilityConfigObserver::NotifyStateChanged2JS(bool enabled) [](uv_work_t *work, int status) { StateCallbackInfo *callbackInfo = static_cast(work->data); napi_value jsEvent; + napi_create_object(callbackInfo->env_, &jsEvent); napi_get_boolean(callbackInfo->env_, callbackInfo->state_, &jsEvent); napi_value handler = nullptr; diff --git a/interfaces/kits/napi/src/napi_accessibility_system_ability_client.cpp b/interfaces/kits/napi/src/napi_accessibility_system_ability_client.cpp index f72b66f53..170f84875 100644 --- a/interfaces/kits/napi/src/napi_accessibility_system_ability_client.cpp +++ b/interfaces/kits/napi/src/napi_accessibility_system_ability_client.cpp @@ -539,7 +539,7 @@ napi_value NAccessibilityClient::SetCaptionStateEnabled(napi_env env, napi_callb HILOG_INFO("captionState = %{public}s", captionState ? "True" : "False"); auto &instance = Singleton::GetInstance(); - instance.SetCaptionState(captionState); + instance.SetCaptionsState(captionState); } else { HILOG_ERROR("argc size Error"); } @@ -556,7 +556,7 @@ napi_value NAccessibilityClient::GetCaptionStateEnabled(napi_env env, napi_callb auto &instance = Singleton::GetInstance(); bool captionState = false; - instance.GetCaptionState(captionState); + instance.GetCaptionsState(captionState); napi_get_boolean(env, captionState, &captionStateEnabled); HILOG_INFO("captionState = %{public}s", captionState ? "True" : "False"); @@ -574,7 +574,7 @@ napi_value NAccessibilityClient::SetCaptionStyle(napi_env env, napi_callback_inf if (argc >= ARGS_SIZE_ONE) { ConvertObjToCaptionProperty(env, parameters[PARAM0], &captionProperty); auto &instance = Singleton::GetInstance(); - instance.SetCaptionProperty(captionProperty); + instance.SetCaptionsProperty(captionProperty); } else { HILOG_ERROR("argc size Error"); } @@ -697,7 +697,7 @@ napi_value NAccessibilityClient::GetCaptionsFontFamily(napi_env env, napi_callba napi_value returnValue = nullptr; auto &instance = Singleton::GetInstance(); OHOS::AccessibilityConfig::CaptionProperty captionProperty = {}; - instance.GetCaptionProperty(captionProperty); + instance.GetCaptionsProperty(captionProperty); napi_create_string_utf8(env, captionProperty.GetFontFamily().c_str(), NAPI_AUTO_LENGTH, &returnValue); return returnValue; } @@ -717,10 +717,10 @@ napi_value NAccessibilityClient::SetCaptionsFontFamily(napi_env env, napi_callba // Get CaptionProperty auto &instance = Singleton::GetInstance(); OHOS::AccessibilityConfig::CaptionProperty captionProperty {}; - instance.GetCaptionProperty(captionProperty); + instance.GetCaptionsProperty(captionProperty); // Change the input info and then set the CaptionProperty captionProperty.SetFontFamily(std::string(outBuffer)); - instance.SetCaptionProperty(captionProperty); + instance.SetCaptionsProperty(captionProperty); } else { HILOG_ERROR("argc size Error"); } @@ -735,7 +735,7 @@ napi_value NAccessibilityClient::GetCaptionsFontScale(napi_env env, napi_callbac napi_value returnValue = nullptr; auto &instance = Singleton::GetInstance(); OHOS::AccessibilityConfig::CaptionProperty captionProperty = {}; - instance.GetCaptionProperty(captionProperty); + instance.GetCaptionsProperty(captionProperty); napi_create_int32(env, captionProperty.GetFontScale(), &returnValue); return returnValue; } @@ -754,10 +754,10 @@ napi_value NAccessibilityClient::SetCaptionsFontScale(napi_env env, napi_callbac // Get CaptionProperty auto &instance = Singleton::GetInstance(); OHOS::AccessibilityConfig::CaptionProperty captionProperty = {}; - instance.GetCaptionProperty(captionProperty); + instance.GetCaptionsProperty(captionProperty); // Change the input info and then set the CaptionProperty captionProperty.SetFontScale(num); - instance.SetCaptionProperty(captionProperty); + instance.SetCaptionsProperty(captionProperty); } else { HILOG_ERROR("argc size Error"); } @@ -772,7 +772,7 @@ napi_value NAccessibilityClient::GetCaptionFrontColor(napi_env env, napi_callbac napi_value returnValue = nullptr; auto &instance = Singleton::GetInstance(); OHOS::AccessibilityConfig::CaptionProperty captionProperty = {}; - instance.GetCaptionProperty(captionProperty); + instance.GetCaptionsProperty(captionProperty); uint32_t color = captionProperty.GetFontColor(); std::string colorStr = ConvertColorToString(color); napi_create_string_utf8(env, colorStr.c_str(), NAPI_AUTO_LENGTH, &returnValue); @@ -790,10 +790,10 @@ napi_value NAccessibilityClient::SetCaptionFrontColor(napi_env env, napi_callbac // Get CaptionProperty auto &instance = Singleton::GetInstance(); OHOS::AccessibilityConfig::CaptionProperty captionProperty = {}; - instance.GetCaptionProperty(captionProperty); + instance.GetCaptionsProperty(captionProperty); // Change the input info and then set the CaptionProperty captionProperty.SetFontColor(color); - (void)instance.SetCaptionProperty(captionProperty); + (void)instance.SetCaptionsProperty(captionProperty); } else { HILOG_ERROR("argc size Error"); } @@ -808,7 +808,7 @@ napi_value NAccessibilityClient::GetCaptionFontEdgeType(napi_env env, napi_callb napi_value returnValue = nullptr; auto &instance = Singleton::GetInstance(); OHOS::AccessibilityConfig::CaptionProperty captionProperty = {}; - instance.GetCaptionProperty(captionProperty); + instance.GetCaptionsProperty(captionProperty); napi_create_string_utf8(env, captionProperty.GetFontEdgeType().c_str(), NAPI_AUTO_LENGTH, &returnValue); return returnValue; } @@ -829,10 +829,10 @@ napi_value NAccessibilityClient::SetCaptionFontEdgeType(napi_env env, napi_callb // Get CaptionProperty auto &instance = Singleton::GetInstance(); OHOS::AccessibilityConfig::CaptionProperty captionProperty = {}; - instance.GetCaptionProperty(captionProperty); + instance.GetCaptionsProperty(captionProperty); // Change the input info and then set the CaptionProperty captionProperty.SetFontEdgeType(std::string(outBuffer)); - instance.SetCaptionProperty(captionProperty); + instance.SetCaptionsProperty(captionProperty); } else { HILOG_ERROR("argc size Error"); } @@ -847,7 +847,7 @@ napi_value NAccessibilityClient::GetCaptionBackgroundColor(napi_env env, napi_ca napi_value returnValue = nullptr; auto &instance = Singleton::GetInstance(); OHOS::AccessibilityConfig::CaptionProperty captionProperty = {}; - instance.GetCaptionProperty(captionProperty); + instance.GetCaptionsProperty(captionProperty); uint32_t color = captionProperty.GetBackgroundColor(); std::string colorStr = ConvertColorToString(color); napi_create_string_utf8(env, colorStr.c_str(), NAPI_AUTO_LENGTH, &returnValue); @@ -865,10 +865,10 @@ napi_value NAccessibilityClient::SetCaptionBackgroundColor(napi_env env, napi_ca // Get CaptionProperty auto &instance = Singleton::GetInstance(); OHOS::AccessibilityConfig::CaptionProperty captionProperty = {}; - instance.GetCaptionProperty(captionProperty); + instance.GetCaptionsProperty(captionProperty); // Change the input info and then set the CaptionProperty captionProperty.SetBackgroundColor(color); - (void)instance.SetCaptionProperty(captionProperty); + (void)instance.SetCaptionsProperty(captionProperty); } else { HILOG_ERROR("argc size Error"); } @@ -883,7 +883,7 @@ napi_value NAccessibilityClient::GetCaptionWindowColor(napi_env env, napi_callba napi_value returnValue = nullptr; auto &instance = Singleton::GetInstance(); OHOS::AccessibilityConfig::CaptionProperty captionProperty = {}; - instance.GetCaptionProperty(captionProperty); + instance.GetCaptionsProperty(captionProperty); uint32_t color = captionProperty.GetWindowColor(); std::string colorStr = ConvertColorToString(color); napi_create_string_utf8(env, colorStr.c_str(), NAPI_AUTO_LENGTH, &returnValue); @@ -901,10 +901,10 @@ napi_value NAccessibilityClient::SetCaptionWindowColor(napi_env env, napi_callba // Get CaptionProperty auto &instance = Singleton::GetInstance(); OHOS::AccessibilityConfig::CaptionProperty captionProperty = {}; - instance.GetCaptionProperty(captionProperty); + instance.GetCaptionsProperty(captionProperty); // Change the input info and then set the CaptionProperty captionProperty.SetWindowColor(color); - (void)instance.SetCaptionProperty(captionProperty); + (void)instance.SetCaptionsProperty(captionProperty); } else { HILOG_ERROR("argc size Error"); } diff --git a/interfaces/kits/napi/src/napi_accessibility_utils.cpp b/interfaces/kits/napi/src/napi_accessibility_utils.cpp index 9dffc08b9..bb06fe5bc 100644 --- a/interfaces/kits/napi/src/napi_accessibility_utils.cpp +++ b/interfaces/kits/napi/src/napi_accessibility_utils.cpp @@ -128,6 +128,25 @@ bool ParseInt32(napi_env env, int32_t& param, napi_value args) return true; } +bool ParseDouble(napi_env env, double& param, napi_value args) +{ + napi_status status; + napi_valuetype valuetype; + status = napi_typeof(env, args, &valuetype); + if (status != napi_ok) { + HILOG_ERROR("napi_typeof error and status is %{public}d", status); + return false; + } + + if (valuetype != napi_number) { + HILOG_ERROR("Wrong argument type. uint32 expected."); + return false; + } + + napi_get_value_double(env, args, ¶m); + return true; +} + napi_value GetErrorValue(napi_env env, int errCode) { napi_value result = nullptr; @@ -1365,7 +1384,7 @@ uint32_t GetColorValue(napi_env env, napi_value value) return color; } -void ConvertObjToCaptionProperty( +bool ConvertObjToCaptionProperty( napi_env env, napi_value object, OHOS::AccessibilityConfig::CaptionProperty* ptrCaptionProperty) { HILOG_DEBUG("start"); @@ -1382,6 +1401,8 @@ void ConvertObjToCaptionProperty( napi_get_property(env, object, propertyNameValue, &value); napi_get_value_string_utf8(env, value, outBuffer, CHAE_BUFFER_MAX, &outSize); ptrCaptionProperty->SetFontFamily(std::string(outBuffer)); + } else { + return false; } napi_create_string_utf8(env, "fontScale", NAPI_AUTO_LENGTH, &propertyNameValue); @@ -1391,12 +1412,16 @@ void ConvertObjToCaptionProperty( napi_get_property(env, object, propertyNameValue, &value); napi_get_value_int32(env, value, &num); ptrCaptionProperty->SetFontScale(num); + } else { + return false; } napi_create_string_utf8(env, "fontColor", NAPI_AUTO_LENGTH, &propertyNameValue); napi_has_property(env, object, propertyNameValue, &hasProperty); if (hasProperty) { ptrCaptionProperty->SetFontColor(GetColorValue(env, object, propertyNameValue)); + } else { + return false; } napi_create_string_utf8(env, "fontEdgeType", NAPI_AUTO_LENGTH, &propertyNameValue); @@ -1408,19 +1433,27 @@ void ConvertObjToCaptionProperty( napi_get_property(env, object, propertyNameValue, &value); napi_get_value_string_utf8(env, value, outBuffer, CHAE_BUFFER_MAX, &outSize); ptrCaptionProperty->SetFontEdgeType(std::string(outBuffer)); + } else { + return false; } napi_create_string_utf8(env, "backgroundColor", NAPI_AUTO_LENGTH, &propertyNameValue); napi_has_property(env, object, propertyNameValue, &hasProperty); if (hasProperty) { ptrCaptionProperty->SetBackgroundColor(GetColorValue(env, object, propertyNameValue)); + } else { + return false; } napi_create_string_utf8(env, "windowColor", NAPI_AUTO_LENGTH, &propertyNameValue); napi_has_property(env, object, propertyNameValue, &hasProperty); if (hasProperty) { ptrCaptionProperty->SetWindowColor(GetColorValue(env, object, propertyNameValue)); + } else { + return false; } + + return true; } void ConvertJSToStringVec(napi_env env, napi_value arrayValue, std::vector& values) From 2c0654cebeb66b18008dea5c494f59233d8f55e3 Mon Sep 17 00:00:00 2001 From: Mupceet Date: Fri, 22 Jul 2022 13:08:09 +0800 Subject: [PATCH 2/2] fix compile and codecheck problems Signed-off-by: Mupceet --- frameworks/acfwk/src/accessibility_config_impl.cpp | 5 ++--- interfaces/kits/napi/include/napi_accessibility_utils.h | 1 + 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/frameworks/acfwk/src/accessibility_config_impl.cpp b/frameworks/acfwk/src/accessibility_config_impl.cpp index 5ae83fff8..8c5fab613 100644 --- a/frameworks/acfwk/src/accessibility_config_impl.cpp +++ b/frameworks/acfwk/src/accessibility_config_impl.cpp @@ -1228,11 +1228,11 @@ void AccessibilityConfig::Impl::OnAccessibleAbilityManagerShortkeyTargetChanged( void AccessibilityConfig::Impl::InitVar() { - if(!serviceProxy_){ + if (!serviceProxy_) { HILOG_ERROR("AAMS Service is not connected"); return; } - highContrastText_ = serviceProxy_->GetHighContrastTextState();; + highContrastText_ = serviceProxy_->GetHighContrastTextState(); invertColor_ = serviceProxy_->GetInvertColorState(); animationOff_ = serviceProxy_->GetAnimationOffState(); audioMono_ = serviceProxy_->GetAudioMonoState(); @@ -1247,7 +1247,6 @@ void AccessibilityConfig::Impl::InitVar() audioBalance_ = serviceProxy_->GetAudioBalance(); shortkeyTarget_ = serviceProxy_->GetShortkeyTarget(); captionProperty_ = serviceProxy_->GetCaptionProperty(); - } } // namespace AccessibilityConfig } // namespace OHOS \ No newline at end of file diff --git a/interfaces/kits/napi/include/napi_accessibility_utils.h b/interfaces/kits/napi/include/napi_accessibility_utils.h index 95c7052a1..032683443 100644 --- a/interfaces/kits/napi/include/napi_accessibility_utils.h +++ b/interfaces/kits/napi/include/napi_accessibility_utils.h @@ -57,6 +57,7 @@ std::string ConvertWindowTypeToString(OHOS::Accessibility::AccessibilityWindowTy std::string ConvertDaltonizationTypeToString(OHOS::AccessibilityConfig::DALTONIZATION_TYPE type); void ConvertOperationToJS(napi_env env, napi_value result, const OHOS::Accessibility::AccessibleAction& operation); void ConvertGridInfoToJS(napi_env env, napi_value nGrid, const OHOS::Accessibility::GridInfo& grid); +void ConvertRangeInfoToJS(napi_env env, napi_value nRangeInfo, const OHOS::Accessibility::RangeInfo& rangeInfo); void ConvertGridItemToJS(napi_env env, napi_value nGridItem, const OHOS::Accessibility::GridItemInfo& gridItem); void ConvertRectToJS(napi_env env, napi_value result, const OHOS::Accessibility::Rect& rect); void ConvertAccessibleAbilityInfosToJS(napi_env env, napi_value& result,