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 #include "session_manager/include/scene_session_manager.h"
17 #include "session_manager/include/scene_session_manager_lite.h"
18 
19 namespace OHOS::Rosen {
20 namespace {
21 constexpr HiviewDFX::HiLogLabel LABEL = { LOG_CORE, HILOG_DOMAIN_WINDOW, "SceneSessionManagerLite" };
22 } // namespace
23 
WM_IMPLEMENT_SINGLE_INSTANCE(SceneSessionManagerLite)24 WM_IMPLEMENT_SINGLE_INSTANCE(SceneSessionManagerLite)
25 
26 WSError SceneSessionManagerLite::SetSessionContinueState(const sptr<IRemoteObject>& token,
27     const ContinueState& continueState)
28 {
29     WLOGFD("run SetSessionContinueState");
30     return SceneSessionManager::GetInstance().SetSessionContinueState(token, continueState);
31 }
32 
SetSessionLabel(const sptr<IRemoteObject> & token,const std::string & label)33 WSError SceneSessionManagerLite::SetSessionLabel(const sptr<IRemoteObject>& token, const std::string& label)
34 {
35     WLOGFD("run SetSessionLabel");
36     return SceneSessionManager::GetInstance().SetSessionLabel(token, label);
37 }
38 
SetSessionIcon(const sptr<IRemoteObject> & token,const std::shared_ptr<Media::PixelMap> & icon)39 WSError SceneSessionManagerLite::SetSessionIcon(const sptr<IRemoteObject>& token,
40     const std::shared_ptr<Media::PixelMap>& icon)
41 {
42     WLOGFD("run SetSessionIcon");
43     return SceneSessionManager::GetInstance().SetSessionIcon(token, icon);
44 }
45 
IsValidSessionIds(const std::vector<int32_t> & sessionIds,std::vector<bool> & results)46 WSError SceneSessionManagerLite::IsValidSessionIds(
47     const std::vector<int32_t>& sessionIds, std::vector<bool>& results)
48 {
49     WLOGFD("run IsValidSessionIds");
50     return SceneSessionManager::GetInstance().IsValidSessionIds(sessionIds, results);
51 }
52 
GetSessionInfos(const std::string & deviceId,int32_t numMax,std::vector<SessionInfoBean> & sessionInfos)53 WSError SceneSessionManagerLite::GetSessionInfos(const std::string& deviceId, int32_t numMax,
54     std::vector<SessionInfoBean>& sessionInfos)
55 {
56     WLOGFD("run GetSessionInfos");
57     return SceneSessionManager::GetInstance().GetSessionInfos(deviceId, numMax, sessionInfos);
58 }
59 
GetMainWindowStatesByPid(int32_t pid,std::vector<MainWindowState> & windowStates)60 WSError SceneSessionManagerLite::GetMainWindowStatesByPid(int32_t pid, std::vector<MainWindowState>& windowStates)
61 {
62     return SceneSessionManager::GetInstance().GetMainWindowStatesByPid(pid, windowStates);
63 }
64 
GetSessionInfo(const std::string & deviceId,int32_t persistentId,SessionInfoBean & sessionInfo)65 WSError SceneSessionManagerLite::GetSessionInfo(const std::string& deviceId,
66     int32_t persistentId, SessionInfoBean& sessionInfo)
67 {
68     WLOGFD("run GetSessionInfo");
69     return SceneSessionManager::GetInstance().GetSessionInfo(deviceId, persistentId, sessionInfo);
70 }
71 
GetSessionInfoByContinueSessionId(const std::string & continueSessionId,SessionInfoBean & sessionInfo)72 WSError SceneSessionManagerLite::GetSessionInfoByContinueSessionId(
73     const std::string& continueSessionId, SessionInfoBean& sessionInfo)
74 {
75     TLOGD(WmsLogTag::WMS_MAIN, "liteProxy -> continueSessionId: %{public}s", continueSessionId.c_str());
76     return SceneSessionManager::GetInstance().GetSessionInfoByContinueSessionId(continueSessionId, sessionInfo);
77 }
78 
RegisterSessionListener(const sptr<ISessionListener> & listener)79 WSError SceneSessionManagerLite::RegisterSessionListener(const sptr<ISessionListener>& listener)
80 {
81     WLOGFD("run RegisterSessionListener");
82     return SceneSessionManager::GetInstance().RegisterSessionListener(listener);
83 }
84 
UnRegisterSessionListener(const sptr<ISessionListener> & listener)85 WSError SceneSessionManagerLite::UnRegisterSessionListener(const sptr<ISessionListener>& listener)
86 {
87     WLOGFD("run UnRegisterSessionListener");
88     return SceneSessionManager::GetInstance().UnRegisterSessionListener(listener);
89 }
90 
TerminateSessionNew(const sptr<AAFwk::SessionInfo> info,bool needStartCaller,bool isFromBroker)91 WSError SceneSessionManagerLite::TerminateSessionNew(
92     const sptr<AAFwk::SessionInfo> info, bool needStartCaller, bool isFromBroker)
93 {
94     WLOGFD("run TerminateSessionNew");
95     return SceneSessionManager::GetInstance().TerminateSessionNew(info, needStartCaller, isFromBroker);
96 }
97 
GetSessionSnapshot(const std::string & deviceId,int32_t persistentId,SessionSnapshot & snapshot,bool isLowResolution)98 WSError SceneSessionManagerLite::GetSessionSnapshot(const std::string& deviceId, int32_t persistentId,
99     SessionSnapshot& snapshot, bool isLowResolution)
100 {
101     WLOGFD("run GetSessionSnapshot");
102     return SceneSessionManager::GetInstance().GetSessionSnapshot(deviceId, persistentId, snapshot, isLowResolution);
103 }
104 
PendingSessionToForeground(const sptr<IRemoteObject> & token)105 WSError SceneSessionManagerLite::PendingSessionToForeground(const sptr<IRemoteObject>& token)
106 {
107     WLOGFD("run PendingSessionToForeground");
108     return SceneSessionManager::GetInstance().PendingSessionToForeground(token);
109 }
110 
PendingSessionToBackgroundForDelegator(const sptr<IRemoteObject> & token,bool shouldBackToCaller)111 WSError SceneSessionManagerLite::PendingSessionToBackgroundForDelegator(const sptr<IRemoteObject>& token,
112     bool shouldBackToCaller)
113 {
114     WLOGFD("run PendingSessionToBackgroundForDelegator");
115     return SceneSessionManager::GetInstance().PendingSessionToBackgroundForDelegator(token, shouldBackToCaller);
116 }
117 
GetFocusSessionToken(sptr<IRemoteObject> & token)118 WSError SceneSessionManagerLite::GetFocusSessionToken(sptr<IRemoteObject>& token)
119 {
120     WLOGFD("run GetFocusSessionToken");
121     return SceneSessionManager::GetInstance().GetFocusSessionToken(token);
122 }
123 
GetFocusSessionElement(AppExecFwk::ElementName & element)124 WSError SceneSessionManagerLite::GetFocusSessionElement(AppExecFwk::ElementName& element)
125 {
126     WLOGFD("run GetFocusSessionElement");
127     return SceneSessionManager::GetInstance().GetFocusSessionElement(element);
128 }
129 
ClearSession(int32_t persistentId)130 WSError SceneSessionManagerLite::ClearSession(int32_t persistentId)
131 {
132     WLOGFD("run ClearSession with persistentId: %{public}d", persistentId);
133     return SceneSessionManager::GetInstance().ClearSession(persistentId);
134 }
135 
ClearAllSessions()136 WSError SceneSessionManagerLite::ClearAllSessions()
137 {
138     WLOGFD("run ClearAllSessions");
139     return SceneSessionManager::GetInstance().ClearAllSessions();
140 }
141 
LockSession(int32_t sessionId)142 WSError SceneSessionManagerLite::LockSession(int32_t sessionId)
143 {
144     WLOGFD("run LockSession with persistentId: %{public}d", sessionId);
145     return SceneSessionManager::GetInstance().LockSession(sessionId);
146 }
147 
UnlockSession(int32_t sessionId)148 WSError SceneSessionManagerLite::UnlockSession(int32_t sessionId)
149 {
150     WLOGFD("run UnlockSession with persistentId: %{public}d", sessionId);
151     return SceneSessionManager::GetInstance().UnlockSession(sessionId);
152 }
153 
MoveSessionsToForeground(const std::vector<int32_t> & sessionIds,int32_t topSessionId)154 WSError SceneSessionManagerLite::MoveSessionsToForeground(const std::vector<int32_t>& sessionIds, int32_t topSessionId)
155 {
156     WLOGFD("run MoveSessionsToForeground");
157     return SceneSessionManager::GetInstance().MoveSessionsToForeground(sessionIds, topSessionId);
158 }
159 
MoveSessionsToBackground(const std::vector<int32_t> & sessionIds,std::vector<int32_t> & result)160 WSError SceneSessionManagerLite::MoveSessionsToBackground(const std::vector<int32_t>& sessionIds,
161     std::vector<int32_t>& result)
162 {
163     WLOGFD("run MoveSessionsToBackground");
164     return SceneSessionManager::GetInstance().MoveSessionsToBackground(sessionIds, result);
165 }
166 
GetFocusWindowInfo(FocusChangeInfo & focusInfo)167 void SceneSessionManagerLite::GetFocusWindowInfo(FocusChangeInfo& focusInfo)
168 {
169     return SceneSessionManager::GetInstance().GetFocusWindowInfo(focusInfo);
170 }
171 
RegisterWindowManagerAgent(WindowManagerAgentType type,const sptr<IWindowManagerAgent> & windowManagerAgent)172 WMError SceneSessionManagerLite::RegisterWindowManagerAgent(WindowManagerAgentType type,
173     const sptr<IWindowManagerAgent>& windowManagerAgent)
174 {
175     return SceneSessionManager::GetInstance().RegisterWindowManagerAgent(type, windowManagerAgent);
176 }
177 
UnregisterWindowManagerAgent(WindowManagerAgentType type,const sptr<IWindowManagerAgent> & windowManagerAgent)178 WMError SceneSessionManagerLite::UnregisterWindowManagerAgent(WindowManagerAgentType type,
179     const sptr<IWindowManagerAgent>& windowManagerAgent)
180 {
181     return SceneSessionManager::GetInstance().UnregisterWindowManagerAgent(type, windowManagerAgent);
182 }
183 
CheckWindowId(int32_t windowId,int32_t & pid)184 WMError SceneSessionManagerLite::CheckWindowId(int32_t windowId, int32_t& pid)
185 {
186     return SceneSessionManager::GetInstance().CheckWindowId(windowId, pid);
187 }
188 
CheckUIExtensionCreation(int32_t windowId,uint32_t tokenId,const AppExecFwk::ElementName & element,AppExecFwk::ExtensionAbilityType extensionAbilityType,int32_t & pid)189 WMError SceneSessionManagerLite::CheckUIExtensionCreation(int32_t windowId, uint32_t tokenId,
190     const AppExecFwk::ElementName& element, AppExecFwk::ExtensionAbilityType extensionAbilityType, int32_t& pid)
191 {
192     return SceneSessionManager::GetInstance().CheckUIExtensionCreation(windowId, tokenId, element, extensionAbilityType,
193         pid);
194 }
195 
GetVisibilityWindowInfo(std::vector<sptr<WindowVisibilityInfo>> & infos)196 WMError SceneSessionManagerLite::GetVisibilityWindowInfo(std::vector<sptr<WindowVisibilityInfo>>& infos)
197 {
198     return SceneSessionManager::GetInstance().GetVisibilityWindowInfo(infos);
199 }
200 
UpdateWindowMode(int32_t persistentId,int32_t windowMode)201 WSError SceneSessionManagerLite::UpdateWindowMode(int32_t persistentId, int32_t windowMode)
202 {
203     return SceneSessionManager::GetInstance().UpdateWindowMode(persistentId, windowMode);
204 }
205 
GetWindowModeType(WindowModeType & windowModeType)206 WMError SceneSessionManagerLite::GetWindowModeType(WindowModeType& windowModeType)
207 {
208     return SceneSessionManager::GetInstance().GetWindowModeType(windowModeType);
209 }
210 
RaiseWindowToTop(int32_t persistentId)211 WSError SceneSessionManagerLite::RaiseWindowToTop(int32_t persistentId)
212 {
213     return SceneSessionManager::GetInstance().RaiseWindowToTop(persistentId);
214 }
215 
GetMainWindowInfos(int32_t topNum,std::vector<MainWindowInfo> & topNInfo)216 WMError SceneSessionManagerLite::GetMainWindowInfos(int32_t topNum, std::vector<MainWindowInfo>& topNInfo)
217 {
218     return SceneSessionManager::GetInstance().GetMainWindowInfos(topNum, topNInfo);
219 }
220 
RegisterIAbilityManagerCollaborator(int32_t type,const sptr<AAFwk::IAbilityManagerCollaborator> & impl)221 WSError SceneSessionManagerLite::RegisterIAbilityManagerCollaborator(int32_t type,
222     const sptr<AAFwk::IAbilityManagerCollaborator>& impl)
223 {
224     return SceneSessionManager::GetInstance().RegisterIAbilityManagerCollaborator(type, impl);
225 }
226 
UnregisterIAbilityManagerCollaborator(int32_t type)227 WSError SceneSessionManagerLite::UnregisterIAbilityManagerCollaborator(int32_t type)
228 {
229     return SceneSessionManager::GetInstance().UnregisterIAbilityManagerCollaborator(type);
230 }
231 
GetAllMainWindowInfos(std::vector<MainWindowInfo> & infos)232 WMError SceneSessionManagerLite::GetAllMainWindowInfos(std::vector<MainWindowInfo>& infos)
233 {
234     return SceneSessionManager::GetInstance().GetAllMainWindowInfos(infos);
235 }
236 
ClearMainSessions(const std::vector<int32_t> & persistentIds,std::vector<int32_t> & clearFailedIds)237 WMError SceneSessionManagerLite::ClearMainSessions(const std::vector<int32_t>& persistentIds,
238     std::vector<int32_t>& clearFailedIds)
239 {
240     return SceneSessionManager::GetInstance().ClearMainSessions(persistentIds, clearFailedIds);
241 }
242 
GetWindowStyleType(WindowStyleType & windowStyletype)243 WMError SceneSessionManagerLite::GetWindowStyleType(WindowStyleType& windowStyletype)
244 {
245     return SceneSessionManager::GetInstance().GetWindowStyleType(windowStyletype);
246 }
247 
TerminateSessionByPersistentId(int32_t persistentId)248 WMError SceneSessionManagerLite::TerminateSessionByPersistentId(int32_t persistentId)
249 {
250     return SceneSessionManager::GetInstance().TerminateSessionByPersistentId(persistentId);
251 }
252 
GetAccessibilityWindowInfo(std::vector<sptr<AccessibilityWindowInfo>> & infos)253 WMError SceneSessionManagerLite::GetAccessibilityWindowInfo(std::vector<sptr<AccessibilityWindowInfo>>& infos)
254 {
255     return SceneSessionManager::GetInstance().GetAccessibilityWindowInfo(infos);
256 }
257 
CloseTargetFloatWindow(const std::string & bundleName)258 WMError SceneSessionManagerLite::CloseTargetFloatWindow(const std::string& bundleName)
259 {
260     return SceneSessionManager::GetInstance().CloseTargetFloatWindow(bundleName);
261 }
262 
CloseTargetPiPWindow(const std::string & bundleName)263 WMError SceneSessionManagerLite::CloseTargetPiPWindow(const std::string& bundleName)
264 {
265     return SceneSessionManager::GetInstance().CloseTargetPiPWindow(bundleName);
266 }
267 
GetCurrentPiPWindowInfo(std::string & bundleName)268 WMError SceneSessionManagerLite::GetCurrentPiPWindowInfo(std::string& bundleName)
269 {
270     return SceneSessionManager::GetInstance().GetCurrentPiPWindowInfo(bundleName);
271 }
NotifyAppUseControlList(ControlAppType type,int32_t userId,const std::vector<AppUseControlInfo> & controlList)272 WSError SceneSessionManagerLite::NotifyAppUseControlList(
273     ControlAppType type, int32_t userId, const std::vector<AppUseControlInfo>& controlList)
274 {
275     return SceneSessionManager::GetInstance().NotifyAppUseControlList(type, userId, controlList);
276 }
277 
GetRootMainWindowId(int32_t persistentId,int32_t & hostWindowId)278 WMError SceneSessionManagerLite::GetRootMainWindowId(int32_t persistentId, int32_t& hostWindowId)
279 {
280     return SceneSessionManager::GetInstance().GetRootMainWindowId(persistentId, hostWindowId);
281 }
282 } // namespace OHOS::Rosen
283