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 #ifndef OHOS_ROSEN_WINDOW_SCENE_SESSION_MANAGER_PROXY_H 17 #define OHOS_ROSEN_WINDOW_SCENE_SESSION_MANAGER_PROXY_H 18 19 #include <iremote_proxy.h> 20 21 #include "session_manager/include/zidl/scene_session_manager_interface.h" 22 23 namespace OHOS::Rosen { 24 class SceneSessionManagerProxy : public IRemoteProxy<ISceneSessionManager> { 25 public: SceneSessionManagerProxy(const sptr<IRemoteObject> & impl)26 explicit SceneSessionManagerProxy(const sptr<IRemoteObject>& impl) 27 : IRemoteProxy<ISceneSessionManager>(impl) {} 28 virtual ~SceneSessionManagerProxy() = default; 29 30 WSError CreateAndConnectSpecificSession(const sptr<ISessionStage>& sessionStage, 31 const sptr<IWindowEventChannel>& eventChannel, const std::shared_ptr<RSSurfaceNode>& surfaceNode, 32 sptr<WindowSessionProperty> property, int32_t& persistentId, sptr<ISession>& session, 33 sptr<IRemoteObject> token = nullptr) override; 34 WSError DestroyAndDisconnectSpecificSession(const int32_t& persistentId) override; 35 WMError UpdateProperty(sptr<WindowSessionProperty>& property, WSPropertyChangeAction action) override; 36 WSError BindDialogTarget(uint64_t persistentId, sptr<IRemoteObject> targetToken) override; 37 38 WMError RegisterWindowManagerAgent(WindowManagerAgentType type, 39 const sptr<IWindowManagerAgent>& windowManagerAgent) override; 40 WMError UnregisterWindowManagerAgent(WindowManagerAgentType type, 41 const sptr<IWindowManagerAgent>& windowManagerAgent) override; 42 void GetFocusWindowInfo(FocusChangeInfo& focusInfo) override; 43 WSError SetSessionGravity(int32_t persistentId, SessionGravity gravity, uint32_t percent) override; 44 WMError SetGestureNavigaionEnabled(bool enable) override; 45 WSError SetSessionLabel(const sptr<IRemoteObject> &token, const std::string &label) override; 46 WSError SetSessionIcon(const sptr<IRemoteObject> &token, const std::shared_ptr<Media::PixelMap> &icon) override; 47 WSError IsValidSessionIds(const std::vector<int32_t> &sessionIds, std::vector<bool> &results) override; 48 WSError RegisterSessionListener(const sptr<ISessionChangeListener> sessionListener) override; 49 void UnregisterSessionListener() override; 50 WMError GetAccessibilityWindowInfo(std::vector<sptr<AccessibilityWindowInfo>>& infos) override; 51 WSError PendingSessionToForeground(const sptr<IRemoteObject> &token) override; 52 WSError PendingSessionToBackgroundForDelegator(const sptr<IRemoteObject> &token) override; 53 WSError GetFocusSessionToken(sptr<IRemoteObject> &token) override; 54 55 WSError RegisterSessionListener(const sptr<ISessionListener>& listener) override; 56 WSError UnRegisterSessionListener(const sptr<ISessionListener>& listener) override; 57 WSError GetSessionInfos(const std::string& deviceId, int32_t numMax, 58 std::vector<SessionInfoBean>& sessionInfos) override; 59 WSError GetSessionInfo(const std::string& deviceId, int32_t persistentId, SessionInfoBean& sessionInfo) override; 60 61 WSError SetSessionContinueState(const sptr<IRemoteObject> &token, const ContinueState& continueState) override; 62 WSError TerminateSessionNew(const sptr<AAFwk::SessionInfo> info, bool needStartCaller) override; 63 WSError GetSessionDumpInfo(const std::vector<std::string>& params, std::string& info) override; 64 void NotifyDumpInfoResult(const std::vector<std::string>& info) override; 65 WSError UpdateSessionAvoidAreaListener(int32_t& persistentId, bool haveListener) override; 66 WSError GetSessionSnapshot(const std::string& deviceId, int32_t persistentId, 67 std::shared_ptr<Media::PixelMap> &snapshot, bool isLowResolution) override; 68 WSError ClearSession(int32_t persistentId) override; 69 WSError ClearAllSessions() override; 70 WSError RegisterIAbilityManagerCollaborator(int32_t type, const sptr<AAFwk::IAbilityManagerCollaborator> &impl) override; 71 WSError UnregisterIAbilityManagerCollaborator(int32_t type) override; 72 73 private: 74 template<typename T> 75 WSError GetParcelableInfos(MessageParcel& reply, std::vector<T>& parcelableInfos); 76 static inline BrokerDelegator<SceneSessionManagerProxy> delegator_; 77 }; 78 } // namespace OHOS::Rosen 79 80 #endif // OHOS_ROSEN_WINDOW_SCENE_SESSION_MANAGER_PROXY_H 81