1 /*
2 * Copyright (C) 2022 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include "accessibility_element_operator_callback_impl.h"
17 #include "hilog_wrapper.h"
18
19 namespace OHOS {
20 namespace Accessibility {
SetFindFocusedElementInfoResult(const AccessibilityElementInfo & info,const int32_t requestId)21 void AccessibilityElementOperatorCallbackImpl::SetFindFocusedElementInfoResult(const AccessibilityElementInfo &info,
22 const int32_t requestId)
23 {
24 HILOG_DEBUG("Response [requestId:%{public}d]", requestId);
25 accessibilityInfoResult_ = info;
26 if (promiseFlag_ == false) {
27 promise_.set_value();
28 promiseFlag_ = true;
29 }
30 }
31
SetSearchElementInfoByTextResult(const std::vector<AccessibilityElementInfo> & infos,const int32_t requestId)32 void AccessibilityElementOperatorCallbackImpl::SetSearchElementInfoByTextResult(
33 const std::vector<AccessibilityElementInfo> &infos, const int32_t requestId)
34 {
35 HILOG_DEBUG("Response [elementInfoSize:%{public}zu] [requestId:%{public}d]", infos.size(), requestId);
36 elementInfosResult_ = infos;
37 if (promiseFlag_ == false) {
38 promise_.set_value();
39 promiseFlag_ = true;
40 }
41 }
42
SetSearchElementInfoByAccessibilityIdResult(const std::vector<AccessibilityElementInfo> & infos,const int32_t requestId)43 void AccessibilityElementOperatorCallbackImpl::SetSearchElementInfoByAccessibilityIdResult(
44 const std::vector<AccessibilityElementInfo> &infos, const int32_t requestId)
45 {
46 HILOG_DEBUG("Response[elementInfoSize:%{public}zu] [requestId:%{public}d]", infos.size(), requestId);
47 elementInfosResult_ = infos;
48 if (promiseFlag_ == false) {
49 promise_.set_value();
50 promiseFlag_ = true;
51 }
52 }
53
SetSearchDefaultFocusByWindowIdResult(const std::vector<AccessibilityElementInfo> & infos,const int32_t requestId)54 void AccessibilityElementOperatorCallbackImpl::SetSearchDefaultFocusByWindowIdResult(
55 const std::vector<AccessibilityElementInfo> &infos, const int32_t requestId)
56 {
57 HILOG_DEBUG("Response[elementInfoSize:%{public}zu] [requestId:%{public}d]", infos.size(), requestId);
58 elementInfosResult_ = infos;
59 if (promiseFlag_ == false) {
60 promise_.set_value();
61 promiseFlag_ = true;
62 }
63 }
64
SetFocusMoveSearchResult(const AccessibilityElementInfo & info,const int32_t requestId)65 void AccessibilityElementOperatorCallbackImpl::SetFocusMoveSearchResult(const AccessibilityElementInfo &info,
66 const int32_t requestId)
67 {
68 HILOG_DEBUG("Response [requestId:%{public}d]", requestId);
69 accessibilityInfoResult_ = info;
70 if (promiseFlag_ == false) {
71 promise_.set_value();
72 promiseFlag_ = true;
73 }
74 }
75
SetExecuteActionResult(const bool succeeded,const int32_t requestId)76 void AccessibilityElementOperatorCallbackImpl::SetExecuteActionResult(const bool succeeded, const int32_t requestId)
77 {
78 HILOG_DEBUG("Response [requestId:%{public}d] result[%{public}d]", requestId, succeeded);
79 executeActionResult_ = succeeded;
80 if (promiseFlag_ == false) {
81 promise_.set_value();
82 promiseFlag_ = true;
83 }
84 }
85
SetCursorPositionResult(const int32_t cursorPosition,const int32_t requestId)86 void AccessibilityElementOperatorCallbackImpl::SetCursorPositionResult(const int32_t cursorPosition,
87 const int32_t requestId)
88 {
89 HILOG_DEBUG("Response [requestId:%{public}d] cursorPosition[%{public}d]", requestId, cursorPosition);
90 CursorPosition_ = cursorPosition;
91 if (promiseFlag_ == false) {
92 promise_.set_value();
93 promiseFlag_ = true;
94 }
95 }
96
SetSearchElementInfoBySpecificPropertyResult(const std::list<AccessibilityElementInfo> & infos,const std::list<AccessibilityElementInfo> & treeInfos,const int32_t requestId)97 void AccessibilityElementOperatorCallbackImpl::SetSearchElementInfoBySpecificPropertyResult(
98 const std::list<AccessibilityElementInfo> &infos, const std::list<AccessibilityElementInfo> &treeInfos,
99 const int32_t requestId)
100 {
101 HILOG_DEBUG("Response[elementInfoSize:%{public}zu] [treeInfoSize:%{public}zu] [requestId:%{public}d]",
102 infos.size(), treeInfos.size(), requestId);
103
104 elementInfosResult_.assign(infos.begin(), infos.end());
105 treeInfosResult_.assign(treeInfos.begin(), treeInfos.end());
106 if (promiseFlag_ == false) {
107 promise_.set_value();
108 promiseFlag_ = true;
109 }
110 }
111 } // namespace Accessibility
112 } // namespace OHOS