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
GetInstance()24 SceneSessionManagerLite& SceneSessionManagerLite::GetInstance()
25 {
26 static sptr<SceneSessionManagerLite> instance(new SceneSessionManagerLite());
27 return *instance;
28 }
29
SetSessionContinueState(const sptr<IRemoteObject> & token,const ContinueState & continueState)30 WSError SceneSessionManagerLite::SetSessionContinueState(const sptr<IRemoteObject>& token,
31 const ContinueState& continueState)
32 {
33 WLOGFD("in");
34 return SceneSessionManager::GetInstance().SetSessionContinueState(token, continueState);
35 }
36
SetSessionLabel(const sptr<IRemoteObject> & token,const std::string & label)37 WSError SceneSessionManagerLite::SetSessionLabel(const sptr<IRemoteObject>& token, const std::string& label)
38 {
39 WLOGFD("in");
40 return SceneSessionManager::GetInstance().SetSessionLabel(token, label);
41 }
42
SetSessionIcon(const sptr<IRemoteObject> & token,const std::shared_ptr<Media::PixelMap> & icon)43 WSError SceneSessionManagerLite::SetSessionIcon(const sptr<IRemoteObject>& token,
44 const std::shared_ptr<Media::PixelMap>& icon)
45 {
46 WLOGFD("in");
47 return SceneSessionManager::GetInstance().SetSessionIcon(token, icon);
48 }
49
IsValidSessionIds(const std::vector<int32_t> & sessionIds,std::vector<bool> & results)50 WSError SceneSessionManagerLite::IsValidSessionIds(
51 const std::vector<int32_t>& sessionIds, std::vector<bool>& results)
52 {
53 WLOGFD("in");
54 return SceneSessionManager::GetInstance().IsValidSessionIds(sessionIds, results);
55 }
56
GetSessionInfos(const std::string & deviceId,int32_t numMax,std::vector<SessionInfoBean> & sessionInfos)57 WSError SceneSessionManagerLite::GetSessionInfos(const std::string& deviceId, int32_t numMax,
58 std::vector<SessionInfoBean>& sessionInfos)
59 {
60 WLOGFD("in");
61 return SceneSessionManager::GetInstance().GetSessionInfos(deviceId, numMax, sessionInfos);
62 }
63
GetMainWindowStatesByPid(int32_t pid,std::vector<MainWindowState> & windowStates)64 WSError SceneSessionManagerLite::GetMainWindowStatesByPid(int32_t pid, std::vector<MainWindowState>& windowStates)
65 {
66 return SceneSessionManager::GetInstance().GetMainWindowStatesByPid(pid, windowStates);
67 }
68
GetSessionInfo(const std::string & deviceId,int32_t persistentId,SessionInfoBean & sessionInfo)69 WSError SceneSessionManagerLite::GetSessionInfo(const std::string& deviceId,
70 int32_t persistentId, SessionInfoBean& sessionInfo)
71 {
72 WLOGFD("in");
73 return SceneSessionManager::GetInstance().GetSessionInfo(deviceId, persistentId, sessionInfo);
74 }
75
GetSessionInfoByContinueSessionId(const std::string & continueSessionId,SessionInfoBean & sessionInfo)76 WSError SceneSessionManagerLite::GetSessionInfoByContinueSessionId(
77 const std::string& continueSessionId, SessionInfoBean& sessionInfo)
78 {
79 TLOGD(WmsLogTag::WMS_MAIN, "continueSessionId: %{public}s", continueSessionId.c_str());
80 return SceneSessionManager::GetInstance().GetSessionInfoByContinueSessionId(continueSessionId, sessionInfo);
81 }
82
RegisterSessionListener(const sptr<ISessionListener> & listener,bool isRecover)83 WSError SceneSessionManagerLite::RegisterSessionListener(const sptr<ISessionListener>& listener, bool isRecover)
84 {
85 WLOGFD("in");
86 return SceneSessionManager::GetInstance().RegisterSessionListener(listener);
87 }
88
UnRegisterSessionListener(const sptr<ISessionListener> & listener)89 WSError SceneSessionManagerLite::UnRegisterSessionListener(const sptr<ISessionListener>& listener)
90 {
91 WLOGFD("in");
92 return SceneSessionManager::GetInstance().UnRegisterSessionListener(listener);
93 }
94
TerminateSessionNew(const sptr<AAFwk::SessionInfo> info,bool needStartCaller,bool isFromBroker)95 WSError SceneSessionManagerLite::TerminateSessionNew(
96 const sptr<AAFwk::SessionInfo> info, bool needStartCaller, bool isFromBroker)
97 {
98 WLOGFD("in");
99 return SceneSessionManager::GetInstance().TerminateSessionNew(info, needStartCaller, isFromBroker);
100 }
101
GetSessionSnapshot(const std::string & deviceId,int32_t persistentId,SessionSnapshot & snapshot,bool isLowResolution)102 WSError SceneSessionManagerLite::GetSessionSnapshot(const std::string& deviceId, int32_t persistentId,
103 SessionSnapshot& snapshot, bool isLowResolution)
104 {
105 WLOGFD("in");
106 return SceneSessionManager::GetInstance().GetSessionSnapshot(deviceId, persistentId, snapshot, isLowResolution);
107 }
108
PendingSessionToForeground(const sptr<IRemoteObject> & token)109 WSError SceneSessionManagerLite::PendingSessionToForeground(const sptr<IRemoteObject>& token)
110 {
111 WLOGFD("in");
112 return SceneSessionManager::GetInstance().PendingSessionToForeground(token);
113 }
114
PendingSessionToBackground(const sptr<IRemoteObject> & token,const BackgroundParams & params)115 WSError SceneSessionManagerLite::PendingSessionToBackground(const sptr<IRemoteObject>& token,
116 const BackgroundParams& params)
117 {
118 WLOGFD("in");
119 return SceneSessionManager::GetInstance().PendingSessionToBackground(token, params);
120 }
121
PendingSessionToBackgroundForDelegator(const sptr<IRemoteObject> & token,bool shouldBackToCaller)122 WSError SceneSessionManagerLite::PendingSessionToBackgroundForDelegator(const sptr<IRemoteObject>& token,
123 bool shouldBackToCaller)
124 {
125 WLOGFD("in");
126 return SceneSessionManager::GetInstance().PendingSessionToBackgroundForDelegator(token, shouldBackToCaller);
127 }
128
GetFocusSessionToken(sptr<IRemoteObject> & token,DisplayId displayId)129 WSError SceneSessionManagerLite::GetFocusSessionToken(sptr<IRemoteObject>& token, DisplayId displayId)
130 {
131 WLOGFD("in");
132 return SceneSessionManager::GetInstance().GetFocusSessionToken(token, displayId);
133 }
134
GetFocusSessionElement(AppExecFwk::ElementName & element,DisplayId displayId)135 WSError SceneSessionManagerLite::GetFocusSessionElement(AppExecFwk::ElementName& element, DisplayId displayId)
136 {
137 WLOGFD("in");
138 return SceneSessionManager::GetInstance().GetFocusSessionElement(element, displayId);
139 }
140
IsFocusWindowParent(const sptr<IRemoteObject> & token,bool & isParent)141 WSError SceneSessionManagerLite::IsFocusWindowParent(const sptr<IRemoteObject>& token, bool& isParent)
142 {
143 TLOGD(WmsLogTag::WMS_FOCUS, "in");
144 return SceneSessionManager::GetInstance().IsFocusWindowParent(token, isParent);
145 }
146
ClearSession(int32_t persistentId)147 WSError SceneSessionManagerLite::ClearSession(int32_t persistentId)
148 {
149 WLOGFD("Id: %{public}d", persistentId);
150 return SceneSessionManager::GetInstance().ClearSession(persistentId);
151 }
152
ClearAllSessions()153 WSError SceneSessionManagerLite::ClearAllSessions()
154 {
155 WLOGFD("in");
156 return SceneSessionManager::GetInstance().ClearAllSessions();
157 }
158
LockSession(int32_t sessionId)159 WSError SceneSessionManagerLite::LockSession(int32_t sessionId)
160 {
161 WLOGFD("Id: %{public}d", sessionId);
162 return SceneSessionManager::GetInstance().LockSession(sessionId);
163 }
164
UnlockSession(int32_t sessionId)165 WSError SceneSessionManagerLite::UnlockSession(int32_t sessionId)
166 {
167 WLOGFD("Id: %{public}d", sessionId);
168 return SceneSessionManager::GetInstance().UnlockSession(sessionId);
169 }
170
MoveSessionsToForeground(const std::vector<int32_t> & sessionIds,int32_t topSessionId)171 WSError SceneSessionManagerLite::MoveSessionsToForeground(const std::vector<int32_t>& sessionIds, int32_t topSessionId)
172 {
173 WLOGFD("in");
174 return SceneSessionManager::GetInstance().MoveSessionsToForeground(sessionIds, topSessionId);
175 }
176
MoveSessionsToBackground(const std::vector<int32_t> & sessionIds,std::vector<int32_t> & result)177 WSError SceneSessionManagerLite::MoveSessionsToBackground(const std::vector<int32_t>& sessionIds,
178 std::vector<int32_t>& result)
179 {
180 WLOGFD("in");
181 return SceneSessionManager::GetInstance().MoveSessionsToBackground(sessionIds, result);
182 }
183
GetFocusWindowInfo(FocusChangeInfo & focusInfo,DisplayId displayId)184 void SceneSessionManagerLite::GetFocusWindowInfo(FocusChangeInfo& focusInfo, DisplayId displayId)
185 {
186 return SceneSessionManager::GetInstance().GetFocusWindowInfo(focusInfo, displayId);
187 }
188
RegisterWindowManagerAgent(WindowManagerAgentType type,const sptr<IWindowManagerAgent> & windowManagerAgent)189 WMError SceneSessionManagerLite::RegisterWindowManagerAgent(WindowManagerAgentType type,
190 const sptr<IWindowManagerAgent>& windowManagerAgent)
191 {
192 return SceneSessionManager::GetInstance().RegisterWindowManagerAgent(type, windowManagerAgent);
193 }
194
UnregisterWindowManagerAgent(WindowManagerAgentType type,const sptr<IWindowManagerAgent> & windowManagerAgent)195 WMError SceneSessionManagerLite::UnregisterWindowManagerAgent(WindowManagerAgentType type,
196 const sptr<IWindowManagerAgent>& windowManagerAgent)
197 {
198 return SceneSessionManager::GetInstance().UnregisterWindowManagerAgent(type, windowManagerAgent);
199 }
200
CheckWindowId(int32_t windowId,int32_t & pid)201 WMError SceneSessionManagerLite::CheckWindowId(int32_t windowId, int32_t& pid)
202 {
203 return SceneSessionManager::GetInstance().CheckWindowId(windowId, pid);
204 }
205
UpdateWindowModeByIdForUITest(int32_t windowId,int32_t updateMode)206 WMError SceneSessionManagerLite::UpdateWindowModeByIdForUITest(int32_t windowId, int32_t updateMode)
207 {
208 return SceneSessionManager::GetInstance().UpdateWindowModeByIdForUITest(windowId, updateMode);
209 }
210
CheckUIExtensionCreation(int32_t windowId,uint32_t tokenId,const AppExecFwk::ElementName & element,AppExecFwk::ExtensionAbilityType extensionAbilityType,int32_t & pid)211 WMError SceneSessionManagerLite::CheckUIExtensionCreation(int32_t windowId, uint32_t tokenId,
212 const AppExecFwk::ElementName& element, AppExecFwk::ExtensionAbilityType extensionAbilityType, int32_t& pid)
213 {
214 return SceneSessionManager::GetInstance().CheckUIExtensionCreation(windowId, tokenId, element, extensionAbilityType,
215 pid);
216 }
217
GetVisibilityWindowInfo(std::vector<sptr<WindowVisibilityInfo>> & infos)218 WMError SceneSessionManagerLite::GetVisibilityWindowInfo(std::vector<sptr<WindowVisibilityInfo>>& infos)
219 {
220 return SceneSessionManager::GetInstance().GetVisibilityWindowInfo(infos);
221 }
222
UpdateWindowMode(int32_t persistentId,int32_t windowMode)223 WSError SceneSessionManagerLite::UpdateWindowMode(int32_t persistentId, int32_t windowMode)
224 {
225 return SceneSessionManager::GetInstance().UpdateWindowMode(persistentId, windowMode);
226 }
227
GetWindowModeType(WindowModeType & windowModeType)228 WMError SceneSessionManagerLite::GetWindowModeType(WindowModeType& windowModeType)
229 {
230 return SceneSessionManager::GetInstance().GetWindowModeType(windowModeType);
231 }
232
GetMainWindowInfos(int32_t topNum,std::vector<MainWindowInfo> & topNInfo)233 WMError SceneSessionManagerLite::GetMainWindowInfos(int32_t topNum, std::vector<MainWindowInfo>& topNInfo)
234 {
235 return SceneSessionManager::GetInstance().GetMainWindowInfos(topNum, topNInfo);
236 }
237
GetCallingWindowInfo(CallingWindowInfo & callingWindowInfo)238 WMError SceneSessionManagerLite::GetCallingWindowInfo(CallingWindowInfo& callingWindowInfo)
239 {
240 return SceneSessionManager::GetInstance().GetCallingWindowInfo(callingWindowInfo);
241 }
242
GetAllMainWindowInfos(std::vector<MainWindowInfo> & infos)243 WMError SceneSessionManagerLite::GetAllMainWindowInfos(std::vector<MainWindowInfo>& infos)
244 {
245 return SceneSessionManager::GetInstance().GetAllMainWindowInfos(infos);
246 }
247
ClearMainSessions(const std::vector<int32_t> & persistentIds,std::vector<int32_t> & clearFailedIds)248 WMError SceneSessionManagerLite::ClearMainSessions(const std::vector<int32_t>& persistentIds,
249 std::vector<int32_t>& clearFailedIds)
250 {
251 return SceneSessionManager::GetInstance().ClearMainSessions(persistentIds, clearFailedIds);
252 }
253
RaiseWindowToTop(int32_t persistentId)254 WSError SceneSessionManagerLite::RaiseWindowToTop(int32_t persistentId)
255 {
256 return SceneSessionManager::GetInstance().RaiseWindowToTop(persistentId);
257 }
258
RegisterIAbilityManagerCollaborator(int32_t type,const sptr<AAFwk::IAbilityManagerCollaborator> & impl)259 WSError SceneSessionManagerLite::RegisterIAbilityManagerCollaborator(int32_t type,
260 const sptr<AAFwk::IAbilityManagerCollaborator>& impl)
261 {
262 return SceneSessionManager::GetInstance().RegisterIAbilityManagerCollaborator(type, impl);
263 }
264
UnregisterIAbilityManagerCollaborator(int32_t type)265 WSError SceneSessionManagerLite::UnregisterIAbilityManagerCollaborator(int32_t type)
266 {
267 return SceneSessionManager::GetInstance().UnregisterIAbilityManagerCollaborator(type);
268 }
269
GetWindowStyleType(WindowStyleType & windowStyletype)270 WMError SceneSessionManagerLite::GetWindowStyleType(WindowStyleType& windowStyletype)
271 {
272 return SceneSessionManager::GetInstance().GetWindowStyleType(windowStyletype);
273 }
274
TerminateSessionByPersistentId(int32_t persistentId)275 WMError SceneSessionManagerLite::TerminateSessionByPersistentId(int32_t persistentId)
276 {
277 return SceneSessionManager::GetInstance().TerminateSessionByPersistentId(persistentId);
278 }
279
CloseTargetFloatWindow(const std::string & bundleName)280 WMError SceneSessionManagerLite::CloseTargetFloatWindow(const std::string& bundleName)
281 {
282 return SceneSessionManager::GetInstance().CloseTargetFloatWindow(bundleName);
283 }
284
CloseTargetPiPWindow(const std::string & bundleName)285 WMError SceneSessionManagerLite::CloseTargetPiPWindow(const std::string& bundleName)
286 {
287 return SceneSessionManager::GetInstance().CloseTargetPiPWindow(bundleName);
288 }
289
GetCurrentPiPWindowInfo(std::string & bundleName)290 WMError SceneSessionManagerLite::GetCurrentPiPWindowInfo(std::string& bundleName)
291 {
292 return SceneSessionManager::GetInstance().GetCurrentPiPWindowInfo(bundleName);
293 }
294
GetRootMainWindowId(int32_t persistentId,int32_t & hostWindowId)295 WMError SceneSessionManagerLite::GetRootMainWindowId(int32_t persistentId, int32_t& hostWindowId)
296 {
297 return SceneSessionManager::GetInstance().GetRootMainWindowId(persistentId, hostWindowId);
298 }
299
GetAccessibilityWindowInfo(std::vector<sptr<AccessibilityWindowInfo>> & infos)300 WMError SceneSessionManagerLite::GetAccessibilityWindowInfo(std::vector<sptr<AccessibilityWindowInfo>>& infos)
301 {
302 return SceneSessionManager::GetInstance().GetAccessibilityWindowInfo(infos);
303 }
304
NotifyAppUseControlList(ControlAppType type,int32_t userId,const std::vector<AppUseControlInfo> & controlList)305 WSError SceneSessionManagerLite::NotifyAppUseControlList(
306 ControlAppType type, int32_t userId, const std::vector<AppUseControlInfo>& controlList)
307 {
308 return SceneSessionManager::GetInstance().NotifyAppUseControlList(type, userId, controlList);
309 }
310
MinimizeMainSession(const std::string & bundleName,int32_t appIndex,int32_t userId)311 WMError SceneSessionManagerLite::MinimizeMainSession(const std::string& bundleName, int32_t appIndex, int32_t userId)
312 {
313 return SceneSessionManager::GetInstance().MinimizeMainSession(bundleName, appIndex, userId);
314 }
315
LockSessionByAbilityInfo(const AbilityInfoBase & abilityInfo,bool isLock)316 WMError SceneSessionManagerLite::LockSessionByAbilityInfo(const AbilityInfoBase& abilityInfo, bool isLock)
317 {
318 return SceneSessionManager::GetInstance().LockSessionByAbilityInfo(abilityInfo, isLock);
319 }
320
HasFloatingWindowForeground(const sptr<IRemoteObject> & abilityToken,bool & hasOrNot)321 WMError SceneSessionManagerLite::HasFloatingWindowForeground(const sptr<IRemoteObject>& abilityToken,
322 bool& hasOrNot)
323 {
324 return SceneSessionManager::GetInstance().HasFloatingWindowForeground(abilityToken,
325 hasOrNot);
326 }
327
RegisterSessionLifecycleListenerByIds(const sptr<ISessionLifecycleListener> & listener,const std::vector<int32_t> & persistentIdList)328 WMError SceneSessionManagerLite::RegisterSessionLifecycleListenerByIds(const sptr<ISessionLifecycleListener>& listener,
329 const std::vector<int32_t>& persistentIdList)
330 {
331 return SceneSessionManager::GetInstance().RegisterSessionLifecycleListener(listener, persistentIdList);
332 }
333
RegisterSessionLifecycleListenerByBundles(const sptr<ISessionLifecycleListener> & listener,const std::vector<std::string> & bundleNameList)334 WMError SceneSessionManagerLite::RegisterSessionLifecycleListenerByBundles(
335 const sptr<ISessionLifecycleListener>& listener, const std::vector<std::string>& bundleNameList)
336 {
337 return SceneSessionManager::GetInstance().RegisterSessionLifecycleListener(listener, bundleNameList);
338 }
339
UnregisterSessionLifecycleListener(const sptr<ISessionLifecycleListener> & listener)340 WMError SceneSessionManagerLite::UnregisterSessionLifecycleListener(const sptr<ISessionLifecycleListener>& listener)
341 {
342 return SceneSessionManager::GetInstance().UnregisterSessionLifecycleListener(listener);
343 }
344
ListWindowInfo(const WindowInfoOption & windowInfoOption,std::vector<sptr<WindowInfo>> & infos)345 WMError SceneSessionManagerLite::ListWindowInfo(const WindowInfoOption& windowInfoOption,
346 std::vector<sptr<WindowInfo>>& infos)
347 {
348 return SceneSessionManager::GetInstance().ListWindowInfo(windowInfoOption, infos);
349 }
350
GetRecentMainSessionInfoList(std::vector<RecentSessionInfo> & recentSessionInfoList)351 WSError SceneSessionManagerLite::GetRecentMainSessionInfoList(std::vector<RecentSessionInfo>& recentSessionInfoList)
352 {
353 return SceneSessionManager::GetInstance().GetRecentMainSessionInfoList(recentSessionInfoList);
354 }
355
PendingSessionToBackgroundByPersistentId(const int32_t persistentId,bool shouldBackToCaller)356 WSError SceneSessionManagerLite::PendingSessionToBackgroundByPersistentId(const int32_t persistentId,
357 bool shouldBackToCaller)
358 {
359 return SceneSessionManager::GetInstance().PendingSessionToBackgroundByPersistentId(persistentId,
360 shouldBackToCaller);
361 }
362
CreateNewInstanceKey(const std::string & bundleName,std::string & instanceKey)363 WMError SceneSessionManagerLite::CreateNewInstanceKey(const std::string& bundleName, std::string& instanceKey)
364 {
365 return SceneSessionManager::GetInstance().CreateNewInstanceKey(bundleName, instanceKey);
366 }
367
GetRouterStackInfo(int32_t persistentId,const sptr<ISessionRouterStackListener> & listener)368 WMError SceneSessionManagerLite::GetRouterStackInfo(
369 int32_t persistentId, const sptr<ISessionRouterStackListener>& listener)
370 {
371 return SceneSessionManager::GetInstance().GetRouterStackInfo(persistentId, listener);
372 }
373
RemoveInstanceKey(const std::string & bundleName,const std::string & instanceKey)374 WMError SceneSessionManagerLite::RemoveInstanceKey(const std::string& bundleName, const std::string& instanceKey)
375 {
376 return SceneSessionManager::GetInstance().RemoveInstanceKey(bundleName, instanceKey);
377 }
378
TransferSessionToTargetScreen(const TransferSessionInfo & info)379 WMError SceneSessionManagerLite::TransferSessionToTargetScreen(const TransferSessionInfo& info)
380 {
381 return SceneSessionManager::GetInstance().NotifyTransferSessionToTargetScreen(info);
382 }
383
UpdateKioskAppList(const std::vector<std::string> & kioskAppList)384 WMError SceneSessionManagerLite::UpdateKioskAppList(const std::vector<std::string>& kioskAppList)
385 {
386 return SceneSessionManager::GetInstance().UpdateKioskAppList(kioskAppList);
387 }
388
EnterKioskMode(const sptr<IRemoteObject> & token)389 WMError SceneSessionManagerLite::EnterKioskMode(const sptr<IRemoteObject>& token)
390 {
391 return SceneSessionManager::GetInstance().EnterKioskMode(token);
392 }
393
ExitKioskMode(const sptr<IRemoteObject> & token)394 WMError SceneSessionManagerLite::ExitKioskMode(const sptr<IRemoteObject>& token)
395 {
396 return SceneSessionManager::GetInstance().ExitKioskMode();
397 }
398
SendPointerEventForHover(const std::shared_ptr<MMI::PointerEvent> & pointerEvent)399 WSError SceneSessionManagerLite::SendPointerEventForHover(const std::shared_ptr<MMI::PointerEvent>& pointerEvent)
400 {
401 return SceneSessionManager::GetInstance().SendPointerEventForHover(pointerEvent);
402 }
403 } // namespace OHOS::Rosen
404