Signed-off-by: qianchuang <923384386@qq.com>
This commit is contained in:
qianchuang
2025-11-06 21:40:58 +08:00
parent cb7bf63bda
commit ffdfd05a58
6 changed files with 8 additions and 14 deletions
@@ -229,7 +229,6 @@ public:
virtual void FocusMoveSearchWithCondition(const AccessibilityElementInfo &info,
const AccessibilityFocusMoveParam& param, const int32_t requestId,
const sptr<IAccessibilityElementOperatorCallback> &callback, const int32_t windowId) = 0;
};
} // namespace Accessibility
} // namespace OHOS
@@ -56,7 +56,7 @@ public:
const int32_t childWindowId) override {}
void SetBelongTreeId(const int32_t treeId) override {}
void SetParentWindowId(const int32_t parentWindowId) override {}
void FocusMoveSearchWithCondition(const int64_t elementId, const AccessibilityFocusMoveParam &param,
void FocusMoveSearchWithCondition(const AccessibilityElementInfo &info, const AccessibilityFocusMoveParam &param,
const int32_t requestId, const sptr<IAccessibilityElementOperatorCallback> &callback) override {}
};
@@ -125,11 +125,9 @@ public:
{
return RET_OK;
}
void FocusMoveSearchWithCondition(const int64_t elementId,
void FocusMoveSearchWithCondition(const AccessibilityElementInfo &info,
const AccessibilityFocusMoveParam& param, const int32_t requestId,
const sptr<IAccessibilityElementOperatorCallback> &callback, const int32_t windowId) override {}
};
template<class T>
@@ -1865,19 +1865,15 @@ RetError AccessibleAbilityClientImpl::FocusMoveSearchWithCondition(const Accessi
if (result.resultType == FocusMoveResultType::SEARCH_FAIL_LOST_NODE) {
return static_cast<RetError>(result.resultType);
}
param.detectParent = true;
std::vector<AccessibilityElementInfo> tmpInfos;
FocusMoveResult tmpResult;
if (param.direction == FocusMoveDirection::GET_FORWARD_SCROLL_ANCESTOR ||
param.direction == FocusMoveDirection::GET_BACKWARD_SCROLL_ANCESTOR ||
param.direction == FocusMoveDirection::GET_BACKWARD_SCROLL_ANCESTOR ||
param.direction == FocusMoveDirection::GET_SCROLLABLE_ANCESTOR) {
AccessibilityElementInfo tmpInfo;
tmpInfo.SetBelongTreeId(treeId);
tmpInfo.SetWindowId(info.GetParentWindowId());
ret = channelClient_->FocusMoveSearchWithCondition(tmpInfo, param, tmpInfos, tmpResult);
if (ret != RET_OK) {
return ret;
@@ -1895,7 +1891,6 @@ RetError AccessibleAbilityClientImpl::FocusMoveSearchWithCondition(const Accessi
if ((infos.empty()) || (result.resultType != FocusMoveResultType::SEARCH_SUCCESS)) {
return static_cast<RetError>(result.resultType);
}
param.direction = FocusMoveDirection::DETECT_FOCUSABLE_IN_FOCUS_MOVE;
ret = channelClient_->FocusMoveSearchWithCondition(infos[0], param, tmpInfos, tmpResult);
if (ret != RET_OK) {
@@ -261,7 +261,8 @@ public:
static sptr<IAccessibilityElementOperatorCallback> GetCallbackByRequestId(const int32_t requestId);
static void EraseCallback(const int32_t requestId);
virtual void FocusMoveSearchWithCondition(const AccessibilityElementInfo &info, const AccessibilityFocusMoveParam &param,
virtual void FocusMoveSearchWithCondition(const AccessibilityElementInfo &info,
const AccessibilityFocusMoveParam &param,
const int32_t requestId, const sptr<IAccessibilityElementOperatorCallback> &callback) override;
void SetFocusMoveSearchWithConditionResult(
const std::list<AccessibilityElementInfo> &infos, const FocusMoveResult& result, const int32_t requestId);
@@ -429,7 +429,8 @@ struct AccessibilityFocusMoveParam {
int64_t parentId;
bool detectParent = false;
void SetParentId(int64_t id) {
void SetParentId(int64_t id)
{
parentId = id;
}
};
@@ -455,7 +456,7 @@ enum FocusMoveResultType : int32_t {
SEARCH_NEXT = 0x00000010,
DOUBLE_CHECK_CHILD_PROPERTY = 0x00000020,
DOUBLE_CHECK_CHILD_PROPERTY_AND_GET_LAST = 0x00000040,
SERACH_FAIL_IN_SCROLL = 0x00000080,
SEARCH_FAIL_IN_SCROLL = 0x00000080,
};
struct FocusMoveResult {