platform/core/csapi/tizenfx.git
4 months ago[NUI.Scene3D] Add AddLight API
Eunki, Hong [Tue, 2 Jan 2024 09:09:36 +0000 (18:09 +0900)]
[NUI.Scene3D] Add AddLight API

Let we make new API for Light class for SceneView.

Note : To avoid the changness of native side code minimalize, let we use
internal API of NUI.

Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
4 months ago[MediaVision] Change feature key of inference face recognition (#5803)
Haesu Gwon [Tue, 2 Jan 2024 05:50:47 +0000 (14:50 +0900)]
[MediaVision] Change feature key of inference face recognition (#5803)

* [MediaVision] Change feature key of inference face recognition

4 months ago[NUI] Fix Navigator to support Page with Transitions
Jaehyun Cho [Wed, 27 Dec 2023 04:15:30 +0000 (13:15 +0900)]
[NUI] Fix Navigator to support Page with Transitions

Previously, PushWithTransition and PopWithTransition did not support
Page. It supported either ContentPage or DialogPage.

Now, PushWithTransition and PopWithTransition supports Page as well.

4 months ago[NUI][API11] NUI version up (nui22304)
Eunki, Hong [Wed, 27 Dec 2023 00:10:29 +0000 (09:10 +0900)]
[NUI][API11] NUI version up (nui22304)

Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
4 months ago[NUI] Initialize C# items if required
Eunki, Hong [Thu, 14 Dec 2023 02:44:43 +0000 (11:44 +0900)]
[NUI] Initialize C# items if required

We have create ProcessorController constructor without initalize as default.

If NUI core want to change this policy, we can initialize at constructor time.
But this case code has some error. It didn't create C# side objects and only create
native side.

Let we make constructor with initialize works well now.

Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
4 months ago[NUI.Scene3D] Add DepthIndex in Material
seungho baek [Wed, 6 Dec 2023 06:33:49 +0000 (15:33 +0900)]
[NUI.Scene3D] Add DepthIndex in Material

Signed-off-by: seungho baek <sbsh.baek@samsung.com>
5 months ago[NUI] Fix svace issue of Marshal.Copy
Xianbing Teng [Mon, 18 Dec 2023 12:03:31 +0000 (20:03 +0800)]
[NUI] Fix svace issue of Marshal.Copy

5 months ago[NUI] Add AnchorColor Property
Bowon Ryu [Mon, 18 Dec 2023 10:27:33 +0000 (19:27 +0900)]
[NUI] Add AnchorColor Property

AnchorColor(or AnchorClickedColor) property is
used as the default color of the markup anchor tag.

If there is a color attribute in the markup anchor tag,
the markup attribute takes precedence.

https://review.tizen.org/gerrit/#/c/platform/core/uifw/dali-toolkit/+/302984/
https://review.tizen.org/gerrit/#/c/platform/core/uifw/dali-csharp-binder/+/302985/

Signed-off-by: Bowon Ryu <bowon.ryu@samsung.com>
5 months ago[NUI][API11] NUI Version up (nui22303)
Eunki Hong [Mon, 18 Dec 2023 10:28:23 +0000 (19:28 +0900)]
[NUI][API11] NUI Version up (nui22303)

Signed-off-by: Eunki Hong <eunkiki.hong@samsung.com>
5 months ago[NUI] Revert dispose synchronously logic when APP is not started
Eunki Hong [Mon, 18 Dec 2023 07:23:21 +0000 (16:23 +0900)]
[NUI] Revert dispose synchronously logic when APP is not started

We add some logic to dispose items when application created & disposed
before application initialized.

But some app just have some issue when some thread dependency items disposed
before application started.

To avoid this cases, let we block dispose sync logic and revert we always
dispose queue ensure in main thread.

Signed-off-by: Eunki Hong <eunkiki.hong@samsung.com>
5 months ago[NUI] DragAndDrop : Allow to get mimetype for Enter and Move events
Taehyub Kim [Tue, 12 Dec 2023 09:48:48 +0000 (18:48 +0900)]
[NUI] DragAndDrop : Allow to get mimetype for Enter and Move events

5 months ago[NUI][API11] NUI Version up (nui22302)
Eunki, Hong [Mon, 11 Dec 2023 05:55:54 +0000 (14:55 +0900)]
[NUI][API11] NUI Version up (nui22302)

Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
5 months ago[NUI] Add API for ProcessController without Initialize
Eunki, Hong [Mon, 11 Dec 2023 04:21:42 +0000 (13:21 +0900)]
[NUI] Add API for ProcessController without Initialize

To keep the backword stability, let we use previous API (CSharp_Dali_new_ProcessorController) call Initialize internally
and new API (CSharp_Dali_new_ProcessorController_Without_Initialize) will not call this.

Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
5 months ago[NUI] Make we flush DisposeQueue before app start
Eunki, Hong [Mon, 11 Dec 2023 03:09:39 +0000 (12:09 +0900)]
[NUI] Make we flush DisposeQueue before app start

If we don't call DisposeQueue.Instance.Initialize(), it might not flush
the dispose queue.

Before #5806 and until currently, we didn't allow to call ProcessDisposables()
before Initialize(). It might occure memory leak if app try to create & dispose
unlimitly before Application start.

To make ensure it, let we make ProcessDisposables() API can be called even if
DisposeQueue is not initialized.

Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
5 months ago[NUI] Skip text getter when Text never setted before
Eunki Hong [Thu, 7 Dec 2023 16:59:37 +0000 (01:59 +0900)]
[NUI] Skip text getter when Text never setted before

If we never set text into TextLabel before, the result of Text propert getter is always empty.
To avoid useless C# - native network, let we just ignore text getter function if we can assume that previous text was empty.

Signed-off-by: Eunki Hong <eunkiki.hong@samsung.com>
5 months ago[NUI] Make ensure ImageView._resourceUrl is latest
Eunki Hong [Thu, 7 Dec 2023 16:59:37 +0000 (01:59 +0900)]
[NUI] Make ensure ImageView._resourceUrl is latest

Previous code didn't assume that _resourceUrl value of ImageView was not a latest.

 - If we set ImageView by ```Image``` property, the _resourceUrl was updated when cached map updating.
 - When we try to get ResourceUrl gettor, we ask to cached map always.

But PropertyValue.Get(out string) might spend long time if the URL length is long.
It will make useless string copy, what we can reduce.

Now We make every logic make ensure that _resourceUrl stored valid resource url.
If this is validated, we can reduce some C# - Native networking.

Signed-off-by: Eunki Hong <eunkiki.hong@samsung.com>
5 months ago[NUI.Scene3D] Remove build warning
Eunki Hong [Wed, 6 Dec 2023 17:36:44 +0000 (02:36 +0900)]
[NUI.Scene3D] Remove build warning

Signed-off-by: Eunki Hong <eunkiki.hong@samsung.com>
5 months ago[NUI] Dispose queue incrementally
Eunki Hong [Wed, 6 Dec 2023 16:12:33 +0000 (01:12 +0900)]
[NUI] Dispose queue incrementally

Let we dispose IDisposable incrementally, not immediately.

It will reduce the main thread blocking during Dispose by GC.

To make the behavior didn't changed as before, let we make
FullGC as defalt. And turn on incremental GC feature if someone need.

Signed-off-by: Eunki Hong <eunkiki.hong@samsung.com>
5 months agoFix defect that is detected by static analisys tool (#5805)
urmain [Wed, 6 Dec 2023 08:45:10 +0000 (17:45 +0900)]
Fix defect that is detected by static analisys tool (#5805)

There is a portential problem with the code involving the variable 'e.OldItems'.
This variable is the result of a method invocation, and the tool is warning that the method
might return a null value, which can cause deferencing a null reference.
It might cause to crash or behave unpredictably.

Therefore, to prevent this, the variable 'e.OldItems' should be checked if it is null or not before use.

5 months ago[Packagemanager] Fix Tizen.Applications.Package for performance (#5794)
jeremy-jang [Wed, 6 Dec 2023 06:19:43 +0000 (15:19 +0900)]
[Packagemanager] Fix Tizen.Applications.Package for performance (#5794)

Adjust lazy initialization on DependencyFrom, Certificate property.
These properties need additional IPC platform internally, so make these
property initialized lazily for performance.

Signed-off-by: Sangyoon Jang <jeremy.jang@samsung.com>
5 months ago[NUI] Add log for ClearFocus
joogab.yun [Tue, 5 Dec 2023 06:14:52 +0000 (15:14 +0900)]
[NUI] Add log for ClearFocus

5 months ago[NUI] Fix some SVACE issues.
zhouhao02 [Fri, 17 Nov 2023 08:26:02 +0000 (16:26 +0800)]
[NUI] Fix some SVACE issues.

5 months ago[NUI.Scene3D] Add SetResolution method to SceneView
seungho baek [Thu, 30 Nov 2023 02:18:55 +0000 (11:18 +0900)]
[NUI.Scene3D] Add SetResolution method to SceneView

Signed-off-by: seungho baek <sbsh.baek@samsung.com>
5 months ago[NUI] Fix some SVACE issues.
zhouhao02 [Fri, 1 Dec 2023 06:07:21 +0000 (14:07 +0800)]
[NUI] Fix some SVACE issues.

5 months ago[NUI][API11] Added collider mesh support
Adam Bialogonski [Thu, 16 Nov 2023 09:50:22 +0000 (09:50 +0000)]
[NUI][API11] Added collider mesh support

Model.SetColliderMesh() function allows creating and setting a collider mesh on the node of model.

Node of model is selected by name (string).
Collider mesh data consists:
List<Vector3> - list of vertices
List<int> - list of indices (3 indices are a triangle face)

Modify issue

Signed-off-by: huiyu.eun <huiyu.eun@samsung.com>
5 months ago[NUI.Scene3D][API11] Support RootTranslationOnly option for motion capture data
seungho baek [Tue, 21 Nov 2023 07:27:01 +0000 (16:27 +0900)]
[NUI.Scene3D][API11] Support RootTranslationOnly option for motion capture data

Signed-off-by: seungho baek <sbsh.baek@samsung.com>
5 months ago[Bluetooth] Fix BluetoothProfileType enum mismatch issue (#5788)
Wootak Jung [Mon, 4 Dec 2023 22:55:52 +0000 (07:55 +0900)]
[Bluetooth] Fix BluetoothProfileType enum mismatch issue (#5788)

BluetoothProfileType enum does not match native bt_profile_e enum.

Signed-off-by: Wootak Jung <wootak.jung@samsung.com>
5 months ago[NUI] Add DispatchWheelEvents and DispatchPrentWheelEvents
joogab.yun [Mon, 27 Nov 2023 04:24:01 +0000 (13:24 +0900)]
[NUI] Add DispatchWheelEvents and DispatchPrentWheelEvents

If DispatchWheelEvents sets false, view will not receive any WheelEvent including own.
If DispatchPrentWheelEvents sets false, the parent view does not receive WheelEvent.

5 months ago[NUI] Change the default color of the border.
joogab.yun [Mon, 20 Nov 2023 06:29:19 +0000 (15:29 +0900)]
[NUI] Change the default color of the border.

6 months ago[NUI.Scene3D][API11] Attach matched interop linker for RemoveModelPrimitive
Eunki, Hong [Fri, 24 Nov 2023 07:08:55 +0000 (16:08 +0900)]
[NUI.Scene3D][API11] Attach matched interop linker for RemoveModelPrimitive

Match valid native API for RemoveModelPrimitive

Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
6 months ago[Multimedia] Fix rotation issue for portrait mode (#5766)
Haesu Gwon [Tue, 21 Nov 2023 08:35:32 +0000 (17:35 +0900)]
[Multimedia] Fix rotation issue for portrait mode (#5766)

6 months ago[Multimedia] Fix to set window size properly (#5763)
Haesu Gwon [Tue, 21 Nov 2023 08:04:06 +0000 (17:04 +0900)]
[Multimedia] Fix to set window size properly (#5763)

6 months ago[Multimedia] Fix ASAN crash issue (#5699)
Haesu Gwon [Mon, 6 Nov 2023 08:03:28 +0000 (17:03 +0900)]
[Multimedia] Fix ASAN crash issue (#5699)

* [Multimedia] Fix ASAN crash issue

6 months ago[Applications.WidgetControl] Use Marshal.FreeHGlobal() instead of Lib… (#5629)
kilig [Mon, 13 Nov 2023 01:41:58 +0000 (10:41 +0900)]
[Applications.WidgetControl] Use Marshal.FreeHGlobal() instead of Lib… (#5629)

* [Applications.WidgetControl] Use Marshal.FreeHGlobal() instead of Libc.Free()

Signed-off-by: Inkyun Kil <inkyun.kil@samsung.com>
* [Applications.Cion] Use Marshal.AllocHGlobal() instead of Libc.Malloc()

Signed-off-by: Inkyun Kil <inkyun.kil@samsung.com>
---------

Signed-off-by: Inkyun Kil <inkyun.kil@samsung.com>
Co-authored-by: pjh9216 <jh9216.park@samsung.com>
6 months ago[Bluetooth] Fix ASAN crash issue (#5624)
Wootak Jung [Tue, 24 Oct 2023 03:04:31 +0000 (12:04 +0900)]
[Bluetooth] Fix ASAN crash issue (#5624)

- Use g_free for data allocated by g_malloc

Signed-off-by: Wootak Jung <wootak.jung@samsung.com>
6 months ago[System.Information] Use Marshal.FreeHGlobal() instead of Libc.Free()
Seung-Woo Kim [Wed, 18 Oct 2023 05:31:40 +0000 (14:31 +0900)]
[System.Information] Use Marshal.FreeHGlobal() instead of Libc.Free()

Use Marshal.FreeHGlobal() instead of Libc.Free() for ASAN
environment. Also, remove not any more used Libc.Free() Interop.

In ASAN environment, because Interop uses dlopen(), newly opended
libc causes different libc/asan alloc context from already allocaed
buffer, and it gives segment fault crash when calling Libc.Free().

Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
6 months agoUse Marshal.FreeHGlobal() instead of Libc.Free() (#5636)
hjhun [Wed, 18 Oct 2023 05:38:58 +0000 (14:38 +0900)]
Use Marshal.FreeHGlobal() instead of Libc.Free() (#5636)

Signed-off-by: Hwankyu Jhun <h.jhun@samsung.com>
6 months ago[NUI] Add ModelPivotPoint property
seungho baek [Wed, 15 Nov 2023 14:21:42 +0000 (23:21 +0900)]
[NUI] Add ModelPivotPoint property

Signed-off-by: seungho baek <sbsh.baek@samsung.com>
6 months ago[NUI][API11] Version up 22252
Eunki, Hong [Wed, 15 Nov 2023 02:24:23 +0000 (11:24 +0900)]
[NUI][API11] Version up 22252

Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
6 months ago[NUI] Remove old frame range if we set marker + Minor fix up when marker invalid
Eunki Hong [Tue, 14 Nov 2023 15:39:16 +0000 (00:39 +0900)]
[NUI] Remove old frame range if we set marker + Minor fix up when marker invalid

LottieAnimationView cache both frame range as int, and marker.
But two API set same property - PlayRange.

So if some code like below thing was not working well

```
  // Let "marker" frame range is 10~20

  lottieView.SetMinMaxFrame(30, 40); // play range become 30~40
  lottieView.SetMinMaxFrameByMarker(marker); // play range become 10~20
  lottieView.SetMinMaxFrame(30, 40); // play range need to be 30~40 again, but it didn't due to the cache.
```

To avoid like above case, let we clean cache explicit parameter.

Also, Let we add some more error check if app use invalid marker
(Lottie file not loaded, or marker is invalid.)

In this case, let we just follow minMaxSetTypes.NotSetByUser logic then.

Signed-off-by: Eunki Hong <eunkiki.hong@samsung.com>
6 months ago[NUI.Scene3D] Fix exception when ModelNode don't have ModelNode as child
Eunki, Hong [Tue, 14 Nov 2023 08:17:11 +0000 (17:17 +0900)]
[NUI.Scene3D] Fix exception when ModelNode don't have ModelNode as child

If ModelNode don't have ModelNod as child, it might have
some null handle exception when we DownCast to ModelNode.
(For example, user try to get child ModelNode, but failed.)

Currently, a lots of app don't consider ModelNode now. But in future
we might need to add something under each ModelNode.

To make Scene3D more safety, let we check null or invalidate,
and then get/set the value internally.

Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
6 months ago[NUI] Add AliveCount property to get currently alived View number
dongsug.song [Tue, 14 Nov 2023 13:14:33 +0000 (22:14 +0900)]
[NUI] Add AliveCount property to get currently alived View number

6 months ago[NUI] Support EncodedImageBuffer ImageType property + Upgrade EncodedImageBuffer...
Eunki, Hong [Tue, 14 Nov 2023 03:53:06 +0000 (12:53 +0900)]
[NUI] Support EncodedImageBuffer ImageType property + Upgrade EncodedImageBuffer demo

Let we allow to give the type of buffer s.t. what buffer is mean.
We can load svg and lottie image as encoded image buffer now.

+

Let we make EncodedImageBuffer can be created at worker thread.
And make the demo to load buffer asynchronously.

This patch have dependency with below dali patch :

https://review.tizen.org/gerrit/c/platform/core/uifw/dali-csharp-binder/+/301314

Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
6 months ago[NUI] Change SetMinAndMaxFrameByMarker behavior + Fix some async cases
Eunki, Hong [Tue, 14 Nov 2023 09:25:53 +0000 (18:25 +0900)]
[NUI] Change SetMinAndMaxFrameByMarker behavior + Fix some async cases

Let we allow to call SetMinAndMaxFrameByMarker API even if load is not finished.
Instead, let we just call some log if the file is not loaded yet.

Plus, Some API (GetContentInfo, GetMarkerInfo) might cache wrong values
when we use async load

Before try to get correct value, let we check whether the resource is
loaded or not.

Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
6 months ago[NUI] DetachAccessibleObject at Dispose time well
Eunki, Hong [Fri, 10 Nov 2023 07:53:52 +0000 (16:53 +0900)]
[NUI] DetachAccessibleObject at Dispose time well

There was several problem when we call DaliAccessibilityDetachAccessibleObject
at Dispose(bool) function

 - It will detach accessibility even if view doesn't owned the handle memory
 - Dispose(bool) can be called at worker thread (during GC) so we need to check thread here

I make to DaliAccessibilityDetachAccessibleObject function at Dispose(DisposeTypes)
that we can ensure it called at main thread clearly.

Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
6 months ago[NUI] Fix TotalFrame getter bug when async load
Eunki, Hong [Fri, 10 Nov 2023 10:37:15 +0000 (19:37 +0900)]
[NUI] Fix TotalFrame getter bug when async load

There was some bug when we try to get TotalFrame when async load json file.

DALi engine side default total frame number is 0, and NUI is -1.
So, if we try to get TotalFrame from dali which is still loading, it will
cache the internal total frame as 0. After than, we can never get valid value.

To avoid this problem, we have 2 choice

1. Wait until async load finished, and then get total frame at dali side.
2. Just get 0 for now, and try again when total frame cached as 0.

Solution 1 need some time to resolve it. So now just make 2.

Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
6 months agoAdd Front Buffer Rendering Sample (#5735)
Chihun Jeong [Fri, 10 Nov 2023 08:35:09 +0000 (17:35 +0900)]
Add Front Buffer Rendering Sample (#5735)

Co-authored-by: ANZ1217 <chihun.jeong@samsung.com>
6 months ago[NUI] Remove build warning due to unusing API
Eunki, Hong [Thu, 9 Nov 2023 07:46:28 +0000 (16:46 +0900)]
[NUI] Remove build warning due to unusing API

Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
6 months ago[NUI] Support LottieAnimationView file load asynchronously
Eunki, Hong [Thu, 9 Nov 2023 01:37:38 +0000 (10:37 +0900)]
[NUI] Support LottieAnimationView file load asynchronously

Current LottieAnimationView implement their own ViewCreation logic.

For example, ImageView.ResourceUrl = ~~ didn't change synchronously option.
But LottieAnimationView.ResourceUrl = ~~~ make synchronously option as true hardly.

So, there is no way to make asynchronously load lottie file.

To support it, let we cherry-pick new option of SynchronousLoading.

Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
6 months ago[NUI.XamlBuild] Remove unused event : Element.DescendantAdded / Removed
Eunki, Hong [Tue, 7 Nov 2023 12:58:10 +0000 (21:58 +0900)]
[NUI.XamlBuild] Remove unused event : Element.DescendantAdded / Removed

Those API was useless if we don't need to invoke those events.
And those try to climb-up to parent root every Add / Remove API.

It will spend heavy time if the scene tree is complex.

Those event handerl are internal, and nobody use them.
So just remove codes.

Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
6 months ago[NUI] Support to get Marker list information from lottie
Eunki, Hong [Tue, 7 Nov 2023 11:55:41 +0000 (20:55 +0900)]
[NUI] Support to get Marker list information from lottie

Let we allow to get the list of markers what current lottie image has now.

And also, Implement min/max frame index by marker, which is legacy
feature of VD FLUX code.

Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
6 months ago[NUI] Supports to build ModelNode Tree
seungho baek [Tue, 7 Nov 2023 11:39:44 +0000 (20:39 +0900)]
[NUI] Supports to build ModelNode Tree

Signed-off-by: seungho baek <sbsh.baek@samsung.com>
6 months ago[NUI] Add FrontBufferRendering in WindowData (#5725)
Chihun Jeong [Tue, 7 Nov 2023 12:07:08 +0000 (21:07 +0900)]
[NUI] Add FrontBufferRendering in WindowData (#5725)

* [NUI] Add FrontBufferRendering in WindowData

* Add [EditorBrowsable(EditorBrowsableState.Never)] on every public value

---------

Co-authored-by: ANZ1217 <chihun.jeong@samsung.com>
6 months ago[System.Feedback] Add internal API to support get ids
Yunhee Seo [Wed, 8 Nov 2023 07:07:00 +0000 (16:07 +0900)]
[System.Feedback] Add internal API to support get ids

Allows getting feedback theme id array supported.

This is newly added to System.Feedback.
- public uint[] GetThemeIdsInternal(FeedbackType type)
     -> It returns the available id array defined in the conf file according to feedback type.

Signed-off-by: Yunhee Seo <yuni.seo@samsung.com>
6 months ago[System.Feedback] Change feedback theme api name index to id
Yunhee Seo [Wed, 8 Nov 2023 04:58:33 +0000 (13:58 +0900)]
[System.Feedback] Change feedback theme api name index to id

As policies dealing with feedback themes have changed from index to id-base selection,
API naming also changed from index to id.
Feedback themes are no longer treated sequentially, also not dependent on index.
It is managed through a unique id.

Signed-off-by: Yunhee Seo <yuni.seo@samsung.com>
6 months ago[Build] Modify the script that generates the TFM list (#5703)
JongHeonChoi [Mon, 13 Nov 2023 02:05:32 +0000 (11:05 +0900)]
[Build] Modify the script that generates the TFM list (#5703)

6 months ago[System] Add power internal APIs
Yunhee Seo [Thu, 2 Nov 2023 12:53:34 +0000 (21:53 +0900)]
[System] Add power internal APIs

Allows using native power internal APIs.

These are newly added to System/Device/Power
- public static void ConfirmWaitCallback(UInt64 wait_callback_id)
-> It informs the deviced that it is okay to take actual action to change state.
- public static void CancelWaitCallback(UInt64 wait_callback_id)
-> It informs the deviced of that it needs to undo the current transition.
- public static int ChangeState(PowerState state, int timeout_sec)
-> It Sends a request for changing power state asynchronously with timeout sec.
- public static int CheckRebootAllowed()
-> It checks if reboot is possible on the current device state.
- public static PowerTransitionReason GetWakeupReason()
-> It returns power wake up reason.
- public static PowerLockState GetLockState(PowerLock type)
-> It returns the status of power lock(locked/unlocked).

To notify callback event, 4 types EventHandler is added.
- public static event EventHandler<PowerStateChangeRequestEventArgs> StartStateChangeRequestCallback
- public static event EventHandler<PowerStateChangeRequestEventArgs> NormalStateChangeRequestCallback
- public static event EventHandler<PowerStateChangeRequestEventArgs> SleepStateChangeRequestCallback
- public static event EventHandler<PowerStateChangeRequestEventArgs> PoweroffStateChangeRequestCallback
- public static event EventHandler<PowerStateChangeRequestEventArgs> RebootStateChangeRequestCallback
- public static event EventHandler<PowerStateChangeRequestEventArgs> ExitStateChangeRequestCallback
-> With this eventhandler, it is possible to get event from ChangeState handling.
For example,
1. Add callback event to NormalStateChangeRequestCallback.
2. Request power state change with ChangeState(PowerState.Normal, timeout_sec)
3. After power state change request done, it returns result as invoke callback event.

- public static event EventHandler<PowerStateWaitEventArgs> StartStateWaitCallback
- public static event EventHandler<PowerStateWaitEventArgs> NormalStateWaitCallback
- public static event EventHandler<PowerStateWaitEventArgs> SleepStateWaitCallback
- public static event EventHandler<PowerStateWaitEventArgs> PoweroffStateWaitCallback
- public static event EventHandler<PowerStateWaitEventArgs> RebootStateWaitCallback
- public static event EventHandler<PowerStateWaitEventArgs> ExitStateWaitCallback
-> As adding event callback to above eventhandler, it is possible to get event
    when the power state changes to Specific Power state.
For example,
1. Add callback event to SleepStateWaitCallback.
2. When the power state changes to Sleep state, callback event will be invoked.

- public static event EventHandler<PowerTransientStateWaitEventArgs> TransientResumingEarlyStateWaitCallback
- public static event EventHandler<PowerTransientStateWaitEventArgs> TransientResumingStateWaitCallback
- public static event EventHandler<PowerTransientStateWaitEventArgs> TransientResumingLateStateWaitCallback
- public static event EventHandler<PowerTransientStateWaitEventArgs> TransientSuspendingEarlyStateWaitCallback
- public static event EventHandler<PowerTransientStateWaitEventArgs> TransientSuspendingStateWaitCallback
- public static event EventHandler<PowerTransientStateWaitEventArgs> TransientSuspendingLateStateWaitCallback
-> As adding event callback to above eventhandler, it is possible to get event
    during the power transition.
For example,
1. Add callback event to TransientResumingLateStateWaitCallback.
2. When the power transient state changes to ResumingLate state, callback event will be invoked.

- public static event EventHandler<PowerLockStateChangedEventArgs> CpuLockStateChangedCallback
- public static event EventHandler<PowerLockStateChangedEventArgs> DisplayNormalLockStateChangedCallback
- public static event EventHandler<PowerLockStateChangedEventArgs> DisplayDimLockStateChangedCallback
-> As adding event callback to above eventhandler, it is possible to get event
    when the power lock state is changed.
For example,
1. Add callback event to DisplayNormalLockStateChangedCallback.
2. When the DisplayNormal power lock state is changed, callback event will be invoked.

To use new APIs, below enumeration is also added.
- public enum PowerTransitionReason
-> It represents power transition reason
- public enum PowerState : uint
-> It represents power state.
- public enum PowerTransientState : uint
-> It represents power transient state.
- public enum PowerLockState
-> It represents power lock state locked or unlocked.

Detailed example, information is added to API/EventHandler/Enumeration definition.

Signed-off-by: Yunhee Seo <yuni.seo@samsung.com>
6 months ago[NUI] revert 'Make DaliAccessibilityDetachAccessibleObject called at main thread...
dongsug.song [Tue, 7 Nov 2023 04:15:01 +0000 (13:15 +0900)]
[NUI] revert 'Make DaliAccessibilityDetachAccessibleObject called at main thread' and check native object

6 months ago[NUI] version up (22251)
dongsug.song [Mon, 6 Nov 2023 11:11:33 +0000 (20:11 +0900)]
[NUI] version up (22251)

6 months ago[NUI] Fix some SVACE issues.
zhouhao02 [Tue, 31 Oct 2023 05:11:23 +0000 (13:11 +0800)]
[NUI] Fix some SVACE issues.

6 months ago[NUI] Add a Window constructor using WindowData (#5708)
Chihun Jeong [Fri, 3 Nov 2023 01:41:09 +0000 (10:41 +0900)]
[NUI] Add a Window constructor using WindowData (#5708)

* [NUI] Add a Window constructor using WindowData

* Add Information about WindowData to the summary

---------

Co-authored-by: ANZ1217 <chihun.jeong@samsung.com>
6 months ago[NUI] Remove basehandle usage at Accessibility static
Eunki, Hong [Mon, 30 Oct 2023 05:17:31 +0000 (14:17 +0900)]
[NUI] Remove basehandle usage at Accessibility static

Since we try to resolve some unusual behavior of BaseHandle,
the dummyHandle in Accessibility can give us some confuse logs.

Actually, we don't need to hold it as BaseHandle type. we only need this
as object type. So, let we make it as object, instead of BaseHandle.

Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
6 months ago[NUI] Resolve many problems relative with BaseHandle
Eunki, Hong [Tue, 31 Oct 2023 03:59:36 +0000 (12:59 +0900)]
[NUI] Resolve many problems relative with BaseHandle

 - Ensure to get 'already registered, or create new one' what we get item from DALi engine
 - Let we also ensure create only one items if we use static ::Get() API
 - Do not register to Registry if we copy the reference.
  - Remove some useless copy constructor.
 - Do not register to Registry if we create empty object.

Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
6 months ago[NUI] Do not register when BaseHandle doesn't have body
Eunki, Hong [Thu, 2 Nov 2023 07:44:01 +0000 (16:44 +0900)]
[NUI] Do not register when BaseHandle doesn't have body

If BaseHandle doesn't have body, the refCPtr value is IntPtr.Zero.

If than, the various cases have wrong registration in future.

To avoid this case, let we ignore to register to registry, and
make BaseHandle.registerMe value as false.

Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
6 months ago[NUI] Reinforce NUI Sample for window
Wonsik Jung [Mon, 30 Oct 2023 12:43:30 +0000 (21:43 +0900)]
[NUI] Reinforce NUI Sample for window

Reinforce NUI Sample for window.
It has the sample for testing  window function.

6 months ago[Build] Create a dotnet library dir from the post script (#5710)
JongHeonChoi [Mon, 6 Nov 2023 00:40:08 +0000 (09:40 +0900)]
[Build] Create a dotnet library dir from the post script (#5710)

6 months ago[Build] Set the dotnet_core_runtime_version value to 6.0 (#5705)
JongHeonChoi [Mon, 6 Nov 2023 00:39:44 +0000 (09:39 +0900)]
[Build] Set the dotnet_core_runtime_version value to 6.0 (#5705)

6 months ago[MediaController] Fix CustomCommand crash issue (#5671)
Haesu Gwon [Thu, 2 Nov 2023 05:28:49 +0000 (14:28 +0900)]
[MediaController] Fix CustomCommand crash issue (#5671)

6 months ago[NUI.WindowSystem] Add SetSecondarySelection and UnsetSecondarySelection to fix typo
Junseok Kim [Wed, 1 Nov 2023 05:27:06 +0000 (14:27 +0900)]
[NUI.WindowSystem] Add SetSecondarySelection and UnsetSecondarySelection to fix typo

Add new requests SetSecondarySelection and UnsetSecondarySelection to alternate requests
SetSecondarySelction and UnsetSecondarySelction that have typo.

After all caller that typo requests have been removed, the typo request have been removed.

6 months ago[Build] Fixed an error that could not find the dotnet_resolving.info file (#5701)
JongHeonChoi [Thu, 2 Nov 2023 01:49:52 +0000 (10:49 +0900)]
[Build] Fixed an error that could not find the dotnet_resolving.info file (#5701)

6 months agoUpdate nuspec to add net6.0 group (#5695)
Jay Cho [Thu, 2 Nov 2023 01:49:15 +0000 (10:49 +0900)]
Update nuspec to add net6.0 group (#5695)

6 months agoVersion up nui22250
Taehyub Kim [Mon, 30 Oct 2023 11:14:45 +0000 (20:14 +0900)]
Version up nui22250

6 months agoMake DaliAccessibilityDetachAccessibleObject called at main thread
Eunki, Hong [Mon, 30 Oct 2023 04:49:51 +0000 (13:49 +0900)]
Make DaliAccessibilityDetachAccessibleObject called at main thread

void Dispose(bool) can be called from worker thread, when disposing value is false.

To ensure we detach AccessibileObject in main thread, let we remove it
at Dispose(DisposeTypes), instead of Dispose(bool).

To avoid this kind of error in future, let we remove View.Dispose(bool)
and let we only use Dispose(DisposeTypes).

Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
6 months agoDo not register when we try to copy same handle
Eunki, Hong [Mon, 30 Oct 2023 03:21:46 +0000 (12:21 +0900)]
Do not register when we try to copy same handle

Since we register to registry by BaseObjectPtr(), it is impossible to
register duplicated handle.

So, actually, we have to deplicate copy BaseHandle constructor.
But for now, just make we don't register into registry now.

Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
6 months agoTemperary revert exception throw at Registry.
Eunki, Hong [Mon, 30 Oct 2023 01:42:20 +0000 (10:42 +0900)]
Temperary revert exception throw at Registry.

Until resolve all kind of apps fix wrong behavior,
let we just print error without exception.

Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
6 months agoMake it works on net6.0
Eunki Hong [Thu, 26 Oct 2023 16:48:39 +0000 (01:48 +0900)]
Make it works on net6.0

Signed-off-by: Eunki Hong <eunkiki.hong@samsung.com>
6 months agoResolve DisposeRecursively crashed when we dispose scrollbase
Eunki, Hong [Fri, 27 Oct 2023 09:47:55 +0000 (18:47 +0900)]
Resolve DisposeRecursively crashed when we dispose scrollbase

Due to some app's implements, ContentView can be disposed before ScrollBase
itself disposed. In this case, ContentView is not null.

So, when we try to call RemovePropertyNotification, it become crashed.

To avoid these cases, let we make DisposeRecursively API makes more safety.

And also, fix some crash issue in PerformanceTest1Page.xaml.cs what
can be problem in future.

Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
6 months agoMake NativeImageQueue generate valid url
Eunki Hong [Thu, 26 Oct 2023 10:42:44 +0000 (19:42 +0900)]
Make NativeImageQueue generate valid url

Previously NativeImageQueue.GenerateUrl() binded to
invalid csharp API.

It will make some crash. So let we use valid bind API instead.

Signed-off-by: Eunki Hong <eunkiki.hong@samsung.com>
6 months agoAdd KeepWidgetSize for control widget's size
sunghyun kim [Thu, 26 Oct 2023 02:30:58 +0000 (11:30 +0900)]
Add KeepWidgetSize for control widget's size

WidgetView keep widget instance's size and don't resize even if WidgetView is resized.

6 months agoVersion up nui22249
Eunki, Hong [Wed, 25 Oct 2023 07:32:47 +0000 (16:32 +0900)]
Version up nui22249

Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
6 months agoRemove build warning for Control.Preload()
Eunki Hong [Tue, 24 Oct 2023 14:20:08 +0000 (23:20 +0900)]
Remove build warning for Control.Preload()

We implement View.Preload() API now. So compiler can feel dizzy
which one is Control.Preload() should do.

To avoid this compilation warning, let we add 'new' keyword for it.

Signed-off-by: Eunki Hong <eunkiki.hong@samsung.com>
6 months agoChange Accessibility.cs don't use net6.0 specific function
Eunki, Hong [Tue, 24 Oct 2023 08:26:26 +0000 (17:26 +0900)]
Change Accessibility.cs don't use net6.0 specific function

Let we minimize the net core dependency

Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
6 months agoSupports to set/get full screen sized window
Wonsik Jung [Tue, 24 Oct 2023 07:22:16 +0000 (16:22 +0900)]
Supports to set/get full screen sized window

To support set/get full screen sized window.
The full screen sized window means the window is resized with screen size.
In addition, this window is the z-order is the highest.

6 months agoFlush action implement for LottieAnimationView
Eunki, Hong [Tue, 24 Oct 2023 02:55:19 +0000 (11:55 +0900)]
Flush action implement for LottieAnimationView

Implement Flush action. It will be used when user
want to ensure the Lottie property changed applied sequencly.

Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
6 months agoPreload some static values
Eunki, Hong [Tue, 24 Oct 2023 01:47:09 +0000 (10:47 +0900)]
Preload some static values

Since C# initialize static values when that namespace / class access first time,
We need to access some static values at static Preload() timing.

Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
6 months agoBug fix when we get ModelNode from Model
Eunki, Hong [Mon, 23 Oct 2023 02:50:27 +0000 (11:50 +0900)]
Bug fix when we get ModelNode from Model

Since View constructor automatically change 'PositionUsesPivotPoint' value as false,
some logic might changed when we Register ModelNode newly.

Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
6 months agoAdd an API to set offset for drag window
Taehyub Kim [Wed, 18 Oct 2023 11:07:38 +0000 (20:07 +0900)]
Add an API to set offset for drag window

6 months agoMake View.TooltipText return valid value
Eunki, Hong [Wed, 18 Oct 2023 07:16:27 +0000 (16:16 +0900)]
Make View.TooltipText return valid value

Let we remove useless error message + Make getter return valid setting value
for View.TooltipText property.

Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
6 months agoMake AddFrameUpdateCallback with root view
Eunki, Hong [Wed, 18 Oct 2023 06:17:35 +0000 (15:17 +0900)]
Make AddFrameUpdateCallback with root view

Previously, we can only add the root view of FrameUpdateCallback as
root layer of window.

Now let we add some API that user can set specific view
for given FrameUpdateCallback will use.

This API will be used when we want to optimize callback behaviour.

Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
6 months agoResolve registry issue for RenderTaskList
Eunki, Hong [Tue, 17 Oct 2023 06:24:58 +0000 (15:24 +0900)]
Resolve registry issue for RenderTaskList

After patch #5595 merged, there was some hidden bugs occured.
This PR is one of portential bug fix.

Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
6 months agoFix the SVACE issue.
zhouhao02 [Tue, 17 Oct 2023 02:29:02 +0000 (10:29 +0800)]
Fix the SVACE issue.

6 months agoRemove build warning
Eunki Hong [Sun, 15 Oct 2023 01:13:11 +0000 (10:13 +0900)]
Remove build warning

- Add comment for public API
- Remove some unused private value/method

Signed-off-by: Eunki Hong <eunkiki.hong@samsung.com>
6 months agoResolve registry issue for CanvasView Gradient
Eunki, Hong [Fri, 13 Oct 2023 04:40:56 +0000 (13:40 +0900)]
Resolve registry issue for CanvasView Gradient

Since we always try to register to Registry for Gradient case,
there can make some error for Shape use case.

Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
6 months agoResolve TextLable build warning
Eunki Hong [Thu, 12 Oct 2023 14:51:41 +0000 (23:51 +0900)]
Resolve TextLable build warning

Reference documents : https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/xmldoc/

To refer to XML elements (for example, your function processes specific XML elements that you want to describe in an XML documentation comment), you can use the standard quoting mechanism (&lt; and &gt;).

Signed-off-by: Eunki Hong <eunkiki.hong@samsung.com>
6 months agoFix Registry exception for custom view wrapper
Eunki Hong [Thu, 12 Oct 2023 14:24:45 +0000 (23:24 +0900)]
Fix Registry exception for custom view wrapper

1. PanGesture from Accessibility create new handle in
dali csharp side. We need to have memory ownership, but
don't need to register it on NUI side. We can ignore it.

2. For Animation and StyleManager, it is possible to use
that 'already registered' BaseHandle. But in this case,
we should not dispose it by our self.

Signed-off-by: Eunki Hong <eunkiki.hong@samsung.com>
6 months agoFix some SVACE issues.
zhouhao02 [Wed, 11 Oct 2023 06:05:52 +0000 (14:05 +0800)]
Fix some SVACE issues.

6 months agoFix Accessibility.Say interop
Artur Świgoń [Tue, 10 Oct 2023 16:21:03 +0000 (18:21 +0200)]
Fix Accessibility.Say interop

This is one of the oldest interops and was actually problematic for
multiple reasons; the return type didn't match and the third parameter
was expected to have exactly the same value in every invocation. While
fixing these issues, parsing the status string was moved from C++ to C#
for readability.

6 months agoAdd TextFitArray
Bowon Ryu [Tue, 10 Oct 2023 02:20:47 +0000 (11:20 +0900)]
Add TextFitArray

Add a new function to satisfy the UX that
operates TextFit by considering the PointSize and MinLineSize of the text.

For example, TextFit should be able to find the one that
fits among [PointSize 24 + MinLineSize 40] or [PointSize 28 + MinLineSize 44].

But the previous TextFit only considers PointSize.

TextFitArray can solve this problem,
and this implemented it to respond to additional requirements without modifying the API.

https://review.tizen.org/gerrit/#/c/platform/core/uifw/dali-toolkit/+/299557/
https://review.tizen.org/gerrit/#/c/platform/core/uifw/dali-csharp-binder/+/299690/

Signed-off-by: Bowon Ryu <bowon.ryu@samsung.com>
6 months agorevert default key construct
joogab.yun [Tue, 10 Oct 2023 07:51:35 +0000 (16:51 +0900)]
revert default key construct

refer : https://github.com/Samsung/TizenFX/pull/5589/

6 months agobug fixed about cMemoryOwn refer : https://github.com/Samsung/TizenFX/pull/5603
joogab.yun [Tue, 10 Oct 2023 05:00:31 +0000 (14:00 +0900)]
bug fixed about cMemoryOwn refer : https://github.com/Samsung/TizenFX/pull/5603