1 /* 2 * Copyright (c) 2021-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 FOUNDATION_ACE_INTERFACE_INNERKITS_ACE_UI_CONTENT_H 17 #define FOUNDATION_ACE_INTERFACE_INNERKITS_ACE_UI_CONTENT_H 18 19 #include <functional> 20 #include <map> 21 #include <memory> 22 #include <refbase.h> 23 #include <string> 24 #include <unordered_set> 25 #include <vector> 26 #include <list> 27 28 #include "arkui_rect.h" 29 #include "constants.h" 30 #include "macros.h" 31 #include "modal_ui_extension_config.h" 32 #include "popup_ui_extension_config.h" 33 #include "serializeable_object.h" 34 #include "serialized_gesture.h" 35 #include "ui_content_config.h" 36 #include "viewport_config.h" 37 38 namespace OHOS { 39 40 namespace AbilityRuntime { 41 class Context; 42 } // namespace AbilityRuntime 43 44 namespace AppExecFwk { 45 class Configuration; 46 class Ability; 47 class FormAshmem; 48 } // namespace AppExecFwk 49 50 namespace Accessibility { 51 class AccessibilityElementInfo; 52 } 53 namespace Rosen { 54 class Window; 55 struct Rect; 56 enum class WindowSizeChangeReason : uint32_t; 57 enum class WindowMode : uint32_t; 58 enum class MaximizeMode : uint32_t; 59 class RSNode; 60 class RSCanvasNode; 61 class RSSurfaceNode; 62 class RSTransaction; 63 class Transform; 64 enum class AvoidAreaType : uint32_t; 65 class AvoidArea; 66 struct DecorButtonStyle; 67 struct SingleHandTransform; 68 class OccupiedAreaChangeInfo; 69 } // namespace Rosen 70 71 namespace AAFwk { 72 class Want; 73 } // namespace AAFwk 74 75 namespace MMI { 76 class PointerEvent; 77 class KeyEvent; 78 class AxisEvent; 79 } // namespace MMI 80 81 namespace Media { 82 class PixelMap; 83 } // namespace Media 84 85 namespace AbilityBase { 86 struct ViewData; 87 enum class AutoFillType; 88 } // namespace AbilityBase 89 90 namespace Global { 91 namespace Resource { 92 class ResourceManager; 93 } 94 } // namespace Global 95 96 class RefBase; 97 class Parcelable; 98 class IRemoteObject; 99 100 } // namespace OHOS 101 102 namespace OHOS::Ace { 103 struct AccessibilityParentRectInfo; 104 } // namespace OHOS::Ace 105 106 namespace OHOS::Ace::Platform { 107 struct SystemParams; 108 } //namespace OHOS::Ace::Platform 109 110 class NativeEngine; 111 typedef struct napi_value__* napi_value; 112 typedef class __ani_object* ani_object; 113 114 #ifdef __cplusplus 115 typedef struct __ani_env ani_env; 116 #else 117 typedef const struct __ani_interaction_api* ani_env; 118 #endif 119 120 namespace OHOS::Ace { 121 class ACE_FORCE_EXPORT UIContent { 122 public: 123 static std::unique_ptr<UIContent> Create( 124 OHOS::AbilityRuntime::Context* context, NativeEngine* runtime, bool isFormRender); 125 static std::unique_ptr<UIContent> Create(OHOS::AbilityRuntime::Context* context, NativeEngine* runtime); 126 /** 127 * @param runtime any VM runtime (distinguished in implementation based on information in @c context) 128 */ 129 static std::unique_ptr<UIContent> CreateWithAnyRuntime(OHOS::AbilityRuntime::Context* context, void* runtime); 130 static std::unique_ptr<UIContent> Create(OHOS::AppExecFwk::Ability* ability); 131 static void ShowDumpHelp(std::vector<std::string>& info); 132 static UIContent* GetUIContent(int32_t instanceId); 133 static std::string GetCurrentUIStackInfo(); 134 static std::unique_ptr<UIContent> CreateWithAniEnv(OHOS::AbilityRuntime::Context* context, ani_env* env); 135 136 virtual ~UIContent() = default; 137 138 // UI content life-cycles 139 virtual UIContentErrorCode Initialize(OHOS::Rosen::Window* window, const std::string& url, napi_value storage) = 0; 140 virtual UIContentErrorCode Initialize( 141 OHOS::Rosen::Window* window, const std::shared_ptr<std::vector<uint8_t>>& content, napi_value storage) = 0; Initialize(OHOS::Rosen::Window * window,const std::shared_ptr<std::vector<uint8_t>> & content,napi_value storage,const std::string & contentName)142 virtual UIContentErrorCode Initialize(OHOS::Rosen::Window* window, 143 const std::shared_ptr<std::vector<uint8_t>>& content, napi_value storage, const std::string& contentName) 144 { 145 return UIContentErrorCode::NO_ERRORS; 146 } 147 virtual UIContentErrorCode InitializeByName(OHOS::Rosen::Window *window, const std::string &name, 148 napi_value storage) = 0; InitializeByName(OHOS::Rosen::Window * window,const std::string & name,napi_value storage,uint32_t focusWindowId)149 virtual void InitializeByName(OHOS::Rosen::Window *window, 150 const std::string &name, napi_value storage, uint32_t focusWindowId) {}; InitializeDynamic(const DynamicInitialConfig & config)151 virtual void InitializeDynamic(const DynamicInitialConfig& config) {}; 152 153 // UIExtensionAbility initialize for focusWindow ID 154 virtual void Initialize( 155 OHOS::Rosen::Window* window, const std::string& url, napi_value storage, uint32_t focusWindowID) = 0; 156 virtual void Foreground() = 0; 157 virtual void Background() = 0; 158 virtual void Focus() = 0; 159 virtual void UnFocus() = 0; 160 virtual void Destroy() = 0; 161 virtual void OnNewWant(const OHOS::AAFwk::Want& want) = 0; 162 163 // restore 164 virtual UIContentErrorCode Restore( 165 OHOS::Rosen::Window* window, const std::string& contentInfo, napi_value storage, 166 ContentInfoType type = ContentInfoType::CONTINUATION) = 0; 167 virtual UIContentErrorCode Restore(OHOS::Rosen::Window* window, const std::string& contentInfo, ani_object storage, 168 ContentInfoType type = ContentInfoType::CONTINUATION) 169 { 170 return UIContentErrorCode::NO_ERRORS; 171 } 172 virtual std::string GetContentInfo(ContentInfoType type = ContentInfoType::CONTINUATION) const = 0; 173 virtual void DestroyUIDirector() = 0; 174 175 //for previewer LoadDocument(const std::string & url,const std::string & componentName,Platform::SystemParams & systemParams)176 virtual void LoadDocument(const std::string& url, const std::string& componentName, 177 Platform::SystemParams& systemParams) {}; GetJSONTree()178 virtual std::string GetJSONTree() 179 { 180 return ""; 181 } OperateComponent(const std::string & attrsJson)182 virtual bool OperateComponent(const std::string& attrsJson) 183 { 184 return false; 185 } 186 187 // UI content event process 188 virtual bool ProcessBackPressed() = 0; 189 virtual bool ProcessPointerEvent(const std::shared_ptr<OHOS::MMI::PointerEvent>& pointerEvent) = 0; 190 virtual bool ProcessKeyEvent(const std::shared_ptr<OHOS::MMI::KeyEvent>& keyEvent, bool isPreIme = false) = 0; 191 virtual bool ProcessAxisEvent(const std::shared_ptr<OHOS::MMI::AxisEvent>& axisEvent) = 0; 192 virtual bool ProcessVsyncEvent(uint64_t timeStampNanos) = 0; 193 virtual void SetIsFocusActive(bool isFocusActive) = 0; 194 virtual void UpdateConfiguration(const std::shared_ptr<OHOS::AppExecFwk::Configuration>& config) = 0; 195 virtual void UpdateConfiguration(const std::shared_ptr<OHOS::AppExecFwk::Configuration>& config, 196 const std::shared_ptr<Global::Resource::ResourceManager>& resourceManager) = 0; 197 virtual void UpdateViewportConfig(const ViewportConfig& config, OHOS::Rosen::WindowSizeChangeReason reason, 198 const std::shared_ptr<OHOS::Rosen::RSTransaction>& rsTransaction = nullptr, 199 const std::map<OHOS::Rosen::AvoidAreaType, OHOS::Rosen::AvoidArea>& avoidAreas = {}, 200 const sptr<OHOS::Rosen::OccupiedAreaChangeInfo>& info = nullptr) {}; 201 virtual void UpdateWindowMode(OHOS::Rosen::WindowMode mode, bool hasDeco = true) = 0; NotifyWindowMode(OHOS::Rosen::WindowMode mode)202 virtual void NotifyWindowMode(OHOS::Rosen::WindowMode mode) {}; 203 virtual void HideWindowTitleButton(bool hideSplit, bool hideMaximize, bool hideMinimize, bool hideClose) = 0; 204 virtual void SetIgnoreViewSafeArea(bool ignoreViewSafeArea) = 0; UpdateMaximizeMode(OHOS::Rosen::MaximizeMode mode)205 virtual void UpdateMaximizeMode(OHOS::Rosen::MaximizeMode mode) {}; ProcessFormVisibleChange(bool isVisible)206 virtual void ProcessFormVisibleChange(bool isVisible) {}; NotifyRotationAnimationEnd()207 virtual void NotifyRotationAnimationEnd() {}; 208 209 // only vaild in ContainerModalPatternEnhance 210 virtual void UpdateTitleInTargetPos(bool isShow, int32_t height) = 0; 211 212 // Window color 213 virtual uint32_t GetBackgroundColor() = 0; 214 virtual void SetBackgroundColor(uint32_t color) = 0; SetUIContentType(UIContentType uIContentType)215 virtual void SetUIContentType(UIContentType uIContentType) {}; SetHostParams(const OHOS::AAFwk::WantParams & params)216 virtual void SetHostParams(const OHOS::AAFwk::WantParams& params) {}; 217 virtual void SetWindowContainerColor(uint32_t activeColor, uint32_t inactiveColor) = 0; 218 219 // Judge whether window need soft keyboard or not NeedSoftKeyboard()220 virtual bool NeedSoftKeyboard() 221 { 222 return false; 223 } 224 ChangeSensitiveNodes(bool isSensitive)225 virtual void ChangeSensitiveNodes(bool isSensitive) {} 226 SetOnWindowFocused(const std::function<void ()> & callback)227 virtual void SetOnWindowFocused(const std::function<void()>& callback) {}; 228 229 virtual void DumpInfo(const std::vector<std::string>& params, std::vector<std::string>& info) = 0; 230 231 // Set UIContent callback for custom window animation 232 virtual void SetNextFrameLayoutCallback(std::function<void()>&& callback) = 0; 233 234 // Receive memory level notification 235 virtual void NotifyMemoryLevel(int32_t level) = 0; 236 237 virtual void SetAppWindowTitle(const std::string& title) = 0; 238 virtual void SetAppWindowIcon(const std::shared_ptr<Media::PixelMap>& pixelMap) = 0; 239 240 // ArkTS Form 241 virtual void PreInitializeForm(OHOS::Rosen::Window* window, const std::string& url, napi_value storage) = 0; PreInitializeFormAni(OHOS::Rosen::Window * window,const std::string & url,ani_object storage)242 virtual void PreInitializeFormAni(OHOS::Rosen::Window* window, const std::string& url, ani_object storage) {}; 243 virtual void RunFormPage() = 0; 244 virtual std::shared_ptr<Rosen::RSSurfaceNode> GetFormRootNode() = 0; 245 246 virtual void UpdateFormData(const std::string& data) = 0; UpdateFormSharedImage(const std::map<std::string,sptr<OHOS::AppExecFwk::FormAshmem>> & imageDataMap)247 virtual void UpdateFormSharedImage(const std::map<std::string, sptr<OHOS::AppExecFwk::FormAshmem>>& imageDataMap) {} 248 249 virtual void SetFormWidth(const float width) = 0; 250 virtual void SetFormHeight(const float height) = 0; 251 virtual float GetFormWidth() = 0; 252 virtual float GetFormHeight() = 0; ReloadForm(const std::string & url)253 virtual void ReloadForm(const std::string& url) {}; 254 virtual void OnFormSurfaceChange(float width, float height, 255 OHOS::Rosen::WindowSizeChangeReason type = static_cast<OHOS::Rosen::WindowSizeChangeReason>(0), 256 const std::shared_ptr<Rosen::RSTransaction>& rsTransaction = nullptr) {} 257 SetFormBackgroundColor(const std::string & color)258 virtual void SetFormBackgroundColor(const std::string& color) {}; SetFontScaleFollowSystem(const bool fontScaleFollowSystem)259 virtual void SetFontScaleFollowSystem(const bool fontScaleFollowSystem) {}; SetFormRenderingMode(int8_t renderMode)260 virtual void SetFormRenderingMode(int8_t renderMode) {}; SetFormEnableBlurBackground(bool enableBlurBackground)261 virtual void SetFormEnableBlurBackground(bool enableBlurBackground) {}; 262 SetActionEventHandler(std::function<void (const std::string &)> && actionCallback)263 virtual void SetActionEventHandler(std::function<void(const std::string&)>&& actionCallback) {}; SetErrorEventHandler(std::function<void (const std::string &,const std::string &)> && errorCallback)264 virtual void SetErrorEventHandler(std::function<void(const std::string&, const std::string&)>&& errorCallback) {}; SetFormLinkInfoUpdateHandler(std::function<void (const std::vector<std::string> &)> && callback)265 virtual void SetFormLinkInfoUpdateHandler(std::function<void(const std::vector<std::string>&)>&& callback) {}; RegisterAccessibilityChildTree(uint32_t parentWindowId,int32_t parentTreeId,int64_t parentElementId)266 virtual void RegisterAccessibilityChildTree( 267 uint32_t parentWindowId, int32_t parentTreeId, int64_t parentElementId) {}; SetAccessibilityGetParentRectHandler(std::function<void (int32_t &,int32_t &)> && callback)268 virtual void SetAccessibilityGetParentRectHandler(std::function<void(int32_t&, int32_t&)>&& callback) {}; SetAccessibilityGetParentRectHandler(std::function<void (AccessibilityParentRectInfo &)> && callback)269 virtual void SetAccessibilityGetParentRectHandler(std::function<void(AccessibilityParentRectInfo&)>&& callback) {}; DeregisterAccessibilityChildTree()270 virtual void DeregisterAccessibilityChildTree() {}; AccessibilityDumpChildInfo(const std::vector<std::string> & params,std::vector<std::string> & info)271 virtual void AccessibilityDumpChildInfo(const std::vector<std::string>& params, std::vector<std::string>& info) {}; 272 273 // for distribute UI source DumpUITree()274 virtual SerializeableObjectArray DumpUITree() 275 { 276 return SerializeableObjectArray(); 277 }; SubscribeUpdate(const std::function<void (int32_t,SerializeableObjectArray &)> & onUpdate)278 virtual void SubscribeUpdate(const std::function<void(int32_t, SerializeableObjectArray&)>& onUpdate) {} UnSubscribeUpdate()279 virtual void UnSubscribeUpdate() {} ProcessSerializeableInputEvent(const SerializeableObjectArray & array)280 virtual void ProcessSerializeableInputEvent(const SerializeableObjectArray& array) {} 281 // for distribute UI sink RestoreUITree(const SerializeableObjectArray & array)282 virtual void RestoreUITree(const SerializeableObjectArray& array) {} UpdateUITree(const SerializeableObjectArray & array)283 virtual void UpdateUITree(const SerializeableObjectArray& array) {} SubscribeInputEventProcess(const std::function<void (SerializeableObjectArray &)> & onEvent)284 virtual void SubscribeInputEventProcess(const std::function<void(SerializeableObjectArray&)>& onEvent) {} UnSubscribeInputEventProcess()285 virtual void UnSubscribeInputEventProcess() {} 286 GetResourcePaths(std::vector<std::string> & resourcesPaths,std::string & assetRootPath,std::vector<std::string> & assetBasePaths,std::string & resFolderName)287 virtual void GetResourcePaths(std::vector<std::string>& resourcesPaths, std::string& assetRootPath, 288 std::vector<std::string>& assetBasePaths, std::string& resFolderName) {}; SetResourcePaths(const std::vector<std::string> & resourcesPaths,const std::string & assetRootPath,const std::vector<std::string> & assetBasePaths)289 virtual void SetResourcePaths(const std::vector<std::string>& resourcesPaths, const std::string& assetRootPath, 290 const std::vector<std::string>& assetBasePaths) {}; 291 UpdateResource()292 virtual void UpdateResource() {} 293 GetUINapiContext()294 virtual napi_value GetUINapiContext() 295 { 296 napi_value result = nullptr; 297 return result; 298 } 299 GetUIAniContext()300 virtual ani_object GetUIAniContext() 301 { 302 ani_object result = nullptr; 303 return result; 304 } 305 306 /** 307 * @description: Create a full-window modal UIExtensionComponent. 308 * @param want Indicates the want of UIExtensionAbility. 309 * @param callbacks Indicates the UIExtensionComponent callbacks. 310 * @param config Indicates the Modal page configs. 311 * @return The return value is the ID of the session held by the UIExtensionComponent 312 * if creation is not successful, it returns 0 by default. 313 */ 314 virtual int32_t CreateModalUIExtension( 315 const AAFwk::Want& want, const ModalUIExtensionCallbacks& callbacks, const ModalUIExtensionConfig& config) = 0; 316 317 /** 318 * @description: Close the full-window modal. 319 * @param sessionId Indicates the sessionId of UIExtensionAbility. 320 * If the sessionId is 0, refuse to close 321 */ 322 virtual void CloseModalUIExtension(int32_t sessionId) = 0; 323 UpdateModalUIExtensionConfig(int32_t sessionId,const ModalUIExtensionAllowedUpdateConfig & config)324 virtual void UpdateModalUIExtensionConfig( 325 int32_t sessionId, const ModalUIExtensionAllowedUpdateConfig& config) {}; 326 327 /** 328 * @description: Set parent ability token. 329 * @param token ability token. 330 */ 331 virtual void SetParentToken(sptr<IRemoteObject> token); 332 333 /** 334 * @description: Get parent ability token. 335 * @return return parent ability token. 336 */ 337 virtual sptr<IRemoteObject> GetParentToken(); 338 DumpViewData(AbilityBase::ViewData & viewData,AbilityBase::AutoFillType & type)339 virtual bool DumpViewData(AbilityBase::ViewData& viewData, AbilityBase::AutoFillType& type) 340 { 341 return false; 342 } 343 CheckNeedAutoSave()344 virtual bool CheckNeedAutoSave() 345 { 346 return false; 347 } 348 GetInstanceId()349 virtual int32_t GetInstanceId() 350 { 351 return -1; 352 } 353 354 /** 355 * @description: Recycle form. 356 * @return return Json string of status data of ArkTS form. 357 */ RecycleForm()358 virtual std::string RecycleForm() 359 { 360 return ""; 361 } 362 363 /** 364 * @description: Recover form. 365 * @param statusData Indicates json string of status data of ArkTS form. 366 */ RecoverForm(const std::string & statusData)367 virtual void RecoverForm(const std::string &statusData) {} 368 SetContainerModalTitleVisible(bool customTitleSettedShow,bool floatingTitleSettedShow)369 virtual void SetContainerModalTitleVisible(bool customTitleSettedShow, bool floatingTitleSettedShow) {} 370 GetContainerModalTitleVisible(bool isImmersive)371 virtual bool GetContainerModalTitleVisible(bool isImmersive) { return false; } 372 SetContainerModalTitleHeight(int height)373 virtual void SetContainerModalTitleHeight(int height) {} 374 GetContainerModalTitleHeight()375 virtual int32_t GetContainerModalTitleHeight() 376 { 377 return -1; 378 } 379 GetContainerModalButtonsRect(Rosen::Rect & containerModal,Rosen::Rect & buttons)380 virtual bool GetContainerModalButtonsRect(Rosen::Rect& containerModal, Rosen::Rect& buttons) 381 { 382 return false; 383 } 384 SubscribeContainerModalButtonsRectChange(std::function<void (Rosen::Rect & containerModal,Rosen::Rect & buttons)> && callback)385 virtual void SubscribeContainerModalButtonsRectChange( 386 std::function<void(Rosen::Rect& containerModal, Rosen::Rect& buttons)>&& callback) {} 387 SetUIExtensionSubWindow(bool isUIExtensionSubWindow)388 virtual void SetUIExtensionSubWindow(bool isUIExtensionSubWindow) {} 389 IsUIExtensionSubWindow()390 virtual bool IsUIExtensionSubWindow() 391 { 392 return false; 393 } 394 SetUIExtensionAbilityProcess(bool isUIExtensionAbilityProcess)395 virtual void SetUIExtensionAbilityProcess(bool isUIExtensionAbilityProcess) {} 396 IsUIExtensionAbilityProcess()397 virtual bool IsUIExtensionAbilityProcess() 398 { 399 return false; 400 } 401 SetUIExtensionAbilityHost(bool isUIExtensionAbilityHost)402 virtual void SetUIExtensionAbilityHost(bool isUIExtensionAbilityHost) {} 403 IsUIExtensionAbilityHost()404 virtual bool IsUIExtensionAbilityHost() 405 { 406 return false; 407 } 408 409 #ifndef PREVIEW SearchElementInfoByAccessibilityId(int64_t elementId,int32_t mode,int64_t baseParent,std::list<Accessibility::AccessibilityElementInfo> & output)410 virtual void SearchElementInfoByAccessibilityId( 411 int64_t elementId, int32_t mode, 412 int64_t baseParent, std::list<Accessibility::AccessibilityElementInfo>& output) {}; 413 SearchElementInfosByText(int64_t elementId,const std::string & text,int64_t baseParent,std::list<Accessibility::AccessibilityElementInfo> & output)414 virtual void SearchElementInfosByText( 415 int64_t elementId, const std::string& text, int64_t baseParent, 416 std::list<Accessibility::AccessibilityElementInfo>& output) {}; 417 FindFocusedElementInfo(int64_t elementId,int32_t focusType,int64_t baseParent,Accessibility::AccessibilityElementInfo & output)418 virtual void FindFocusedElementInfo( 419 int64_t elementId, int32_t focusType, 420 int64_t baseParent, Accessibility::AccessibilityElementInfo& output) {}; 421 FocusMoveSearch(int64_t elementId,int32_t direction,int64_t baseParent,Accessibility::AccessibilityElementInfo & output)422 virtual void FocusMoveSearch( 423 int64_t elementId, int32_t direction, 424 int64_t baseParent, Accessibility::AccessibilityElementInfo& output) {}; 425 NotifyExecuteAction(int64_t elementId,const std::map<std::string,std::string> & actionArguments,int32_t action,int64_t offset)426 virtual bool NotifyExecuteAction(int64_t elementId, const std::map<std::string, std::string>& actionArguments, 427 int32_t action, int64_t offset) 428 { 429 return false; 430 } 431 HandleAccessibilityHoverEvent(float pointX,float pointY,int32_t sourceType,int32_t eventType,int64_t timeMs)432 virtual void HandleAccessibilityHoverEvent(float pointX, float pointY, int32_t sourceType, 433 int32_t eventType, int64_t timeMs) {} 434 #endif 435 436 /** 437 * @description: Set UIContent callback after layout finish. 438 * @param callback callback func. 439 */ SetFrameLayoutFinishCallback(std::function<void ()> && callback)440 virtual void SetFrameLayoutFinishCallback(std::function<void()>&& callback) {}; 441 442 // Current paintSize of window GetAppPaintSize(OHOS::Rosen::Rect & paintrect)443 virtual void GetAppPaintSize(OHOS::Rosen::Rect& paintrect) {}; 444 445 // Get paintSize of window by calculating GetWindowPaintSize(OHOS::Rosen::Rect & paintrect)446 virtual void GetWindowPaintSize(OHOS::Rosen::Rect& paintrect) {}; 447 448 /** 449 * @description: Create a custom popup with UIExtensionComponent. 450 * @param want Indicates the want of UIExtensionAbility. 451 * @param callbacks Indicates the UIExtensionComponent callbacks. 452 * @param config Indicates the custom popup configs. 453 * @return The return value is the ID of the UI node which bind the pupop 454 * if creation is not successful, it returns 0 by default. 455 */ CreateCustomPopupUIExtension(const AAFwk::Want & want,const ModalUIExtensionCallbacks & callbacks,const CustomPopupUIExtensionConfig & config)456 virtual int32_t CreateCustomPopupUIExtension( 457 const AAFwk::Want& want, const ModalUIExtensionCallbacks& callbacks, const CustomPopupUIExtensionConfig& config) 458 { 459 return 0; 460 } 461 462 /** 463 * @description: Destroy the custom popup. 464 * @param config Indicates the ID of the UI node which bind the pupop 465 */ DestroyCustomPopupUIExtension(int32_t nodeId)466 virtual void DestroyCustomPopupUIExtension(int32_t nodeId) {} 467 468 /** 469 * @description: Update the custom popup. 470 * @param config Indicates the custom popup configs. 471 */ UpdateCustomPopupUIExtension(const CustomPopupUIExtensionConfig & config)472 virtual void UpdateCustomPopupUIExtension(const CustomPopupUIExtensionConfig& config) {} 473 GetFormSerializedGesture()474 virtual SerializedGesture GetFormSerializedGesture() 475 { 476 return SerializedGesture(); 477 } 478 ProcessPointerEventWithCallback(const std::shared_ptr<OHOS::MMI::PointerEvent> & pointerEvent,const std::function<void ()> & callback)479 virtual bool ProcessPointerEventWithCallback( 480 const std::shared_ptr<OHOS::MMI::PointerEvent>& pointerEvent, const std::function<void()>& callback) 481 { 482 return true; 483 }; 484 UpdateTransform(const OHOS::Rosen::Transform & transform)485 virtual void UpdateTransform(const OHOS::Rosen::Transform& transform) {}; 486 487 virtual void UpdateDecorVisible(bool visible, bool hasDeco = true) {}; 488 GetOverlayNodePositions()489 virtual std::vector<Ace::RectF> GetOverlayNodePositions() const 490 { 491 return {}; 492 }; 493 RegisterOverlayNodePositionsUpdateCallback(const std::function<void (std::vector<Ace::RectF>)> & callback)494 virtual void RegisterOverlayNodePositionsUpdateCallback( 495 const std::function<void(std::vector<Ace::RectF>)>& callback) const {}; 496 SetContentNodeGrayScale(float grayscale)497 virtual void SetContentNodeGrayScale(float grayscale) {}; 498 GetRemoteObj()499 virtual sptr<IRemoteObject> GetRemoteObj() 500 { 501 return {}; 502 } 503 PreLayout()504 virtual void PreLayout() {}; 505 SetStatusBarItemColor(uint32_t color)506 virtual void SetStatusBarItemColor(uint32_t color) {}; 507 508 virtual void SetForceSplitEnable(bool isForceSplit, const std::string& homePage, 509 bool isRouter = true, bool ignoreOrientation = false) {} 510 SetForceSplitConfig(const std::string & configJsonStr)511 virtual void SetForceSplitConfig(const std::string& configJsonStr) {} 512 EnableContainerModalGesture(bool isEnable)513 virtual void EnableContainerModalGesture(bool isEnable) {}; 514 GetContainerFloatingTitleVisible()515 virtual bool GetContainerFloatingTitleVisible() 516 { 517 return false; 518 } 519 GetContainerCustomTitleVisible()520 virtual bool GetContainerCustomTitleVisible() 521 { 522 return false; 523 } 524 GetContainerControlButtonVisible()525 virtual bool GetContainerControlButtonVisible() 526 { 527 return false; 528 } 529 OnContainerModalEvent(const std::string & name,const std::string & value)530 virtual void OnContainerModalEvent(const std::string& name, const std::string& value) {} UpdateConfigurationSyncForAll(const std::shared_ptr<OHOS::AppExecFwk::Configuration> & config)531 virtual void UpdateConfigurationSyncForAll(const std::shared_ptr<OHOS::AppExecFwk::Configuration>& config) {} 532 SetContainerButtonStyle(const Rosen::DecorButtonStyle & decorButtonStyle)533 virtual void SetContainerButtonStyle(const Rosen::DecorButtonStyle& decorButtonStyle) {} 534 AddFocusActiveChangeCallback(const std::function<void (bool isFocusAvtive)> & callback)535 virtual int32_t AddFocusActiveChangeCallback(const std::function<void(bool isFocusAvtive)>& callback) 536 { 537 return 0; 538 } 539 RemoveFocusActiveChangeCallback(int32_t handler)540 virtual void RemoveFocusActiveChangeCallback(int32_t handler) {}; 541 ProcessPointerEvent(const std::shared_ptr<OHOS::MMI::PointerEvent> & pointerEvent,const std::function<void (bool)> & callback)542 virtual bool ProcessPointerEvent( 543 const std::shared_ptr<OHOS::MMI::PointerEvent>& pointerEvent, const std::function<void(bool)>& callback) 544 { 545 return false; 546 } 547 ConfigCustomWindowMask(bool enable)548 virtual bool ConfigCustomWindowMask(bool enable) 549 { 550 return false; 551 } 552 UpdateSingleHandTransform(const OHOS::Rosen::SingleHandTransform & transform)553 virtual void UpdateSingleHandTransform(const OHOS::Rosen::SingleHandTransform& transform) {}; 554 GetRSNodeByStringID(const std::string & stringId)555 virtual std::shared_ptr<Rosen::RSNode> GetRSNodeByStringID(const std::string& stringId) 556 { 557 return nullptr; 558 } 559 ActiveWindow()560 virtual void ActiveWindow() {}; 561 UnActiveWindow()562 virtual void UnActiveWindow() {}; 563 SetTopWindowBoundaryByID(const std::string & stringId)564 virtual void SetTopWindowBoundaryByID(const std::string& stringId) {}; 565 SendUIExtProprty(uint32_t code,const AAFwk::Want & data,uint8_t subSystemId)566 virtual bool SendUIExtProprty(uint32_t code, const AAFwk::Want& data, uint8_t subSystemId) 567 { 568 return false; 569 } 570 SendUIExtProprtyByPersistentId(uint32_t code,const AAFwk::Want & data,const std::unordered_set<int32_t> & persistentIds,uint8_t subSystemId)571 virtual bool SendUIExtProprtyByPersistentId(uint32_t code, const AAFwk::Want& data, 572 const std::unordered_set<int32_t>& persistentIds, uint8_t subSystemId) 573 { 574 return false; 575 } 576 EnableContainerModalCustomGesture(bool enable)577 virtual void EnableContainerModalCustomGesture(bool enable) {}; 578 AddKeyFrameAnimateEndCallback(const std::function<void ()> & callback)579 virtual void AddKeyFrameAnimateEndCallback(const std::function<void()> &callback) {}; AddKeyFrameCanvasNodeCallback(const std::function<void (std::shared_ptr<Rosen::RSCanvasNode> & canvasNode,std::shared_ptr<OHOS::Rosen::RSTransaction> & rsTransaction)> & callback)580 virtual void AddKeyFrameCanvasNodeCallback(const std::function< 581 void(std::shared_ptr<Rosen::RSCanvasNode>& canvasNode, 582 std::shared_ptr<OHOS::Rosen::RSTransaction>& rsTransaction)>& callback) {}; LinkKeyFrameCanvasNode(std::shared_ptr<OHOS::Rosen::RSCanvasNode> &)583 virtual void LinkKeyFrameCanvasNode(std::shared_ptr<OHOS::Rosen::RSCanvasNode>&) {}; 584 585 // intent framework SetIntentParam(const std::string & intentInfoSerialized,const std::function<void ()> && loadPageCallback,bool isColdStart)586 virtual void SetIntentParam(const std::string& intentInfoSerialized, 587 const std::function<void()>&& loadPageCallback, bool isColdStart) {} 588 589 virtual std::string GetTopNavDestinationInfo(bool onlyFullScreen = false, bool needParam = true) 590 { 591 return ""; 592 } RestoreNavDestinationInfo(const std::string & navDestinationInfo,bool isColdStart)593 virtual void RestoreNavDestinationInfo(const std::string& navDestinationInfo, bool isColdStart) {} InitializeWithAniStorage(OHOS::Rosen::Window * window,const std::string & url,ani_object storage)594 virtual UIContentErrorCode InitializeWithAniStorage( 595 OHOS::Rosen::Window* window, const std::string& url, ani_object storage) 596 { 597 return UIContentErrorCode::NO_ERRORS; 598 } 599 InitializeWithAniStorage(OHOS::Rosen::Window * window,const std::string & url,ani_object storage,uint32_t focusWindowID)600 virtual UIContentErrorCode InitializeWithAniStorage( 601 OHOS::Rosen::Window* window, const std::string& url, ani_object storage, uint32_t focusWindowID) 602 { 603 return UIContentErrorCode::NO_ERRORS; 604 } 605 InitializeWithAniStorage(OHOS::Rosen::Window * window,const std::shared_ptr<std::vector<uint8_t>> & content,ani_object storage)606 virtual UIContentErrorCode InitializeWithAniStorage( 607 OHOS::Rosen::Window* window, const std::shared_ptr<std::vector<uint8_t>>& content, ani_object storage) 608 { 609 return UIContentErrorCode::NO_ERRORS; 610 } 611 InitializeWithAniStorage(OHOS::Rosen::Window * window,const std::shared_ptr<std::vector<uint8_t>> & content,ani_object storage,const std::string & contentName)612 virtual UIContentErrorCode InitializeWithAniStorage(OHOS::Rosen::Window* window, 613 const std::shared_ptr<std::vector<uint8_t>>& content, ani_object storage, const std::string& contentName) 614 { 615 return UIContentErrorCode::NO_ERRORS; 616 } 617 InitializeByNameWithAniStorage(OHOS::Rosen::Window * window,const std::string & name,ani_object storage)618 virtual UIContentErrorCode InitializeByNameWithAniStorage( 619 OHOS::Rosen::Window* window, const std::string& name, ani_object storage) 620 { 621 return UIContentErrorCode::NO_ERRORS; 622 } 623 }; 624 625 } // namespace OHOS::Ace 626 627 #endif // FOUNDATION_ACE_INTERFACE_INNERKITS_ACE_UI_CONTENT_H 628