diff --git a/frameworks/bridge/arkts_frontend/koala_mirror/arkoala-arkts/arkui/src/component/common.ets b/frameworks/bridge/arkts_frontend/koala_mirror/arkoala-arkts/arkui/src/component/common.ets index 4d79d94c7d41040d3af59b47d7992160675af498..f80b3c5156b256837e0f90cb67c4dbb33f098b1e 100644 --- a/frameworks/bridge/arkts_frontend/koala_mirror/arkoala-arkts/arkui/src/component/common.ets +++ b/frameworks/bridge/arkts_frontend/koala_mirror/arkoala-arkts/arkui/src/component/common.ets @@ -4759,6 +4759,18 @@ export class ArkCommonMethodPeer extends PeerNode { ArkUIGeneratedNativeModule._CommonMethod_setAccessibilityRole(this.peer.ptr, thisSerializer.asBuffer(), thisSerializer.length()) thisSerializer.release() } + SetOnAccessibilityActionInterceptAttribute(value: AccessibilityActionInterceptCallback | undefined): void { + const thisSerializer : SerializerBase = SerializerBase.hold() + let value_type : int32 = RuntimeType.UNDEFINED + value_type = runtimeType(value) + thisSerializer.writeInt8((value_type).toChar()) + if ((value_type) != (RuntimeType.UNDEFINED)) { + const value_value = value! + thisSerializer.holdAndWriteCallback(value_value) + } + ArkUIGeneratedNativeModule._CommonMethod_setOnAccessibilityFocus(this.peer.ptr, thisSerializer.asBuffer(), thisSerializer.length()) + thisSerializer.release() + } setOnAccessibilityFocusAttribute(value: AccessibilityFocusCallback | undefined): void { const thisSerializer : SerializerBase = SerializerBase.hold() let value_type : int32 = RuntimeType.UNDEFINED @@ -6827,6 +6839,16 @@ export enum AccessibilityRoleType { XCOMPONENT = 123, ROLE_NONE = 124 } +export enum AccessibilityAction { + UNDEFINED_ACTION = 0, + ACCESSIBILITY_CLICK = 1, +} +export enum AccessibilityActionInterceptResult { + ACTION_INTERCEPT = 0, + ACTION_CONTINUE = 1, + ACTION_RISE = 2, +} +export type AccessibilityActionInterceptCallback = (action: AccessibilityAction) => AccessibilityActionInterceptResult; export type AccessibilityFocusCallback = (isFocus: boolean) => void; export enum FinishCallbackType { REMOVED = 0, @@ -8007,6 +8029,9 @@ export interface CommonMethod { accessibilityRole(value: AccessibilityRoleType | undefined): this { throw new Error("Unimplemented method accessibilityRole") } + onAccessibilityActionIntercept(value: AccessibilityActionInterceptCallback | undefined): this { + throw new Error("Unimplemented method onAccessibilityActionIntercept") + } onAccessibilityFocus(value: AccessibilityFocusCallback | undefined): this { throw new Error("Unimplemented method onAccessibilityFocus") } @@ -8339,6 +8364,7 @@ export class ArkCommonMethodStyle implements CommonMethod { accessibilityUseSamePage_value?: AccessibilitySamePageMode | undefined accessibilityScrollTriggerable_value?: boolean | undefined accessibilityRole_value?: AccessibilityRoleType | undefined + onAccessibilityActionIntercept_value?: AccessibilityActionInterceptCallback | undefined onAccessibilityFocus_value?: AccessibilityFocusCallback | undefined accessibilityTextHint_value?: string | undefined accessibilityDescription_value?: string | undefined @@ -8770,6 +8796,9 @@ export class ArkCommonMethodStyle implements CommonMethod { public accessibilityRole(value: AccessibilityRoleType | undefined): this { return this } + public onAccessibilityActionIntercept(value: AccessibilityActionInterceptCallback | undefined): this { + return this + } public onAccessibilityFocus(value: AccessibilityFocusCallback | undefined): this { return this } @@ -10757,6 +10786,14 @@ export class ArkCommonMethodComponent extends ComponentBase implements CommonMet } return this } + public onAccessibilityActionIntercept(value: AccessibilityActionInterceptCallback | undefined): this { + if (this.checkPriority("onAccessibilityActionIntercept")) { + const value_casted = value as (AccessibilityActionInterceptCallback | undefined) + this.getPeer()?.setOnAccessibilityActionInterceptAttribute(value_casted) + return this + } + return this + } public onAccessibilityFocus(value: AccessibilityFocusCallback | undefined): this { if (this.checkPriority("onAccessibilityFocus")) { const value_casted = value as (AccessibilityFocusCallback | undefined) @@ -11892,6 +11929,8 @@ export class ArkCommonMethodSet implements CommonMethod { _accessibilityScrollTriggerable0_value?: boolean | undefined _accessibilityRole_flag?: boolean _accessibilityRole0_value?: AccessibilityRoleType | undefined + _onAccessibilityActionIntercept_flag?: boolean + _onAccessibilityActionIntercept0_value?: AccessibilityActionInterceptCallback | undefined _onAccessibilityFocus_flag?: boolean _onAccessibilityFocus0_value?: AccessibilityFocusCallback | undefined _accessibilityTextHint_flag?: boolean @@ -12302,6 +12341,8 @@ export class ArkCommonMethodSet implements CommonMethod { component.accessibilityScrollTriggerable((this._accessibilityScrollTriggerable0_value as boolean | undefined)) if (this._accessibilityRole_flag) component.accessibilityRole((this._accessibilityRole0_value as AccessibilityRoleType | undefined)) + if (this._onAccessibilityActionIntercept_flag) + component.onAccessibilityActionIntercept((this._onAccessibilityActionIntercept0_value as AccessibilityActionInterceptCallback | undefined)) if (this._onAccessibilityFocus_flag) component.onAccessibilityFocus((this._onAccessibilityFocus0_value as AccessibilityFocusCallback | undefined)) if (this._accessibilityTextHint_flag) @@ -13086,6 +13127,11 @@ export class ArkCommonMethodSet implements CommonMethod { this._accessibilityRole0_value = value return this } + public onAccessibilityActionIntercept(value: AccessibilityActionInterceptCallback | undefined): this { + this._onAccessibilityActionIntercept_flag = true + this._onAccessibilityActionIntercept0_value = value + return this + } public onAccessibilityFocus(value: AccessibilityFocusCallback | undefined): this { this._onAccessibilityFocus_flag = true this._onAccessibilityFocus0_value = value diff --git a/frameworks/bridge/arkts_frontend/koala_mirror/arkoala-arkts/arkui/src/generated/arkts/ArkUIGeneratedNativeModule.ets b/frameworks/bridge/arkts_frontend/koala_mirror/arkoala-arkts/arkui/src/generated/arkts/ArkUIGeneratedNativeModule.ets index cbb8421a82b95bd0fa6047a2a3950d0ed495727e..e385bb3fd2c8035d29633dc38004dfed74f26f90 100644 --- a/frameworks/bridge/arkts_frontend/koala_mirror/arkoala-arkts/arkui/src/generated/arkts/ArkUIGeneratedNativeModule.ets +++ b/frameworks/bridge/arkts_frontend/koala_mirror/arkoala-arkts/arkui/src/generated/arkts/ArkUIGeneratedNativeModule.ets @@ -521,6 +521,8 @@ export class ArkUIGeneratedNativeModule { @ani.unsafe.Direct native static _CommonMethod_setAccessibilityRole(ptr: KPointer, thisArray: KSerializerBuffer, thisLength: int32): void @ani.unsafe.Direct + native static _CommonMethod_setonAccessibilityActionIntercept(ptr: KPointer, thisArray: KSerializerBuffer, thisLength: int32): void + @ani.unsafe.Direct native static _CommonMethod_setOnAccessibilityFocus(ptr: KPointer, thisArray: KSerializerBuffer, thisLength: int32): void @ani.unsafe.Direct native static _CommonMethod_setAccessibilityTextHint(ptr: KPointer, thisArray: KSerializerBuffer, thisLength: int32): void diff --git a/frameworks/bridge/arkts_frontend/koala_mirror/arkoala-arkts/framework/native/src/generated/arkoala_api_generated.h b/frameworks/bridge/arkts_frontend/koala_mirror/arkoala-arkts/framework/native/src/generated/arkoala_api_generated.h index 0b951ba467a5b26204d0ccbbf666a460e685756b..1737a81058e51f3b0d6c105a048d65c8015ecde7 100644 --- a/frameworks/bridge/arkts_frontend/koala_mirror/arkoala-arkts/framework/native/src/generated/arkoala_api_generated.h +++ b/frameworks/bridge/arkts_frontend/koala_mirror/arkoala-arkts/framework/native/src/generated/arkoala_api_generated.h @@ -7014,6 +7014,25 @@ typedef struct Opt_AccessibilityCallback { Ark_Tag tag; AccessibilityCallback value; } Opt_AccessibilityCallback; +typedef enum Ark_AccessibilityAction { + ARK_UNDEFINED_ACTION = 0, + ARK_ACCESSIBILITY_CLICK = 1, +}Ark_AccessibilityAction; +typedef enum Ark_AccessibilityActionInterceptResult { + ARK_ACTION_INTERCEPT = 0, + ARK_ACTION_CONTINUE = 1, + ARK_ACTION_RISE = 2, +}Ark_AccessibilityActionInterceptResult; +typedef struct AccessibilityActionInterceptCallback { + /* kind: Callback */ + Ark_CallbackResource resource; + Ark_AccessibilityActionInterceptResult (*call)(const Ark_Int32 resourceId, const Ark_AccessibilityAction action); + Ark_AccessibilityActionInterceptResult (*callSync)(Ark_VMContext vmContext, const Ark_Int32 resourceId, const Ark_AccessibilityAction action); +} AccessibilityActionInterceptCallback; +typedef struct Opt_AccessibilityActionInterceptCallback { + Ark_Tag tag; + AccessibilityActionInterceptCallback value; +} Opt_AccessibilityActionInterceptCallback; typedef struct AccessibilityFocusCallback { /* kind: Callback */ Ark_CallbackResource resource; diff --git a/frameworks/bridge/arkts_frontend/koala_mirror/arkoala-arkts/framework/native/src/generated/bridge_generated.cc b/frameworks/bridge/arkts_frontend/koala_mirror/arkoala-arkts/framework/native/src/generated/bridge_generated.cc index cbb4333a331fa05f97c186d42ac167fba4ba5b34..e3f95ef51304c450f5dced32db8f18d8a212524a 100644 --- a/frameworks/bridge/arkts_frontend/koala_mirror/arkoala-arkts/framework/native/src/generated/bridge_generated.cc +++ b/frameworks/bridge/arkts_frontend/koala_mirror/arkoala-arkts/framework/native/src/generated/bridge_generated.cc @@ -4603,6 +4603,20 @@ void impl_CommonMethod_setAccessibilityRole(Ark_NativePointer thisPtr, KSerializ GetNodeModifiers()->getCommonMethodModifier()->setAccessibilityRole(self, static_cast(&value_value)); } KOALA_INTEROP_DIRECT_V3(CommonMethod_setAccessibilityRole, Ark_NativePointer, KSerializerBuffer, int32_t) +void impl_CommonMethod_setOnAccessibilityActionIntercept(Ark_NativePointer thisPtr, KSerializerBuffer thisArray, int32_t thisLength) { + Ark_NodeHandle self = reinterpret_cast(thisPtr); + DeserializerBase thisDeserializer(thisArray, thisLength); + const auto value_value_buf_runtimeType = static_cast(thisDeserializer.readInt8()); + Opt_AccessibilityActionInterceptCallback value_value_buf = {}; + value_value_buf.tag = value_value_buf_runtimeType == INTEROP_RUNTIME_UNDEFINED ? INTEROP_TAG_UNDEFINED : INTEROP_TAG_OBJECT; + if ((value_value_buf_runtimeType) != (INTEROP_RUNTIME_UNDEFINED)) + { + value_value_buf.value = {thisDeserializer.readCallbackResource(), reinterpret_cast(thisDeserializer.readPointerOrDefault(reinterpret_cast(getManagedCallbackCaller(Kind_AccessibilityActionInterceptCallback)))), reinterpret_cast(thisDeserializer.readPointerOrDefault(reinterpret_cast(getManagedCallbackCallerSync(Kind_AccessibilityActionInterceptCallback))))}; + } + Opt_AccessibilityActionInterceptCallback value_value = value_value_buf;; + GetNodeModifiers()->getCommonMethodModifier()->setOnAccessibilityActionIntercept(self, static_cast(&value_value)); +} +KOALA_INTEROP_DIRECT_V3(CommonMethod_setOnAccessibilityActionIntercept, Ark_NativePointer, KSerializerBuffer, int32_t) void impl_CommonMethod_setOnAccessibilityFocus(Ark_NativePointer thisPtr, KSerializerBuffer thisArray, int32_t thisLength) { Ark_NodeHandle self = reinterpret_cast(thisPtr); DeserializerBase thisDeserializer(thisArray, thisLength); diff --git a/frameworks/bridge/arkts_frontend/koala_mirror/arkoala-arkts/framework/native/src/generated/real_impl.cc b/frameworks/bridge/arkts_frontend/koala_mirror/arkoala-arkts/framework/native/src/generated/real_impl.cc index cf35022b88c1ea737fbb2dca571f0d4a917bd02c..13b3aef2a607a7e5c164d96cef725dbce68ac290 100644 --- a/frameworks/bridge/arkts_frontend/koala_mirror/arkoala-arkts/framework/native/src/generated/real_impl.cc +++ b/frameworks/bridge/arkts_frontend/koala_mirror/arkoala-arkts/framework/native/src/generated/real_impl.cc @@ -2058,6 +2058,10 @@ namespace OHOS::Ace::NG::GeneratedModifier { const Opt_AccessibilityRoleType* value) { } + void onAccessibilityActionInterceptImpl(Ark_NativePointer node, + const Opt_onAccessibilityActionInterceptType* value) + { + } void OnAccessibilityFocusImpl(Ark_NativePointer node, const Opt_AccessibilityFocusCallback* value) { diff --git a/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/component/arkts/ArkUIGeneratedNativeModule.ts b/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/component/arkts/ArkUIGeneratedNativeModule.ts index 2e12b3635150a2ec4ad55780bb20de5bc0aa6810..ca86160bcfa18990f929ff84de63a2eb7ccde434 100644 --- a/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/component/arkts/ArkUIGeneratedNativeModule.ts +++ b/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/component/arkts/ArkUIGeneratedNativeModule.ts @@ -608,6 +608,8 @@ export class ArkUIGeneratedNativeModule { @ani.unsafe.Direct native static _CommonMethod_accessibilityRole(ptr: KPointer, thisArray: KSerializerBuffer, thisLength: int32): void @ani.unsafe.Direct + native static _CommonMethod_onAccessibilityActionIntercept(ptr: KPointer, thisArray: KSerializerBuffer, thisLength: int32): void + @ani.unsafe.Direct native static _CommonMethod_onAccessibilityFocus(ptr: KPointer, thisArray: KSerializerBuffer, thisLength: int32): void @ani.unsafe.Direct native static _CommonMethod_accessibilityTextHint(ptr: KPointer, thisArray: KSerializerBuffer, thisLength: int32): void diff --git a/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/component/common.ts b/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/component/common.ts index 22fe768b19754dad55f94f16a5c8054b828c1ed2..80bf0b75dbfe1f09200a01c26da9a21421818c37 100644 --- a/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/component/common.ts +++ b/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/component/common.ts @@ -5158,6 +5158,19 @@ export class ArkCommonMethodPeer extends PeerNode { ArkUIGeneratedNativeModule._CommonMethod_accessibilityRole(this.peer.ptr, thisSerializer.asBuffer(), thisSerializer.length()) thisSerializer.release() } + + onAccessibilityActionInterceptAttribute(value: AccessibilityActionInterceptCallback | undefined): void { + const thisSerializer : Serializer = Serializer.hold() + let value_type : int32 = RuntimeType.UNDEFINED + value_type = runtimeType(value) + thisSerializer.writeInt8(value_type as int32) + if ((RuntimeType.UNDEFINED) != (value_type)) { + const value_value = value! + thisSerializer.holdAndWriteCallback(value_value) + } + ArkUIGeneratedNativeModule._CommonMethod_onAccessibilityActionIntercept(this.peer.ptr, thisSerializer.asBuffer(), thisSerializer.length()) + thisSerializer.release() + } onAccessibilityFocusAttribute(value: AccessibilityFocusCallback | undefined): void { const thisSerializer : Serializer = Serializer.hold() let value_type : int32 = RuntimeType.UNDEFINED @@ -7071,6 +7084,17 @@ export enum AccessibilityRoleType { XCOMPONENT = 123, ROLE_NONE = 124 } +export enum AccessibilityAction { + UNDEFINED_ACTION = 0, + ACCESSIBILITY_CLICK = 1, + +} +export enum AccessibilityActionInterceptResult { + ACTION_INTERCEPT = 0, + ACTION_CONTINUE = 1, + ACTION_RISE = 2, +} +export type AccessibilityActionInterceptCallback = (action: AccessibilityAction) => AccessibilityActionInterceptResult; export type AccessibilityFocusCallback = (isFocus: boolean) => void; export enum FinishCallbackType { REMOVED = 0, @@ -8126,6 +8150,7 @@ export interface CommonMethod { accessibilityUseSamePage(value: AccessibilitySamePageMode | undefined): this {return this;} accessibilityScrollTriggerable(value: boolean | undefined): this {return this;} accessibilityRole(value: AccessibilityRoleType | undefined): this {return this;} + onAccessibilityActionIntercept(value: AccessibilityActionInterceptCallback | undefined): this {return this;} onAccessibilityFocus(value: AccessibilityFocusCallback | undefined): this {return this;} accessibilityTextHint(value: string | undefined): this {return this;} accessibilityDescription(value: string | undefined | Resource | undefined): this {return this;} @@ -8317,6 +8342,7 @@ export class ArkCommonMethodStyle implements CommonMethod { accessibilityUseSamePage_value?: AccessibilitySamePageMode | undefined accessibilityScrollTriggerable_value?: boolean | undefined accessibilityRole_value?: AccessibilityRoleType | undefined + onAccessibilityActionIntercept_value?: AccessibilityActionInterceptCallback | undefined onAccessibilityFocus_value?: AccessibilityFocusCallback | undefined accessibilityTextHint_value?: string | undefined accessibilityDescription_value?: string | undefined @@ -8762,6 +8788,9 @@ export class ArkCommonMethodStyle implements CommonMethod { public accessibilityRole(value: AccessibilityRoleType | undefined): this { return this } + public onAccessibilityActionIntercept(value: AccessibilityActionInterceptCallback | undefined): this { + return this + } public onAccessibilityFocus(value: AccessibilityFocusCallback | undefined): this { return this } @@ -10806,6 +10835,14 @@ export class ArkCommonMethodComponent extends ComponentBase implements CommonMet } return this } + public onAccessibilityActionIntercept(value: AccessibilityActionInterceptCallback | undefined): this { + if (this.checkPriority("onAccessibilityActionIntercept")) { + const value_casted = value as (AccessibilityActionInterceptCallback | undefined) + this.getPeer()?.onAccessibilityActionInterceptAttribute(value_casted) + return this + } + return this + } public onAccessibilityFocus(value: AccessibilityFocusCallback | undefined): this { if (this.checkPriority("onAccessibilityFocus")) { const value_casted = value as (AccessibilityFocusCallback | undefined) diff --git a/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/handwritten/modifiers/ArkBaseNode.ts b/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/handwritten/modifiers/ArkBaseNode.ts index 5b9d2fcda0075857cd9cfc0e712666e2845267a3..61dbfb46f6a06d583c77964fee65a501b3d43fac 100644 --- a/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/handwritten/modifiers/ArkBaseNode.ts +++ b/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/handwritten/modifiers/ArkBaseNode.ts @@ -29,6 +29,7 @@ import { TouchTestInfo, TransitionEffect, TransitionFinishCallback, TransitionOp import { VisibleAreaChangeCallback, sharedTransitionOptions, BackgroundImageOptions, ArkCommonMethodPeer } from '../../component/common'; import { SystemAdaptiveOptions, CrownEvent, FocusAxisEvent, AxisEvent, FocusMovement, LinearGradientOptions } from '../../component/common'; import { OnDragEventCallback, LayoutPolicy, PreviewConfiguration, DropOptions, SweepGradientOptions, AccessibilitySamePageMode } from '../../component/common'; +import { AccessibilityActionInterceptCallback, AccessibilityAction, AccessibilityActionInterceptResult} from '../../component/common'; import { AccessibilityFocusCallback, ReuseOptions, TipsMessageType, TipsOptions, VisibleAreaEventOptions, RadialGradientOptions} from '../../component/common'; import { Color, HitTestMode, ImageSize, Alignment, BorderStyle, ColoringStrategy, HoverEffect, Visibility, ItemAlign, Direction, ObscuredReasons, RenderFit, FocusDrawLevel, ImageRepeat, Axis, ResponseType, FunctionKey, ModifierKey } from '../../component/enums' import { ResourceColor, ConstraintSizeOptions, SizeOptions, Length, ChainWeightOptions, Padding, LocalizedPadding, Position, BorderOptions, EdgeWidths, LocalizedEdgeWidths, EdgeColors, LocalizedEdgeColors, BorderRadiuses, LocalizedBorderRadiuses, OutlineOptions, EdgeOutlineStyles, Dimension, EdgeOutlineWidths, OutlineRadiuses, Area, LocalizedEdges, LocalizedPosition, ResourceStr, AccessibilityOptions, EdgeStyles, Edges } from '../../component/units' @@ -505,6 +506,9 @@ export class ArkBaseNode extends ComponentBase implements CommonAttribute { public accessibilityRole(value: AccessibilityRoleType | undefined): this { return this } + public onAccessibilityActionIntercept(value: AccessibilityActionInterceptCallback | undefined): this { + return this + } public onAccessibilityFocus(value: AccessibilityFocusCallback | undefined): this { return this } diff --git a/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/handwritten/modifiers/ArkCommonModifier.ts b/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/handwritten/modifiers/ArkCommonModifier.ts index a4a7731f58975d0408313f2294de55828f8a31b3..0a102d167e0f2517b1640718edec3e0976cbbf90 100644 --- a/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/handwritten/modifiers/ArkCommonModifier.ts +++ b/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/handwritten/modifiers/ArkCommonModifier.ts @@ -1751,6 +1751,9 @@ export class ArkCommonAttributeSet implements CommonAttribute { public accessibilityRole(value: AccessibilityRoleType | undefined): this { return this } + public onAccessibilityActionIntercept(value: AccessibilityFocusCallback | undefined): this { + return this + } public onAccessibilityFocus(value: AccessibilityFocusCallback | undefined): this { return this } diff --git a/frameworks/bridge/arkts_frontend/koala_projects/arkoala/framework/native/src/generated/dummy_impl.cc b/frameworks/bridge/arkts_frontend/koala_projects/arkoala/framework/native/src/generated/dummy_impl.cc index edd3321a365695256ebf5a8c6f1435f7eff7aacd..71be493efc83bea19b67f15c953dd3f61a4b30ac 100644 --- a/frameworks/bridge/arkts_frontend/koala_projects/arkoala/framework/native/src/generated/dummy_impl.cc +++ b/frameworks/bridge/arkts_frontend/koala_projects/arkoala/framework/native/src/generated/dummy_impl.cc @@ -3972,6 +3972,16 @@ namespace OHOS::Ace::NG::GeneratedModifier { out.append(") \n"); appendGroupedLog(1, out); } + void onAccessibilityActionInterceptImpl(Ark_NativePointer node, + const Opt_AccessibilityRoleType* value) + { + if (!needGroupedLog(1)) + return; + string out("onAccessibilityActionIntercept("); + WriteToString(&out, value); + out.append(") \n"); + appendGroupedLog(1, out); + } void OnAccessibilityFocusImpl(Ark_NativePointer node, const Opt_AccessibilityFocusCallback* value) { diff --git a/frameworks/bridge/arkts_frontend/koala_projects/inner_api/arkui/component/common.d.ets b/frameworks/bridge/arkts_frontend/koala_projects/inner_api/arkui/component/common.d.ets index d1f8aac2e20acf2b57fedcf3bc825da57ef89199..9a53552e7ef1fd2ddea2ef78ed6eaddb68af8b7d 100644 --- a/frameworks/bridge/arkts_frontend/koala_projects/inner_api/arkui/component/common.d.ets +++ b/frameworks/bridge/arkts_frontend/koala_projects/inner_api/arkui/component/common.d.ets @@ -90,6 +90,7 @@ import { RadialGradientOptions, AccessibilitySamePageMode, AccessibilityRoleType, + AccessibilityActionInterceptCallback, AccessibilityFocusCallback, ReuseOptions, BackgroundImageOptions, @@ -354,6 +355,7 @@ export interface CommonMethod { accessibilityUseSamePage(value: AccessibilitySamePageMode | undefined): this; accessibilityScrollTriggerable(value: boolean | undefined): this; accessibilityRole(value: AccessibilityRoleType | undefined): this; + onAccessibilityActionIntercept(value: AccessibilityActionInterceptCallback | undefined): this; onAccessibilityFocus(value: AccessibilityFocusCallback | undefined): this; accessibilityTextHint(value: string | undefined): this; accessibilityDescription(value: string | undefined | Resource | undefined): this; @@ -641,6 +643,7 @@ export declare class ArkCommonMethodPeer extends PeerNode { public accessibilityUseSamePageAttribute(value: AccessibilitySamePageMode | undefined): void; public accessibilityScrollTriggerableAttribute(value: boolean | undefined): void; public accessibilityRoleAttribute(value: AccessibilityRoleType | undefined): void; + public onAccessibilityActionInterceptAttribute(value: AccessibilityActionInterceptCallback | undefined): void; public onAccessibilityFocusAttribute(value: AccessibilityFocusCallback | undefined): void; public accessibilityTextHintAttribute(value: string | undefined): void; public accessibilityDescription0Attribute(value: string | undefined): void; @@ -924,6 +927,7 @@ export declare class ArkCommonMethodComponent extends ComponentBase implements C public accessibilityUseSamePage(value: AccessibilitySamePageMode | undefined): this; public accessibilityScrollTriggerable(value: boolean | undefined): this; public accessibilityRole(value: AccessibilityRoleType | undefined): this; + public onAccessibilityActionIntercept(value: AccessibilityActionInterceptCallback | undefined): this; public onAccessibilityFocus(value: AccessibilityFocusCallback | undefined): this; public accessibilityTextHint(value: string | undefined): this; public accessibilityDescription(value: string | undefined | Resource | undefined): this; @@ -1146,6 +1150,7 @@ export declare class ArkCommonMethodStyle implements CommonMethod { public accessibilityUseSamePage_value?: AccessibilitySamePageMode | undefined; public accessibilityScrollTriggerable_value?: boolean | undefined; public accessibilityRole_value?: AccessibilityRoleType | undefined; + public onAccessibilityActionIntercept_value?: AccessibilityActionInterceptCallback | undefined; public onAccessibilityFocus_value?: AccessibilityFocusCallback | undefined; public accessibilityTextHint_value?: string | undefined; public accessibilityDescription_value?: string | undefined; @@ -1317,6 +1322,7 @@ export declare class ArkCommonMethodStyle implements CommonMethod { public accessibilityUseSamePage(value: AccessibilitySamePageMode | undefined): this; public accessibilityScrollTriggerable(value: boolean | undefined): this; public accessibilityRole(value: AccessibilityRoleType | undefined): this; + public onAccessibilityActionIntercept(value: AccessibilityActionInterceptCallback | undefined): this; public onAccessibilityFocus(value: AccessibilityFocusCallback | undefined): this; public accessibilityTextHint(value: string | undefined): this; public accessibilityDescription(value: string | undefined | Resource | undefined): this; diff --git a/frameworks/core/interfaces/arkoala/arkoala_api.h b/frameworks/core/interfaces/arkoala/arkoala_api.h index f0da788dfc49bbc9cc8130b498570e087dbc3e4a..f7a3e998eb80921a2bea28100bbcb60090cece75 100644 --- a/frameworks/core/interfaces/arkoala/arkoala_api.h +++ b/frameworks/core/interfaces/arkoala/arkoala_api.h @@ -67,6 +67,12 @@ typedef enum { FOCUS_MOVE_RIGHT, } FocusMove; +typedef enum { + ARK_ACTION_INTERCEPT = 0, + ARK_ACTION_CONTINUE = 1, + ARK_ACTION_RISE = 2, +}ArkUIAccessibilityActionInterceptResult; + typedef int ArkUI_Bool; typedef std::int16_t ArkUI_Int16; typedef int ArkUI_Int32; @@ -2643,6 +2649,9 @@ struct ArkUICommonModifier { void (*setAccessibilityActions)(ArkUINodeHandle node, ArkUI_Uint32 actions); void (*resetAccessibilityActions)(ArkUINodeHandle node); ArkUI_Uint32 (*getAccessibilityActions)(ArkUINodeHandle node); + void (*setOnAccessibilityActionIntercept)(ArkUINodeHandle node, ArkUIAccessibilityActionInterceptResult onAccessibilityActionInterceptCallback); + void (*resetOnAccessibilityActionIntercept)(ArkUINodeHandle node); + ArkUI_CharPtr (*getOnAccessibilityActionIntercept)(ArkUINodeHandle node); void (*setAccessibilityRole)(ArkUINodeHandle node, ArkUI_CharPtr role); void (*resetAccessibilityRole)(ArkUINodeHandle node); ArkUI_CharPtr (*getAccessibilityRole)(ArkUINodeHandle node); diff --git a/frameworks/core/interfaces/native/node/node_common_modifier.cpp b/frameworks/core/interfaces/native/node/node_common_modifier.cpp index 9ec8870793921573a0438871488f23f49bbbd3a1..69c60822f263ca2b358b6a1d9c75030c8b75e1f4 100644 --- a/frameworks/core/interfaces/native/node/node_common_modifier.cpp +++ b/frameworks/core/interfaces/native/node/node_common_modifier.cpp @@ -7693,7 +7693,30 @@ ArkUI_Uint32 GetAccessibilityActions(ArkUINodeHandle node) auto accessibilityProperty = frameNode->GetAccessibilityProperty(); return accessibilityProperty->GetAccessibilityActions(); } +void SetOnAccessibilityActionIntercept(ArkUINodeHandle node, ArkUIAccessibilityActionInterceptResult onAccessibilityActionInterceptCallback) +{ + auto* frameNode = reinterpret_cast(node); + CHECK_NULL_VOID(frameNode); + auto accessibilityProperty = frameNode->GetOnAccessibilityActionIntercept(); + accessibilityProperty->SetOnAccessibilityActionIntercept(::ArkUIAccessibilityActionInterceptResult(onAccessibilityActionInterceptCallback)); +} + +void ResetOnAccessibilityActionIntercept(ArkUINodeHandle node) +{ + auto* frameNode = reinterpret_cast(node); + CHECK_NULL_VOID(frameNode); + auto accessibilityProperty = frameNode->GetAccessibilityProperty(); + accessibilityProperty->ResetOnAccessibilityActionIntercept(); +} +ArkUI_CharPtr GetOnAccessibilityActionIntercept(ArkUINodeHandle node) +{ + auto* frameNode = reinterpret_cast(node); + CHECK_NULL_RETURN(frameNode, nullptr); + auto accessibilityProperty = frameNode->GetAccessibilityProperty(); + g_strValue = accessibilityProperty->GetOnAccessibilityActionIntercept(); + return g_strValue.c_str(); +} void SetAccessibilityRole(ArkUINodeHandle node, ArkUI_CharPtr role) { auto* frameNode = reinterpret_cast(node); @@ -9145,6 +9168,9 @@ const ArkUICommonModifier* GetCommonModifier() .setAccessibilityActions = SetAccessibilityActions, .resetAccessibilityActions = ResetAccessibilityActions, .getAccessibilityActions = GetAccessibilityActions, + .setOnAccessibilityActionIntercept = SetOnAccessibilityActionIntercept, + .resetOnAccessibilityActionIntercept= ResetOnAccessibilityActionIntercept, + .getOnAccessibilityActionIntercept = GetOnAccessibilityActionIntercept, .setAccessibilityRole = SetAccessibilityRole, .resetAccessibilityRole = ResetAccessibilityRole, .getAccessibilityRole = GetAccessibilityRole, @@ -9586,6 +9612,9 @@ const CJUICommonModifier* GetCJUICommonModifier() .setAccessibilityActions = SetAccessibilityActions, .resetAccessibilityActions = ResetAccessibilityActions, .getAccessibilityActions = GetAccessibilityActions, + .setOnAccessibilityActionIntercept = SetOnAccessibilityActionIntercept, + .resetOnAccessibilityActionIntercept = ResetOnAccessibilityActionIntercept, + .getOnAccessibilityActionIntercept = GetOnAccessibilityActionIntercept, .setAccessibilityRole = SetAccessibilityRole, .resetAccessibilityRole = ResetAccessibilityRole, .getAccessibilityRole = GetAccessibilityRole,