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