• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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_INTERFACE_H
17 #define OHOS_ROSEN_WINDOW_SCENE_SESSION_INTERFACE_H
18 
19 #include <iremote_broker.h>
20 #include <session_info.h>
21 
22 #include "interfaces/include/ws_common.h"
23 #include "common/include/window_session_property.h"
24 #include "session/container/include/zidl/session_stage_interface.h"
25 #include "session/container/include/zidl/window_event_channel_interface.h"
26 namespace OHOS::Accessibility {
27 class AccessibilityEventInfo;
28 }
29 namespace OHOS::Rosen {
30 class RSSurfaceNode;
31 class ISession : public IRemoteBroker {
32 public:
33     DECLARE_INTERFACE_DESCRIPTOR(u"OHOS.ISession");
34 
35     virtual WSError Connect(const sptr<ISessionStage>& sessionStage, const sptr<IWindowEventChannel>& eventChannel,
36         const std::shared_ptr<RSSurfaceNode>& surfaceNode, SystemSessionConfig& systemConfig,
37         sptr<WindowSessionProperty> property = nullptr, sptr<IRemoteObject> token = nullptr,
38         int32_t pid = -1, int32_t uid = -1) = 0;
39     virtual WSError Foreground(sptr<WindowSessionProperty> property) = 0;
40     virtual WSError Background() = 0;
41     virtual WSError Disconnect(bool isFromClient = false) = 0;
42     virtual WSError Show(sptr<WindowSessionProperty> property) = 0;
43     virtual WSError Hide() = 0;
44 
45     // scene session
UpdateActiveStatus(bool isActive)46     virtual WSError UpdateActiveStatus(bool isActive) { return WSError::WS_OK; }
OnSessionEvent(SessionEvent event)47     virtual WSError OnSessionEvent(SessionEvent event) { return WSError::WS_OK; }
RaiseToAppTop()48     virtual WSError RaiseToAppTop() { return WSError::WS_OK; }
UpdateSessionRect(const WSRect & rect,const SizeChangeReason & reason)49     virtual WSError UpdateSessionRect(const WSRect& rect, const SizeChangeReason& reason) { return WSError::WS_OK; }
OnNeedAvoid(bool status)50     virtual WSError OnNeedAvoid(bool status) { return WSError::WS_OK; }
GetAvoidAreaByType(AvoidAreaType type)51     virtual AvoidArea GetAvoidAreaByType(AvoidAreaType type) { return {}; }
RequestSessionBack(bool needMoveToBackground)52     virtual WSError RequestSessionBack(bool needMoveToBackground) { return WSError::WS_OK; }
MarkProcessed(int32_t eventId)53     virtual WSError MarkProcessed(int32_t eventId) { return WSError::WS_OK; }
SetGlobalMaximizeMode(MaximizeMode mode)54     virtual WSError SetGlobalMaximizeMode(MaximizeMode mode) { return WSError::WS_OK; }
GetGlobalMaximizeMode(MaximizeMode & mode)55     virtual WSError GetGlobalMaximizeMode(MaximizeMode& mode) { return WSError::WS_OK; }
SetSessionProperty(const sptr<WindowSessionProperty> & property)56     virtual WSError SetSessionProperty(const sptr<WindowSessionProperty>& property) { return WSError::WS_OK; }
SetAspectRatio(float ratio)57     virtual WSError SetAspectRatio(float ratio) { return WSError::WS_OK; }
UpdateWindowAnimationFlag(bool needDefaultAnimationFlag)58     virtual WSError UpdateWindowAnimationFlag(bool needDefaultAnimationFlag) { return WSError::WS_OK; }
UpdateWindowSceneAfterCustomAnimation(bool isAdd)59     virtual WSError UpdateWindowSceneAfterCustomAnimation(bool isAdd) { return WSError::WS_OK; }
RaiseAboveTarget(int32_t subWindowId)60     virtual WSError RaiseAboveTarget(int32_t subWindowId) { return WSError::WS_OK; }
RaiseAppMainWindowToTop()61     virtual WSError RaiseAppMainWindowToTop() { return WSError::WS_OK; }
PendingSessionActivation(const sptr<AAFwk::SessionInfo> abilitySessionInfo)62     virtual WSError PendingSessionActivation(const sptr<AAFwk::SessionInfo> abilitySessionInfo)
63         { return WSError::WS_OK; }
TerminateSession(const sptr<AAFwk::SessionInfo> abilitySessionInfo)64     virtual WSError TerminateSession(const sptr<AAFwk::SessionInfo> abilitySessionInfo) { return WSError::WS_OK; }
65     virtual WSError NotifySessionException(
66         const sptr<AAFwk::SessionInfo> abilitySessionInfo, bool needRemoveSession = false) { return WSError::WS_OK; }
SetTextFieldAvoidInfo(double textFieldPositionY,double textFieldHeight)67     virtual WSError SetTextFieldAvoidInfo(double textFieldPositionY, double textFieldHeight) { return WSError::WS_OK; }
68 
69     // extension session
TransferAbilityResult(uint32_t resultCode,const AAFwk::Want & want)70     virtual WSError TransferAbilityResult(uint32_t resultCode, const AAFwk::Want& want) { return WSError::WS_OK; }
TransferExtensionData(const AAFwk::WantParams & wantParams)71     virtual WSError TransferExtensionData(const AAFwk::WantParams& wantParams) { return WSError::WS_OK; }
TransferAccessibilityEvent(const Accessibility::AccessibilityEventInfo & info,int64_t uiExtensionIdLevel)72     virtual WSError TransferAccessibilityEvent(const Accessibility::AccessibilityEventInfo& info,
73         int64_t uiExtensionIdLevel)
74     {
75         return WSError::WS_OK;
76     }
NotifyRemoteReady()77     virtual void NotifyRemoteReady() {}
NotifyExtensionDied()78     virtual void NotifyExtensionDied() {}
TriggerBindModalUIExtension()79     virtual void TriggerBindModalUIExtension() {}
NotifySyncOn()80     virtual void NotifySyncOn() {}
NotifyAsyncOn()81     virtual void NotifyAsyncOn() {}
NotifyTransferAccessibilityEvent(const Accessibility::AccessibilityEventInfo & info,int64_t uiExtensionIdLevel)82     virtual void NotifyTransferAccessibilityEvent(const Accessibility::AccessibilityEventInfo& info,
83         int64_t uiExtensionIdLevel) {}
84 
85     // PictureInPicture
NotifyPiPWindowPrepareClose()86     virtual void NotifyPiPWindowPrepareClose() {}
UpdatePiPRect(uint32_t width,uint32_t height,PiPRectUpdateReason reason)87     virtual WSError UpdatePiPRect(uint32_t width, uint32_t height, PiPRectUpdateReason reason)
88         { return WSError::WS_OK; }
RecoveryPullPiPMainWindow(int32_t persistentId,const Rect & rect)89     virtual WSError RecoveryPullPiPMainWindow(int32_t persistentId, const Rect& rect) { return WSError::WS_OK; }
ProcessPointDownSession(int32_t posX,int32_t posY)90     virtual WSError ProcessPointDownSession(int32_t posX, int32_t posY) { return WSError::WS_OK; }
SendPointEventForMoveDrag(const std::shared_ptr<MMI::PointerEvent> & pointerEvent)91     virtual WSError SendPointEventForMoveDrag(const std::shared_ptr<MMI::PointerEvent>& pointerEvent)
92     {
93         return WSError::WS_OK;
94     }
95 };
96 } // namespace OHOS::Rosen
97 
98 #endif // OHOS_ROSEN_WINDOW_SCENE_SESSION_INTERFACE_H
99