• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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