• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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_extension_context.h"
17 #include "accessible_ability_client.h"
18 #include "hilog_wrapper.h"
19 
20 using namespace std;
21 
22 namespace OHOS {
23 namespace Accessibility {
GetFocus(const int32_t focusType,AccessibilityElementInfo & elementInfo)24 RetError AccessibilityExtensionContext::GetFocus(const int32_t focusType, AccessibilityElementInfo &elementInfo)
25 {
26     HILOG_DEBUG();
27     sptr<AccessibleAbilityClient> aaClient = AccessibleAbilityClient::GetInstance();
28     if (!aaClient) {
29         HILOG_ERROR("aaClient is nullptr");
30         return RET_ERR_NULLPTR;
31     }
32     return aaClient->GetFocus(focusType, elementInfo);
33 }
34 
GetFocusByElementInfo(const AccessibilityElementInfo & sourceInfo,const int32_t focusType,AccessibilityElementInfo & elementInfo)35 RetError AccessibilityExtensionContext::GetFocusByElementInfo(const AccessibilityElementInfo &sourceInfo,
36     const int32_t focusType, AccessibilityElementInfo &elementInfo)
37 {
38     HILOG_DEBUG();
39     sptr<AccessibleAbilityClient> aaClient = AccessibleAbilityClient::GetInstance();
40     if (!aaClient) {
41         HILOG_ERROR("aaClient is nullptr");
42         return RET_ERR_NULLPTR;
43     }
44     return aaClient->GetFocusByElementInfo(sourceInfo, focusType, elementInfo);
45 }
46 
InjectGesture(const std::shared_ptr<AccessibilityGestureInjectPath> & gesturePath)47 RetError AccessibilityExtensionContext::InjectGesture(
48     const std::shared_ptr<AccessibilityGestureInjectPath> &gesturePath)
49 {
50     HILOG_DEBUG();
51     sptr<AccessibleAbilityClient> aaClient = AccessibleAbilityClient::GetInstance();
52     if (!aaClient) {
53         HILOG_ERROR("aaClient is nullptr");
54         return RET_ERR_NULLPTR;
55     }
56     return aaClient->InjectGesture(gesturePath);
57 }
58 
GetRoot(AccessibilityElementInfo & elementInfo)59 RetError AccessibilityExtensionContext::GetRoot(AccessibilityElementInfo &elementInfo)
60 {
61     HILOG_DEBUG();
62     sptr<AccessibleAbilityClient> aaClient = AccessibleAbilityClient::GetInstance();
63     if (!aaClient) {
64         HILOG_ERROR("aaClient is nullptr");
65         return RET_ERR_NULLPTR;
66     }
67     return aaClient->GetRoot(elementInfo);
68 }
69 
GetRootByWindow(const AccessibilityWindowInfo & windowInfo,AccessibilityElementInfo & elementInfo)70 RetError AccessibilityExtensionContext::GetRootByWindow(const AccessibilityWindowInfo &windowInfo,
71     AccessibilityElementInfo &elementInfo)
72 {
73     HILOG_DEBUG();
74     sptr<AccessibleAbilityClient> aaClient = AccessibleAbilityClient::GetInstance();
75     if (!aaClient) {
76         HILOG_ERROR("aaClient is nullptr");
77         return RET_ERR_NULLPTR;
78     }
79     return aaClient->GetRootByWindow(windowInfo, elementInfo);
80 }
81 
GetWindows(std::vector<AccessibilityWindowInfo> & windows)82 RetError AccessibilityExtensionContext::GetWindows(std::vector<AccessibilityWindowInfo> &windows)
83 {
84     HILOG_DEBUG();
85     sptr<AccessibleAbilityClient> aaClient = AccessibleAbilityClient::GetInstance();
86     if (!aaClient) {
87         HILOG_ERROR("aaClient is nullptr");
88         return RET_ERR_NULLPTR;
89     }
90     return aaClient->GetWindows(windows);
91 }
92 
GetWindows(const uint64_t displayId,std::vector<AccessibilityWindowInfo> & windows)93 RetError AccessibilityExtensionContext::GetWindows(const uint64_t displayId,
94     std::vector<AccessibilityWindowInfo> &windows)
95 {
96     HILOG_DEBUG();
97     sptr<AccessibleAbilityClient> aaClient = AccessibleAbilityClient::GetInstance();
98     if (!aaClient) {
99         HILOG_ERROR("aaClient is nullptr");
100         return RET_ERR_NULLPTR;
101     }
102     return aaClient->GetWindows(displayId, windows);
103 }
104 
GetNext(const AccessibilityElementInfo & elementInfo,const FocusMoveDirection direction,AccessibilityElementInfo & nextElementInfo)105 RetError AccessibilityExtensionContext::GetNext(const AccessibilityElementInfo &elementInfo,
106     const FocusMoveDirection direction, AccessibilityElementInfo &nextElementInfo)
107 {
108     HILOG_DEBUG();
109     sptr<AccessibleAbilityClient> aaClient = AccessibleAbilityClient::GetInstance();
110     if (!aaClient) {
111         HILOG_ERROR("aaClient is nullptr");
112         return RET_ERR_NULLPTR;
113     }
114     return aaClient->GetNext(elementInfo, direction, nextElementInfo);
115 }
116 
GetChildElementInfo(const int32_t index,const AccessibilityElementInfo & parent,AccessibilityElementInfo & child)117 RetError AccessibilityExtensionContext::GetChildElementInfo(const int32_t index,
118     const AccessibilityElementInfo &parent, AccessibilityElementInfo &child)
119 {
120     HILOG_DEBUG();
121     sptr<AccessibleAbilityClient> aaClient = AccessibleAbilityClient::GetInstance();
122     if (!aaClient) {
123         HILOG_ERROR("aaClient is nullptr");
124         return RET_ERR_NULLPTR;
125     }
126     return aaClient->GetChildElementInfo(index, parent, child);
127 }
128 
GetByContent(const AccessibilityElementInfo & elementInfo,const std::string & text,std::vector<AccessibilityElementInfo> & elementInfos)129 RetError AccessibilityExtensionContext::GetByContent(const AccessibilityElementInfo &elementInfo,
130     const std::string &text, std::vector<AccessibilityElementInfo> &elementInfos)
131 {
132     HILOG_DEBUG();
133     sptr<AccessibleAbilityClient> aaClient = AccessibleAbilityClient::GetInstance();
134     if (!aaClient) {
135         HILOG_ERROR("aaClient is nullptr");
136         return RET_ERR_NULLPTR;
137     }
138     return aaClient->GetByContent(elementInfo, text, elementInfos);
139 }
140 
GetParentElementInfo(const AccessibilityElementInfo & child,AccessibilityElementInfo & parent)141 RetError AccessibilityExtensionContext::GetParentElementInfo(const AccessibilityElementInfo &child,
142     AccessibilityElementInfo &parent)
143 {
144     HILOG_DEBUG();
145     sptr<AccessibleAbilityClient> aaClient = AccessibleAbilityClient::GetInstance();
146     if (!aaClient) {
147         HILOG_ERROR("aaClient is nullptr");
148         return RET_ERR_NULLPTR;
149     }
150     return aaClient->GetParentElementInfo(child, parent);
151 }
152 
ExecuteAction(const AccessibilityElementInfo & elementInfo,const ActionType action,const std::map<std::string,std::string> & actionArguments)153 RetError AccessibilityExtensionContext::ExecuteAction(const AccessibilityElementInfo &elementInfo,
154     const ActionType action, const std::map<std::string, std::string> &actionArguments)
155 {
156     HILOG_DEBUG();
157     sptr<AccessibleAbilityClient> aaClient = AccessibleAbilityClient::GetInstance();
158     if (!aaClient) {
159         HILOG_ERROR("aaClient is nullptr");
160         return RET_ERR_NULLPTR;
161     }
162     return aaClient->ExecuteAction(elementInfo, action, actionArguments);
163 }
164 
SetTargetBundleName(const std::vector<std::string> & targetBundleNames)165 RetError AccessibilityExtensionContext::SetTargetBundleName(const std::vector<std::string> &targetBundleNames)
166 {
167     HILOG_DEBUG();
168     sptr<AccessibleAbilityClient> aaClient = AccessibleAbilityClient::GetInstance();
169     if (!aaClient) {
170         HILOG_ERROR("aaClient is nullptr");
171         return RET_ERR_NULLPTR;
172     }
173     return aaClient->SetTargetBundleName(targetBundleNames);
174 }
175 } // namespace Accessibility
176 } // namespace OHOS