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 #ifndef ACCESSIBILITY_ABILITY_MANAGER_SERVICE_CLIENT_STUB_H
17 #define ACCESSIBILITY_ABILITY_MANAGER_SERVICE_CLIENT_STUB_H
18 
19 #include <map>
20 #include "i_accessible_ability_manager_service.h"
21 #include "iremote_stub.h"
22 
23 namespace OHOS {
24 namespace Accessibility {
25 /*
26  * The class define the interface to call ABMS API.
27  */
28 class AccessibleAbilityManagerServiceStub : public IRemoteStub<IAccessibleAbilityManagerService> {
29 public:
30     /**
31      * @brief construct function
32      * @param object The object of IPC
33      */
34     AccessibleAbilityManagerServiceStub();
35 
36     /**
37      * @brief destruct function
38      */
39     virtual ~AccessibleAbilityManagerServiceStub();
40 
41     /**
42      * @brief Receive the event from proxy by IPC mechanism.
43      * @param code The code is matched with the process function.
44      * @param data The data of process communication
45      * @param reply The response of IPC request
46      * @param option The option parameter of IPC,such as: async,sync
47      */
48     virtual int OnRemoteRequest(
49         uint32_t code, MessageParcel &data, MessageParcel &reply, MessageOption &option) override;
50 private:
51     /**
52      * @brief Check the caller has permissions.
53      * @param permission The description of permission
54      * @return Check result.
55      */
56     bool CheckPermission(const std::string &permission) const;
57 
58     /**
59      * @brief Check if the caller is a system application.
60      * @return Check result.
61      */
62     bool IsSystemApp() const;
63 
64     /**
65      * @brief Check if the caller is an application.
66      * @return Check result.
67      */
68     bool IsApp() const;
69 
70     /**
71      * @brief Handle the IPC request for the function:HandleSendEvent.
72      * @param data The data of process communication
73      * @param reply The response of IPC request
74      * @return NO_ERROR: successful; otherwise is failed.
75      */
76     ErrCode HandleSendEvent(MessageParcel &data, MessageParcel &reply);
77 
78     /**
79      * @brief Handle the IPC request for the function:HandleRegisterStateCallback.
80      * @param data The data of process communication
81      * @param reply The response of IPC request
82      * @return NO_ERROR: successful; otherwise is failed.
83      */
84     ErrCode HandleRegisterStateCallback(MessageParcel &data, MessageParcel &reply);
85 
86     /**
87      * @brief Handle the IPC request for the function:HandleGetAbilityList.
88      * @param data The data of process communication
89      * @param reply The response of IPC request
90      * @return NO_ERROR: successful; otherwise is failed.
91      */
92     ErrCode HandleGetAbilityList(MessageParcel &data, MessageParcel &reply);
93 
94     /**
95      * @brief Handle the IPC request for the function:HandleRegisterAccessibilityElementOperator.
96      * @param data The data of process communication
97      * @param reply The response of IPC request
98      * @return NO_ERROR: successful; otherwise is failed.
99      */
100     ErrCode HandleRegisterAccessibilityElementOperator(MessageParcel &data, MessageParcel &reply);
101 
102     /**
103      * @brief Handle the IPC request for the function:HandleMultiRegisterAccessibilityElementOperator.
104      * @param data The data of process communication
105      * @param reply The response of IPC request
106      * @return NO_ERROR: successful; otherwise is failed.
107      */
108     ErrCode HandleMultiRegisterAccessibilityElementOperator(MessageParcel &data, MessageParcel &reply);
109 
110     /**
111      * @brief Handle the IPC request for the function:HandleDeregisterAccessibilityElementOperator.
112      * @param data The data of process communication
113      * @param reply The response of IPC request
114      * @return NO_ERROR: successful; otherwise is failed.
115      */
116     ErrCode HandleDeregisterAccessibilityElementOperator(MessageParcel &data, MessageParcel &reply);
117 
118     /**
119      * @brief Handle the IPC request for the function:HandleMultiDeregisterAccessibilityElementOperator.
120      * @param data The data of process communication
121      * @param reply The response of IPC request
122      * @return NO_ERROR: successful; otherwise is failed.
123      */
124     ErrCode HandleMultiDeregisterAccessibilityElementOperator(MessageParcel &data, MessageParcel &reply);
125 
126     ErrCode HandleGetCaptionProperty(MessageParcel &data, MessageParcel &reply);
127     ErrCode HandleSetCaptionProperty(MessageParcel &data, MessageParcel &reply);
128     ErrCode HandleSetCaptionState(MessageParcel &data, MessageParcel &reply);
129     ErrCode HandleRegisterCaptionPropertyCallback(MessageParcel &data, MessageParcel &reply);
130 
131     ErrCode HandleGetEnabled(MessageParcel &data, MessageParcel &reply);
132     ErrCode HandleGetCaptionState(MessageParcel &data, MessageParcel &reply);
133     ErrCode HandleGetTouchGuideState(MessageParcel &data, MessageParcel &reply);
134     ErrCode HandleGetGestureState(MessageParcel &data, MessageParcel &reply);
135     ErrCode HandleGetKeyEventObserverState(MessageParcel &data, MessageParcel &reply);
136 
137     ErrCode HandleEnableAbility(MessageParcel &data, MessageParcel &reply);
138     ErrCode HandleGetEnabledAbilities(MessageParcel &data, MessageParcel &reply);
139     ErrCode HandleDisableAbility(MessageParcel &data, MessageParcel &reply);
140     ErrCode HandleEnableUITestAbility(MessageParcel &data, MessageParcel &reply);
141     ErrCode HandleDisableUITestAbility(MessageParcel &data, MessageParcel &reply);
142     ErrCode HandleGetActiveWindow(MessageParcel &data, MessageParcel &reply);
143 
144     ErrCode HandleSetScreenMagnificationState(MessageParcel &data, MessageParcel &reply);
145     ErrCode HandleSetShortKeyState(MessageParcel &data, MessageParcel &reply);
146     ErrCode HandleSetMouseKeyState(MessageParcel &data, MessageParcel &reply);
147     ErrCode HandleSetMouseAutoClick(MessageParcel &data, MessageParcel &reply);
148     ErrCode HandleSetShortkeyTarget(MessageParcel &data, MessageParcel &reply);
149     ErrCode HandleSetShortkeyMultiTarget(MessageParcel &data, MessageParcel &reply);
150     ErrCode HandleSetHighContrastTextState(MessageParcel &data, MessageParcel &reply);
151     ErrCode HandleSetInvertColorState(MessageParcel &data, MessageParcel &reply);
152     ErrCode HandleSetAnimationOffState(MessageParcel &data, MessageParcel &reply);
153     ErrCode HandleSetAudioMonoState(MessageParcel &data, MessageParcel &reply);
154     ErrCode HandleSetDaltonizationState(MessageParcel &data, MessageParcel &reply);
155     ErrCode HandleSetDaltonizationColorFilter(MessageParcel &data, MessageParcel &reply);
156     ErrCode HandleSetContentTimeout(MessageParcel &data, MessageParcel &reply);
157     ErrCode HandleSetBrightnessDiscount(MessageParcel &data, MessageParcel &reply);
158     ErrCode HandleSetAudioBalance(MessageParcel &data, MessageParcel &reply);
159     ErrCode HandleSetClickResponseTime(MessageParcel &data, MessageParcel &reply);
160     ErrCode HandleSetIgnoreRepeatClickState(MessageParcel &data, MessageParcel &reply);
161     ErrCode HandleSetIgnoreRepeatClickTime(MessageParcel &data, MessageParcel &reply);
162 
163     ErrCode HandleGetScreenMagnificationState(MessageParcel &data, MessageParcel &reply);
164     ErrCode HandleGetShortKeyState(MessageParcel &data, MessageParcel &reply);
165     ErrCode HandleGetMouseKeyState(MessageParcel &data, MessageParcel &reply);
166     ErrCode HandleGetMouseAutoClick(MessageParcel &data, MessageParcel &reply);
167     ErrCode HandleGetShortkeyTarget(MessageParcel &data, MessageParcel &reply);
168     ErrCode HandleGetShortkeyMultiTarget(MessageParcel &data, MessageParcel &reply);
169     ErrCode HandleGetHighContrastTextState(MessageParcel &data, MessageParcel &reply);
170     ErrCode HandleGetInvertColorState(MessageParcel &data, MessageParcel &reply);
171     ErrCode HandleGetAnimationOffState(MessageParcel &data, MessageParcel &reply);
172     ErrCode HandleGetAudioMonoState(MessageParcel &data, MessageParcel &reply);
173     ErrCode HandleGetDaltonizationState(MessageParcel &data, MessageParcel &reply);
174     ErrCode HandleGetDaltonizationColorFilter(MessageParcel &data, MessageParcel &reply);
175     ErrCode HandleGetContentTimeout(MessageParcel &data, MessageParcel &reply);
176     ErrCode HandleGetBrightnessDiscount(MessageParcel &data, MessageParcel &reply);
177     ErrCode HandleGetAudioBalance(MessageParcel &data, MessageParcel &reply);
178     ErrCode HandleGetClickResponseTime(MessageParcel &data, MessageParcel &reply);
179     ErrCode HandleGetIgnoreRepeatClickState(MessageParcel &data, MessageParcel &reply);
180     ErrCode HandleGetIgnoreRepeatClickTime(MessageParcel &data, MessageParcel &reply);
181     ErrCode HandleGetAllConfigs(MessageParcel &data, MessageParcel &reply);
182 
183     ErrCode HandleRegisterEnableAbilityListsObserver(MessageParcel &data, MessageParcel &reply);
184     ErrCode HandleRegisterConfigCallback(MessageParcel &data, MessageParcel &reply);
185     ErrCode HandleGetWindowAndElementId(MessageParcel &data, MessageParcel &reply);
186     ErrCode HandleGetSceneBoardInnerWinId(MessageParcel &data, MessageParcel &reply);
187     ErrCode HandleGetFocusedWindowId(MessageParcel &data, MessageParcel &reply);
188 
189     virtual void PostDelayUnloadTask() = 0;
190     ErrCode HandleRemoveRequestId(MessageParcel &data, MessageParcel &reply);
191 
192     ErrCode HandleGetRootParentId(MessageParcel &data, MessageParcel &reply);
193     ErrCode HandleGetAllTreeId(MessageParcel &data, MessageParcel &reply);
194 
195     using AccessibilityAbilityManagerServiceFunc = ErrCode (AccessibleAbilityManagerServiceStub::*)(
196         MessageParcel &data, MessageParcel &reply);
197 };
198 } // namespace Accessibility
199 } // namespace OHOS
200 #endif