• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2023 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 OHOS_ABILITY_RUNTIME_ABILITY_MANAGER_STUB_H
17 #define OHOS_ABILITY_RUNTIME_ABILITY_MANAGER_STUB_H
18 
19 #include "ability_manager_interface.h"
20 
21 #include <iremote_object.h>
22 #include <iremote_stub.h>
23 
24 #include "dlp_connection_info.h"
25 #include "hilog_wrapper.h"
26 #include "iconnection_observer.h"
27 
28 namespace OHOS {
29 namespace AAFwk {
30 /**
31  * @class AbilityManagerStub
32  * AbilityManagerStub.
33  */
34 class AbilityManagerStub : public IRemoteStub<IAbilityManager> {
35 public:
36     AbilityManagerStub();
37     ~AbilityManagerStub();
38     virtual int OnRemoteRequest(
39         uint32_t code, MessageParcel &data, MessageParcel &reply, MessageOption &option) override;
40 
41     /**
42      * Calls this interface to move the ability to the foreground.
43      *
44      * @param token, ability's token.
45      * @param flag, use for lock or unlock flag and so on.
46      * @return Returns ERR_OK on success, others on failure.
47      */
48     virtual int DoAbilityForeground(const sptr<IRemoteObject> &token, uint32_t flag) override;
49 
50     /**
51      * Calls this interface to move the ability to the background.
52      *
53      * @param token, ability's token.
54      * @param flag, use for lock or unlock flag and so on.
55      * @return Returns ERR_OK on success, others on failure.
56      */
57     virtual int DoAbilityBackground(const sptr<IRemoteObject> &token, uint32_t flag) override;
58 
59     virtual int RegisterObserver(const sptr<AbilityRuntime::IConnectionObserver> &observer);
60 
61     virtual int UnregisterObserver(const sptr<AbilityRuntime::IConnectionObserver> &observer);
62 
63     virtual int GetDlpConnectionInfos(std::vector<AbilityRuntime::DlpConnectionInfo> &infos);
64 
65 private:
66     void FirstStepInit();
67     void SecondStepInit();
68     void ThirdStepInit();
69     int TerminateAbilityInner(MessageParcel &data, MessageParcel &reply);
70     int TerminateUIExtensionAbilityInner(MessageParcel &data, MessageParcel &reply);
71     int CloseUIAbilityBySCBInner(MessageParcel &data, MessageParcel &reply);
72     int SendResultToAbilityInner(MessageParcel &data, MessageParcel &reply);
73     int MinimizeAbilityInner(MessageParcel &data, MessageParcel &reply);
74     int MinimizeUIExtensionAbilityInner(MessageParcel &data, MessageParcel &reply);
75     int MinimizeUIAbilityBySCBInner(MessageParcel &data, MessageParcel &reply);
76     int AttachAbilityThreadInner(MessageParcel &data, MessageParcel &reply);
77     int AbilityTransitionDoneInner(MessageParcel &data, MessageParcel &reply);
78     int ScheduleConnectAbilityDoneInner(MessageParcel &data, MessageParcel &reply);
79     int ScheduleDisconnectAbilityDoneInner(MessageParcel &data, MessageParcel &reply);
80     int ScheduleCommandAbilityDoneInner(MessageParcel &data, MessageParcel &reply);
81     int ScheduleCommandAbilityWindowDoneInner(MessageParcel &data, MessageParcel &reply);
82     int GetMissionSnapshotInner(MessageParcel &data, MessageParcel &reply);
83     int AcquireDataAbilityInner(MessageParcel &data, MessageParcel &reply);
84     int ReleaseDataAbilityInner(MessageParcel &data, MessageParcel &reply);
85     int KillProcessInner(MessageParcel &data, MessageParcel &reply);
86     int UninstallAppInner(MessageParcel &data, MessageParcel &reply);
87     int StartAbilityInner(MessageParcel &data, MessageParcel &reply);
88     int StartAbilityByUIContentSessionAddCallerInner(MessageParcel &data, MessageParcel &reply);
89     int StartAbilityByUIContentSessionForOptionsInner(MessageParcel &data, MessageParcel &reply);
90     int StartAbilityAsCallerByTokenInner(MessageParcel &data, MessageParcel &reply);
91     int StartAbilityAsCallerForOptionInner(MessageParcel &data, MessageParcel &reply);
92     int StartExtensionAbilityInner(MessageParcel &data, MessageParcel &reply);
93     int StartUIExtensionAbilityInner(MessageParcel &data, MessageParcel &reply);
94     int StartUIAbilityBySCBInner(MessageParcel &data, MessageParcel &reply);
95     int StopExtensionAbilityInner(MessageParcel& data, MessageParcel& reply);
96     int StartAbilityAddCallerInner(MessageParcel &data, MessageParcel &reply);
97     int ConnectAbilityInner(MessageParcel &data, MessageParcel &reply);
98     int ConnectAbilityWithTypeInner(MessageParcel &data, MessageParcel &reply);
99     int ConnectUIExtensionAbilityInner(MessageParcel &data, MessageParcel &reply);
100     int DisconnectAbilityInner(MessageParcel &data, MessageParcel &reply);
101     int StopServiceAbilityInner(MessageParcel &data, MessageParcel &reply);
102     int DumpStateInner(MessageParcel &data, MessageParcel &reply);
103     int DumpSysStateInner(MessageParcel &data, MessageParcel &reply);
104     int StartAbilityForSettingsInner(MessageParcel &data, MessageParcel &reply);
105     int StartAbilityForOptionsInner(MessageParcel &data, MessageParcel &reply);
106 
107     int GetWantSenderInner(MessageParcel &data, MessageParcel &reply);
108     int SendWantSenderInner(MessageParcel &data, MessageParcel &reply);
109     int CancelWantSenderInner(MessageParcel &data, MessageParcel &reply);
110 
111     int GetPendingWantUidInner(MessageParcel &data, MessageParcel &reply);
112     int GetPendingWantUserIdInner(MessageParcel &data, MessageParcel &reply);
113     int GetPendingWantBundleNameInner(MessageParcel &data, MessageParcel &reply);
114     int GetPendingWantCodeInner(MessageParcel &data, MessageParcel &reply);
115     int GetPendingWantTypeInner(MessageParcel &data, MessageParcel &reply);
116 
117     int RegisterCancelListenerInner(MessageParcel &data, MessageParcel &reply);
118     int UnregisterCancelListenerInner(MessageParcel &data, MessageParcel &reply);
119 
120     int GetPendingRequestWantInner(MessageParcel &data, MessageParcel &reply);
121     int GetWantSenderInfoInner(MessageParcel &data, MessageParcel &reply);
122 
123     int GetAppMemorySizeInner(MessageParcel &data, MessageParcel &reply);
124     int IsRamConstrainedDeviceInner(MessageParcel &data, MessageParcel &reply);
125     int ClearUpApplicationDataInner(MessageParcel &data, MessageParcel &reply);
126 
127     int ContinueMissionInner(MessageParcel &data, MessageParcel &reply);
128     int ContinueMissionOfBundleNameInner(MessageParcel &data, MessageParcel &reply);
129     int ContinueAbilityInner(MessageParcel &data, MessageParcel &reply);
130     int StartContinuationInner(MessageParcel &data, MessageParcel &reply);
131     int NotifyCompleteContinuationInner(MessageParcel &data, MessageParcel &reply);
132     int NotifyContinuationResultInner(MessageParcel &data, MessageParcel &reply);
133     int RegisterRemoteMissionListenerInner(MessageParcel &data, MessageParcel &reply);
134     int RegisterRemoteOnListenerInner(MessageParcel &data, MessageParcel &reply);
135     int RegisterRemoteOffListenerInner(MessageParcel &data, MessageParcel &reply);
136     int UnRegisterRemoteMissionListenerInner(MessageParcel &data, MessageParcel &reply);
137 
138     int LockMissionForCleanupInner(MessageParcel &data, MessageParcel &reply);
139     int UnlockMissionForCleanupInner(MessageParcel &data, MessageParcel &reply);
140     int RegisterMissionListenerInner(MessageParcel &data, MessageParcel &reply);
141     int UnRegisterMissionListenerInner(MessageParcel &data, MessageParcel &reply);
142     int GetMissionInfosInner(MessageParcel &data, MessageParcel &reply);
143     int GetMissionInfoInner(MessageParcel &data, MessageParcel &reply);
144     int CleanMissionInner(MessageParcel &data, MessageParcel &reply);
145     int CleanAllMissionsInner(MessageParcel &data, MessageParcel &reply);
146     int MoveMissionToFrontInner(MessageParcel &data, MessageParcel &reply);
147     int MoveMissionsToForegroundInner(MessageParcel &data, MessageParcel &reply);
148     int MoveMissionsToBackgroundInner(MessageParcel &data, MessageParcel &reply);
149     int GetMissionIdByTokenInner(MessageParcel &data, MessageParcel &reply);
150 
151     // for new version ability (call ability)
152     int StartAbilityByCallInner(MessageParcel &data, MessageParcel &reply);
153     int CallRequestDoneInner(MessageParcel &data, MessageParcel &reply);
154     int ReleaseCallInner(MessageParcel &data, MessageParcel &reply);
155     int StartUserInner(MessageParcel &data, MessageParcel &reply);
156     int StopUserInner(MessageParcel &data, MessageParcel &reply);
157     int GetAbilityRunningInfosInner(MessageParcel &data, MessageParcel &reply);
158     int GetExtensionRunningInfosInner(MessageParcel &data, MessageParcel &reply);
159     int GetProcessRunningInfosInner(MessageParcel &data, MessageParcel &reply);
160 
161     int StartSyncRemoteMissionsInner(MessageParcel &data, MessageParcel &reply);
162     int StopSyncRemoteMissionsInner(MessageParcel &data, MessageParcel &reply);
163     int RegisterSnapshotHandlerInner(MessageParcel &data, MessageParcel &reply);
164     int GetMissionSnapshotInfoInner(MessageParcel &data, MessageParcel &reply);
165     int SendANRProcessIDInner(MessageParcel &data, MessageParcel &reply);
166 
167     int SetAbilityControllerInner(MessageParcel &data, MessageParcel &reply);
168     int SetComponentInterceptionInner(MessageParcel &data, MessageParcel &reply);
169     int SendResultToAbilityByTokenInner(MessageParcel &data, MessageParcel &reply);
170 
171     int StartUserTestInner(MessageParcel &data, MessageParcel &reply);
172     int FinishUserTestInner(MessageParcel &data, MessageParcel &reply);
173     int GetTopAbilityTokenInner(MessageParcel &data, MessageParcel &reply);
174     int CheckUIExtensionIsFocusedInner(MessageParcel &data, MessageParcel &reply);
175     int DelegatorDoAbilityForegroundInner(MessageParcel &data, MessageParcel &reply);
176     int DelegatorDoAbilityBackgroundInner(MessageParcel &data, MessageParcel &reply);
177     int DoAbilityForegroundInner(MessageParcel &data, MessageParcel &reply);
178     int DoAbilityBackgroundInner(MessageParcel &data, MessageParcel &reply);
179 
180     int IsRunningInStabilityTestInner(MessageParcel &data, MessageParcel &reply);
181     int MoveMissionToFrontByOptionsInner(MessageParcel &data, MessageParcel &reply);
182 
183     int UpdateMissionSnapShotFromWMSInner(MessageParcel &data, MessageParcel &reply);
184     int RegisterConnectionObserverInner(MessageParcel &data, MessageParcel &reply);
185     int UnregisterConnectionObserverInner(MessageParcel &data, MessageParcel &reply);
186     int GetDlpConnectionInfosInner(MessageParcel &data, MessageParcel &reply);
187     int MoveAbilityToBackgroundInner(MessageParcel &data, MessageParcel &reply);
188     int SetMissionContinueStateInner(MessageParcel &data, MessageParcel &reply);
189 #ifdef SUPPORT_GRAPHICS
190     int SetMissionLabelInner(MessageParcel &data, MessageParcel &reply);
191     int SetMissionIconInner(MessageParcel &data, MessageParcel &reply);
192     int RegisterWindowManagerServiceHandlerInner(MessageParcel &data, MessageParcel &reply);
193     int CompleteFirstFrameDrawingInner(MessageParcel &data, MessageParcel &reply);
194     int PrepareTerminateAbilityInner(MessageParcel &data, MessageParcel &reply);
195 #endif
196 
197     #ifdef ABILITY_COMMAND_FOR_TEST
198     int ForceTimeoutForTestInner(MessageParcel &data, MessageParcel &reply);
199     #endif
200 
201     int FreeInstallAbilityFromRemoteInner(MessageParcel &data, MessageParcel &reply);
202     int AddFreeInstallObserverInner(MessageParcel &data, MessageParcel &reply);
203 
204     using RequestFuncType = int (AbilityManagerStub::*)(MessageParcel &data, MessageParcel &reply);
205     std::map<uint32_t, RequestFuncType> requestFuncMap_;
206 
207     #ifdef ABILITY_COMMAND_FOR_TEST
208     int BlockAmsServiceInner(MessageParcel &data, MessageParcel &reply);
209     int BlockAbilityInner(MessageParcel &data, MessageParcel &reply);
210     int BlockAppServiceInner(MessageParcel &data, MessageParcel &reply);
211     #endif
212     int EnableRecoverAbilityInner(MessageParcel &data, MessageParcel &reply);
213     int ScheduleRecoverAbilityInner(MessageParcel &data, MessageParcel &reply);
214     int GetTopAbilityInner(MessageParcel &data, MessageParcel &reply);
215     int GetElementNameByTokenInner(MessageParcel &data, MessageParcel &reply);
216     int DumpAbilityInfoDoneInner(MessageParcel &data, MessageParcel &reply);
217     int32_t IsValidMissionIdsInner(MessageParcel &data, MessageParcel &reply);
218 
219     int VerifyPermissionInner(MessageParcel &data, MessageParcel &reply);
220 
221     int HandleRequestDialogService(MessageParcel &data, MessageParcel &reply);
222     int32_t HandleReportDrawnCompleted(MessageParcel &data, MessageParcel &reply);
223 
224     int AcquireShareDataInner(MessageParcel &data, MessageParcel &reply);
225     int ShareDataDoneInner(MessageParcel &data, MessageParcel &reply);
226     int GetAbilityTokenByCalleeObjInner(MessageParcel &data, MessageParcel &reply);
227 
228     int32_t ForceExitAppInner(MessageParcel &data, MessageParcel &reply);
229     int32_t RecordAppExitReasonInner(MessageParcel &data, MessageParcel &reply);
230 
231     int SetRootSceneSessionInner(MessageParcel &data, MessageParcel &reply);
232     int CallUIAbilityBySCBInner(MessageParcel &data, MessageParcel &reply);
233     int StartSpecifiedAbilityBySCBInner(MessageParcel &data, MessageParcel &reply);
234     int NotifySaveAsResultInner(MessageParcel &data, MessageParcel &reply);
235 
236     int SetSessionManagerServiceInner(MessageParcel &data, MessageParcel &reply);
237 
238     int32_t RegisterIAbilityManagerCollaboratorInner(MessageParcel &data, MessageParcel &reply);
239     int32_t UnregisterIAbilityManagerCollaboratorInner(MessageParcel &data, MessageParcel &reply);
240     int32_t MoveMissionToBackgroundInner(MessageParcel &data, MessageParcel &reply);
241     int32_t TerminateMissionInner(MessageParcel &data, MessageParcel &reply);
242 
243     int PrepareTerminateAbilityBySCBInner(MessageParcel &data, MessageParcel &reply);
244     int RegisterSessionHandlerInner(MessageParcel &data, MessageParcel &reply);
245 };
246 }  // namespace AAFwk
247 }  // namespace OHOS
248 #endif  // OHOS_ABILITY_RUNTIME_ABILITY_MANAGER_STUB_H
249