From 4e01c9093542a5f8e523d80d119badd13726179d Mon Sep 17 00:00:00 2001 From: newb1e-kim Date: Tue, 28 Apr 2026 13:57:08 +0900 Subject: [PATCH 1/6] [Tizen.Applications] Fix wrong library version deps API13_MR target currently use libiniparser.so.4, not libiniparser.so.1 --- src/Tizen.Applications.Team/Interop/Interop.Libraries.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Tizen.Applications.Team/Interop/Interop.Libraries.cs b/src/Tizen.Applications.Team/Interop/Interop.Libraries.cs index c049ed10861..5831594c9ae 100755 --- a/src/Tizen.Applications.Team/Interop/Interop.Libraries.cs +++ b/src/Tizen.Applications.Team/Interop/Interop.Libraries.cs @@ -22,7 +22,7 @@ internal static partial class Libraries public const string Glib = "libglib-2.0.so.0"; public const string Libc = "libc.so.6"; public const string BaseUtilsi18n = "libbase-utils-i18n.so.0"; - public const string IniParser = "libiniparser.so.1"; + public const string IniParser = "libiniparser.so.4"; public const string AppManager = "libcapi-appfw-app-manager.so.0"; } } From 53ec8a86fa03a943b1068986235dad015d8d5bc1 Mon Sep 17 00:00:00 2001 From: newb1e-kim Date: Tue, 28 Apr 2026 18:32:41 +0900 Subject: [PATCH 2/6] [Tizen.Applications] Remove TeamLoop CreateLib Op & Create Launcher (#7597) * [Tizen.Applications] Remove TeamLoop CreateLib Ops - TeamLoop now use app exec path as dynlib - The operation is not required * [Tizen.Applications] Implement Team Launcher dll - Team Launcher dll will be used as team application launcher Signed-off-by: Jihoi Kim --------- Signed-off-by: Jihoi Kim --- .../Interop/Interop.TeamLoop.cs | 5 -- src/Tizen.Applications.Team/TeamLoop.cs | 36 --------------- .../TeamServiceCoreBackend.cs | 10 +--- .../TeamUICoreBackend.cs | 10 +--- .../TeamViewCoreBackend.cs | 10 +--- .../TeamLauncher.cs | 46 +++++++++++++++++++ .../Tizen.Applications.TeamLauncher.csproj | 12 +++++ 7 files changed, 61 insertions(+), 68 deletions(-) create mode 100644 src/Tizen.Applications.TeamLauncher/TeamLauncher.cs create mode 100644 src/Tizen.Applications.TeamLauncher/Tizen.Applications.TeamLauncher.csproj diff --git a/src/Tizen.Applications.Team/Interop/Interop.TeamLoop.cs b/src/Tizen.Applications.Team/Interop/Interop.TeamLoop.cs index 6a1119295a6..b58c61c7daf 100644 --- a/src/Tizen.Applications.Team/Interop/Interop.TeamLoop.cs +++ b/src/Tizen.Applications.Team/Interop/Interop.TeamLoop.cs @@ -28,8 +28,6 @@ internal static partial class TeamLoop internal delegate IntPtr TeamLoopOpsCreateArgs(IntPtr loadObj); - internal delegate void TeamLoopOpsCreateLibPath([MarshalAs(UnmanagedType.LPStr)] string path, ref IntPtr output); - internal delegate void TeamLoopOpsOnLoopCreate(); internal delegate void TeamLoopOpsOnLoopTerminate(); @@ -50,9 +48,6 @@ internal struct TeamLoopOperations [MarshalAs(UnmanagedType.FunctionPtr)] public TeamLoopOpsCreateArgs CreateArgs; - [MarshalAs(UnmanagedType.FunctionPtr)] - public TeamLoopOpsCreateLibPath CreateLibPath; - [MarshalAs(UnmanagedType.FunctionPtr)] public TeamLoopOpsOnLoopCreate OnLoopCreate; diff --git a/src/Tizen.Applications.Team/TeamLoop.cs b/src/Tizen.Applications.Team/TeamLoop.cs index 09b62f6d4c0..31f1411519e 100644 --- a/src/Tizen.Applications.Team/TeamLoop.cs +++ b/src/Tizen.Applications.Team/TeamLoop.cs @@ -44,7 +44,6 @@ static TeamLoop() _ops.Load = new Interop.TeamLoop.TeamLoopOpsLoad(DoLoad); _ops.Unload = new Interop.TeamLoop.TeamLoopOpsUnload(DoUnload); _ops.CreateArgs = new Interop.TeamLoop.TeamLoopOpsCreateArgs(DoCreateArgs); - _ops.CreateLibPath = new Interop.TeamLoop.TeamLoopOpsCreateLibPath(DoCreateLibPath); _ops.OnLoopCreate = new Interop.TeamLoop.TeamLoopOpsOnLoopCreate(DoOnLoopCreate); _ops.OnLoopTerminate = new Interop.TeamLoop.TeamLoopOpsOnLoopTerminate(DoOnLoopTerminate); } @@ -206,41 +205,6 @@ internal static IntPtr DoCreateArgs(IntPtr loadObj) } } - internal static void DoCreateLibPath(string path, ref IntPtr output) - { - if (string.IsNullOrEmpty(path)) - { - Log.Error(LogTag, "Invalid path: null or empty"); - output = IntPtr.Zero; - return; - } - - int lastDotIndex = path.LastIndexOf('.'); - if (lastDotIndex < 0) - { - Log.Error(LogTag, $"Invalid path format: {path}. Expected format: org.appfw.csteam.{{member_id}}"); - output = IntPtr.Zero; - return; - } - - string memberId = path.Substring(lastDotIndex + 1); - if (string.IsNullOrEmpty(memberId)) - { - Log.Error(LogTag, $"Empty member_id extracted from: {path}"); - output = IntPtr.Zero; - return; - } - - string libPath = $"/usr/share/csteam/dll/{memberId}.dll"; - Log.Info(LogTag, $"Created lib path: {libPath} from {path}"); - - output = Marshal.StringToHGlobalAnsi(libPath); - - if (output == IntPtr.Zero) { - Log.Error(LogTag, "Failed to allocate memory for lib path"); - } - } - /// /// Gets the command line arguments that were passed to . /// diff --git a/src/Tizen.Applications.Team/Tizen.Applications.CoreBackend/TeamServiceCoreBackend.cs b/src/Tizen.Applications.Team/Tizen.Applications.CoreBackend/TeamServiceCoreBackend.cs index 4f688e29708..b8abddb457f 100644 --- a/src/Tizen.Applications.Team/Tizen.Applications.CoreBackend/TeamServiceCoreBackend.cs +++ b/src/Tizen.Applications.Team/Tizen.Applications.CoreBackend/TeamServiceCoreBackend.cs @@ -81,15 +81,7 @@ public override void Run(string[] args) // base.Run() is not required. if (!TeamManager.IsInit()) { - string[] argsClone = new string[args == null ? 1 : args.Length + 1]; - if (args != null && args.Length > 1) - { - args.CopyTo(argsClone, 1); - } - argsClone[0] = "Tizen.Applications.Team.dll"; - - TeamManager.Init(argsClone); - Log.Info("DN_TAM", $"Launching Team Loop."); + Log.Error("DN_TAM", $"Team Loop is not running!. Launch app via launcher."); return; } diff --git a/src/Tizen.Applications.Team/Tizen.Applications.CoreBackend/TeamUICoreBackend.cs b/src/Tizen.Applications.Team/Tizen.Applications.CoreBackend/TeamUICoreBackend.cs index 45e06f4f7d7..9dc69523c5d 100644 --- a/src/Tizen.Applications.Team/Tizen.Applications.CoreBackend/TeamUICoreBackend.cs +++ b/src/Tizen.Applications.Team/Tizen.Applications.CoreBackend/TeamUICoreBackend.cs @@ -108,15 +108,7 @@ public override void Run(string[] args) // base.Run() is not required. if (!TeamManager.IsInit()) { - string[] argsClone = new string[args == null ? 1 : args.Length + 1]; - if (args != null && args.Length > 1) - { - args.CopyTo(argsClone, 1); - } - argsClone[0] = "Tizen.Applications.Team.dll"; - - TeamManager.Init(argsClone); - Log.Info("DN_TAM", $"Launching Team Loop."); + Log.Error("DN_TAM", $"Team Loop is not running!. Launch app via launcher."); return; } diff --git a/src/Tizen.Applications.Team/Tizen.Applications.CoreBackend/TeamViewCoreBackend.cs b/src/Tizen.Applications.Team/Tizen.Applications.CoreBackend/TeamViewCoreBackend.cs index dbffc71a4bb..087d818fcb6 100644 --- a/src/Tizen.Applications.Team/Tizen.Applications.CoreBackend/TeamViewCoreBackend.cs +++ b/src/Tizen.Applications.Team/Tizen.Applications.CoreBackend/TeamViewCoreBackend.cs @@ -108,15 +108,7 @@ public override void Run(string[] args) // base.Run() is not required. if (!TeamManager.IsInit()) { - string[] argsClone = new string[args == null ? 1 : args.Length + 1]; - if (args != null && args.Length > 1) - { - args.CopyTo(argsClone, 1); - } - argsClone[0] = "Tizen.Applications.Team.dll"; - - TeamManager.Init(argsClone); - Log.Info("DN_TAM", $"Launching Team Loop."); + Log.Error("DN_TAM", $"Team Loop is not running!. Launch app via launcher."); return; } diff --git a/src/Tizen.Applications.TeamLauncher/TeamLauncher.cs b/src/Tizen.Applications.TeamLauncher/TeamLauncher.cs new file mode 100644 index 00000000000..e1520349e6e --- /dev/null +++ b/src/Tizen.Applications.TeamLauncher/TeamLauncher.cs @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2026 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Reflection; +using System.Runtime.Loader; +using Tizen.NUI.BaseComponents; + +namespace Tizen.Applications +{ + internal static class TeamLauncher{ + static void Main(string[] args) + { + if(!TeamManager.IsInit()) + { + Log.Info("TeamLauncher", $"Loop Start"); + string[] argsClone = new string[args == null ? 1 : args.Length + 1]; + if (args != null && args.Length > 1) + { + args.CopyTo(argsClone, 1); + } + argsClone[0] = "Tizen.Applications.TeamLauncher.dll"; + TeamManager.Init(argsClone); + } + else + { + Log.Info("TeamLauncher", $"Loop is already running"); + } + } + } +} \ No newline at end of file diff --git a/src/Tizen.Applications.TeamLauncher/Tizen.Applications.TeamLauncher.csproj b/src/Tizen.Applications.TeamLauncher/Tizen.Applications.TeamLauncher.csproj new file mode 100644 index 00000000000..2c65066ba36 --- /dev/null +++ b/src/Tizen.Applications.TeamLauncher/Tizen.Applications.TeamLauncher.csproj @@ -0,0 +1,12 @@ + + + + net8.0 + Exe + + + + + + + \ No newline at end of file From dfb88042f72ec07eec9b1bd7f0df88b6320cf398 Mon Sep 17 00:00:00 2001 From: newb1e-kim Date: Tue, 12 May 2026 09:59:37 +0900 Subject: [PATCH 3/6] [Tizen.Applications] Implement TeamApplication Base Class * [Tizen.Applications] Move Files, Remove unrequired deps * [Tizen.Applications] Use NUIApplicationInitializer in init step * [Tizen.Applications] Add UIApp Interfaces * [Tizen.Applications] Apply IApplicationInfo and IDirectoryInfo * [Tizen.Applications] Apply IUIApplication in TeamCoreUiApplication * [Tizen.Applications] Implement IUiApplication.Current * [Tizen.Applications] Add GetApplication methods to TeamManager * [Tizen.Applications] Remove Unneccessary Impl * [Tizen.Applications] Add Stacktrace Print in TeamApplication * [Tizen.Applications] Fix Resume/Pause EventHandler * [Tizen.NUI] Apply IUIApplication interfaces to NUIApplication Signed-off-by: Jihoi Kim --- src/Tizen.Applications.Common/AssemblyAttr.cs | 28 ++ .../IUICoreBackend.cs | 53 ++ .../Tizen.Applications/ApplicationInfo.cs | 2 +- .../Tizen.Applications/DirectoryInfo.cs | 2 +- .../Tizen.Applications/IApplicationInfo.cs | 176 +++++++ .../Tizen.Applications/IDirectoryInfo.cs | 149 ++++++ .../CultureInfoHelper.cs | 58 --- src/Tizen.Applications.Team/GSourceManager.cs | 92 ---- .../Interop/Interop.ApplicationManager.cs | 476 ++++-------------- .../Interop/Interop.BaseUtilsi18n.cs | 54 -- .../Interop/Interop.Glib.cs | 40 -- .../Interop/Interop.IniParser.cs | 33 -- .../Interop/Interop.Libc.cs | 27 - .../Interop/Interop.Libraries.cs | 19 +- .../Interop/Interop.TeamLoop.cs | 50 +- .../Interop/Interop.TeamManager.cs | 137 ++--- .../Interop/Interop.TeamMember.cs | 162 +++--- .../ResourceControl.cs | 67 --- .../SystemLocaleConverter.cs | 349 ------------- .../TeamCoreUiApplication.cs | 111 ---- .../TeamCoreBackend.cs | 4 +- .../TeamServiceCoreBackend.cs | 13 +- .../TeamUICoreBackend.cs | 130 ++++- .../TeamViewCoreBackend.cs | 16 +- .../Tizen.Applications.Team.csproj | 3 +- .../Tizen.Applications.Team.sln | 45 ++ .../TeamApplication.cs | 0 .../TeamApplicationInfo.cs | 2 +- .../TeamCoreApplication.cs | 19 - .../TeamCoreUiApplication.cs | 268 ++++++++++ .../TeamDirectoryInfo.cs | 2 +- .../{ => Tizen.Applications}/TeamLoop.cs | 19 +- .../{ => Tizen.Applications}/TeamManager.cs | 95 ++++ .../TeamServiceApplication.cs | 0 .../TeamUiApplication.cs | 9 +- .../TeamViewApplication.cs | 0 .../TeamLauncher.cs | 2 +- .../Tizen.Applications.TeamLauncher.csproj | 2 +- .../Tizen.Applications.TeamLauncher.sln | 51 ++ .../Tizen.Applications/IUIApplication.cs | 277 ++++++++++ src/Tizen.NUI/Tizen.NUI.csproj | 1 + .../internal/Application/NUICoreBackend.cs | 2 +- .../src/public/Application/NUIApplication.cs | 124 ++++- 43 files changed, 1712 insertions(+), 1457 deletions(-) create mode 100644 src/Tizen.Applications.Common/AssemblyAttr.cs create mode 100644 src/Tizen.Applications.Common/Tizen.Applications.CoreBackend/IUICoreBackend.cs create mode 100644 src/Tizen.Applications.Common/Tizen.Applications/IApplicationInfo.cs create mode 100644 src/Tizen.Applications.Common/Tizen.Applications/IDirectoryInfo.cs delete mode 100644 src/Tizen.Applications.Team/CultureInfoHelper.cs delete mode 100644 src/Tizen.Applications.Team/GSourceManager.cs delete mode 100644 src/Tizen.Applications.Team/Interop/Interop.BaseUtilsi18n.cs delete mode 100644 src/Tizen.Applications.Team/Interop/Interop.Glib.cs delete mode 100644 src/Tizen.Applications.Team/Interop/Interop.IniParser.cs delete mode 100644 src/Tizen.Applications.Team/Interop/Interop.Libc.cs delete mode 100644 src/Tizen.Applications.Team/ResourceControl.cs delete mode 100644 src/Tizen.Applications.Team/SystemLocaleConverter.cs delete mode 100644 src/Tizen.Applications.Team/TeamCoreUiApplication.cs create mode 100644 src/Tizen.Applications.Team/Tizen.Applications.Team.sln rename src/Tizen.Applications.Team/{ => Tizen.Applications}/TeamApplication.cs (100%) rename src/Tizen.Applications.Team/{ => Tizen.Applications}/TeamApplicationInfo.cs (99%) rename src/Tizen.Applications.Team/{ => Tizen.Applications}/TeamCoreApplication.cs (96%) create mode 100644 src/Tizen.Applications.Team/Tizen.Applications/TeamCoreUiApplication.cs rename src/Tizen.Applications.Team/{ => Tizen.Applications}/TeamDirectoryInfo.cs (99%) rename src/Tizen.Applications.Team/{ => Tizen.Applications}/TeamLoop.cs (89%) rename src/Tizen.Applications.Team/{ => Tizen.Applications}/TeamManager.cs (75%) rename src/Tizen.Applications.Team/{ => Tizen.Applications}/TeamServiceApplication.cs (100%) rename src/Tizen.Applications.Team/{ => Tizen.Applications}/TeamUiApplication.cs (86%) rename src/Tizen.Applications.Team/{ => Tizen.Applications}/TeamViewApplication.cs (100%) create mode 100644 src/Tizen.Applications.TeamLauncher/Tizen.Applications.TeamLauncher.sln create mode 100644 src/Tizen.Applications.UI/Tizen.Applications/IUIApplication.cs diff --git a/src/Tizen.Applications.Common/AssemblyAttr.cs b/src/Tizen.Applications.Common/AssemblyAttr.cs new file mode 100644 index 00000000000..7de83ac117c --- /dev/null +++ b/src/Tizen.Applications.Common/AssemblyAttr.cs @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2026 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System.Runtime.CompilerServices; + +[assembly: InternalsVisibleTo("Tizen.Applications.Team, " + PublicKey.Value)] + +internal static class PublicKey +{ + internal const string Value = + "PublicKey=0024000004800000940000000602000000240000525341310004000001000100d115b100424841" + + "6b12d21b626cfb17149c9303fe394693fd3b32d7872e89559a4fa96c98110c2e62eea48aca693b" + + "ddbe17094ca8ea2e2cd79970ca590fb672b9b371b5d7002076817321f62d6483ea50c56dbd1f37" + + "b185a4c24c47718876e6ae6d266508c551170d4cbdda3f82edaff9405ee3d7857282d8269e8e518d2f0fb2"; +} \ No newline at end of file diff --git a/src/Tizen.Applications.Common/Tizen.Applications.CoreBackend/IUICoreBackend.cs b/src/Tizen.Applications.Common/Tizen.Applications.CoreBackend/IUICoreBackend.cs new file mode 100644 index 00000000000..4da1ff371a4 --- /dev/null +++ b/src/Tizen.Applications.Common/Tizen.Applications.CoreBackend/IUICoreBackend.cs @@ -0,0 +1,53 @@ +/* + * Copyright (c) 2026 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System; +using System.ComponentModel; +using Tizen.Applications.CoreBackend; + +namespace Tizen.Applications.CoreBackend +{ + /// + /// Defines the common contract for NUI-based application backends. + /// + /// + /// This interface abstracts the shared functionality between NUICoreBackend + /// and TeamUICoreBackend, enabling polymorphic access to event handler registration. + /// + /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + public interface IUICoreBackend : IDisposable + { + /// + /// Adds an event handler for the specified event type. + /// + /// The type of event. + /// The handler method without arguments. + /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + void AddEventHandler(EventType evType, Action handler); + + /// + /// Adds an event handler for the specified event type with typed event arguments. + /// + /// The type used in the handler method. + /// The type of event. + /// The handler method with a type argument. + /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + void AddEventHandler(EventType evType, Action handler) where TEventArgs : EventArgs; + } +} \ No newline at end of file diff --git a/src/Tizen.Applications.Common/Tizen.Applications/ApplicationInfo.cs b/src/Tizen.Applications.Common/Tizen.Applications/ApplicationInfo.cs index 24e060cb0b8..23352250d90 100644 --- a/src/Tizen.Applications.Common/Tizen.Applications/ApplicationInfo.cs +++ b/src/Tizen.Applications.Common/Tizen.Applications/ApplicationInfo.cs @@ -24,7 +24,7 @@ namespace Tizen.Applications /// This class provides methods and properties to get information of the application. /// /// 3 - public class ApplicationInfo : IDisposable + public class ApplicationInfo : IDisposable, IApplicationInfo { private const string LogTag = "Tizen.Applications"; private bool _disposed = false; diff --git a/src/Tizen.Applications.Common/Tizen.Applications/DirectoryInfo.cs b/src/Tizen.Applications.Common/Tizen.Applications/DirectoryInfo.cs index d9ba67bdf8f..b47333ad551 100644 --- a/src/Tizen.Applications.Common/Tizen.Applications/DirectoryInfo.cs +++ b/src/Tizen.Applications.Common/Tizen.Applications/DirectoryInfo.cs @@ -24,7 +24,7 @@ namespace Tizen.Applications /// Represents directory information of the application. /// /// 3 - public class DirectoryInfo + public class DirectoryInfo : IDirectoryInfo { private string _dataPath; private string _cachePath; diff --git a/src/Tizen.Applications.Common/Tizen.Applications/IApplicationInfo.cs b/src/Tizen.Applications.Common/Tizen.Applications/IApplicationInfo.cs new file mode 100644 index 00000000000..cfc9952265c --- /dev/null +++ b/src/Tizen.Applications.Common/Tizen.Applications/IApplicationInfo.cs @@ -0,0 +1,176 @@ +/* + * Copyright (c) 2026 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System; +using System.Collections.Generic; +using System.ComponentModel; + +namespace Tizen.Applications +{ + /// + /// Defines the common contract for application information. + /// + /// + /// This interface abstracts the shared properties between + /// and . + /// + /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + public interface IApplicationInfo : IDisposable + { + /// + /// Gets the application ID. + /// + /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + string ApplicationId { get; } + + /// + /// Gets the package ID of the application. + /// + /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + string PackageId { get; } + + /// + /// Gets the label of the application. + /// + /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + string Label { get; } + + /// + /// Gets the executable path of the application. + /// + /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + string ExecutablePath { get; } + + /// + /// Gets the absolute path to the icon image. + /// + /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + string IconPath { get; } + + /// + /// Gets the application type name. + /// + /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + string ApplicationType { get; } + + /// + /// Gets the application component type. + /// + /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + ApplicationComponentType ComponentType { get; } + + /// + /// Gets the application's metadata. + /// + /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + IDictionary Metadata { get; } + + /// + /// Gets a value indicating whether the application is not displayed on the launcher. + /// + /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + bool IsNoDisplay { get; } + + /// + /// Gets a value indicating whether the application is launched automatically on system boot. + /// + /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + bool IsOnBoot { get; } + + /// + /// Gets a value indicating whether the application is preloaded on the device. + /// + /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + bool IsPreload { get; } + + /// + /// Gets the categories the application belongs to. + /// + /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + IEnumerable Categories { get; } + + /// + /// Gets the shared data path. + /// + /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + string SharedDataPath { get; } + + /// + /// Gets the shared resource path. + /// + /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + string SharedResourcePath { get; } + + /// + /// Gets the shared trusted path. + /// + /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + string SharedTrustedPath { get; } + + /// + /// Gets the external shared data path. + /// + /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + string ExternalSharedDataPath { get; } + + /// + /// Gets the resource controls. + /// + /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + IEnumerable ResourceControls { get; } + + /// + /// Gets the common shared data path. + /// + /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + string CommonSharedDataPath { get; } + + /// + /// Gets the common shared trusted path. + /// + /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + string CommonSharedTrustedPath { get; } + + /// + /// Gets the localized label of the application for the given locale. + /// + /// The locale string. + /// The localized label string. + /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + string GetLocalizedLabel(string locale); + } +} \ No newline at end of file diff --git a/src/Tizen.Applications.Common/Tizen.Applications/IDirectoryInfo.cs b/src/Tizen.Applications.Common/Tizen.Applications/IDirectoryInfo.cs new file mode 100644 index 00000000000..7e7afc491ad --- /dev/null +++ b/src/Tizen.Applications.Common/Tizen.Applications/IDirectoryInfo.cs @@ -0,0 +1,149 @@ +/* + * Copyright (c) 2026 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System; +using System.ComponentModel; + +namespace Tizen.Applications +{ + /// + /// Defines the common contract for directory information. + /// + /// + /// This interface abstracts the shared properties between + /// and . + /// + /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + public interface IDirectoryInfo + { + /// + /// Gets the absolute path to the application's data directory. + /// + /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + string Data { get; } + + /// + /// Gets the absolute path to the application's cache directory. + /// + /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + string Cache { get; } + + /// + /// Gets the absolute path to the application resource directory. + /// + /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + string Resource { get; } + + /// + /// Gets the absolute path to the application's shared data directory. + /// + /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + string SharedData { get; } + + /// + /// Gets the absolute path to the application's shared resource directory. + /// + /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + string SharedResource { get; } + + /// + /// Gets the absolute path to the application's shared trusted directory. + /// + /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + string SharedTrusted { get; } + + /// + /// Gets the absolute path to the application's external data directory. + /// + /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + string ExternalData { get; } + + /// + /// Gets the absolute path to the application's external cache directory. + /// + /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + string ExternalCache { get; } + + /// + /// Gets the absolute path to the application's external shared data directory. + /// + /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + string ExternalSharedData { get; } + + /// + /// Gets the absolute path to the application's TEP(Tizen Expansion Package) directory. + /// + /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + string ExpansionPackageResource { get; } + + /// + /// Gets the absolute path to the application's common data directory. + /// + /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + string CommonData { get; } + + /// + /// Gets the absolute path to the application's common cache directory. + /// + /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + string CommonCache { get; } + + /// + /// Gets the absolute path to the application's common shared data directory. + /// + /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + string CommonSharedData { get; } + + /// + /// Gets the absolute path to the application's common shared trusted directory. + /// + /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + string CommonSharedTrusted { get; } + + /// + /// Gets the absolute path to the resource directory allowed by resource control for the given resource type. + /// + /// The resource type. + /// The path to the allowed resource directory. + /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + string GetResourceControlAllowedResource(string resourceType); + + /// + /// Gets the absolute path to the global resource directory by resource control for the given resource type. + /// + /// The resource type. + /// The path to the global resource directory. + /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + string GetResourceControlGlobalResource(string resourceType); + } +} \ No newline at end of file diff --git a/src/Tizen.Applications.Team/CultureInfoHelper.cs b/src/Tizen.Applications.Team/CultureInfoHelper.cs deleted file mode 100644 index 5ca0e624ac1..00000000000 --- a/src/Tizen.Applications.Team/CultureInfoHelper.cs +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (c) 2026 Samsung Electronics Co., Ltd All Rights Reserved - * - * Licensed under the Apache License, Version 2.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -using System; -using System.IO; -using System.Runtime.InteropServices; - -namespace Tizen.Applications -{ - /// - /// Resolves culture names from the platform-provided CultureInfo INI file. - /// - internal static class CultureInfoHelper - { - private const string _pathCultureInfoIni = "/usr/share/dotnet.tizen/framework/i18n/CultureInfo.ini"; - private static bool _fileExists = File.Exists(_pathCultureInfoIni); - - public static string GetCultureName(string locale) - { - if (!_fileExists) - { - return string.Empty; - } - - IntPtr dictionary = Interop.LibIniParser.Load(_pathCultureInfoIni); - if (dictionary == IntPtr.Zero) - { - return string.Empty; - } - - string cultureName = string.Empty; -#pragma warning disable CA1308 - string key = "CultureInfo:" + locale.ToLowerInvariant(); -#pragma warning restore CA1308 - IntPtr value = Interop.LibIniParser.GetString(dictionary, key, IntPtr.Zero); - if (value != IntPtr.Zero) - { - cultureName = Marshal.PtrToStringAnsi(value); - } - - Interop.LibIniParser.FreeDict(dictionary); - return cultureName; - } - } -} \ No newline at end of file diff --git a/src/Tizen.Applications.Team/GSourceManager.cs b/src/Tizen.Applications.Team/GSourceManager.cs deleted file mode 100644 index d7b1358621e..00000000000 --- a/src/Tizen.Applications.Team/GSourceManager.cs +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright (c) 2026 Samsung Electronics Co., Ltd All Rights Reserved - * - * Licensed under the Apache License, Version 2.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -using System; -using System.Collections.Concurrent; - -namespace Tizen.Applications -{ - /// - /// Posts actions onto the GLib main loop used by the Team application. - /// - internal static class GSourceManager - { - private static readonly GSourceContext _tizenContext = new GSourceContext(); - private static readonly GSourceContext _tizenUIContext = new GSourceContext(); - private static readonly Interop.Glib.GSourceFunc _wrapperHandler = new Interop.Glib.GSourceFunc(Handler); - - public static void Post(Action action) - { - IntPtr context = IntPtr.Zero; - var sourceContext = context == IntPtr.Zero ? _tizenContext : _tizenUIContext; - sourceContext.Post(action, context, _wrapperHandler); - } - - private static bool Handler(IntPtr userData) - { - var sourceContext = userData == IntPtr.Zero ? _tizenContext : _tizenUIContext; - return sourceContext.ProcessQueue(); - } - } - - /// - /// Holds the GLib source state and action queue for a single main loop context. - /// - internal class GSourceContext - { - private readonly ConcurrentQueue _actionQueue = new ConcurrentQueue(); - private readonly object _lock = new object(); - private IntPtr _source = IntPtr.Zero; - - public void Post(Action action, IntPtr context, Interop.Glib.GSourceFunc handler) - { - _actionQueue.Enqueue(action); - - lock (_lock) - { - if (_source != IntPtr.Zero) - { - return; - } - - _source = Interop.Glib.IdleSourceNew(); - Interop.Glib.SourceSetCallback(_source, handler, context, IntPtr.Zero); - _ = Interop.Glib.SourceAttach(_source, context); - Interop.Glib.SourceUnref(_source); - } - } - - public bool ProcessQueue() - { - if (_actionQueue.TryDequeue(out var action)) - { - action?.Invoke(); - } - - lock (_lock) - { - if (!_actionQueue.IsEmpty) - { - return true; - } - - _source = IntPtr.Zero; - } - - return false; - } - } -} \ No newline at end of file diff --git a/src/Tizen.Applications.Team/Interop/Interop.ApplicationManager.cs b/src/Tizen.Applications.Team/Interop/Interop.ApplicationManager.cs index 24d37b61319..3fd89a07227 100755 --- a/src/Tizen.Applications.Team/Interop/Interop.ApplicationManager.cs +++ b/src/Tizen.Applications.Team/Interop/Interop.ApplicationManager.cs @@ -16,389 +16,105 @@ using System; using System.Runtime.InteropServices; - using Tizen.Internals; -internal static partial class Interop -{ - internal static partial class ApplicationManager +namespace Tizen.Applications { + internal static partial class Interop { - internal enum ErrorCode - { - None = Tizen.Internals.Errors.ErrorCode.None, - InvalidParameter = Tizen.Internals.Errors.ErrorCode.InvalidParameter, - OutOfMemory = Tizen.Internals.Errors.ErrorCode.OutOfMemory, - IoError = Tizen.Internals.Errors.ErrorCode.IoError, - NoSuchApp = -0x01110000 | 0x01, - DbFailed = -0x01110000 | 0x03, - InvalidPackage = -0x01110000 | 0x04, - AppNoRunning = -0x01110000 | 0x05, - RequestFailed = -0x01110000 | 0x06, - PermissionDenied = Tizen.Internals.Errors.ErrorCode.PermissionDenied - } - - internal enum AppContextEvent - { - Launched = 0, - Terminated = 1 - } - - internal enum AppManagerEventStatusType - { - All = 0x00, - Enable = 0x01, - Disable = 0x02 - } - - internal enum AppManagerEventType - { - Enable = 0, - Disable = 1 - } - - internal enum AppManagerEventState + internal static partial class ApplicationManager { - Started = 0, - Completed = 1, - Failed = 2 + internal enum ErrorCode + { + None = Tizen.Internals.Errors.ErrorCode.None, + InvalidParameter = Tizen.Internals.Errors.ErrorCode.InvalidParameter, + OutOfMemory = Tizen.Internals.Errors.ErrorCode.OutOfMemory, + IoError = Tizen.Internals.Errors.ErrorCode.IoError, + NoSuchApp = -0x01110000 | 0x01, + DbFailed = -0x01110000 | 0x03, + InvalidPackage = -0x01110000 | 0x04, + AppNoRunning = -0x01110000 | 0x05, + RequestFailed = -0x01110000 | 0x06, + PermissionDenied = Tizen.Internals.Errors.ErrorCode.PermissionDenied + } + + internal enum AppInfoAppComponentType + { + UiApp = 0, + ServiceApp = 1, + WidgetApp = 2, + WatchApp = 3 + } + + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] + internal delegate bool AppInfoMetadataCallback(string key, string value, IntPtr userData); + //bool(* app_info_metadata_cb )(const char *metadata_key, const char *metadata_value, void *user_data) + + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] + internal delegate bool AppInfoCategoryCallback(string category, IntPtr userData); + //bool (*app_info_category_cb) (const char *category, void *user_data) + + internal delegate bool AppInfoResControlCallback(string resType, string minResVersion, string maxResVersion, string autoClose, IntPtr userUdata); + //bool (*app_info_res_control_cb) (const char *res_type, const char *min_res_version, const char *max_res_version, const char *auto_close, void *user_data); + + [DllImport(Libraries.AppManager, EntryPoint = "app_manager_get_app_info")] + internal static extern ErrorCode AppManagerGetAppInfo(string applicationId, out IntPtr handle); + //int app_manager_get_app_info(const char * app_id, app_info_h * app_info) + + [DllImport(Libraries.AppManager, EntryPoint = "app_info_destroy")] + internal static extern ErrorCode AppInfoDestroy(IntPtr handle); + //int app_info_destroy (app_info_h app_info); + + [DllImport(Libraries.AppManager, EntryPoint = "app_info_get_package")] + internal static extern ErrorCode AppInfoGetPackage(IntPtr handle, out string package); + //int app_info_get_package (app_info_h app_info, char **package) + + [DllImport(Libraries.AppManager, EntryPoint = "app_info_get_label")] + internal static extern ErrorCode AppInfoGetLabel(IntPtr handle, out string label); + //int app_info_get_label (app_info_h app_info, char **label); + + [DllImport(Libraries.AppManager, EntryPoint = "app_info_get_exec")] + internal static extern ErrorCode AppInfoGetExec(IntPtr handle, out string exec); + //int app_info_get_exec (app_info_h app_info, char **exec); + + [DllImport(Libraries.AppManager, EntryPoint = "app_info_get_icon")] + internal static extern ErrorCode AppInfoGetIcon(IntPtr handle, out string path); + //int app_info_get_icon (app_info_h app_info, char **path) + + [DllImport(Libraries.AppManager, EntryPoint = "app_info_get_type")] + internal static extern ErrorCode AppInfoGetType(IntPtr handle, out string type); + //int app_info_get_type (app_info_h app_info, char **type) + + [DllImport(Libraries.AppManager, EntryPoint = "app_info_get_app_component_type")] + internal static extern ErrorCode AppInfoGetAppComponentType(IntPtr handle, out AppInfoAppComponentType type); + //int app_info_get_app_component_type(app_info_h app_info, app_info_app_component_type_e *type) + + [DllImport(Libraries.AppManager, EntryPoint = "app_info_foreach_metadata")] + internal static extern ErrorCode AppInfoForeachMetadata(IntPtr handle, AppInfoMetadataCallback callback, IntPtr userData); + //int app_info_foreach_metadata(app_info_h app_info, app_info_metadata_cb callback, void *user_data) + + [DllImport(Libraries.AppManager, EntryPoint = "app_info_is_nodisplay")] + internal static extern ErrorCode AppInfoIsNodisplay(IntPtr handle, out bool noDisplay); + //int app_info_is_nodisplay (app_info_h app_info, bool *nodisplay) + + [DllImport(Libraries.AppManager, EntryPoint = "app_info_is_onboot")] + internal static extern ErrorCode AppInfoIsOnBoot(IntPtr handle, out bool onBoot); + //int app_info_is_onboot (app_info_h app_info, bool *onboot) + + [DllImport(Libraries.AppManager, EntryPoint = "app_info_is_preload")] + internal static extern ErrorCode AppInfoIsPreLoad(IntPtr handle, out bool preLoaded); + //int app_info_is_preload (app_info_h app_info, bool *preload) + + [DllImport(Libraries.AppManager, EntryPoint = "app_info_foreach_category")] + internal static extern ErrorCode AppInfoForeachCategory(IntPtr handle, AppInfoCategoryCallback callback, IntPtr userData); + //int app_info_foreach_category(app_info_h app_info, app_info_category_cb callback, void *user_data) + + [DllImport(Libraries.AppManager, EntryPoint = "app_info_get_localed_label")] + internal static extern ErrorCode AppInfoGetLocaledLabel(string applicationId, string locale, out string label); + //int app_info_get_localed_label (const char *app_id, const char *locale, char **label); + + [DllImport(Libraries.AppManager, EntryPoint = "app_info_foreach_res_control")] + internal static extern ErrorCode AppInfoForeachResControl(IntPtr handle, AppInfoResControlCallback callback, IntPtr userData); } - - internal enum AppInfoAppComponentType - { - UiApp = 0, - ServiceApp = 1, - WidgetApp = 2, - WatchApp = 3 - } - - internal enum AppLifecycleState - { - Initialized = 0, - Created = 1, - Resumed = 2, - Paused = 3, - Destroyed = 4 - } - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - internal delegate void AppManagerLifecycleStateChangedCallback(string appId, int pid, AppLifecycleState state, bool hasFocus, IntPtr userData); - //void (*app_manager_lifecycle_state_changed_cb)(const char *app_id, pid_t pid, app_manager_lifecycle_state_e state, bool has_focus, void *user_data) - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - internal delegate void AppManagerEventCallback(string appType, string appId, AppManagerEventType eventType, AppManagerEventState eventState, IntPtr eventHandle, IntPtr userData); - //void(* app_manager_event_cb)(const char *type, const char *app_id, app_manager_event_type_e event_type, app_manager_event_state_e event_state, app_manager_event_h handle, void *user_data) - - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - internal delegate void AppManagerAppContextEventCallback(IntPtr handle, AppContextEvent state, IntPtr userData); - //void(* app_manager_app_context_event_cb)(app_context_h app_context, app_context_event_e event, void *user_data) - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - internal delegate bool AppManagerAppInfoCallback(IntPtr handle, IntPtr userData); - //bool(* app_manager_app_info_cb )(app_info_h app_info, void *user_data) - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - internal delegate bool AppManagerAppContextCallback(IntPtr handle, IntPtr userData); - //bool(* app_manager_app_context_cb)(app_context_h app_context, void *user_data) - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - internal delegate bool AppInfoFilterCallback(IntPtr handle, IntPtr userData); - //bool(* app_info_filter_cb )(app_info_h app_info, void *user_data) - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - internal delegate bool AppInfoMetadataCallback(string key, string value, IntPtr userData); - //bool(* app_info_metadata_cb )(const char *metadata_key, const char *metadata_value, void *user_data) - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - internal delegate bool AppInfoCategoryCallback(string category, IntPtr userData); - //bool (*app_info_category_cb) (const char *category, void *user_data) - - internal delegate bool AppInfoResControlCallback(string resType, string minResVersion, string maxResVersion, string autoClose, IntPtr userUdata); - //bool (*app_info_res_control_cb) (const char *res_type, const char *min_res_version, const char *max_res_version, const char *auto_close, void *user_data); - - [DllImport(Libraries.AppManager, EntryPoint = "app_manager_set_app_context_event_cb")] - internal static extern ErrorCode AppManagerSetAppContextEvent(AppManagerAppContextEventCallback callback, IntPtr userData); - //int app_manager_set_app_context_event_cb( app_manager_app_context_event_cb callback, void * user_data) - - [DllImport(Libraries.AppManager, EntryPoint = "app_manager_unset_app_context_event_cb")] - internal static extern void AppManagerUnSetAppContextEvent(); - //void app_manager_unset_app_context_event_cb (void); - - [DllImport(Libraries.AppManager, EntryPoint = "app_manager_set_lifecycle_state_changed_cb")] - internal static extern ErrorCode AppManagerSetLifecycleStateChangedCb(AppManagerLifecycleStateChangedCallback callback, IntPtr userData); - //int app_manager_set_lifecycle_state_changed_cb(app_manager_lifecycle_state_changed_cb callback, void *user_data) - - [DllImport(Libraries.AppManager, EntryPoint = "app_manager_unset_lifecycle_state_changed_cb")] - internal static extern void AppManagerUnsetLifecycleStateChangedCb(); - //void app_manager_unset_lifecycle_state_changed_cb(void) - - [DllImport(Libraries.AppManager, EntryPoint = "app_manager_add_lifecycle_state_changed_cb")] - internal static extern ErrorCode AppManagerAddLifecycleStateChangedCb( - AppManagerLifecycleStateChangedCallback callback, IntPtr userData, out IntPtr handle); - // int app_manager_add_lifecycle_state_changed_cb(app_manager_lifecycle_state_changed_cb callback, - // void *user_data, app_manager_lifecycle_noti_h *handle) - - [DllImport(Libraries.AppManager, EntryPoint = "app_manager_remove_lifecycle_state_changed_cb")] - internal static extern ErrorCode AppManagerRemoveLifecycleStateChangedCb(IntPtr handle); - // int app_manager_remove_lifecycle_state_changed_cb(app_manager_lifecycle_noti_h handle) - - [DllImport(Libraries.AppManager, EntryPoint = "app_manager_foreach_running_app_context")] - internal static extern ErrorCode AppManagerForeachRunningAppContext(AppManagerAppContextCallback callback, IntPtr userData); - //int app_manager_foreach_running_app_context(app_manager_app_context_cb callback, void *user_data) - - [DllImport(Libraries.AppManager, EntryPoint = "app_manager_foreach_app_context")] - internal static extern ErrorCode AppManagerForeachAppContext(AppManagerAppContextCallback callback, IntPtr userData); - //int app_manager_foreach_app_context(app_manager_app_context_cb callback, void *user_data) - - [DllImport(Libraries.AppManager, EntryPoint = "app_manager_get_app_context")] - internal static extern ErrorCode AppManagerGetAppContext(string applicationId, out IntPtr handle); - //int app_manager_get_app_context(const char* app_id, app_context_h *app_context); - - [DllImport(Libraries.AppManager, EntryPoint = "app_manager_get_app_id")] - internal static extern ErrorCode AppManagerGetAppId(int processId, out string applicationId); - //int app_manager_get_app_id (pid_t pid, char **appid); - - [DllImport(Libraries.AppManager, EntryPoint = "app_manager_is_running")] - internal static extern ErrorCode AppManagerIsRunning(string applicationId, out bool running); - //int app_manager_is_running (const char *appid, bool *running); - - [DllImport(Libraries.AppManager, EntryPoint = "app_manager_resume_app")] - internal static extern ErrorCode AppManagerResumeApp(IntPtr handle); - //int app_manager_resume_app (app_context_h handle); - - [DllImport(Libraries.AppManager, EntryPoint = "app_manager_request_terminate_bg_app")] - internal static extern ErrorCode AppManagerRequestTerminateBgApp(IntPtr handle); - //int app_manager_request_terminate_bg_app (app_context_h handle); - - [DllImport(Libraries.AppManager, EntryPoint = "app_manager_foreach_app_info")] - internal static extern ErrorCode AppManagerForeachAppInfo(AppManagerAppInfoCallback callback, IntPtr userData); - //int app_manager_foreach_app_info(app_manager_app_info_cb callback, void *user_data) - - [DllImport(Libraries.AppManager, EntryPoint = "app_manager_get_app_info")] - internal static extern ErrorCode AppManagerGetAppInfo(string applicationId, out IntPtr handle); - //int app_manager_get_app_info(const char * app_id, app_info_h * app_info) - - [DllImport(Libraries.AppManager, EntryPoint = "app_manager_get_shared_data_path")] - internal static extern ErrorCode AppManagerGetSharedDataPath(string applicationId, out string path); - //int app_manager_get_shared_data_path (const char *appid, char **path); - - [DllImport(Libraries.AppManager, EntryPoint = "app_manager_get_shared_resource_path")] - internal static extern ErrorCode AppManagerGetSharedResourcePath(string applicationId, out string path); - //int app_manager_get_shared_resource_path (const char *appid, char **path); - - [DllImport(Libraries.AppManager, EntryPoint = "app_manager_get_shared_trusted_path")] - internal static extern ErrorCode AppManagerGetSharedTrustedPath(string applicationId, out string path); - //int app_manager_get_shared_trusted_path (const char *appid, char **path); - - [DllImport(Libraries.AppManager, EntryPoint = "app_manager_get_common_shared_data_path")] - internal static extern ErrorCode AppManagerGetCommonSharedDataPath(string applicationId, out string path); - //int app_manager_get_common_shared_data_path (const char *appid, char **path); - - [DllImport(Libraries.AppManager, EntryPoint = "app_manager_get_common_shared_trusted_path")] - internal static extern ErrorCode AppManagerGetCommonSharedTrustedPath(string applicationId, out string path); - //int app_manager_get_common_shared_trusted_path (const char *appid, char **path); - - [DllImport(Libraries.AppManager, EntryPoint = "app_manager_get_external_shared_data_path")] - internal static extern ErrorCode AppManagerGetExternalSharedDataPath(string applicationId, out string path); - //int app_manager_get_external_shared_data_path (const char *appid, char **path); - - [DllImport(Libraries.AppManager, EntryPoint = "app_manager_event_create")] - internal static extern ErrorCode AppManagerEventCreate(out IntPtr handle); - //int app_manager_event_create (app_manager_event_h *handle); - - [DllImport(Libraries.AppManager, EntryPoint = "app_manager_event_set_status")] - internal static extern ErrorCode AppManagerEventSetStatus(IntPtr handle, AppManagerEventStatusType statusType); - //int app_manager_event_set_status (app_manager_event_h handle, int status_type); - - [DllImport(Libraries.AppManager, EntryPoint = "app_manager_set_event_cb")] - internal static extern ErrorCode AppManagerSetEventCallback(IntPtr handle, AppManagerEventCallback callback, IntPtr userData); - //int app_manager_set_event_cb (app_manager_event_h handle, app_manager_event_cb callback, void *user_data); - - [DllImport(Libraries.AppManager, EntryPoint = "app_manager_unset_event_cb")] - internal static extern ErrorCode AppManagerUnSetEventCallback(IntPtr handle); - //int app_manager_unset_event_cb (app_manager_event_h handle); - - [DllImport(Libraries.AppManager, EntryPoint = "app_manager_event_destroy")] - internal static extern ErrorCode AppManagerEventDestroy(IntPtr handle); - //int app_manager_event_destroy (app_manager_event_h handle); - - [DllImport(Libraries.AppManager, EntryPoint = "app_manager_terminate_app")] - internal static extern ErrorCode AppManagerTerminateApp(IntPtr handle); - //int app_manager_terminate_app (app_context_h app_context); - - [DllImport(Libraries.AppManager, EntryPoint = "app_manager_terminate_app_without_restarting")] - internal static extern ErrorCode AppManagerTerminateAppWithoutRestarting(IntPtr handle); - //int app_manager_terminate_app_without_restarting (app_context_h app_context); - - [DllImport(Libraries.AppManager, EntryPoint = "app_manager_get_app_context_by_instance_id")] - internal static extern ErrorCode AppManagerGetAppContextByInstanceId(string applicationId, string instanceId, out IntPtr handle); - //int app_manager_get_app_context_by_instance_id (const char *app_id, const char *instance_id, app_context_h *app_context); - - [DllImport(Libraries.AppManager, EntryPoint = "app_manager_attach_window")] - internal static extern ErrorCode AppManagerAttachWindow(string parentAppId, string childAppId); - //int app_manager_attach_window(const char *parent_app_id, const char *child_app_id); - - [DllImport(Libraries.AppManager, EntryPoint = "app_manager_detach_window")] - internal static extern ErrorCode AppManagerDetachWindow(string applicationId); - //int app_manager_detach_window(const char *app_id); - - [DllImport(Libraries.AppManager, EntryPoint = "app_manager_attach_window_below")] - internal static extern ErrorCode AppManagerAttachWindowBelow(string parentAppId, string childAppId); - //int app_manager_attach_window_below(const char *parent_app_id, const char *child_app_id); - - [DllImport(Libraries.AppManager, EntryPoint = "app_manager_request_remount_subsession")] - internal static extern ErrorCode AppManagerRequestRemountSubsession(string subsessionId); - //int app_manager_request_remount_subsession(const char *subsession_id); - - [DllImport(Libraries.AppManager, EntryPoint = "app_context_destroy")] - internal static extern ErrorCode AppContextDestroy(IntPtr handle); - //int app_context_destroy(app_context_h app_context) - - [DllImport(Libraries.AppManager, EntryPoint = "app_context_get_app_id")] - internal static extern ErrorCode AppContextGetAppId(IntPtr handle, out string applicationId); - //int app_context_get_app_id(app_context_h app_context, char **app_id) - - [DllImport(Libraries.AppManager, EntryPoint = "app_context_get_package_id")] - internal static extern ErrorCode AppContextGetPackageId(IntPtr handle, out string packageId); - //int app_context_get_package_id(app_context_h app_context, char **package_id) - - [DllImport(Libraries.AppManager, EntryPoint = "app_context_get_pid")] - internal static extern ErrorCode AppContextGetPid(IntPtr handle, out int processId); - //int app_context_get_pid (app_context_h app_context, pid_t *pid) - - [DllImport(Libraries.AppManager, EntryPoint = "app_context_get_app_state")] - internal static extern ErrorCode AppContextGetAppState(IntPtr handle, out int state); - //int app_context_get_app_state (app_context_h app_context, app_state_e *state) - - [DllImport(Libraries.AppManager, EntryPoint = "app_context_is_terminated")] - internal static extern ErrorCode AppContextIsTerminated(IntPtr handle, out bool terminated); - //int app_context_is_terminated (app_context_h app_context, bool *terminated); - - [DllImport(Libraries.AppManager, EntryPoint = "app_context_is_equal")] - internal static extern ErrorCode AppContextIsEqual(IntPtr first, IntPtr second, out bool equal); - //int app_context_is_equal (app_context_h lhs, app_context_h rhs, bool *equal); - - [DllImport(Libraries.AppManager, EntryPoint = "app_context_is_sub_app")] - internal static extern ErrorCode AppContextIsSubApp(IntPtr handle, out bool is_sub_app); - //int app_context_is_sub_app (app_context_h app_context, bool *is_sub_app); - - [DllImport(Libraries.AppManager, EntryPoint = "app_context_clone")] - internal static extern ErrorCode AppContextClone(out IntPtr destination, IntPtr source); - //int app_context_clone (app_context_h *clone, app_context_h app_context); - - [DllImport(Libraries.AppManager, EntryPoint = "app_info_create")] - internal static extern ErrorCode AppInfoCreate(string applicationId, out IntPtr handle); - //int app_info_create (const char *app_id, app_info_h *app_info); - - [DllImport(Libraries.AppManager, EntryPoint = "app_info_destroy")] - internal static extern ErrorCode AppInfoDestroy(IntPtr handle); - //int app_info_destroy (app_info_h app_info); - - [DllImport(Libraries.AppManager, EntryPoint = "app_info_get_app_id")] - internal static extern ErrorCode AppInfoGetAppId(IntPtr handle, out string applicationId); - //int app_info_get_app_id (app_info_h app_info, char **app_id); - - [DllImport(Libraries.AppManager, EntryPoint = "app_info_get_exec")] - internal static extern ErrorCode AppInfoGetExec(IntPtr handle, out string exec); - //int app_info_get_exec (app_info_h app_info, char **exec); - - [DllImport(Libraries.AppManager, EntryPoint = "app_info_get_label")] - internal static extern ErrorCode AppInfoGetLabel(IntPtr handle, out string label); - //int app_info_get_label (app_info_h app_info, char **label); - - [DllImport(Libraries.AppManager, EntryPoint = "app_info_get_localed_label")] - internal static extern ErrorCode AppInfoGetLocaledLabel(string applicationId, string locale, out string label); - //int app_info_get_localed_label (const char *app_id, const char *locale, char **label); - - [DllImport(Libraries.AppManager, EntryPoint = "app_info_get_icon")] - internal static extern ErrorCode AppInfoGetIcon(IntPtr handle, out string path); - //int app_info_get_icon (app_info_h app_info, char **path) - - [DllImport(Libraries.AppManager, EntryPoint = "app_info_get_package")] - internal static extern ErrorCode AppInfoGetPackage(IntPtr handle, out string package); - //int app_info_get_package (app_info_h app_info, char **package) - - [DllImport(Libraries.AppManager, EntryPoint = "app_info_get_type")] - internal static extern ErrorCode AppInfoGetType(IntPtr handle, out string type); - //int app_info_get_type (app_info_h app_info, char **type) - - [DllImport(Libraries.AppManager, EntryPoint = "app_info_get_app_component_type")] - internal static extern ErrorCode AppInfoGetAppComponentType(IntPtr handle, out AppInfoAppComponentType type); - //int app_info_get_app_component_type(app_info_h app_info, app_info_app_component_type_e *type) - - [DllImport(Libraries.AppManager, EntryPoint = "app_info_foreach_metadata")] - internal static extern ErrorCode AppInfoForeachMetadata(IntPtr handle, AppInfoMetadataCallback callback, IntPtr userData); - //int app_info_foreach_metadata(app_info_h app_info, app_info_metadata_cb callback, void *user_data) - - [DllImport(Libraries.AppManager, EntryPoint = "app_info_is_nodisplay")] - internal static extern ErrorCode AppInfoIsNodisplay(IntPtr handle, out bool noDisplay); - //int app_info_is_nodisplay (app_info_h app_info, bool *nodisplay) - - [DllImport(Libraries.AppManager, EntryPoint = "app_info_is_equal")] - internal static extern ErrorCode AppInfoIsEqual(IntPtr first, IntPtr second, out bool equal); - //int app_info_is_equal (app_info_h lhs, app_info_h rhs, bool *equal) - - [DllImport(Libraries.AppManager, EntryPoint = "app_info_is_enabled")] - internal static extern ErrorCode AppInfoIsEnabled(IntPtr handle, out bool enabled); - //int app_info_is_enabled (app_info_h app_info, bool *enabled) - - [DllImport(Libraries.AppManager, EntryPoint = "app_info_is_onboot")] - internal static extern ErrorCode AppInfoIsOnBoot(IntPtr handle, out bool onBoot); - //int app_info_is_onboot (app_info_h app_info, bool *onboot) - - [DllImport(Libraries.AppManager, EntryPoint = "app_info_is_preload")] - internal static extern ErrorCode AppInfoIsPreLoad(IntPtr handle, out bool preLoaded); - //int app_info_is_preload (app_info_h app_info, bool *preload) - - [DllImport(Libraries.AppManager, EntryPoint = "app_info_clone")] - internal static extern ErrorCode AppInfoClone(out IntPtr destination, IntPtr source); - //int app_info_clone(app_info_h * clone, app_info_h app_info) - - [DllImport(Libraries.AppManager, EntryPoint = "app_info_foreach_category")] - internal static extern ErrorCode AppInfoForeachCategory(IntPtr handle, AppInfoCategoryCallback callback, IntPtr userData); - //int app_info_foreach_category(app_info_h app_info, app_info_category_cb callback, void *user_data) - - [DllImport(Libraries.AppManager, EntryPoint = "app_info_filter_create")] - internal static extern ErrorCode AppInfoFilterCreate(out IntPtr handle); - //int app_info_filter_create(app_info_filter_h * handle) - - [DllImport(Libraries.AppManager, EntryPoint = "app_info_filter_destroy")] - internal static extern ErrorCode AppInfoFilterDestroy(IntPtr handle); - //int app_info_filter_destroy(app_info_filter_h handle) - - [DllImport(Libraries.AppManager, EntryPoint = "app_info_filter_add_bool")] - internal static extern ErrorCode AppInfoFilterAddBool(IntPtr handle, string property, bool value); - //int app_info_filter_add_bool(app_info_filter_h handle, const char *property, const bool value) - - [DllImport(Libraries.AppManager, EntryPoint = "app_info_filter_add_string")] - internal static extern ErrorCode AppInfoFilterAddString(IntPtr handle, string property, string value); - //int app_info_filter_add_string(app_info_filter_h handle, const char *property, const char *value) - - [DllImport(Libraries.AppManager, EntryPoint = "app_info_filter_count_appinfo")] - internal static extern ErrorCode AppInfoFilterCountAppinfo(IntPtr handle, out int count); - //int app_info_filter_count_appinfo(app_info_filter_h handle, int *count) - - [DllImport(Libraries.AppManager, EntryPoint = "app_info_filter_foreach_appinfo")] - internal static extern ErrorCode AppInfoFilterForeachAppinfo(IntPtr handle, AppInfoFilterCallback callback, IntPtr userData); - //int app_info_filter_foreach_appinfo(app_info_filter_h handle, app_info_filter_cb callback, void * user_data) - - [DllImport(Libraries.AppManager, EntryPoint = "app_info_metadata_filter_create")] - internal static extern ErrorCode AppInfoMetadataFilterCreate(out IntPtr handle); - //int app_info_metadata_filter_create (app_info_metadata_filter_h *handle) - - [DllImport(Libraries.AppManager, EntryPoint = "app_info_metadata_filter_destroy")] - internal static extern ErrorCode AppInfoMetadataFilterDestroy(IntPtr handle); - //int app_info_metadata_filter_destroy (app_info_metadata_filter_h handle) - - [DllImport(Libraries.AppManager, EntryPoint = "app_info_metadata_filter_add")] - internal static extern ErrorCode AppInfoMetadataFilterAdd(IntPtr handle, string key, string value); - //int app_info_metadata_filter_add (app_info_metadata_filter_h handle, const char *key, const char *value) - - [DllImport(Libraries.AppManager, EntryPoint = "app_info_metadata_filter_foreach")] - internal static extern ErrorCode AppInfoMetadataFilterForeach(IntPtr handle, AppInfoFilterCallback callback, IntPtr userData); - //int app_info_metadata_filter_foreach (app_info_metadata_filter_h handle, app_info_filter_cb callback, void *user_data) - - [DllImport(Libraries.AppManager, EntryPoint = "app_info_foreach_res_control")] - internal static extern ErrorCode AppInfoForeachResControl(IntPtr handle, AppInfoResControlCallback callback, IntPtr userData); } -} + +} \ No newline at end of file diff --git a/src/Tizen.Applications.Team/Interop/Interop.BaseUtilsi18n.cs b/src/Tizen.Applications.Team/Interop/Interop.BaseUtilsi18n.cs deleted file mode 100644 index 1bf2e6b9c32..00000000000 --- a/src/Tizen.Applications.Team/Interop/Interop.BaseUtilsi18n.cs +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (c) 2026 Samsung Electronics Co., Ltd All Rights Reserved - * - * Licensed under the Apache License, Version 2.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -using System; -using System.Collections.Generic; -using System.Runtime.InteropServices; -using System.Text; - -internal static partial class Interop -{ - internal static partial class BaseUtilsi18n - { - [DllImport(Libraries.BaseUtilsi18n, EntryPoint = "i18n_ulocale_canonicalize")] - internal static extern Int32 Canonicalize(string localeID, [Out] StringBuilder name, Int32 nameCapacity); - // int32_t i18n_ulocale_canonicalize(const char *locale_id, char *name, int32_t name_capacity); - - [DllImport(Libraries.BaseUtilsi18n, EntryPoint = "i18n_ulocale_get_language")] - internal static extern int GetLanguage(string localeID, [Out] StringBuilder language, Int32 languageCapacity, out int bufSizeLanguage); - // int i18n_ulocale_get_language(const char *locale_id, char *language, int32_t language_capacity, int32_t *buf_size_language); - - [DllImport(Libraries.BaseUtilsi18n, EntryPoint = "i18n_ulocale_get_script")] - internal static extern Int32 GetScript(string localeID, [Out] StringBuilder script, Int32 scriptCapacity); - // int32_t i18n_ulocale_get_script(const char *locale_id, char *script, int32_t script_capacity); - - [DllImport(Libraries.BaseUtilsi18n, EntryPoint = "i18n_ulocale_get_country")] - internal static extern Int32 GetCountry(string localeID, [Out] StringBuilder country, Int32 countryCapacity, out int err); - // int32_t i18n_ulocale_get_country(const char *locale_id, char *country, int32_t country_capacity, int *error); - - [DllImport(Libraries.BaseUtilsi18n, EntryPoint = "i18n_ulocale_get_variant")] - internal static extern Int32 GetVariant(string localeID, [Out] StringBuilder variant, Int32 variantCapacity); - // int32_t i18n_ulocale_get_variant(const char *locale_id, char *variant, int32_t variant_capacity); - - [DllImport(Libraries.BaseUtilsi18n, EntryPoint = "i18n_ulocale_get_lcid")] - internal static extern UInt32 GetLCID(string localeID); - // uint32_t i18n_ulocale_get_lcid(const char *locale_id); - - [DllImport(Libraries.BaseUtilsi18n, EntryPoint = "i18n_ulocale_get_default")] - internal static extern int GetDefault(out IntPtr localeID); - // int i18n_ulocale_get_default(const char **locale); - } -} \ No newline at end of file diff --git a/src/Tizen.Applications.Team/Interop/Interop.Glib.cs b/src/Tizen.Applications.Team/Interop/Interop.Glib.cs deleted file mode 100644 index 79e4cbc98cf..00000000000 --- a/src/Tizen.Applications.Team/Interop/Interop.Glib.cs +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (c) 2026 Samsung Electronics Co., Ltd All Rights Reserved - * - * Licensed under the Apache License, Version 2.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - -using System; -using System.Runtime.InteropServices; - -internal static partial class Interop -{ - internal static partial class Glib - { - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - internal delegate bool GSourceFunc(IntPtr userData); - - [DllImport(Libraries.Glib, EntryPoint = "g_idle_source_new", CallingConvention = CallingConvention.Cdecl)] - internal static extern IntPtr IdleSourceNew(); - - [DllImport(Libraries.Glib, EntryPoint = "g_source_set_callback", CallingConvention = CallingConvention.Cdecl)] - internal static extern void SourceSetCallback(IntPtr source, GSourceFunc func, IntPtr data, IntPtr notify); - - [DllImport(Libraries.Glib, EntryPoint = "g_source_attach", CallingConvention = CallingConvention.Cdecl)] - internal static extern uint SourceAttach(IntPtr source, IntPtr context); - - [DllImport(Libraries.Glib, EntryPoint = "g_source_unref", CallingConvention = CallingConvention.Cdecl)] - internal static extern void SourceUnref(IntPtr source); - } -} \ No newline at end of file diff --git a/src/Tizen.Applications.Team/Interop/Interop.IniParser.cs b/src/Tizen.Applications.Team/Interop/Interop.IniParser.cs deleted file mode 100644 index 7173a2ee185..00000000000 --- a/src/Tizen.Applications.Team/Interop/Interop.IniParser.cs +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (c) 2026 Samsung Electronics Co., Ltd All Rights Reserved - * - * Licensed under the Apache License, Version 2.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -using System; -using System.Runtime.InteropServices; - -internal static partial class Interop -{ - internal static partial class LibIniParser - { - [DllImport(Libraries.IniParser, EntryPoint = "iniparser_getstring", CallingConvention = CallingConvention.Cdecl)] - internal static extern IntPtr GetString(IntPtr d, string key, IntPtr def); - - [DllImport(Libraries.IniParser, EntryPoint = "iniparser_load", CallingConvention = CallingConvention.Cdecl)] - internal static extern IntPtr Load(string iniName); - - [DllImport(Libraries.IniParser, EntryPoint = "iniparser_freedict", CallingConvention = CallingConvention.Cdecl)] - internal static extern void FreeDict(IntPtr d); - } -} \ No newline at end of file diff --git a/src/Tizen.Applications.Team/Interop/Interop.Libc.cs b/src/Tizen.Applications.Team/Interop/Interop.Libc.cs deleted file mode 100644 index e7609f1f25d..00000000000 --- a/src/Tizen.Applications.Team/Interop/Interop.Libc.cs +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved - * - * Licensed under the Apache License, Version 2.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -using System; -using System.Runtime.InteropServices; - -internal static partial class Interop -{ - internal static partial class Libc - { - [DllImport(Libraries.Libc, EntryPoint = "getenv")] - internal static extern IntPtr GetEnvironmentVariable(string name); - } -} \ No newline at end of file diff --git a/src/Tizen.Applications.Team/Interop/Interop.Libraries.cs b/src/Tizen.Applications.Team/Interop/Interop.Libraries.cs index 5831594c9ae..c1328c2d382 100755 --- a/src/Tizen.Applications.Team/Interop/Interop.Libraries.cs +++ b/src/Tizen.Applications.Team/Interop/Interop.Libraries.cs @@ -14,15 +14,14 @@ * limitations under the License. */ -internal static partial class Interop -{ - internal static partial class Libraries +namespace Tizen.Applications { + internal static partial class Interop { - public const string TeamLib = "libteam-application.so.1"; - public const string Glib = "libglib-2.0.so.0"; - public const string Libc = "libc.so.6"; - public const string BaseUtilsi18n = "libbase-utils-i18n.so.0"; - public const string IniParser = "libiniparser.so.4"; - public const string AppManager = "libcapi-appfw-app-manager.so.0"; + internal static partial class Libraries + { + public const string TeamLib = "libteam-application.so.1"; + public const string AppManager = "libcapi-appfw-app-manager.so.0"; + } } -} + +} \ No newline at end of file diff --git a/src/Tizen.Applications.Team/Interop/Interop.TeamLoop.cs b/src/Tizen.Applications.Team/Interop/Interop.TeamLoop.cs index b58c61c7daf..41275ed761a 100644 --- a/src/Tizen.Applications.Team/Interop/Interop.TeamLoop.cs +++ b/src/Tizen.Applications.Team/Interop/Interop.TeamLoop.cs @@ -18,41 +18,43 @@ using System.Runtime.InteropServices; using Tizen.Internals; -internal static partial class Interop -{ - internal static partial class TeamLoop +namespace Tizen.Applications { + internal static partial class Interop { - internal delegate IntPtr TeamLoopOpsLoad([MarshalAs(UnmanagedType.LPStr)] string path); + internal static partial class TeamLoop + { + internal delegate IntPtr TeamLoopOpsLoad([MarshalAs(UnmanagedType.LPStr)] string path); - internal delegate void TeamLoopOpsUnload(IntPtr loadObj); + internal delegate void TeamLoopOpsUnload(IntPtr loadObj); - internal delegate IntPtr TeamLoopOpsCreateArgs(IntPtr loadObj); + internal delegate IntPtr TeamLoopOpsCreateArgs(IntPtr loadObj); - internal delegate void TeamLoopOpsOnLoopCreate(); + internal delegate void TeamLoopOpsOnLoopCreate(); - internal delegate void TeamLoopOpsOnLoopTerminate(); + internal delegate void TeamLoopOpsOnLoopTerminate(); - [DllImport(Libraries.TeamLib, EntryPoint = "team_app_main")] - internal static extern int Main(int argc, string[] argv, TeamLoopOperations ops); + [DllImport(Libraries.TeamLib, EntryPoint = "team_app_main")] + internal static extern int Main(int argc, string[] argv, TeamLoopOperations ops); - [NativeStruct("team_launcher_operation_s", Include="team_common.h", PkgConfig="team-application")] - [StructLayout(LayoutKind.Sequential)] - internal struct TeamLoopOperations - { - [MarshalAs(UnmanagedType.FunctionPtr)] - public TeamLoopOpsLoad Load; + [NativeStruct("team_launcher_operation_s", Include="team_common.h", PkgConfig="team-application")] + [StructLayout(LayoutKind.Sequential)] + internal struct TeamLoopOperations + { + [MarshalAs(UnmanagedType.FunctionPtr)] + public TeamLoopOpsLoad Load; - [MarshalAs(UnmanagedType.FunctionPtr)] - public TeamLoopOpsUnload Unload; + [MarshalAs(UnmanagedType.FunctionPtr)] + public TeamLoopOpsUnload Unload; - [MarshalAs(UnmanagedType.FunctionPtr)] - public TeamLoopOpsCreateArgs CreateArgs; + [MarshalAs(UnmanagedType.FunctionPtr)] + public TeamLoopOpsCreateArgs CreateArgs; - [MarshalAs(UnmanagedType.FunctionPtr)] - public TeamLoopOpsOnLoopCreate OnLoopCreate; + [MarshalAs(UnmanagedType.FunctionPtr)] + public TeamLoopOpsOnLoopCreate OnLoopCreate; - [MarshalAs(UnmanagedType.FunctionPtr)] - public TeamLoopOpsOnLoopTerminate OnLoopTerminate; + [MarshalAs(UnmanagedType.FunctionPtr)] + public TeamLoopOpsOnLoopTerminate OnLoopTerminate; + } } } } \ No newline at end of file diff --git a/src/Tizen.Applications.Team/Interop/Interop.TeamManager.cs b/src/Tizen.Applications.Team/Interop/Interop.TeamManager.cs index a4663a1da20..c5908dca27b 100644 --- a/src/Tizen.Applications.Team/Interop/Interop.TeamManager.cs +++ b/src/Tizen.Applications.Team/Interop/Interop.TeamManager.cs @@ -19,100 +19,103 @@ using Tizen.Internals; using Tizen.Internals.Errors; -internal static partial class Interop -{ - internal static partial class TeamManager + +namespace Tizen.Applications { + internal static partial class Interop { - internal enum TeamAppErrorCode + internal static partial class TeamManager { - None = ErrorCode.None, - InvalidParameter = ErrorCode.InvalidParameter, - OutOfMemory = ErrorCode.OutOfMemory, - InvalidContext = -0x01100000 | 0x01, - AlreadyExist = ErrorCode.FileExists, - AlreadyRunning = ErrorCode.AlreadyInProgress, - NoSuchMember = ErrorCode.NoSuchFile, - IOError = ErrorCode.IoError, - NotSupported = ErrorCode.NotSupported, - } + internal enum TeamAppErrorCode + { + None = ErrorCode.None, + InvalidParameter = ErrorCode.InvalidParameter, + OutOfMemory = ErrorCode.OutOfMemory, + InvalidContext = -0x01100000 | 0x01, + AlreadyExist = ErrorCode.FileExists, + AlreadyRunning = ErrorCode.AlreadyInProgress, + NoSuchMember = ErrorCode.NoSuchFile, + IOError = ErrorCode.IoError, + NotSupported = ErrorCode.NotSupported, + } - [DllImport(Libraries.TeamLib, EntryPoint = "create_wl2_window_by_id")] - internal static extern IntPtr CreateWl2WindowById(int wl2WinId); + [DllImport(Libraries.TeamLib, EntryPoint = "create_wl2_window_by_id")] + internal static extern IntPtr CreateWl2WindowById(int wl2WinId); - [DllImport(Libraries.TeamLib, EntryPoint = "team_app_get_data_path")] - internal static extern TeamAppErrorCode TeamAppGetDataPath(IntPtr memberHandle, out string path); + [DllImport(Libraries.TeamLib, EntryPoint = "team_app_get_data_path")] + internal static extern TeamAppErrorCode TeamAppGetDataPath(IntPtr memberHandle, out string path); - [DllImport(Libraries.TeamLib, EntryPoint = "team_app_get_cache_path")] - internal static extern TeamAppErrorCode TeamAppGetCachePath(IntPtr memberHandle, out string path); + [DllImport(Libraries.TeamLib, EntryPoint = "team_app_get_cache_path")] + internal static extern TeamAppErrorCode TeamAppGetCachePath(IntPtr memberHandle, out string path); - [DllImport(Libraries.TeamLib, EntryPoint = "team_app_get_resource_path")] - internal static extern TeamAppErrorCode TeamAppGetResourcePath(IntPtr memberHandle, out string path); + [DllImport(Libraries.TeamLib, EntryPoint = "team_app_get_resource_path")] + internal static extern TeamAppErrorCode TeamAppGetResourcePath(IntPtr memberHandle, out string path); - [DllImport(Libraries.TeamLib, EntryPoint = "team_app_get_tep_resource_path")] - internal static extern TeamAppErrorCode TeamAppGetTepResourcePath(IntPtr memberHandle, out string path); + [DllImport(Libraries.TeamLib, EntryPoint = "team_app_get_tep_resource_path")] + internal static extern TeamAppErrorCode TeamAppGetTepResourcePath(IntPtr memberHandle, out string path); - [DllImport(Libraries.TeamLib, EntryPoint = "team_app_get_shared_data_path")] - internal static extern TeamAppErrorCode TeamAppGetSharedDataPath(IntPtr memberHandle, out string path); + [DllImport(Libraries.TeamLib, EntryPoint = "team_app_get_shared_data_path")] + internal static extern TeamAppErrorCode TeamAppGetSharedDataPath(IntPtr memberHandle, out string path); - [DllImport(Libraries.TeamLib, EntryPoint = "team_app_get_shared_resource_path")] - internal static extern TeamAppErrorCode TeamAppGetSharedResourcePath(IntPtr memberHandle, out string path); + [DllImport(Libraries.TeamLib, EntryPoint = "team_app_get_shared_resource_path")] + internal static extern TeamAppErrorCode TeamAppGetSharedResourcePath(IntPtr memberHandle, out string path); - [DllImport(Libraries.TeamLib, EntryPoint = "team_app_get_shared_trusted_path")] - internal static extern TeamAppErrorCode TeamAppGetSharedTrustedPath(IntPtr memberHandle, out string path); + [DllImport(Libraries.TeamLib, EntryPoint = "team_app_get_shared_trusted_path")] + internal static extern TeamAppErrorCode TeamAppGetSharedTrustedPath(IntPtr memberHandle, out string path); - [DllImport(Libraries.TeamLib, EntryPoint = "team_app_get_res_control_allowed_path")] - internal static extern TeamAppErrorCode TeamAppGetResControlAllowedPath(IntPtr memberHandle, string resType, out string path); + [DllImport(Libraries.TeamLib, EntryPoint = "team_app_get_res_control_allowed_path")] + internal static extern TeamAppErrorCode TeamAppGetResControlAllowedPath(IntPtr memberHandle, string resType, out string path); - [DllImport(Libraries.TeamLib, EntryPoint = "team_app_get_res_control_global_path")] - internal static extern TeamAppErrorCode TeamAppGetResControlGlobalPath(IntPtr memberHandle, string resType, out string path); + [DllImport(Libraries.TeamLib, EntryPoint = "team_app_get_res_control_global_path")] + internal static extern TeamAppErrorCode TeamAppGetResControlGlobalPath(IntPtr memberHandle, string resType, out string path); - [DllImport(Libraries.TeamLib, EntryPoint = "team_app_get_common_data_path")] - internal static extern TeamAppErrorCode TeamAppGetCommonDataPath(IntPtr memberHandle, out string path); + [DllImport(Libraries.TeamLib, EntryPoint = "team_app_get_common_data_path")] + internal static extern TeamAppErrorCode TeamAppGetCommonDataPath(IntPtr memberHandle, out string path); - [DllImport(Libraries.TeamLib, EntryPoint = "team_app_get_common_cache_path")] - internal static extern TeamAppErrorCode TeamAppGetCommonCachePath(IntPtr memberHandle, out string path); + [DllImport(Libraries.TeamLib, EntryPoint = "team_app_get_common_cache_path")] + internal static extern TeamAppErrorCode TeamAppGetCommonCachePath(IntPtr memberHandle, out string path); - [DllImport(Libraries.TeamLib, EntryPoint = "team_app_get_common_shared_data_path")] - internal static extern TeamAppErrorCode TeamAppGetCommonSharedDataPath(IntPtr memberHandle, out string path); + [DllImport(Libraries.TeamLib, EntryPoint = "team_app_get_common_shared_data_path")] + internal static extern TeamAppErrorCode TeamAppGetCommonSharedDataPath(IntPtr memberHandle, out string path); - [DllImport(Libraries.TeamLib, EntryPoint = "team_app_get_common_shared_trusted_path")] - internal static extern TeamAppErrorCode TeamAppGetCommonSharedTrustedPath(IntPtr memberHandle, out string path); + [DllImport(Libraries.TeamLib, EntryPoint = "team_app_get_common_shared_trusted_path")] + internal static extern TeamAppErrorCode TeamAppGetCommonSharedTrustedPath(IntPtr memberHandle, out string path); - [DllImport(Libraries.TeamLib, EntryPoint = "team_app_get_app_id")] - internal static extern TeamAppErrorCode TeamAppGetAppId(IntPtr memberHandle, out string appId); + [DllImport(Libraries.TeamLib, EntryPoint = "team_app_get_app_id")] + internal static extern TeamAppErrorCode TeamAppGetAppId(IntPtr memberHandle, out string appId); - [DllImport(Libraries.TeamLib, EntryPoint = "team_app_get_package_id")] - internal static extern TeamAppErrorCode TeamAppGetPackageId(IntPtr memberHandle, out string packageId); + [DllImport(Libraries.TeamLib, EntryPoint = "team_app_get_package_id")] + internal static extern TeamAppErrorCode TeamAppGetPackageId(IntPtr memberHandle, out string packageId); - [DllImport(Libraries.TeamLib, EntryPoint = "team_app_get_instance_id")] - internal static extern TeamAppErrorCode TeamAppGetInstanceId(IntPtr memberHandle, out string instId); + [DllImport(Libraries.TeamLib, EntryPoint = "team_app_get_instance_id")] + internal static extern TeamAppErrorCode TeamAppGetInstanceId(IntPtr memberHandle, out string instId); - [DllImport(Libraries.TeamLib, EntryPoint = "team_app_get_app_instance_id")] - internal static extern TeamAppErrorCode TeamAppGetAppInstanceId(IntPtr memberHandle, out string appInstId); + [DllImport(Libraries.TeamLib, EntryPoint = "team_app_get_app_instance_id")] + internal static extern TeamAppErrorCode TeamAppGetAppInstanceId(IntPtr memberHandle, out string appInstId); - [DllImport(Libraries.TeamLib, EntryPoint = "team_app_get_name")] - internal static extern TeamAppErrorCode TeamAppGetName(IntPtr memberHandle, out string name); + [DllImport(Libraries.TeamLib, EntryPoint = "team_app_get_name")] + internal static extern TeamAppErrorCode TeamAppGetName(IntPtr memberHandle, out string name); - [DllImport(Libraries.TeamLib, EntryPoint = "team_app_get_version")] - internal static extern TeamAppErrorCode TeamAppGetVersion(IntPtr memberHandle, out string version); + [DllImport(Libraries.TeamLib, EntryPoint = "team_app_get_version")] + internal static extern TeamAppErrorCode TeamAppGetVersion(IntPtr memberHandle, out string version); - [DllImport(Libraries.TeamLib, EntryPoint = "team_app_get_extern_data_path")] - internal static extern TeamAppErrorCode TeamAppGetExternDataPath(IntPtr memberHandle, out string path); + [DllImport(Libraries.TeamLib, EntryPoint = "team_app_get_extern_data_path")] + internal static extern TeamAppErrorCode TeamAppGetExternDataPath(IntPtr memberHandle, out string path); - [DllImport(Libraries.TeamLib, EntryPoint = "team_app_get_extern_cache_path")] - internal static extern TeamAppErrorCode TeamAppGetExternCachePath(IntPtr memberHandle, out string path); + [DllImport(Libraries.TeamLib, EntryPoint = "team_app_get_extern_cache_path")] + internal static extern TeamAppErrorCode TeamAppGetExternCachePath(IntPtr memberHandle, out string path); - [DllImport(Libraries.TeamLib, EntryPoint = "team_app_get_extern_shared_data_path")] - internal static extern TeamAppErrorCode TeamAppGetExternSharedDataPath(IntPtr memberHandle, out string path); + [DllImport(Libraries.TeamLib, EntryPoint = "team_app_get_extern_shared_data_path")] + internal static extern TeamAppErrorCode TeamAppGetExternSharedDataPath(IntPtr memberHandle, out string path); - [DllImport(Libraries.TeamLib, EntryPoint = "invoke_view_visibility_event")] - internal static extern void InvokeViewVisibilityEvent(int viewId, bool visible); + [DllImport(Libraries.TeamLib, EntryPoint = "invoke_view_visibility_event")] + internal static extern void InvokeViewVisibilityEvent(int viewId, bool visible); - [DllImport(Libraries.TeamLib, EntryPoint = "create_view_by_view_id")] - internal static extern IntPtr CreateViewByViewId(int viewId); + [DllImport(Libraries.TeamLib, EntryPoint = "create_view_by_view_id")] + internal static extern IntPtr CreateViewByViewId(int viewId); - [DllImport(Libraries.TeamLib, EntryPoint = "destroy_view_by_view_id")] - internal static extern void DestroyViewByViewId(int viewId); + [DllImport(Libraries.TeamLib, EntryPoint = "destroy_view_by_view_id")] + internal static extern void DestroyViewByViewId(int viewId); + } } -} +} \ No newline at end of file diff --git a/src/Tizen.Applications.Team/Interop/Interop.TeamMember.cs b/src/Tizen.Applications.Team/Interop/Interop.TeamMember.cs index d99752fa8ab..1ba489fe01b 100644 --- a/src/Tizen.Applications.Team/Interop/Interop.TeamMember.cs +++ b/src/Tizen.Applications.Team/Interop/Interop.TeamMember.cs @@ -18,93 +18,95 @@ using System.Runtime.InteropServices; using Tizen.Internals; -internal static partial class Interop -{ - internal static partial class TeamMember +namespace Tizen.Applications { + internal static partial class Interop { - internal delegate void AppTerminateCallback(IntPtr context, IntPtr userdata); - internal delegate void AppControlCallback(IntPtr context, IntPtr appControl, IntPtr userdata); - internal delegate void AppResumeCallback(IntPtr context, IntPtr userdata); - internal delegate void AppPauseCallback(IntPtr context, IntPtr userdata); - internal delegate void AppLowMemoryCallback(IntPtr context, int status, IntPtr userdata); - internal delegate void AppLowBatteryCallback(IntPtr context, int status, IntPtr userdata); - internal delegate void AppLanguageChangedCallback(IntPtr context, - [MarshalAs(UnmanagedType.LPStr)] string language, IntPtr userdata); - internal delegate void AppDeviceOrientationChangedCallback(IntPtr context, int status, IntPtr userdata); - internal delegate void AppRegionFormatChangedCallback(IntPtr context, - [MarshalAs(UnmanagedType.LPStr)] string region, IntPtr userdata); - internal delegate void AppSuspendStateChangedCallback(IntPtr context, int status, IntPtr userdata); - internal delegate void AppTimeZoneChangedCallback(IntPtr context, - [MarshalAs(UnmanagedType.LPStr)] string timeZone, - [MarshalAs(UnmanagedType.LPStr)] string timeZoneId, - IntPtr userdata); - internal delegate IntPtr UIAppCreateCallback(IntPtr context, IntPtr userdata); - internal delegate IntPtr ViewAppCreateCallback(IntPtr context, IntPtr userdata); - internal delegate bool ServiceAppCreateCallback(IntPtr context, IntPtr userdata); - [StructLayout(LayoutKind.Sequential)] - internal struct UIMemberLifecycleCallbacks + internal static partial class TeamMember { - public UIAppCreateCallback Create; - public AppTerminateCallback Terminate; - public AppControlCallback Control; - public AppResumeCallback Resume; - public AppPauseCallback Pause; - public AppLowMemoryCallback LowMemory; - public AppLowBatteryCallback LowBattery; - public AppLanguageChangedCallback LanguageChanged; - public AppDeviceOrientationChangedCallback DeviceOrientationChanged; - public AppRegionFormatChangedCallback RegionFormatChanged; - public AppSuspendStateChangedCallback SuspendStateChanged; - public AppTimeZoneChangedCallback TimezoneChanged; - } - [StructLayout(LayoutKind.Sequential)] - internal struct ServiceMemberLifecycleCallbacks - { - public ServiceAppCreateCallback Create; - public AppTerminateCallback Terminate; - public AppControlCallback Control; - public AppLowMemoryCallback LowMemory; - public AppLowBatteryCallback LowBattery; - public AppLanguageChangedCallback LanguageChanged; - public AppDeviceOrientationChangedCallback DeviceOrientationChanged; - public AppRegionFormatChangedCallback RegionFormatChanged; - public AppSuspendStateChangedCallback SuspendStateChanged; - public AppTimeZoneChangedCallback TimezoneChanged; - } + internal delegate void AppTerminateCallback(IntPtr context, IntPtr userdata); + internal delegate void AppControlCallback(IntPtr context, IntPtr appControl, IntPtr userdata); + internal delegate void AppResumeCallback(IntPtr context, IntPtr userdata); + internal delegate void AppPauseCallback(IntPtr context, IntPtr userdata); + internal delegate void AppLowMemoryCallback(IntPtr context, int status, IntPtr userdata); + internal delegate void AppLowBatteryCallback(IntPtr context, int status, IntPtr userdata); + internal delegate void AppLanguageChangedCallback(IntPtr context, + [MarshalAs(UnmanagedType.LPStr)] string language, IntPtr userdata); + internal delegate void AppDeviceOrientationChangedCallback(IntPtr context, int status, IntPtr userdata); + internal delegate void AppRegionFormatChangedCallback(IntPtr context, + [MarshalAs(UnmanagedType.LPStr)] string region, IntPtr userdata); + internal delegate void AppSuspendStateChangedCallback(IntPtr context, int status, IntPtr userdata); + internal delegate void AppTimeZoneChangedCallback(IntPtr context, + [MarshalAs(UnmanagedType.LPStr)] string timeZone, + [MarshalAs(UnmanagedType.LPStr)] string timeZoneId, + IntPtr userdata); + internal delegate IntPtr UIAppCreateCallback(IntPtr context, IntPtr userdata); + internal delegate IntPtr ViewAppCreateCallback(IntPtr context, IntPtr userdata); + internal delegate bool ServiceAppCreateCallback(IntPtr context, IntPtr userdata); + [StructLayout(LayoutKind.Sequential)] + internal struct UIMemberLifecycleCallbacks + { + public UIAppCreateCallback Create; + public AppTerminateCallback Terminate; + public AppControlCallback Control; + public AppResumeCallback Resume; + public AppPauseCallback Pause; + public AppLowMemoryCallback LowMemory; + public AppLowBatteryCallback LowBattery; + public AppLanguageChangedCallback LanguageChanged; + public AppDeviceOrientationChangedCallback DeviceOrientationChanged; + public AppRegionFormatChangedCallback RegionFormatChanged; + public AppSuspendStateChangedCallback SuspendStateChanged; + public AppTimeZoneChangedCallback TimezoneChanged; + } + [StructLayout(LayoutKind.Sequential)] + internal struct ServiceMemberLifecycleCallbacks + { + public ServiceAppCreateCallback Create; + public AppTerminateCallback Terminate; + public AppControlCallback Control; + public AppLowMemoryCallback LowMemory; + public AppLowBatteryCallback LowBattery; + public AppLanguageChangedCallback LanguageChanged; + public AppDeviceOrientationChangedCallback DeviceOrientationChanged; + public AppRegionFormatChangedCallback RegionFormatChanged; + public AppSuspendStateChangedCallback SuspendStateChanged; + public AppTimeZoneChangedCallback TimezoneChanged; + } - [DllImport(Libraries.TeamLib, EntryPoint = "team_ui_app_teamup")] - internal static extern IntPtr UIMemberTeamup(UIMemberLifecycleCallbacks callbacks, IntPtr userdata); + [DllImport(Libraries.TeamLib, EntryPoint = "team_ui_app_teamup")] + internal static extern IntPtr UIMemberTeamup(UIMemberLifecycleCallbacks callbacks, IntPtr userdata); - [DllImport(Libraries.TeamLib, EntryPoint = "team_ui_app_quit")] - internal static extern void UIMemberQuit(IntPtr member); + [DllImport(Libraries.TeamLib, EntryPoint = "team_ui_app_quit")] + internal static extern void UIMemberQuit(IntPtr member); - [DllImport(Libraries.TeamLib, EntryPoint = "team_service_app_teamup")] - internal static extern IntPtr ServiceMemberTeamup(ServiceMemberLifecycleCallbacks callbacks, IntPtr userdata); + [DllImport(Libraries.TeamLib, EntryPoint = "team_service_app_teamup")] + internal static extern IntPtr ServiceMemberTeamup(ServiceMemberLifecycleCallbacks callbacks, IntPtr userdata); - [DllImport(Libraries.TeamLib, EntryPoint = "team_service_app_quit")] - internal static extern void ServiceMemberQuit(IntPtr member); + [DllImport(Libraries.TeamLib, EntryPoint = "team_service_app_quit")] + internal static extern void ServiceMemberQuit(IntPtr member); - [StructLayout(LayoutKind.Sequential)] - internal struct ViewMemberLifecycleCallbacks - { - public ViewAppCreateCallback Create; - public AppTerminateCallback Terminate; - public AppControlCallback Control; - public AppResumeCallback Resume; - public AppPauseCallback Pause; - public AppLowMemoryCallback LowMemory; - public AppLowBatteryCallback LowBattery; - public AppLanguageChangedCallback LanguageChanged; - public AppDeviceOrientationChangedCallback DeviceOrientationChanged; - public AppRegionFormatChangedCallback RegionFormatChanged; - public AppSuspendStateChangedCallback SuspendStateChanged; - public AppTimeZoneChangedCallback TimezoneChanged; - } + [StructLayout(LayoutKind.Sequential)] + internal struct ViewMemberLifecycleCallbacks + { + public ViewAppCreateCallback Create; + public AppTerminateCallback Terminate; + public AppControlCallback Control; + public AppResumeCallback Resume; + public AppPauseCallback Pause; + public AppLowMemoryCallback LowMemory; + public AppLowBatteryCallback LowBattery; + public AppLanguageChangedCallback LanguageChanged; + public AppDeviceOrientationChangedCallback DeviceOrientationChanged; + public AppRegionFormatChangedCallback RegionFormatChanged; + public AppSuspendStateChangedCallback SuspendStateChanged; + public AppTimeZoneChangedCallback TimezoneChanged; + } - [DllImport(Libraries.TeamLib, EntryPoint = "team_view_app_teamup")] - internal static extern IntPtr ViewMemberTeamup(ViewMemberLifecycleCallbacks callbacks, IntPtr userdata); + [DllImport(Libraries.TeamLib, EntryPoint = "team_view_app_teamup")] + internal static extern IntPtr ViewMemberTeamup(ViewMemberLifecycleCallbacks callbacks, IntPtr userdata); - [DllImport(Libraries.TeamLib, EntryPoint = "team_view_app_quit")] - internal static extern void ViewMemberQuit(IntPtr member); + [DllImport(Libraries.TeamLib, EntryPoint = "team_view_app_quit")] + internal static extern void ViewMemberQuit(IntPtr member); + } } -} +} \ No newline at end of file diff --git a/src/Tizen.Applications.Team/ResourceControl.cs b/src/Tizen.Applications.Team/ResourceControl.cs deleted file mode 100644 index 070070d02a7..00000000000 --- a/src/Tizen.Applications.Team/ResourceControl.cs +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright (c) 2026 Samsung Electronics Co., Ltd All Rights Reserved - * - * Licensed under the Apache License, Version 2.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Text; - -namespace Tizen.Applications -{ - /// - /// Represents the resource control information for a Team application. - /// - /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) - [EditorBrowsable(EditorBrowsableState.Never)] - public class ResourceControl - { - internal ResourceControl(string resourceType, string minResourceVersion, string maxResourceVersion, bool isAutoClose) - { - ResourceType = resourceType; - MinResourceVersion = minResourceVersion ?? null; - MaxResourceVersion = maxResourceVersion ?? null; - IsAutoClose = isAutoClose; - } - - /// - /// Gets the resource type. - /// - /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) - [EditorBrowsable(EditorBrowsableState.Never)] - public string ResourceType { get; } - - /// - /// Gets the minimum version of the required resource package. - /// - /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) - [EditorBrowsable(EditorBrowsableState.Never)] - public string MinResourceVersion { get; } - - /// - /// Gets the maximum version of the required resource package. - /// - /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) - [EditorBrowsable(EditorBrowsableState.Never)] - public string MaxResourceVersion { get; } - - /// - /// Gets a value indicating whether the resource is auto-closed. - /// - /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) - [EditorBrowsable(EditorBrowsableState.Never)] - public bool IsAutoClose { get; } - } -} diff --git a/src/Tizen.Applications.Team/SystemLocaleConverter.cs b/src/Tizen.Applications.Team/SystemLocaleConverter.cs deleted file mode 100644 index 72d710622cc..00000000000 --- a/src/Tizen.Applications.Team/SystemLocaleConverter.cs +++ /dev/null @@ -1,349 +0,0 @@ -/* - * Copyright (c) 2026 Samsung Electronics Co., Ltd All Rights Reserved - * - * Licensed under the Apache License, Version 2.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -using System; -using System.Collections.Generic; -using System.Globalization; -using System.Linq; -using System.Runtime.InteropServices; -using System.Text; -using System.Threading.Tasks; - -namespace Tizen.Applications -{ - /// - /// Converts Tizen system locale strings into values with ICU fallback. - /// - internal class SystemLocaleConverter - { - private static readonly string LogTag = "DN_TAM"; - public SystemLocaleConverter() - { - } - - public CultureInfo Convert(string locale) - { - ULocale pLocale = new ULocale(locale); - string cultureName = CultureInfoHelper.GetCultureName(pLocale.Locale.Replace("_", "-")); - - if (!string.IsNullOrEmpty(cultureName)) - { - try - { - return new CultureInfo(cultureName); - } - catch (CultureNotFoundException) - { - Log.Error(LogTag, "CultureNotFoundException occurs. CultureName: " + cultureName); - } - } - - try - { - return new CultureInfo(pLocale.LCID); - } - catch (ArgumentOutOfRangeException) - { - return GetFallback(pLocale); - } - catch (CultureNotFoundException) - { - return GetFallback(pLocale); - } - } - - public string Convert(CultureInfo cultureInfo) - { - if (cultureInfo == null || string.IsNullOrEmpty(cultureInfo.Name)) - { - return string.Empty; - } - return $"{cultureInfo.Name.Replace("-", "_")}.UTF-8"; - } - - private CultureInfo GetFallback(ULocale uLocale) - { - CultureInfo fallbackCultureInfo = null; - string locale = string.Empty; - - if (uLocale.Locale != null) - { - locale = uLocale.Locale.Replace("_", "-"); - fallbackCultureInfo = GetCultureInfo(locale); - } - - if (fallbackCultureInfo == null && uLocale.Language != null && uLocale.Script != null && uLocale.Country != null) - { - locale = uLocale.Language + "-" + uLocale.Script + "-" + uLocale.Country; - fallbackCultureInfo = GetCultureInfo(locale); - } - - if (fallbackCultureInfo == null && uLocale.Language != null && uLocale.Script != null) - { - locale = uLocale.Language + "-" + uLocale.Script; - fallbackCultureInfo = GetCultureInfo(locale); - } - - if (fallbackCultureInfo == null && uLocale.Language != null && uLocale.Country != null) - { - locale = uLocale.Language + "-" + uLocale.Country; - fallbackCultureInfo = GetCultureInfo(locale); - } - - if (fallbackCultureInfo == null && uLocale.Language != null) - { - locale = uLocale.Language; - fallbackCultureInfo = GetCultureInfo(locale); - } - - if (fallbackCultureInfo == null) - { - try - { - fallbackCultureInfo = new CultureInfo("en"); - } - catch (CultureNotFoundException e) - { - Log.Error(LogTag, "Failed to create CultureInfo. err = " + e.Message); - } - } - - return fallbackCultureInfo; - } - - private CultureInfo GetCultureInfo(string locale) - { - if (!Exist(locale)) - { - return null; - } - - try - { - return new CultureInfo(locale); - } - catch (CultureNotFoundException) - { - return null; - } - } - - private bool Exist(string locale) - { - foreach (var cultureInfo in CultureInfo.GetCultures(CultureTypes.AllCultures)) - { - if (cultureInfo.Name == locale) - { - return true; - } - } - return false; - } - - - /// - /// Wraps ICU uloc_* interop for parsing and canonicalizing locale strings. - /// - internal class ULocale - { - private const int ULOC_FULLNAME_CAPACITY = 157; - private const int ULOC_LANG_CAPACITY = 12; - private const int ULOC_SCRIPT_CAPACITY = 6; - private const int ULOC_COUNTRY_CAPACITY = 4; - private const int ULOC_VARIANT_CAPACITY = ULOC_FULLNAME_CAPACITY; - private string locale; - private string _locale; - private string _language; - private string _script; - private string _country; - private string _variant; - private int _lcid; - - internal ULocale(string locale) - { - this.locale = locale; - _locale = _language = _script = _country = _variant = null; - _lcid = -1; - } - - internal string Locale - { - get - { - if (string.IsNullOrEmpty(_locale)) - { - _locale = Canonicalize(locale); - } - return _locale; - } - private set - { - _locale = value; - } - } - internal string Language { - get - { - if (string.IsNullOrEmpty(_language)) - { - _language = GetLanguage(Locale); - } - return _language; - } - private set - { - _language = value; - } - } - internal string Script - { - get - { - if (string.IsNullOrEmpty(_script)) - { - _script = GetScript(Locale); - } - return _script; - } - private set - { - _script = value; - } - } - internal string Country { - get - { - if (string.IsNullOrEmpty(_country)) - { - _country = GetCountry(Locale); - } - return _country; - } - private set - { - _country = value; - } - } - internal string Variant - { - get - { - if (string.IsNullOrEmpty(_variant)) - { - _variant = GetVariant(Locale); - } - return _variant; - } - private set - { - _variant = value; - } - } - internal int LCID { - get - { - if (_lcid == -1) { - _lcid = GetLCID(Locale); - } - return _lcid; - } - private set { - _lcid = value; - } - } - - private string Canonicalize(string localeName) - { - // Get the locale name from ICU - StringBuilder sb = new StringBuilder(ULOC_FULLNAME_CAPACITY); - if (Interop.BaseUtilsi18n.Canonicalize(localeName, sb, sb.Capacity) <= 0) - { - return null; - } - - return sb.ToString(); - } - - private string GetLanguage(string locale) - { - // Get the language name from ICU - StringBuilder sb = new StringBuilder(ULOC_LANG_CAPACITY); - if (Interop.BaseUtilsi18n.GetLanguage(locale, sb, sb.Capacity, out int bufSizeLanguage) != 0) - { - return null; - } - - return sb.ToString(); - } - - private string GetScript(string locale) - { - // Get the script name from ICU - StringBuilder sb = new StringBuilder(ULOC_SCRIPT_CAPACITY); - if (Interop.BaseUtilsi18n.GetScript(locale, sb, sb.Capacity) <= 0) - { - return null; - } - - return sb.ToString(); - } - - private string GetCountry(string locale) - { - int err = 0; - - // Get the country name from ICU - StringBuilder sb = new StringBuilder(ULOC_COUNTRY_CAPACITY); - if (Interop.BaseUtilsi18n.GetCountry(locale, sb, sb.Capacity, out err) <= 0) - { - return null; - } - - return sb.ToString(); - } - - private string GetVariant(string locale) - { - // Get the variant name from ICU - StringBuilder sb = new StringBuilder(ULOC_VARIANT_CAPACITY); - if (Interop.BaseUtilsi18n.GetVariant(locale, sb, sb.Capacity) <= 0) - { - return null; - } - - return sb.ToString(); - } - - private int GetLCID(string locale) - { - // Get the LCID from ICU - uint lcid = Interop.BaseUtilsi18n.GetLCID(locale); - return (int)lcid; - } - - internal static string GetDefaultLocale() - { - IntPtr stringPtr = Interop.Libc.GetEnvironmentVariable("LANG"); - if (stringPtr == IntPtr.Zero) - { - return string.Empty; - } - - return Marshal.PtrToStringAnsi(stringPtr); - } - } - } -} \ No newline at end of file diff --git a/src/Tizen.Applications.Team/TeamCoreUiApplication.cs b/src/Tizen.Applications.Team/TeamCoreUiApplication.cs deleted file mode 100644 index bcd068b4879..00000000000 --- a/src/Tizen.Applications.Team/TeamCoreUiApplication.cs +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Copyright (c) 2026 Samsung Electronics Co., Ltd All Rights Reserved - * - * Licensed under the Apache License, Version 2.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - -using System; -using System.ComponentModel; -using Tizen.Applications.CoreBackend; -using Tizen.NUI; - -namespace Tizen.Applications -{ - /// - /// Represents a base class for Team UI applications that own a NUI and expose - /// and lifecycle events. - /// - /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) - [EditorBrowsable(EditorBrowsableState.Never)] - public class TeamCoreUiApplication : TeamCoreApplication - { - /// - /// Initializes the class. - /// - /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) - [EditorBrowsable(EditorBrowsableState.Never)] - public TeamCoreUiApplication() : base(new TeamUICoreBackend()) - { - } - - /// - /// Gets the default window of this application. - /// - /// The default associated with this application. - /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) - [EditorBrowsable(EditorBrowsableState.Never)] - public Window GetDefaultWindow() - { - return ((TeamUICoreBackend)Backend).GetDefaultWindow(); - } - - /// - /// Occurs whenever the application is resumed. - /// - /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) - [EditorBrowsable(EditorBrowsableState.Never)] - public event EventHandler Resumed; - - /// - /// Occurs whenever the application is paused. - /// - /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) - [EditorBrowsable(EditorBrowsableState.Never)] - public event EventHandler Paused; - - /// - /// Runs the Team UI application's main loop. - /// - /// Arguments from commandline. - /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) - [EditorBrowsable(EditorBrowsableState.Never)] - public override void Run(string[] args) - { - Backend.AddEventHandler(EventType.Resumed, OnResume); - Backend.AddEventHandler(EventType.Paused, OnPause); - - base.Run(args); - } - - /// - /// Invoked when the application is created. - /// - /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) - [EditorBrowsable(EditorBrowsableState.Never)] - protected override void OnCreate() - { - base.OnCreate(); - } - - /// - /// Invoked when the application is resumed. Raises the event. - /// - /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) - [EditorBrowsable(EditorBrowsableState.Never)] - protected virtual void OnResume() - { - Resumed?.Invoke(this, EventArgs.Empty); - } - - /// - /// Invoked when the application is paused. Raises the event. - /// - /// This will be public opened in next tizen after ACR done. (Before ACR, need to be hidden as inhouse API) - [EditorBrowsable(EditorBrowsableState.Never)] - protected virtual void OnPause() - { - Paused?.Invoke(this, EventArgs.Empty); - } - } -} diff --git a/src/Tizen.Applications.Team/Tizen.Applications.CoreBackend/TeamCoreBackend.cs b/src/Tizen.Applications.Team/Tizen.Applications.CoreBackend/TeamCoreBackend.cs index 473bad48ea3..efe2babdfd4 100644 --- a/src/Tizen.Applications.Team/Tizen.Applications.CoreBackend/TeamCoreBackend.cs +++ b/src/Tizen.Applications.Team/Tizen.Applications.CoreBackend/TeamCoreBackend.cs @@ -16,8 +16,10 @@ using System; using System.ComponentModel; +using Tizen.Applications.CoreBackend; -namespace Tizen.Applications.CoreBackend + +namespace Tizen.Applications { /// /// Represents the abstract base backend that drives a Team application instance. diff --git a/src/Tizen.Applications.Team/Tizen.Applications.CoreBackend/TeamServiceCoreBackend.cs b/src/Tizen.Applications.Team/Tizen.Applications.CoreBackend/TeamServiceCoreBackend.cs index b8abddb457f..b27854a85bb 100644 --- a/src/Tizen.Applications.Team/Tizen.Applications.CoreBackend/TeamServiceCoreBackend.cs +++ b/src/Tizen.Applications.Team/Tizen.Applications.CoreBackend/TeamServiceCoreBackend.cs @@ -16,8 +16,9 @@ using System; using Tizen.Internals; +using Tizen.Applications.CoreBackend; -namespace Tizen.Applications.CoreBackend +namespace Tizen.Applications { /// /// Backend implementation for Team service applications that run without a graphical UI. @@ -138,6 +139,7 @@ private bool OnCreateNative(IntPtr context, IntPtr userdata) catch (Exception ex) { Log.Error(LogTag, $"Error in Created handler: {ex.Message}"); + Log.Error(LogTag, $"{ex.StackTrace}"); return false; } } @@ -159,6 +161,7 @@ private void OnTerminateNative(IntPtr context, IntPtr userdata) catch (Exception ex) { Log.Error(LogTag, $"Error in Terminated handler: {ex.Message}"); + Log.Error(LogTag, $"{ex.StackTrace}"); } } } @@ -177,6 +180,7 @@ private void OnAppControlNative(IntPtr context, IntPtr appControl, IntPtr userda catch (Exception ex) { Log.Error(LogTag, $"Error in AppControlReceived handler: {ex.Message}"); + Log.Error(LogTag, $"{ex.StackTrace}"); } } } @@ -195,6 +199,7 @@ private void OnLowMemoryNative(IntPtr context, int status, IntPtr userdata) catch (Exception ex) { Log.Error(LogTag, $"Error in LowMemory handler: {ex.Message}"); + Log.Error(LogTag, $"{ex.StackTrace}"); } } } @@ -212,6 +217,7 @@ private void OnLowBatteryNative(IntPtr context, int status, IntPtr userdata) catch (Exception ex) { Log.Error(LogTag, $"Error in LowBattery handler: {ex.Message}"); + Log.Error(LogTag, $"{ex.StackTrace}"); } } } @@ -228,6 +234,7 @@ private void OnLanguageChangedNative(IntPtr context, string language, IntPtr use catch (Exception ex) { Log.Error(LogTag, $"Error in LocaleChanged handler: {ex.Message}"); + Log.Error(LogTag, $"{ex.StackTrace}"); } } } @@ -245,6 +252,7 @@ private void OnDeviceOrientationChangedNative(IntPtr context, int status, IntPtr catch (Exception ex) { Log.Error(LogTag, $"Error in DeviceOrientationChanged handler: {ex.Message}"); + Log.Error(LogTag, $"{ex.StackTrace}"); } } } @@ -261,6 +269,7 @@ private void OnRegionFormatChangedNative(IntPtr context, string region, IntPtr u catch (Exception ex) { Log.Error(LogTag, $"Error in RegionFormatChanged handler: {ex.Message}"); + Log.Error(LogTag, $"{ex.StackTrace}"); } } } @@ -278,6 +287,7 @@ private void OnSuspendStateChangedNative(IntPtr context, int status, IntPtr user catch (Exception ex) { Log.Error(LogTag, $"Error in SuspendedStateChanged handler: {ex.Message}"); + Log.Error(LogTag, $"{ex.StackTrace}"); } } } @@ -294,6 +304,7 @@ private void OnTimeZoneChangedNative(IntPtr context, string timeZone, string tim catch (Exception ex) { Log.Error(LogTag, $"Error in TimeZoneChanged handler: {ex.Message}"); + Log.Error(LogTag, $"{ex.StackTrace}"); } } } diff --git a/src/Tizen.Applications.Team/Tizen.Applications.CoreBackend/TeamUICoreBackend.cs b/src/Tizen.Applications.Team/Tizen.Applications.CoreBackend/TeamUICoreBackend.cs index 9dc69523c5d..8b4e7fa2a0c 100644 --- a/src/Tizen.Applications.Team/Tizen.Applications.CoreBackend/TeamUICoreBackend.cs +++ b/src/Tizen.Applications.Team/Tizen.Applications.CoreBackend/TeamUICoreBackend.cs @@ -17,19 +17,22 @@ using System; using Tizen.Internals; using Tizen.NUI; +using Tizen.Applications.CoreBackend; -namespace Tizen.Applications.CoreBackend + +namespace Tizen.Applications { /// /// Backend implementation for Team UI applications that own a default . /// - internal class TeamUICoreBackend : TeamCoreBackend + internal class TeamUICoreBackend : TeamCoreBackend, IUICoreBackend { internal new static string LogTag = "DN_TAM"; private Interop.TeamMember.UIMemberLifecycleCallbacks _callbacks; private bool _disposedValue = false; private int DefaultWindowId = 0; internal Window defaultWindow; + internal WindowData initWindowData; internal override IntPtr MemberHandle => _memberHandle; internal override IntPtr LoadObjId => _loadObjId; internal override IntPtr ArgHandle => _argHandle; @@ -48,6 +51,19 @@ internal class TeamUICoreBackend : TeamCoreBackend private Interop.TeamMember.AppTimeZoneChangedCallback _onTimeZoneChangedNative; public TeamUICoreBackend() + { + initWindowData = null; + SetUpCallback(); + } + + + public TeamUICoreBackend(WindowData windowdata) + { + initWindowData = windowdata; + SetUpCallback(); + } + + internal void SetUpCallback() { _onCreateNative = new Interop.TeamMember.UIAppCreateCallback(OnCreateNative); _onTerminateNative = new Interop.TeamMember.AppTerminateCallback(OnTerminateNative); @@ -93,6 +109,28 @@ internal void SetDefaultWindow(Window window) { defaultWindow = window; SetDefaultWindowId(window.GetNativeId()); + + // Register window with appid to TeamManager + var err = Interop.TeamManager.TeamAppGetAppId(MemberHandle, out string appid); + if (err == Interop.TeamManager.TeamAppErrorCode.None && !string.IsNullOrEmpty(appid)) + { + TeamManager.RegisterDefaultWindow(window, appid); + } + else + { + Log.Warn(LogTag, $"Failed to get AppId for RegisterDefaultWindow. err = {err}"); + } + } + + internal void UnsetDefaultWindow() + { + if (defaultWindow != null) + { + TeamManager.UnregisterDefaultWindow(defaultWindow); + } + defaultWindow?.Hide(); + DefaultWindowId = -1; + defaultWindow = null; } public override void Exit() { @@ -143,6 +181,32 @@ protected override void Dispose(bool disposing) } } + internal void CreateDefaultWindow() + { + if(GetDefaultWindow() == null) { + + Window window = null; + var err = Interop.TeamManager.TeamAppGetName(MemberHandle, out string name); + if (err != Interop.TeamManager.TeamAppErrorCode.None) + { + Log.Warn(LogTag, $"Failed to get Name. err = {err}"); + name = ""; + } + + if(initWindowData != null) + { + window = new Window(name, initWindowData); + } + else + { + window = new Window(); + window.Title = name; + } + + SetDefaultWindow(window); + window.Hide(); + } + } private IntPtr OnCreateNative(IntPtr context, IntPtr userdata) { if (_memberHandle != IntPtr.Zero) @@ -151,32 +215,55 @@ private IntPtr OnCreateNative(IntPtr context, IntPtr userdata) } _memberHandle = context; + CreateDefaultWindow(); + + if (Handlers.ContainsKey(EventType.PreCreated)) + { + var handler = Handlers[EventType.PreCreated] as Action; + if (handler != null) + { + try + { + handler?.Invoke(); + } + catch (Exception ex) + { + Log.Error(LogTag, $"Error in User PreCreated handler: {ex.Message}"); + Log.Error(LogTag, $"{ex.StackTrace}"); + } + } + else + { + Log.Error(LogTag, "Invalid OnPreCreate Callback type"); + return IntPtr.Zero; + } + } + if (Handlers.ContainsKey(EventType.Created)) { var handler = Handlers[EventType.Created] as Action; if (handler != null) { - // This function will set default window try { - var window = new Window(); - SetDefaultWindow(window); - window.Hide(); - - try { - handler?.Invoke(); - } - catch (Exception ex) - { - Log.Error(LogTag, $"Error in User Created handler: {ex.Message}"); - } + handler?.Invoke(); + } + catch (Exception ex) + { + Log.Error(LogTag, $"Error in User Created handler: {ex.Message}"); + Log.Error(LogTag, $"{ex.StackTrace}"); + return IntPtr.Zero; + } + try + { IntPtr window_h = Interop.TeamManager.CreateWl2WindowById(GetDefaultWindowId()); return window_h; } catch (Exception ex) { Log.Error(LogTag, $"Error in Internal Created handler: {ex.Message}"); + Log.Error(LogTag, $"{ex.StackTrace}"); return IntPtr.Zero; } } @@ -203,11 +290,10 @@ private void OnTerminateNative(IntPtr context, IntPtr userdata) catch (Exception ex) { Log.Error(LogTag, $"Error in Terminated handler: {ex.Message}"); + Log.Error(LogTag, $"{ex.StackTrace}"); } - defaultWindow?.Hide(); - DefaultWindowId = -1; - defaultWindow = null; + UnsetDefaultWindow(); } } @@ -225,6 +311,7 @@ private void OnAppControlNative(IntPtr context, IntPtr appControl, IntPtr userda catch (Exception ex) { Log.Error(LogTag, $"Error in AppControlReceived handler: {ex.Message}"); + Log.Error(LogTag, $"{ex.StackTrace}"); } } } @@ -242,6 +329,7 @@ private void OnResumeNative(IntPtr context, IntPtr userdata) catch (Exception ex) { Log.Error(LogTag, $"Error in Resumed handler: {ex.Message}"); + Log.Error(LogTag, $"{ex.StackTrace}"); } } } @@ -258,6 +346,7 @@ private void OnPauseNative(IntPtr context, IntPtr userdata) catch (Exception ex) { Log.Error(LogTag, $"Error in Paused handler: {ex.Message}"); + Log.Error(LogTag, $"{ex.StackTrace}"); } } } @@ -275,6 +364,7 @@ private void OnLowMemoryNative(IntPtr context, int status, IntPtr userdata) catch (Exception ex) { Log.Error(LogTag, $"Error in LowMemory handler: {ex.Message}"); + Log.Error(LogTag, $"{ex.StackTrace}"); } } } @@ -292,6 +382,7 @@ private void OnLowBatteryNative(IntPtr context, int status, IntPtr userdata) catch (Exception ex) { Log.Error(LogTag, $"Error in LowBattery handler: {ex.Message}"); + Log.Error(LogTag, $"{ex.StackTrace}"); } } } @@ -308,6 +399,7 @@ private void OnLanguageChangedNative(IntPtr context, string language, IntPtr use catch (Exception ex) { Log.Error(LogTag, $"Error in LocaleChanged handler: {ex.Message}"); + Log.Error(LogTag, $"{ex.StackTrace}"); } } } @@ -325,6 +417,7 @@ private void OnDeviceOrientationChangedNative(IntPtr context, int status, IntPtr catch (Exception ex) { Log.Error(LogTag, $"Error in DeviceOrientationChanged handler: {ex.Message}"); + Log.Error(LogTag, $"{ex.StackTrace}"); } } } @@ -341,6 +434,7 @@ private void OnRegionFormatChangedNative(IntPtr context, string region, IntPtr u catch (Exception ex) { Log.Error(LogTag, $"Error in RegionFormatChanged handler: {ex.Message}"); + Log.Error(LogTag, $"{ex.StackTrace}"); } } } @@ -358,6 +452,7 @@ private void OnSuspendStateChangedNative(IntPtr context, int status, IntPtr user catch (Exception ex) { Log.Error(LogTag, $"Error in SuspendedStateChanged handler: {ex.Message}"); + Log.Error(LogTag, $"{ex.StackTrace}"); } } } @@ -374,6 +469,7 @@ private void OnTimeZoneChangedNative(IntPtr context, string timeZone, string tim catch (Exception ex) { Log.Error(LogTag, $"Error in TimeZoneChanged handler: {ex.Message}"); + Log.Error(LogTag, $"{ex.StackTrace}"); } } } diff --git a/src/Tizen.Applications.Team/Tizen.Applications.CoreBackend/TeamViewCoreBackend.cs b/src/Tizen.Applications.Team/Tizen.Applications.CoreBackend/TeamViewCoreBackend.cs index 087d818fcb6..cd83c455d82 100644 --- a/src/Tizen.Applications.Team/Tizen.Applications.CoreBackend/TeamViewCoreBackend.cs +++ b/src/Tizen.Applications.Team/Tizen.Applications.CoreBackend/TeamViewCoreBackend.cs @@ -18,8 +18,9 @@ using Tizen.Internals; using Tizen.NUI; using Tizen.NUI.BaseComponents; +using Tizen.Applications.CoreBackend; -namespace Tizen.Applications.CoreBackend +namespace Tizen.Applications { /// /// Backend implementation for Team view applications that render into a shared host-provided . @@ -169,6 +170,7 @@ private IntPtr OnCreateNative(IntPtr context, IntPtr userdata) catch (Exception ex) { Log.Error(LogTag, $"Error in User Created handler: {ex.Message}"); + Log.Error(LogTag, $"{ex.StackTrace}"); } IntPtr view_h = Interop.TeamManager.CreateViewByViewId(GetDefaultViewId()); @@ -187,6 +189,7 @@ private IntPtr OnCreateNative(IntPtr context, IntPtr userdata) catch (Exception ex) { Log.Error(LogTag, $"Error in Internal Created handler: {ex.Message}"); + Log.Error(LogTag, $"{ex.StackTrace}"); return IntPtr.Zero; } } @@ -213,6 +216,7 @@ private void OnTerminateNative(IntPtr context, IntPtr userdata) catch (Exception ex) { Log.Error(LogTag, $"Error in Terminated handler: {ex.Message}"); + Log.Error(LogTag, $"{ex.StackTrace}"); } } @@ -234,6 +238,7 @@ private void OnAppControlNative(IntPtr context, IntPtr appControl, IntPtr userda catch (Exception ex) { Log.Error(LogTag, $"Error in AppControlReceived handler: {ex.Message}"); + Log.Error(LogTag, $"{ex.StackTrace}"); } } } @@ -251,6 +256,7 @@ private void OnResumeNative(IntPtr context, IntPtr userdata) catch (Exception ex) { Log.Error(LogTag, $"Error in Resumed handler: {ex.Message}"); + Log.Error(LogTag, $"{ex.StackTrace}"); } } } @@ -267,6 +273,7 @@ private void OnPauseNative(IntPtr context, IntPtr userdata) catch (Exception ex) { Log.Error(LogTag, $"Error in Paused handler: {ex.Message}"); + Log.Error(LogTag, $"{ex.StackTrace}"); } } } @@ -284,6 +291,7 @@ private void OnLowMemoryNative(IntPtr context, int status, IntPtr userdata) catch (Exception ex) { Log.Error(LogTag, $"Error in LowMemory handler: {ex.Message}"); + Log.Error(LogTag, $"{ex.StackTrace}"); } } } @@ -301,6 +309,7 @@ private void OnLowBatteryNative(IntPtr context, int status, IntPtr userdata) catch (Exception ex) { Log.Error(LogTag, $"Error in LowBattery handler: {ex.Message}"); + Log.Error(LogTag, $"{ex.StackTrace}"); } } } @@ -317,6 +326,7 @@ private void OnLanguageChangedNative(IntPtr context, string language, IntPtr use catch (Exception ex) { Log.Error(LogTag, $"Error in LocaleChanged handler: {ex.Message}"); + Log.Error(LogTag, $"{ex.StackTrace}"); } } } @@ -334,6 +344,7 @@ private void OnDeviceOrientationChangedNative(IntPtr context, int status, IntPtr catch (Exception ex) { Log.Error(LogTag, $"Error in DeviceOrientationChanged handler: {ex.Message}"); + Log.Error(LogTag, $"{ex.StackTrace}"); } } } @@ -350,6 +361,7 @@ private void OnRegionFormatChangedNative(IntPtr context, string region, IntPtr u catch (Exception ex) { Log.Error(LogTag, $"Error in RegionFormatChanged handler: {ex.Message}"); + Log.Error(LogTag, $"{ex.StackTrace}"); } } } @@ -367,6 +379,7 @@ private void OnSuspendStateChangedNative(IntPtr context, int status, IntPtr user catch (Exception ex) { Log.Error(LogTag, $"Error in SuspendedStateChanged handler: {ex.Message}"); + Log.Error(LogTag, $"{ex.StackTrace}"); } } } @@ -383,6 +396,7 @@ private void OnTimeZoneChangedNative(IntPtr context, string timeZone, string tim catch (Exception ex) { Log.Error(LogTag, $"Error in TimeZoneChanged handler: {ex.Message}"); + Log.Error(LogTag, $"{ex.StackTrace}"); } } } diff --git a/src/Tizen.Applications.Team/Tizen.Applications.Team.csproj b/src/Tizen.Applications.Team/Tizen.Applications.Team.csproj index 5809df03c80..5d487982a82 100755 --- a/src/Tizen.Applications.Team/Tizen.Applications.Team.csproj +++ b/src/Tizen.Applications.Team/Tizen.Applications.Team.csproj @@ -1,7 +1,7 @@  - net8.0 + net6.0