1 /* 2 * Copyright (c) 2021-2025 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 UNITTEST_OHOS_ABILITY_RUNTIME_ABILITY_MANAGER_STUB_IMPL_MOCK_H 17 #define UNITTEST_OHOS_ABILITY_RUNTIME_ABILITY_MANAGER_STUB_IMPL_MOCK_H 18 #include <gmock/gmock.h> 19 #include <iremote_object.h> 20 #include <iremote_stub.h> 21 #include "ability_manager_interface.h" 22 #define private public 23 #include "ability_manager_stub.h" 24 #undef private 25 26 namespace OHOS { 27 namespace AAFwk { 28 class AbilityManagerStubImplMock : public AbilityManagerStub { 29 public: 30 const int ABILITY_STATE_FIRST_UID = 3000; 31 const int ABILITY_STATE_SECOND_UID = 3001; 32 const int ABILITY_STATE_FIRST_PID = 11291450; 33 const int ABILITY_STATE_SECOND_PID = 11291506; AbilityManagerStubImplMock()34 AbilityManagerStubImplMock() 35 {} ~AbilityManagerStubImplMock()36 virtual ~AbilityManagerStubImplMock() 37 {} 38 39 MOCK_METHOD4(StartAbility, int(const Want& want, const sptr<IRemoteObject>& callerToken, 40 int32_t userId, int requestCode)); 41 MOCK_METHOD4(StartAbilityByInsightIntent, int32_t(const Want& want, const sptr<IRemoteObject>& callerToken, 42 uint64_t intentId, int32_t userId)); 43 MOCK_METHOD5(StartAbilityAsCaller, int(const Want &want, const sptr<IRemoteObject> &callerToken, 44 sptr<IRemoteObject> asCallerSourceToken, int32_t userId, int requestCode)); 45 MOCK_METHOD3( 46 GetWantSender, sptr<IWantSender>(const WantSenderInfo& wantSenderInfo, const sptr<IRemoteObject>& callerToken, 47 int32_t uid)); 48 MOCK_METHOD2(SendWantSender, int(sptr<IWantSender> target, SenderInfo& senderInfo)); 49 MOCK_METHOD1(CancelWantSender, void(const sptr<IWantSender>& sender)); 50 MOCK_METHOD1(GetPendingWantUid, int(const sptr<IWantSender>& target)); 51 MOCK_METHOD1(GetPendingWantUserId, int(const sptr<IWantSender>& target)); 52 MOCK_METHOD1(GetPendingWantBundleName, std::string(const sptr<IWantSender>& target)); 53 MOCK_METHOD1(GetPendingWantCode, int(const sptr<IWantSender>& target)); 54 MOCK_METHOD1(GetPendingWantType, int(const sptr<IWantSender>& target)); 55 MOCK_METHOD2(RegisterCancelListener, void(const sptr<IWantSender>& sender, const sptr<IWantReceiver>& receiver)); 56 MOCK_METHOD2(UnregisterCancelListener, void(const sptr<IWantSender>& sender, const sptr<IWantReceiver>& receiver)); 57 MOCK_METHOD2(GetPendingRequestWant, int(const sptr<IWantSender>& target, std::shared_ptr<Want>& want)); 58 MOCK_METHOD2(GetWantSenderInfo, int(const sptr<IWantSender>& target, std::shared_ptr<WantSenderInfo>& info)); 59 MOCK_METHOD2(SetMissionContinueState, int(const sptr<IRemoteObject>& token, const AAFwk::ContinueState& state)); 60 MOCK_METHOD2(SetMissionLabel, int(const sptr<IRemoteObject>& token, const std::string& label)); 61 MOCK_METHOD2(SetMissionIcon, int(const sptr<IRemoteObject>& token, 62 const std::shared_ptr<OHOS::Media::PixelMap>& icon)); 63 MOCK_METHOD3(StartContinuation, int(const Want& want, const sptr<IRemoteObject>& abilityToken, int32_t status)); 64 MOCK_METHOD2(NotifyContinuationResult, int(int32_t missionId, int32_t result)); 65 MOCK_METHOD5(ContinueMission, int(const std::string& srcDeviceId, const std::string& dstDeviceId, 66 int32_t missionId, const sptr<IRemoteObject>& callBack, AAFwk::WantParams& wantParams)); 67 MOCK_METHOD3(ContinueAbility, int(const std::string& deviceId, int32_t missionId, uint32_t versionCode)); 68 MOCK_METHOD3(NotifyCompleteContinuation, void(const std::string& deviceId, int32_t sessionId, bool isSuccess)); 69 MOCK_METHOD1(GetAbilityRunningInfos, int(std::vector<AbilityRunningInfo>& info)); 70 MOCK_METHOD2(GetExtensionRunningInfos, int(int upperLimit, std::vector<ExtensionRunningInfo>& info)); 71 MOCK_METHOD1(GetProcessRunningInfos, int(std::vector<AppExecFwk::RunningProcessInfo>& info)); 72 MOCK_METHOD5(StartAbilityByCall, 73 int(const Want&, const sptr<IAbilityConnection>&, const sptr<IRemoteObject>&, int32_t, bool)); 74 MOCK_METHOD2(AcquireShareData, int32_t(const int32_t &missionId, const sptr<IAcquireShareDataCallback> &shareData)); 75 MOCK_METHOD4(ShareDataDone, int32_t(const sptr<IRemoteObject> &token, 76 const int32_t &resultCode, const int32_t &uniqueId, WantParams &wantParam)); 77 InvokeSendRequest(uint32_t code,MessageParcel & data,MessageParcel & reply,MessageOption & option)78 int InvokeSendRequest(uint32_t code, MessageParcel& data, MessageParcel& reply, MessageOption& option) 79 { 80 code_ = code; 81 return 0; 82 } 83 InvokeErrorSendRequest(uint32_t code,MessageParcel & data,MessageParcel & reply,MessageOption & option)84 int InvokeErrorSendRequest(uint32_t code, MessageParcel& data, MessageParcel& reply, MessageOption& option) 85 { 86 code_ = code; 87 return UNKNOWN_ERROR; 88 } 89 90 int code_ = 0; 91 92 virtual int StartAbility(const Want& want, int32_t userId = DEFAULT_INVAL_VALUE, int requestCode = -1) 93 { 94 return 0; 95 } 96 97 int StartAbility(const Want& want, 98 const AbilityStartSetting& abilityStartSetting, 99 const sptr<IRemoteObject>& callerToken, 100 int32_t userId = DEFAULT_INVAL_VALUE, 101 int requestCode = DEFAULT_INVAL_VALUE) 102 { 103 return 0; 104 } 105 106 int StartAbility( 107 const Want& want, 108 const StartOptions& startOptions, 109 const sptr<IRemoteObject>& callerToken, 110 int32_t userId = DEFAULT_INVAL_VALUE, 111 int requestCode = DEFAULT_INVAL_VALUE) 112 { 113 return 0; 114 } 115 116 int StartAbilityAsCaller( 117 const Want& want, 118 const StartOptions& startOptions, 119 const sptr<IRemoteObject>& callerToken, 120 sptr<IRemoteObject> asCallerSourceToken, 121 int32_t userId = DEFAULT_INVAL_VALUE, 122 int requestCode = DEFAULT_INVAL_VALUE) 123 { 124 return 0; 125 } 126 127 virtual int TerminateAbility(const sptr<IRemoteObject>& token, int resultCode, const Want* resultWant = nullptr) 128 { 129 return 0; 130 } 131 SendResultToAbility(int requestCode,int resultCode,Want & resultWant)132 virtual int SendResultToAbility(int requestCode, int resultCode, Want& resultWant) 133 { 134 return 0; 135 } 136 137 int CloseAbility(const sptr<IRemoteObject>& token, int resultCode = DEFAULT_INVAL_VALUE, 138 const Want* resultWant = nullptr) override 139 { 140 return 0; 141 } MinimizeAbility(const sptr<IRemoteObject> & token,bool fromUser)142 int MinimizeAbility(const sptr<IRemoteObject>& token, bool fromUser) override 143 { 144 return 0; 145 } 146 147 virtual int ConnectAbility( 148 const Want& want, 149 const sptr<IAbilityConnection>& connect, 150 const sptr<IRemoteObject>& callerToken, 151 int32_t userId = DEFAULT_INVAL_VALUE) 152 { 153 return 0; 154 } 155 DisconnectAbility(sptr<IAbilityConnection> connect)156 virtual int DisconnectAbility(sptr<IAbilityConnection> connect) 157 { 158 return 0; 159 } 160 AcquireDataAbility(const Uri & uri,bool tryBind,const sptr<IRemoteObject> & callerToken)161 sptr<IAbilityScheduler> AcquireDataAbility( 162 const Uri& uri, bool tryBind, const sptr<IRemoteObject>& callerToken) override 163 { 164 return nullptr; 165 } 166 ReleaseDataAbility(sptr<IAbilityScheduler> dataAbilityScheduler,const sptr<IRemoteObject> & callerToken)167 virtual int ReleaseDataAbility(sptr<IAbilityScheduler> dataAbilityScheduler, const sptr<IRemoteObject>& callerToken) 168 { 169 return 0; 170 } 171 AttachAbilityThread(const sptr<IAbilityScheduler> & scheduler,const sptr<IRemoteObject> & token)172 virtual int AttachAbilityThread(const sptr<IAbilityScheduler>& scheduler, const sptr<IRemoteObject>& token) 173 { 174 return 0; 175 } 176 AbilityTransitionDone(const sptr<IRemoteObject> & token,int state,const PacMap & saveData)177 virtual int AbilityTransitionDone(const sptr<IRemoteObject>& token, int state, const PacMap& saveData) 178 { 179 return 0; 180 } 181 ScheduleConnectAbilityDone(const sptr<IRemoteObject> & token,const sptr<IRemoteObject> & remoteObject)182 virtual int ScheduleConnectAbilityDone(const sptr<IRemoteObject>& token, const sptr<IRemoteObject>& remoteObject) 183 { 184 return 0; 185 } 186 ScheduleDisconnectAbilityDone(const sptr<IRemoteObject> & token)187 virtual int ScheduleDisconnectAbilityDone(const sptr<IRemoteObject>& token) 188 { 189 return 0; 190 } 191 ScheduleCommandAbilityDone(const sptr<IRemoteObject> & token)192 virtual int ScheduleCommandAbilityDone(const sptr<IRemoteObject>& token) 193 { 194 return 0; 195 } 196 ScheduleCommandAbilityWindowDone(const sptr<IRemoteObject> & token,const sptr<SessionInfo> & sessionInfo,WindowCommand winCmd,AbilityCommand abilityCmd)197 virtual int ScheduleCommandAbilityWindowDone( 198 const sptr<IRemoteObject> &token, 199 const sptr<SessionInfo> &sessionInfo, 200 WindowCommand winCmd, 201 AbilityCommand abilityCmd) 202 { 203 return 0; 204 } 205 DumpState(const std::string & args,std::vector<std::string> & state)206 virtual void DumpState(const std::string& args, std::vector<std::string>& state) 207 {} 208 DumpSysState(const std::string & args,std::vector<std::string> & info,bool isClient,bool isUserID,int UserID)209 virtual void DumpSysState( 210 const std::string& args, std::vector<std::string>& info, bool isClient, bool isUserID, int UserID) 211 {} 212 213 virtual int StopServiceAbility(const Want& want, int32_t userId = DEFAULT_INVAL_VALUE, 214 const sptr<IRemoteObject> &token = nullptr) 215 { 216 return 0; 217 } 218 219 virtual int KillProcess(const std::string& bundleName, bool clearPageStack = false, int32_t appIndex = 0) 220 { 221 return 0; 222 } 223 UninstallApp(const std::string & bundleName,int32_t uid)224 virtual int UninstallApp(const std::string& bundleName, int32_t uid) 225 { 226 return 0; 227 } LockMissionForCleanup(int32_t missionId)228 int LockMissionForCleanup(int32_t missionId) override 229 { 230 return 0; 231 } UnlockMissionForCleanup(int32_t missionId)232 int UnlockMissionForCleanup(int32_t missionId) override 233 { 234 return 0; 235 } RegisterMissionListener(const sptr<IMissionListener> & listener)236 int RegisterMissionListener(const sptr<IMissionListener>& listener) override 237 { 238 return 0; 239 } UnRegisterMissionListener(const sptr<IMissionListener> & listener)240 int UnRegisterMissionListener(const sptr<IMissionListener>& listener) override 241 { 242 return 0; 243 } CleanMission(int32_t missionId)244 int CleanMission(int32_t missionId) override 245 { 246 return 0; 247 } CleanAllMissions()248 int CleanAllMissions() override 249 { 250 return 0; 251 } MoveMissionToFront(int32_t missionId)252 int MoveMissionToFront(int32_t missionId) override 253 { 254 return 0; 255 } MoveMissionToFront(int32_t missionId,const StartOptions & startOptions)256 int MoveMissionToFront(int32_t missionId, const StartOptions& startOptions) override 257 { 258 return 0; 259 } MoveMissionsToForeground(const std::vector<int32_t> & missionIds,int32_t topMissionId)260 int MoveMissionsToForeground(const std::vector<int32_t>& missionIds, int32_t topMissionId) override 261 { 262 return 0; 263 } MoveMissionsToBackground(const std::vector<int32_t> & missionIds,std::vector<int32_t> & result)264 int MoveMissionsToBackground(const std::vector<int32_t>& missionIds, std::vector<int32_t>& result) override 265 { 266 return 0; 267 } GetMissionIdByToken(const sptr<IRemoteObject> & token)268 int32_t GetMissionIdByToken(const sptr<IRemoteObject>& token) override 269 { 270 return 0; 271 } GetAbilityTokenByCalleeObj(const sptr<IRemoteObject> & callStub,sptr<IRemoteObject> & token)272 void GetAbilityTokenByCalleeObj(const sptr<IRemoteObject> &callStub, sptr<IRemoteObject> &token) override 273 { 274 return; 275 } GetMissionInfos(const std::string & deviceId,int32_t numMax,std::vector<MissionInfo> & missionInfos)276 int GetMissionInfos(const std::string& deviceId, int32_t numMax, 277 std::vector<MissionInfo>& missionInfos) override 278 { 279 return 0; 280 } GetMissionInfo(const std::string & deviceId,int32_t missionId,MissionInfo & missionInfo)281 int GetMissionInfo(const std::string& deviceId, int32_t missionId, 282 MissionInfo& missionInfo) override 283 { 284 return 0; 285 } StartUser(int userId,sptr<IUserCallback> callback,bool isAppRecovery)286 int StartUser(int userId, sptr<IUserCallback> callback, bool isAppRecovery) override 287 { 288 return 0; 289 } StopUser(int userId,const sptr<IUserCallback> & callback)290 int StopUser(int userId, const sptr<IUserCallback>& callback) override 291 { 292 return 0; 293 } 294 295 int LogoutUser(int32_t userId, sptr<IUserCallback> callback = nullptr) override 296 { 297 return 0; 298 } 299 StartSyncRemoteMissions(const std::string & devId,bool fixConflict,int64_t tag)300 int StartSyncRemoteMissions(const std::string& devId, bool fixConflict, int64_t tag) override 301 { 302 return 0; 303 } StopSyncRemoteMissions(const std::string & devId)304 int StopSyncRemoteMissions(const std::string& devId) override 305 { 306 return 0; 307 } RegisterMissionListener(const std::string & deviceId,const sptr<IRemoteMissionListener> & listener)308 int RegisterMissionListener(const std::string& deviceId, 309 const sptr<IRemoteMissionListener>& listener) override 310 { 311 return 0; 312 } UnRegisterMissionListener(const std::string & deviceId,const sptr<IRemoteMissionListener> & listener)313 int UnRegisterMissionListener(const std::string& deviceId, 314 const sptr<IRemoteMissionListener>& listener) override 315 { 316 return 0; 317 } CallRequestDone(const sptr<IRemoteObject> & token,const sptr<IRemoteObject> & callStub)318 void CallRequestDone(const sptr<IRemoteObject>& token, const sptr<IRemoteObject>& callStub) override 319 { 320 return; 321 } ReleaseCall(const sptr<IAbilityConnection> & connect,const AppExecFwk::ElementName & element)322 int ReleaseCall(const sptr<IAbilityConnection>& connect, 323 const AppExecFwk::ElementName& element) override 324 { 325 return 0; 326 } GetMissionSnapshot(const std::string & deviceId,int32_t missionId,MissionSnapshot & snapshot,bool isLowResolution)327 virtual int GetMissionSnapshot(const std::string& deviceId, int32_t missionId, 328 MissionSnapshot& snapshot, bool isLowResolution) 329 { 330 return 0; 331 } 332 RegisterSnapshotHandler(const sptr<ISnapshotHandler> & handler)333 virtual int RegisterSnapshotHandler(const sptr<ISnapshotHandler>& handler) 334 { 335 return 0; 336 } 337 338 int RegisterWindowManagerServiceHandler(const sptr<IWindowManagerServiceHandler>& handler, 339 bool animationEnabled = true) override 340 { 341 return 0; 342 } 343 CompleteFirstFrameDrawing(const sptr<IRemoteObject> & abilityToken)344 void CompleteFirstFrameDrawing(const sptr<IRemoteObject>& abilityToken) override {} 345 SetAbilityController(const sptr<AppExecFwk::IAbilityController> & abilityController,bool imAStabilityTest)346 int SetAbilityController(const sptr<AppExecFwk::IAbilityController>& abilityController, 347 bool imAStabilityTest) override 348 { 349 return 0; 350 } 351 IsRunningInStabilityTest()352 bool IsRunningInStabilityTest() override 353 { 354 return true; 355 } 356 StartUserTest(const Want & want,const sptr<IRemoteObject> & observer)357 int StartUserTest(const Want& want, const sptr<IRemoteObject>& observer) override 358 { 359 return 0; 360 } 361 FinishUserTest(const std::string & msg,const int64_t & resultCode,const std::string & bundleName)362 int FinishUserTest( 363 const std::string& msg, const int64_t& resultCode, const std::string& bundleName) override 364 { 365 return 0; 366 } 367 GetTopAbility(sptr<IRemoteObject> & token)368 int GetTopAbility(sptr<IRemoteObject>& token) override 369 { 370 return 0; 371 } 372 DelegatorDoAbilityForeground(const sptr<IRemoteObject> & token)373 int DelegatorDoAbilityForeground(const sptr<IRemoteObject>& token) override 374 { 375 return 0; 376 } 377 DelegatorDoAbilityBackground(const sptr<IRemoteObject> & token)378 int DelegatorDoAbilityBackground(const sptr<IRemoteObject>& token) override 379 { 380 return 0; 381 } 382 ReportDrawnCompleted(const sptr<IRemoteObject> & callerToken)383 int32_t ReportDrawnCompleted(const sptr<IRemoteObject>& callerToken) override 384 { 385 return 0; 386 } 387 SetApplicationAutoStartupByEDM(const AutoStartupInfo & info,bool flag)388 int32_t SetApplicationAutoStartupByEDM(const AutoStartupInfo &info, bool flag) override 389 { 390 return 0; 391 } 392 CancelApplicationAutoStartupByEDM(const AutoStartupInfo & info,bool flag)393 int32_t CancelApplicationAutoStartupByEDM(const AutoStartupInfo &info, bool flag) override 394 { 395 return 0; 396 } 397 GetForegroundUIAbilities(std::vector<AppExecFwk::AbilityStateData> & list)398 int32_t GetForegroundUIAbilities(std::vector<AppExecFwk::AbilityStateData> &list) override 399 { 400 AppExecFwk::AbilityStateData abilityStateDataOne; 401 abilityStateDataOne.bundleName = "com.example.getforegrounduiabilitiesone"; 402 abilityStateDataOne.moduleName = "entry"; 403 abilityStateDataOne.abilityName = "EntryAbility"; 404 abilityStateDataOne.abilityState = AbilityState::FOREGROUND; 405 abilityStateDataOne.pid = ABILITY_STATE_FIRST_UID; 406 abilityStateDataOne.uid = ABILITY_STATE_FIRST_PID; 407 abilityStateDataOne.abilityType = static_cast<int32_t>(AppExecFwk::AbilityType::PAGE); 408 abilityStateDataOne.appCloneIndex = 0; 409 list.emplace_back(abilityStateDataOne); 410 411 AppExecFwk::AbilityStateData abilityStateDataTwo; 412 abilityStateDataTwo.bundleName = "com.example.getforegrounduiabilitiestwo"; 413 abilityStateDataTwo.moduleName = "entry"; 414 abilityStateDataTwo.abilityName = "EntryAbility"; 415 abilityStateDataTwo.abilityState = AbilityState::INACTIVE; 416 abilityStateDataTwo.pid = ABILITY_STATE_SECOND_UID; 417 abilityStateDataTwo.uid = ABILITY_STATE_SECOND_PID; 418 abilityStateDataOne.appCloneIndex = 0; 419 abilityStateDataTwo.abilityType = static_cast<int32_t>(AppExecFwk::AbilityType::PAGE); 420 list.emplace_back(abilityStateDataTwo); 421 return ERR_OK; 422 } 423 UpdateKioskApplicationList(const std::vector<std::string> & appList)424 int32_t UpdateKioskApplicationList(const std::vector<std::string> &appList) override 425 { 426 return ERR_OK; 427 } 428 EnterKioskMode(sptr<IRemoteObject> callerToken)429 int32_t EnterKioskMode(sptr<IRemoteObject> callerToken) override 430 { 431 return ERR_OK; 432 } 433 ExitKioskMode(sptr<IRemoteObject> callerToken)434 int32_t ExitKioskMode(sptr<IRemoteObject> callerToken) override 435 { 436 return ERR_OK; 437 } 438 GetKioskStatus(AAFwk::KioskStatus & kioskStatus)439 int32_t GetKioskStatus(AAFwk::KioskStatus &kioskStatus) override 440 { 441 return ERR_OK; 442 } 443 SetAppServiceExtensionKeepAlive(const std::string & bundleName,bool flag)444 int32_t SetAppServiceExtensionKeepAlive(const std::string &bundleName, bool flag) override 445 { 446 return ERR_OK; 447 } 448 QueryKeepAliveAppServiceExtensions(std::vector<KeepAliveInfo> & list)449 int32_t QueryKeepAliveAppServiceExtensions(std::vector<KeepAliveInfo> &list) override 450 { 451 return ERR_OK; 452 } 453 454 #ifdef ABILITY_COMMAND_FOR_TEST ForceTimeoutForTest(const std::string & abilityName,const std::string & state)455 int ForceTimeoutForTest(const std::string& abilityName, const std::string& state) override 456 { 457 return 0; 458 } 459 #endif 460 MOCK_METHOD5(StartAbilityWithSpecifyTokenId, int(const Want& want, const sptr<IRemoteObject>& callerToken, 461 uint32_t specifyTokenId, int32_t userId, int requestCode)); 462 MOCK_METHOD2(IsValidMissionIds, int32_t(const std::vector<int32_t>&, std::vector<MissionValidResult>&)); 463 MOCK_METHOD2(PrepareTerminateAbilityBySCB, int32_t(const sptr<SessionInfo> &sessionInfo, bool &isPrepareTerminate)); 464 MOCK_METHOD1(RegisterAppDebugListener, int32_t(sptr<AppExecFwk::IAppDebugListener> listener)); 465 MOCK_METHOD1(UnregisterAppDebugListener, int32_t(sptr<AppExecFwk::IAppDebugListener> listener)); 466 MOCK_METHOD2(AttachAppDebug, int32_t(const std::string &bundleName, bool isDebugFromLocal)); 467 MOCK_METHOD2(DetachAppDebug, int32_t(const std::string &bundleName, bool isDebugFromLocal)); 468 MOCK_METHOD1(IsAbilityControllerStart, bool(const Want& want)); 469 MOCK_METHOD3(ExecuteIntent, int32_t(uint64_t key, const sptr<IRemoteObject> &callerToken, 470 const InsightIntentExecuteParam ¶m)); 471 MOCK_METHOD3(ExecuteInsightIntentDone, int32_t(const sptr<IRemoteObject> &token, uint64_t intentId, 472 const InsightIntentExecuteResult &result)); 473 MOCK_METHOD3(GetUIExtensionRootHostInfo, int32_t(const sptr<IRemoteObject> token, UIExtensionHostInfo &hostInfo, 474 int32_t userId)); 475 }; 476 } // namespace AAFwk 477 } // namespace OHOS 478 479 #endif 480