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