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
PendingSessionToBackgroundForDelegator(const sptr<IRemoteObject> & token,bool shouldBackToCaller)115 WSError SceneSessionManagerLite::PendingSessionToBackgroundForDelegator(const sptr<IRemoteObject>& token,
116 bool shouldBackToCaller)
117 {
118 WLOGFD("in");
119 return SceneSessionManager::GetInstance().PendingSessionToBackgroundForDelegator(token, shouldBackToCaller);
120 }
121
GetFocusSessionToken(sptr<IRemoteObject> & token,DisplayId displayId)122 WSError SceneSessionManagerLite::GetFocusSessionToken(sptr<IRemoteObject>& token, DisplayId displayId)
123 {
124 WLOGFD("in");
125 return SceneSessionManager::GetInstance().GetFocusSessionToken(token, displayId);
126 }
127
GetFocusSessionElement(AppExecFwk::ElementName & element,DisplayId displayId)128 WSError SceneSessionManagerLite::GetFocusSessionElement(AppExecFwk::ElementName& element, DisplayId displayId)
129 {
130 WLOGFD("in");
131 return SceneSessionManager::GetInstance().GetFocusSessionElement(element, displayId);
132 }
133
ClearSession(int32_t persistentId)134 WSError SceneSessionManagerLite::ClearSession(int32_t persistentId)
135 {
136 WLOGFD("Id: %{public}d", persistentId);
137 return SceneSessionManager::GetInstance().ClearSession(persistentId);
138 }
139
ClearAllSessions()140 WSError SceneSessionManagerLite::ClearAllSessions()
141 {
142 WLOGFD("in");
143 return SceneSessionManager::GetInstance().ClearAllSessions();
144 }
145
LockSession(int32_t sessionId)146 WSError SceneSessionManagerLite::LockSession(int32_t sessionId)
147 {
148 WLOGFD("Id: %{public}d", sessionId);
149 return SceneSessionManager::GetInstance().LockSession(sessionId);
150 }
151
UnlockSession(int32_t sessionId)152 WSError SceneSessionManagerLite::UnlockSession(int32_t sessionId)
153 {
154 WLOGFD("Id: %{public}d", sessionId);
155 return SceneSessionManager::GetInstance().UnlockSession(sessionId);
156 }
157
MoveSessionsToForeground(const std::vector<int32_t> & sessionIds,int32_t topSessionId)158 WSError SceneSessionManagerLite::MoveSessionsToForeground(const std::vector<int32_t>& sessionIds, int32_t topSessionId)
159 {
160 WLOGFD("in");
161 return SceneSessionManager::GetInstance().MoveSessionsToForeground(sessionIds, topSessionId);
162 }
163
MoveSessionsToBackground(const std::vector<int32_t> & sessionIds,std::vector<int32_t> & result)164 WSError SceneSessionManagerLite::MoveSessionsToBackground(const std::vector<int32_t>& sessionIds,
165 std::vector<int32_t>& result)
166 {
167 WLOGFD("in");
168 return SceneSessionManager::GetInstance().MoveSessionsToBackground(sessionIds, result);
169 }
170
GetFocusWindowInfo(FocusChangeInfo & focusInfo,DisplayId displayId)171 void SceneSessionManagerLite::GetFocusWindowInfo(FocusChangeInfo& focusInfo, DisplayId displayId)
172 {
173 return SceneSessionManager::GetInstance().GetFocusWindowInfo(focusInfo, displayId);
174 }
175
RegisterWindowManagerAgent(WindowManagerAgentType type,const sptr<IWindowManagerAgent> & windowManagerAgent)176 WMError SceneSessionManagerLite::RegisterWindowManagerAgent(WindowManagerAgentType type,
177 const sptr<IWindowManagerAgent>& windowManagerAgent)
178 {
179 return SceneSessionManager::GetInstance().RegisterWindowManagerAgent(type, windowManagerAgent);
180 }
181
UnregisterWindowManagerAgent(WindowManagerAgentType type,const sptr<IWindowManagerAgent> & windowManagerAgent)182 WMError SceneSessionManagerLite::UnregisterWindowManagerAgent(WindowManagerAgentType type,
183 const sptr<IWindowManagerAgent>& windowManagerAgent)
184 {
185 return SceneSessionManager::GetInstance().UnregisterWindowManagerAgent(type, windowManagerAgent);
186 }
187
CheckWindowId(int32_t windowId,int32_t & pid)188 WMError SceneSessionManagerLite::CheckWindowId(int32_t windowId, int32_t& pid)
189 {
190 return SceneSessionManager::GetInstance().CheckWindowId(windowId, pid);
191 }
192
CheckUIExtensionCreation(int32_t windowId,uint32_t tokenId,const AppExecFwk::ElementName & element,AppExecFwk::ExtensionAbilityType extensionAbilityType,int32_t & pid)193 WMError SceneSessionManagerLite::CheckUIExtensionCreation(int32_t windowId, uint32_t tokenId,
194 const AppExecFwk::ElementName& element, AppExecFwk::ExtensionAbilityType extensionAbilityType, int32_t& pid)
195 {
196 return SceneSessionManager::GetInstance().CheckUIExtensionCreation(windowId, tokenId, element, extensionAbilityType,
197 pid);
198 }
199
GetVisibilityWindowInfo(std::vector<sptr<WindowVisibilityInfo>> & infos)200 WMError SceneSessionManagerLite::GetVisibilityWindowInfo(std::vector<sptr<WindowVisibilityInfo>>& infos)
201 {
202 return SceneSessionManager::GetInstance().GetVisibilityWindowInfo(infos);
203 }
204
UpdateWindowMode(int32_t persistentId,int32_t windowMode)205 WSError SceneSessionManagerLite::UpdateWindowMode(int32_t persistentId, int32_t windowMode)
206 {
207 return SceneSessionManager::GetInstance().UpdateWindowMode(persistentId, windowMode);
208 }
209
GetWindowModeType(WindowModeType & windowModeType)210 WMError SceneSessionManagerLite::GetWindowModeType(WindowModeType& windowModeType)
211 {
212 return SceneSessionManager::GetInstance().GetWindowModeType(windowModeType);
213 }
214
GetMainWindowInfos(int32_t topNum,std::vector<MainWindowInfo> & topNInfo)215 WMError SceneSessionManagerLite::GetMainWindowInfos(int32_t topNum, std::vector<MainWindowInfo>& topNInfo)
216 {
217 return SceneSessionManager::GetInstance().GetMainWindowInfos(topNum, topNInfo);
218 }
219
GetCallingWindowInfo(CallingWindowInfo & callingWindowInfo)220 WMError SceneSessionManagerLite::GetCallingWindowInfo(CallingWindowInfo& callingWindowInfo)
221 {
222 return SceneSessionManager::GetInstance().GetCallingWindowInfo(callingWindowInfo);
223 }
224
GetAllMainWindowInfos(std::vector<MainWindowInfo> & infos)225 WMError SceneSessionManagerLite::GetAllMainWindowInfos(std::vector<MainWindowInfo>& infos)
226 {
227 return SceneSessionManager::GetInstance().GetAllMainWindowInfos(infos);
228 }
229
ClearMainSessions(const std::vector<int32_t> & persistentIds,std::vector<int32_t> & clearFailedIds)230 WMError SceneSessionManagerLite::ClearMainSessions(const std::vector<int32_t>& persistentIds,
231 std::vector<int32_t>& clearFailedIds)
232 {
233 return SceneSessionManager::GetInstance().ClearMainSessions(persistentIds, clearFailedIds);
234 }
235
RaiseWindowToTop(int32_t persistentId)236 WSError SceneSessionManagerLite::RaiseWindowToTop(int32_t persistentId)
237 {
238 return SceneSessionManager::GetInstance().RaiseWindowToTop(persistentId);
239 }
240
RegisterIAbilityManagerCollaborator(int32_t type,const sptr<AAFwk::IAbilityManagerCollaborator> & impl)241 WSError SceneSessionManagerLite::RegisterIAbilityManagerCollaborator(int32_t type,
242 const sptr<AAFwk::IAbilityManagerCollaborator>& impl)
243 {
244 return SceneSessionManager::GetInstance().RegisterIAbilityManagerCollaborator(type, impl);
245 }
246
UnregisterIAbilityManagerCollaborator(int32_t type)247 WSError SceneSessionManagerLite::UnregisterIAbilityManagerCollaborator(int32_t type)
248 {
249 return SceneSessionManager::GetInstance().UnregisterIAbilityManagerCollaborator(type);
250 }
251
GetWindowStyleType(WindowStyleType & windowStyletype)252 WMError SceneSessionManagerLite::GetWindowStyleType(WindowStyleType& windowStyletype)
253 {
254 return SceneSessionManager::GetInstance().GetWindowStyleType(windowStyletype);
255 }
256
TerminateSessionByPersistentId(int32_t persistentId)257 WMError SceneSessionManagerLite::TerminateSessionByPersistentId(int32_t persistentId)
258 {
259 return SceneSessionManager::GetInstance().TerminateSessionByPersistentId(persistentId);
260 }
261
CloseTargetFloatWindow(const std::string & bundleName)262 WMError SceneSessionManagerLite::CloseTargetFloatWindow(const std::string& bundleName)
263 {
264 return SceneSessionManager::GetInstance().CloseTargetFloatWindow(bundleName);
265 }
266
CloseTargetPiPWindow(const std::string & bundleName)267 WMError SceneSessionManagerLite::CloseTargetPiPWindow(const std::string& bundleName)
268 {
269 return SceneSessionManager::GetInstance().CloseTargetPiPWindow(bundleName);
270 }
271
GetCurrentPiPWindowInfo(std::string & bundleName)272 WMError SceneSessionManagerLite::GetCurrentPiPWindowInfo(std::string& bundleName)
273 {
274 return SceneSessionManager::GetInstance().GetCurrentPiPWindowInfo(bundleName);
275 }
276
GetRootMainWindowId(int32_t persistentId,int32_t & hostWindowId)277 WMError SceneSessionManagerLite::GetRootMainWindowId(int32_t persistentId, int32_t& hostWindowId)
278 {
279 return SceneSessionManager::GetInstance().GetRootMainWindowId(persistentId, hostWindowId);
280 }
281
GetAccessibilityWindowInfo(std::vector<sptr<AccessibilityWindowInfo>> & infos)282 WMError SceneSessionManagerLite::GetAccessibilityWindowInfo(std::vector<sptr<AccessibilityWindowInfo>>& infos)
283 {
284 return SceneSessionManager::GetInstance().GetAccessibilityWindowInfo(infos);
285 }
286
NotifyAppUseControlList(ControlAppType type,int32_t userId,const std::vector<AppUseControlInfo> & controlList)287 WSError SceneSessionManagerLite::NotifyAppUseControlList(
288 ControlAppType type, int32_t userId, const std::vector<AppUseControlInfo>& controlList)
289 {
290 return SceneSessionManager::GetInstance().NotifyAppUseControlList(type, userId, controlList);
291 }
292
MinimizeMainSession(const std::string & bundleName,int32_t appIndex,int32_t userId)293 WMError SceneSessionManagerLite::MinimizeMainSession(const std::string& bundleName, int32_t appIndex, int32_t userId)
294 {
295 return SceneSessionManager::GetInstance().MinimizeMainSession(bundleName, appIndex, userId);
296 }
297
LockSessionByAbilityInfo(const AbilityInfoBase & abilityInfo,bool isLock)298 WMError SceneSessionManagerLite::LockSessionByAbilityInfo(const AbilityInfoBase& abilityInfo, bool isLock)
299 {
300 return SceneSessionManager::GetInstance().LockSessionByAbilityInfo(abilityInfo, isLock);
301 }
302
HasFloatingWindowForeground(const sptr<IRemoteObject> & abilityToken,bool & hasOrNot)303 WMError SceneSessionManagerLite::HasFloatingWindowForeground(const sptr<IRemoteObject>& abilityToken,
304 bool& hasOrNot)
305 {
306 return SceneSessionManager::GetInstance().HasFloatingWindowForeground(abilityToken,
307 hasOrNot);
308 }
309
RegisterSessionLifecycleListenerByIds(const sptr<ISessionLifecycleListener> & listener,const std::vector<int32_t> & persistentIdList)310 WMError SceneSessionManagerLite::RegisterSessionLifecycleListenerByIds(const sptr<ISessionLifecycleListener>& listener,
311 const std::vector<int32_t>& persistentIdList)
312 {
313 return SceneSessionManager::GetInstance().RegisterSessionLifecycleListener(listener, persistentIdList);
314 }
315
RegisterSessionLifecycleListenerByBundles(const sptr<ISessionLifecycleListener> & listener,const std::vector<std::string> & bundleNameList)316 WMError SceneSessionManagerLite::RegisterSessionLifecycleListenerByBundles(
317 const sptr<ISessionLifecycleListener>& listener, const std::vector<std::string>& bundleNameList)
318 {
319 return SceneSessionManager::GetInstance().RegisterSessionLifecycleListener(listener, bundleNameList);
320 }
321
UnregisterSessionLifecycleListener(const sptr<ISessionLifecycleListener> & listener)322 WMError SceneSessionManagerLite::UnregisterSessionLifecycleListener(const sptr<ISessionLifecycleListener>& listener)
323 {
324 return SceneSessionManager::GetInstance().UnregisterSessionLifecycleListener(listener);
325 }
326
ListWindowInfo(const WindowInfoOption & windowInfoOption,std::vector<sptr<WindowInfo>> & infos)327 WMError SceneSessionManagerLite::ListWindowInfo(const WindowInfoOption& windowInfoOption,
328 std::vector<sptr<WindowInfo>>& infos)
329 {
330 return SceneSessionManager::GetInstance().ListWindowInfo(windowInfoOption, infos);
331 }
332 } // namespace OHOS::Rosen
333