diff options
author | hjhun <36876573+hjhun@users.noreply.github.com> | 2023-01-26 09:16:59 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-26 09:16:59 +0900 |
commit | d0fa37b69177997bb5b9929e10576c77980cf540 (patch) | |
tree | 3acbc01d3b362fd7cfee04be9395c2c28683805a | |
parent | 8ccfe22500361156106c1be1b2208d502e39633a (diff) | |
download | tizenfx-d0fa37b69177997bb5b9929e10576c77980cf540.tar.gz tizenfx-d0fa37b69177997bb5b9929e10576c77980cf540.tar.bz2 tizenfx-d0fa37b69177997bb5b9929e10576c77980cf540.zip |
Add a new internal API (#4923)
- AppControl.GetDefaultApplicationIds()
Signed-off-by: Hwankyu Jhun <h.jhun@samsung.com>
Signed-off-by: Hwankyu Jhun <h.jhun@samsung.com>
-rwxr-xr-x | src/Tizen.Applications.Common/Interop/Interop.AppControl.cs | 7 | ||||
-rwxr-xr-x | src/Tizen.Applications.Common/Tizen.Applications/AppControl.cs | 42 |
2 files changed, 49 insertions, 0 deletions
diff --git a/src/Tizen.Applications.Common/Interop/Interop.AppControl.cs b/src/Tizen.Applications.Common/Interop/Interop.AppControl.cs index 40773cd43..2ec3d9b90 100755 --- a/src/Tizen.Applications.Common/Interop/Interop.AppControl.cs +++ b/src/Tizen.Applications.Common/Interop/Interop.AppControl.cs @@ -37,6 +37,9 @@ internal static partial class Interop [UnmanagedFunctionPointer(CallingConvention.Cdecl)] internal delegate void ResultCallback(IntPtr request, int result, IntPtr userData); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] + internal delegate bool DefaultApplicationCallback(string applicationId, IntPtr userData); + internal enum ErrorCode { None = Tizen.Internals.Errors.ErrorCode.None, @@ -157,5 +160,9 @@ internal static partial class Interop [DllImport(Libraries.AppControl, EntryPoint = "app_control_send_launch_request_with_timeout")] internal static extern ErrorCode SendLaunchRequestWithTimeout(SafeAppControlHandle handle, uint timeout, ReplyCallback callback, IntPtr userData); + + [DllImport(Libraries.AppControl, EntryPoint = "app_control_foreach_default_application")] + internal static extern ErrorCode ForeachDefaultApplication(DefaultApplicationCallback callback, IntPtr userData); + } } diff --git a/src/Tizen.Applications.Common/Tizen.Applications/AppControl.cs b/src/Tizen.Applications.Common/Tizen.Applications/AppControl.cs index 04015809f..c1340612b 100755 --- a/src/Tizen.Applications.Common/Tizen.Applications/AppControl.cs +++ b/src/Tizen.Applications.Common/Tizen.Applications/AppControl.cs @@ -943,6 +943,48 @@ namespace Tizen.Applications } /// <summary> + /// Gets all default applications. + /// </summary> + /// <returns>ApplicationIds.</returns> + /// <exception cref="InvalidOperationException">Thrown when failed because of an invalid operation.</exception> + /// <example> + /// <code> + /// IEnumerable<string> applicationIds = AppControl.GetDefaultApplicationIds(); + /// if (applicationIds != null) + /// { + /// foreach (string id in applicationIds) + /// { + /// // ... + /// } + /// } + /// </code> + /// </example> + /// <since_tizen> 11 </since_tizen> + [EditorBrowsable(EditorBrowsableState.Never)] + public static IEnumerable<string> GetDefaultApplicationIds() + { + List<string> ids = new List<string>(); + Interop.AppControl.DefaultApplicationCallback callback = (applicationId, userData) => + { + if (applicationId == null) + { + return false; + } + + ids.Add(applicationId); + return true; + }; + + Interop.AppControl.ErrorCode err = Interop.AppControl.ForeachDefaultApplication(callback, IntPtr.Zero); + if (err != Interop.AppControl.ErrorCode.None) + { + throw new InvalidOperationException("Failed to get default application Ids. err = " + err); + } + + return ids; + } + + /// <summary> /// Class for extra data. /// </summary> /// <since_tizen> 3 </since_tizen> |