From e5551fad419c1eb5921bc30308cfe2974fe34afc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E5=8F=91=E5=8F=91?= Date: Fri, 8 Aug 2025 16:29:46 +0800 Subject: [PATCH] description MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 小发发 --- .../ets/@ohos.accessibility.config.ets | 18 ++++--- .../kits/ani/ets/@ohos.accessibility.ets | 52 ++++++++++++++++--- ...ni_accessibility_system_ability_client.cpp | 2 +- interfaces/kits/ani/src/ani_register.cpp | 4 +- 4 files changed, 57 insertions(+), 19 deletions(-) diff --git a/interfaces/kits/ani/accessibility_config/ets/@ohos.accessibility.config.ets b/interfaces/kits/ani/accessibility_config/ets/@ohos.accessibility.config.ets index 92b88ebd..84f03f9f 100644 --- a/interfaces/kits/ani/accessibility_config/ets/@ohos.accessibility.config.ets +++ b/interfaces/kits/ani/accessibility_config/ets/@ohos.accessibility.config.ets @@ -21,17 +21,19 @@ export namespace config { let highContrastText: Config = new HighContrastTextConfig(); interface Config { - set(value: T): Promise; - set(value: T, callback: AsyncCallback): void; - get(): Promise; - get(callback: AsyncCallback): void; + setReturnsPromise(value: T): Promise; + setWithCallback(value: T, callback: AsyncCallback): void; + getReturnsPromise(): Promise; + getWithCallback(callback: AsyncCallback): void; + overload set { setReturnsPromise, setWithCallback }; + overload get { getReturnsPromise, getWithCallback }; } class HighContrastTextConfig implements Config { native setSync(value: boolean): void; native getSync(): boolean; - set(value: Boolean): Promise { + setReturnsPromise(value: Boolean): Promise { return new Promise((resolve, reject): void => { taskpool.execute((): void => { return this.setSync(value); @@ -45,7 +47,7 @@ export namespace config { }); } - set(value: Boolean, callback: AsyncCallback): void { + setWithCallback(value: Boolean, callback: AsyncCallback): void { taskpool.execute((): void => { return this.setSync(value); }) @@ -57,7 +59,7 @@ export namespace config { }); } - get(): Promise { + getReturnsPromise(): Promise { return new Promise((resolve, reject): void => { taskpool.execute((): Boolean => { return this.getSync(); @@ -71,7 +73,7 @@ export namespace config { }); } - get(callback: AsyncCallback): void { + getWithCallback(callback: AsyncCallback): void { taskpool.execute((): Boolean => { return this.getSync(); }) diff --git a/interfaces/kits/ani/ets/@ohos.accessibility.ets b/interfaces/kits/ani/ets/@ohos.accessibility.ets index 380eee34..27a2ec82 100644 --- a/interfaces/kits/ani/ets/@ohos.accessibility.ets +++ b/interfaces/kits/ani/ets/@ohos.accessibility.ets @@ -13,7 +13,7 @@ * limitations under the License. */ -import { BusinessError, AsyncCallback } from '@ohos.base'; +import { BusinessError, AsyncCallback, Callback } from '@ohos.base'; native function sendAccessibilityEventSync(event: accessibility.EventInfo): void; @@ -40,21 +40,55 @@ export namespace accessibility { export native function isOpenAccessibilitySync(): boolean; - export native function on(type: observerType, callback: ((parameter: boolean) => void)): void; + native function onStateChange(type: observerType, callback: Callback): void; - native function offObserver(type: observerType, callback: ((parameter: boolean) => void)): void; + export function onAccessibilityStateChange(type: 'accessibilityStateChange', callback: Callback): void { + onStateChange(type, callback); + } + + export function onTouchGuideStateChange(type: 'touchGuideStateChange', callback: Callback): void { + onStateChange(type, callback); + } + + export function onScreenReaderStateChange(type: 'screenReaderStateChange', callback: Callback): void { + onStateChange(type, callback); + } + + export overload on { onAccessibilityStateChange, onTouchGuideStateChange, onScreenReaderStateChange }; + + native function offStateChange(type: observerType, callback: Callback): void; native function offAll(type: observerType): void; - export function off (type: observerType, callback?: ((parameter: boolean) => void)): void { + export function offAccessibilityStateChange(type: 'accessibilityStateChange', callback?: Callback): void { if (callback === undefined) { offAll(type); } else { - let callbackFunc: ((parameter: boolean) => void) = callback as ((parameter: boolean) => void); - offObserver(type, callbackFunc); + let callbackFunc: Callback = callback as Callback; + offStateChange(type, callbackFunc); } } + export function offTouchGuideStateChange(type: 'touchGuideStateChange', callback?: Callback): void { + if (callback === undefined) { + offAll(type); + } else { + let callbackFunc: Callback = callback as Callback; + offStateChange(type, callbackFunc); + } + } + + export function offScreenReaderStateChange(type: 'screenReaderStateChange', callback?: Callback): void { + if (callback === undefined) { + offAll(type); + } else { + let callbackFunc: Callback = callback as Callback; + offStateChange(type, callbackFunc); + } + } + + export overload off { offAccessibilityStateChange, offTouchGuideStateChange, offScreenReaderStateChange }; + export class EventInfo { constructor(type: EventType, bundleName: string, triggerAction: Action) { this.type = type; @@ -80,7 +114,7 @@ export namespace accessibility { customId?: string; } - export function sendAccessibilityEvent(event: EventInfo, callback: AsyncCallback): void { + export function sendAccessibilityEventWithCallback(event: EventInfo, callback: AsyncCallback): void { taskpool.execute((): void => { return sendAccessibilityEventSync(event); }) @@ -92,7 +126,7 @@ export namespace accessibility { }); } - export function sendAccessibilityEvent(event: EventInfo): Promise { + export function sendAccessibilityEventReturnsPromise(event: EventInfo): Promise { return new Promise((resolve, reject): void => { taskpool.execute((): void => { return sendAccessibilityEventSync(event); @@ -105,4 +139,6 @@ export namespace accessibility { }); }); } + + export overload sendAccessibilityEvent { sendAccessibilityEventWithCallback, sendAccessibilityEventReturnsPromise }; } \ No newline at end of file diff --git a/interfaces/kits/ani/src/ani_accessibility_system_ability_client.cpp b/interfaces/kits/ani/src/ani_accessibility_system_ability_client.cpp index 68750c8b..f5bd72e7 100644 --- a/interfaces/kits/ani/src/ani_accessibility_system_ability_client.cpp +++ b/interfaces/kits/ani/src/ani_accessibility_system_ability_client.cpp @@ -101,7 +101,7 @@ void StateListenerImpl::UnsubscribeObservers() { HILOG_INFO(); std::lock_guard lock(mutex_); - for (auto iter = observers_.begin(); iter != observers_.end();) { + for (auto iter = observers_.begin(); iter != observers_.end(); iter++) { (*iter)->env_->GlobalReference_Delete((*iter)->fnRef_); } observers_.clear(); diff --git a/interfaces/kits/ani/src/ani_register.cpp b/interfaces/kits/ani/src/ani_register.cpp index 7977f743..8ab95529 100644 --- a/interfaces/kits/ani/src/ani_register.cpp +++ b/interfaces/kits/ani/src/ani_register.cpp @@ -85,7 +85,7 @@ static bool BindMethod(ani_env *env, ani_namespace ns, ani_module mod) }; methods = { - ani_native_function {"on", nullptr, reinterpret_cast(ANIAccessibilityClient::SubscribeState)}, + ani_native_function {"onStateChange", nullptr, reinterpret_cast(ANIAccessibilityClient::SubscribeState)}, }; if (env->Namespace_BindNativeFunctions(ns, methods.data(), methods.size()) != ANI_OK) { @@ -93,7 +93,7 @@ static bool BindMethod(ani_env *env, ani_namespace ns, ani_module mod) }; methods = { - ani_native_function {"offObserver", nullptr, reinterpret_cast( + ani_native_function {"offStateChange", nullptr, reinterpret_cast( ANIAccessibilityClient::UnsubscribeState)}, }; -- Gitee