1 /* 2 * Copyright (c) 2024 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_MISSION_LIST_MANAGER_INTERFACE_H 17 #define OHOS_ABILITY_RUNTIME_MISSION_LIST_MANAGER_INTERFACE_H 18 19 #include <memory> 20 #include <string> 21 #include <vector> 22 23 #include "ability_running_info.h" 24 #include "mission_list.h" 25 #include "mission_listener_controller.h" 26 #include "mission_info.h" 27 #include "mission_snapshot.h" 28 #include "snapshot.h" 29 #include "start_options.h" 30 #include "want.h" 31 #include "window_config.h" 32 #include "iability_info_callback.h" 33 34 namespace OHOS { 35 namespace AAFwk { 36 class MissionListManagerInterface { 37 public: 38 virtual ~MissionListManagerInterface() = default; 39 40 virtual void Init() = 0; 41 virtual int StartAbility(AbilityRequest &abilityRequest) = 0; 42 virtual int MinimizeAbility(const sptr<IRemoteObject> &token, bool fromUser) = 0; 43 virtual int RegisterMissionListener(const sptr<IMissionListener> &listener) = 0; 44 virtual int UnRegisterMissionListener(const sptr<IMissionListener> &listener) = 0; 45 virtual int GetMissionInfos(int32_t numMax, std::vector<MissionInfo> &missionInfos) = 0; 46 virtual int GetMissionInfo(int32_t missionId, MissionInfo &missionInfo) = 0; 47 virtual int MoveMissionToFront(int32_t missionId, std::shared_ptr<StartOptions> startOptions = nullptr) = 0; 48 virtual int MoveMissionToFront(int32_t missionId, bool isCallerFromLauncher, bool isRecent, 49 std::shared_ptr<AbilityRecord> callerAbility, std::shared_ptr<StartOptions> startOptions = nullptr) = 0; 50 virtual void NotifyMissionFocused(int32_t missionId) = 0; 51 virtual void NotifyMissionUnfocused(int32_t missionId) = 0; 52 virtual void OnAbilityRequestDone(const sptr<IRemoteObject> &token, int32_t state) = 0; 53 virtual void OnAppStateChanged(const AppInfo &info) = 0; 54 virtual int AttachAbilityThread(const sptr<AAFwk::IAbilityScheduler> &scheduler, 55 const sptr<IRemoteObject> &token) = 0; 56 virtual std::shared_ptr<AbilityRecord> GetAbilityRecordByToken(const sptr<IRemoteObject> &token) = 0; 57 virtual std::shared_ptr<AbilityRecord> GetAbilityRecordByMissionId(int missionId) = 0; 58 virtual int MoveAbilityToBackground(const std::shared_ptr<AbilityRecord> &abilityRecord) = 0; 59 virtual int32_t BackToCallerAbilityWithResult(std::shared_ptr<AbilityRecord> abilityRecord, 60 int32_t resultCode, const Want *resultWant, int64_t callerRequestCode) = 0; 61 virtual int TerminateAbility(const std::shared_ptr<AbilityRecord> &abilityRecord, 62 int resultCode, const Want *resultWant, bool flag) = 0; 63 virtual int AbilityTransactionDone(const sptr<IRemoteObject> &token, int state, const PacMap &saveData) = 0; 64 virtual std::shared_ptr<AbilityRecord> GetAbilityFromTerminateList(const sptr<IRemoteObject> &token) = 0; 65 virtual int ClearMission(int missionId) = 0; 66 virtual int ClearAllMissions() = 0; 67 68 virtual int SetMissionLockedState(int missionId, bool lockedState) = 0; 69 virtual void OnTimeOut(uint32_t msgId, int64_t abilityRecordId, bool isHalf = false) = 0; 70 virtual void OnAbilityDied(std::shared_ptr<AbilityRecord> abilityRecord, int32_t currentUserId) = 0; 71 virtual void OnCallConnectDied(const std::shared_ptr<CallRecord> &callRecord) = 0; 72 virtual int32_t GetMissionIdByAbilityToken(const sptr<IRemoteObject> &token) = 0; 73 virtual sptr<IRemoteObject> GetAbilityTokenByMissionId(int32_t missionId) = 0; 74 75 virtual void Dump(std::vector<std::string> &info) = 0; 76 77 virtual void DumpMissionList(std::vector<std::string> &info, bool isClient, const std::string &args = ""); 78 79 virtual void DumpMissionListByRecordId(std::vector<std::string> &info, bool isClient, int32_t abilityRecordId, 80 const std::vector<std::string> ¶ms) = 0; 81 virtual void DumpMission(int missionId, std::vector<std::string> &info) = 0; 82 virtual void DumpMissionInfos(std::vector<std::string> &info) = 0; 83 virtual void OnAcceptWantResponse(const AAFwk::Want &want, const std::string &flag) = 0; 84 virtual void OnStartSpecifiedAbilityTimeoutResponse(const AAFwk::Want &want) = 0; 85 virtual int ResolveLocked(const AbilityRequest &abilityRequest) = 0; 86 87 virtual int ReleaseCallLocked(const sptr<IAbilityConnection> &connect, 88 const AppExecFwk::ElementName &element) = 0; 89 virtual void RegisterSnapshotHandler(const sptr<ISnapshotHandler> &handler) = 0; 90 virtual bool GetMissionSnapshot(int32_t missionId, const sptr<IRemoteObject> &abilityToken, 91 MissionSnapshot &missionSnapshot, bool isLowResolution) = 0; 92 virtual void GetAbilityRunningInfos(std::vector<AbilityRunningInfo> &info, bool isPerm) = 0; 93 94 #ifdef SUPPORT_SCREEN 95 virtual void UpdateSnapShot(const sptr<IRemoteObject> &token, 96 const std::shared_ptr<Media::PixelMap> &pixelMap) = 0; 97 #endif // SUPPORT_SCREEN 98 99 virtual void EnableRecoverAbility(int32_t missionId) = 0; 100 101 virtual void UninstallApp(const std::string &bundleName, int32_t uid) = 0; 102 103 virtual bool IsStarted() = 0; 104 virtual void PauseManager() = 0; 105 virtual void ResumeManager() = 0; 106 virtual int32_t IsValidMissionIds(const std::vector<int32_t> &missionIds, 107 std::vector<MissionValidResult> &results) = 0; 108 virtual int DoAbilityForeground(std::shared_ptr<AbilityRecord> &abilityRecord, uint32_t flag); 109 virtual void GetActiveAbilityList(int32_t uid, std::vector<std::string> &abilityList, int32_t pid = NO_PID) = 0; 110 virtual void CallRequestDone(const std::shared_ptr<AbilityRecord> &abilityRecord, 111 const sptr<IRemoteObject> &callStub) = 0; 112 virtual int SetMissionContinueState(const sptr<IRemoteObject> &token, int32_t missionId, 113 const AAFwk::ContinueState &state) = 0; 114 115 virtual bool IsAbilityStarted(AbilityRequest &abilityRequest, std::shared_ptr<AbilityRecord> &targetRecord) = 0; 116 virtual void SignRestartAppFlag(int32_t uid) = 0; 117 #ifdef SUPPORT_SCREEN 118 public: 119 virtual int SetMissionLabel(const sptr<IRemoteObject> &abilityToken, const std::string &label) = 0; 120 virtual int SetMissionIcon(const sptr<IRemoteObject> &token, const std::shared_ptr<Media::PixelMap> &icon) = 0; 121 virtual void CompleteFirstFrameDrawing(const sptr<IRemoteObject> &abilityToken) = 0; 122 #endif 123 }; 124 125 class MissionListWrap { 126 public: 127 virtual ~MissionListWrap() = default; 128 virtual std::shared_ptr<MissionListManagerInterface> CreateMissionListManager(int32_t userId) = 0; 129 virtual void RemoveUserDir(int32_t userId) = 0; 130 virtual void InitMissionInfoMgr(int32_t userId) = 0; 131 virtual void SetMissionAbilityState(int32_t missionId, AbilityState state) = 0; 132 virtual int32_t GetInnerMissionInfoById(int32_t missionId, InnerMissionInfo &innerMissionInfo) = 0; 133 #ifdef SUPPORT_SCREEN 134 virtual std::shared_ptr<Media::PixelMap> GetSnapshot(int32_t missionId) = 0; 135 #endif 136 }; 137 } // namespace AAFwk 138 } // namespace OHOS 139 140 extern "C" __attribute__((visibility("default"))) OHOS::AAFwk::MissionListWrap* CreateMissionListWrap(); 141 142 #endif // OHOS_ABILITY_RUNTIME_MISSION_LIST_MANAGER_INTERFACE_H 143