summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhjhun <36876573+hjhun@users.noreply.github.com>2023-01-26 09:16:59 +0900
committerGitHub <noreply@github.com>2023-01-26 09:16:59 +0900
commitd0fa37b69177997bb5b9929e10576c77980cf540 (patch)
tree3acbc01d3b362fd7cfee04be9395c2c28683805a
parent8ccfe22500361156106c1be1b2208d502e39633a (diff)
downloadtizenfx-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-xsrc/Tizen.Applications.Common/Interop/Interop.AppControl.cs7
-rwxr-xr-xsrc/Tizen.Applications.Common/Tizen.Applications/AppControl.cs42
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&lt;string&gt; 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>