/// you entered into with Samsung.
using System;
-using System.Collections.Generic;
-namespace Tizen.Applications
+namespace Tizen.Applications.Manager
{
/// <summary>
- /// Enumeration for application state.
- /// </summary>
- public enum ApplicationState
- {
- /// <summary>
- /// Initial state.
- /// </summary>
- None = -1,
- /// <summary>
- /// Launched state.
- /// </summary>
- Launched,
- /// <summary>
- /// Terminated state.
- /// </summary>
- Terminated,
- }
-
- /// <summary>
/// ApplicationChangedEventArgs class. This class is an event arguments of the ApplicationLaunched and ApplicationTerminated events.
/// </summary>
public class ApplicationChangedEventArgs : EventArgs
using System.Collections.Generic;
using System.Threading.Tasks;
-namespace Tizen.Applications
+namespace Tizen.Applications.Manager
{
/// <summary>
/// ApplicationManager class. This class has the methods and events of the ApplicationManager.
/// </summary>
- static public class ApplicationManager
+ public static class ApplicationManager
{
/// <summary>
/// ApplicationLaunched event. This event is occurred when the application is launched.
using System.Threading.Tasks;
using System.Runtime.InteropServices;
-namespace Tizen.Applications
+namespace Tizen.Applications.Manager
{
- internal partial class ApplicationManagerImpl : IDisposable
+ internal class ApplicationManagerImpl : IDisposable
{
private static ApplicationManagerImpl _instance = new ApplicationManagerImpl();
+
private bool _disposed = false;
+ private Interop.ApplicationManager.AppManagerAppContextEventCallback _applicationChangedEventCallback;
+
+ private ApplicationManagerImpl()
+ {
+ Console.WriteLine("ApplicationManagerImpl()");
+ RegisterApplicationChangedEvent();
+ }
+
+
+ ~ApplicationManagerImpl()
+ {
+ Console.WriteLine("~ApplicationManagerImpl()");
+ UnRegisterApplicationChangedEvent();
+ Dispose(false);
+ }
+
+ internal event EventHandler<ApplicationChangedEventArgs> ApplicationLaunched;
+ internal event EventHandler<ApplicationChangedEventArgs> ApplicationTerminated;
internal static ApplicationManagerImpl Instance
{
}
}
- private ApplicationManagerImpl()
+ public void Dispose()
{
- Console.WriteLine("ApplicationManagerImpl()");
- RegisterApplicationChangedEvent();
+ Dispose(true);
+ GC.SuppressFinalize(this);
+ }
+
+ private void Dispose(bool disposing)
+ {
+ if (_disposed)
+ return;
+
+ if (disposing)
+ {
+ // Free managed objects.
+ }
+ //Free unmanaged objects
+ _disposed = true;
}
internal async Task<IEnumerable<InstalledApplication>> GetInstalledAppsAsync()
return running;
}
- ~ApplicationManagerImpl()
+ private void RegisterApplicationChangedEvent()
{
- Console.WriteLine("~ApplicationManagerImpl()");
- UnRegisterApplicationChangedEvent();
- Dispose(false);
- }
+ Console.WriteLine("RegisterApplicationChangedEvent()");
+ _applicationChangedEventCallback = (IntPtr context, int state, IntPtr userData) =>
+ {
+ Console.WriteLine("ApplicationChangedEventCallback");
+ if (context == IntPtr.Zero) return;
- public void Dispose()
- {
- Dispose(true);
- GC.SuppressFinalize(this);
+ IntPtr ptr = IntPtr.Zero;
+ Interop.ApplicationManager.AppContextGetAppId(context, out ptr);
+ string appid = Marshal.PtrToStringAuto(ptr);
+ int pid = 0;
+ Interop.ApplicationManager.AppContextGetPid(context, out pid);
+
+ if (state == 0)
+ {
+ var launchedEventCache = ApplicationLaunched;
+ if (launchedEventCache != null)
+ {
+ Console.WriteLine("Raise up ApplicationLaunched");
+ ApplicationChangedEventArgs e = new ApplicationChangedEventArgs(appid, pid, state);
+ launchedEventCache(null, e);
+ }
+ }
+ else if (state == 1)
+ {
+ var terminatedEventCache = ApplicationTerminated;
+ if (terminatedEventCache != null)
+ {
+ Console.WriteLine("Raise up ApplicationTerminated");
+ ApplicationChangedEventArgs e = new ApplicationChangedEventArgs(appid, pid, state);
+ terminatedEventCache(null, e);
+ }
+ }
+ };
+
+ Interop.ApplicationManager.AppManagerSetAppContextEvent(_applicationChangedEventCallback, IntPtr.Zero);
}
- private void Dispose(bool disposing)
+ private void UnRegisterApplicationChangedEvent()
{
- if (_disposed)
- return;
-
- if (disposing)
- {
- // Free managed objects.
- }
- //Free unmanaged objects
- _disposed = true;
+ Console.WriteLine("UnRegisterApplicationChangedEvent()");
+ Interop.ApplicationManager.AppManagerUnSetAppContextEvent();
}
}
}
--- /dev/null
+/// Copyright 2016 by Samsung Electronics, Inc.,
+///
+/// This software is the confidential and proprietary information
+/// of Samsung Electronics, Inc. ("Confidential Information"). You
+/// shall not disclose such Confidential Information and shall use
+/// it only in accordance with the terms of the license agreement
+/// you entered into with Samsung.
+
+namespace Tizen.Applications.Manager
+{
+ /// <summary>
+ /// Enumeration for application state.
+ /// </summary>
+ public enum ApplicationState
+ {
+ /// <summary>
+ /// Initial state.
+ /// </summary>
+ None = -1,
+ /// <summary>
+ /// Launched state.
+ /// </summary>
+ Launched,
+ /// <summary>
+ /// Terminated state.
+ /// </summary>
+ Terminated,
+ }
+}
using System.Collections.Generic;
using System.Runtime.InteropServices;
-namespace Tizen.Applications
+namespace Tizen.Applications.Manager
{
/// <summary>
/// InstalledApplication class. This class has the methods and properties of InstalledApplication.
Dispose(false);
}
+ /// <summary>
+ ///
+ /// </summary>
public void Dispose()
{
Dispose(true);
using System;
using System.Collections.Generic;
-namespace Tizen.Applications
+namespace Tizen.Applications.Manager
{
/// <summary>
/// InstalledApplicationFilter class. This class is a parameter of InstallerApplicationAppsAsync method.
}
}
- /// <summary>
- /// InstalledApplicationMetadataFilter class. This class is a parameter of InstallerApplicationAppsAsync method.
- /// </summary>
- public class InstalledApplicationMetadataFilter : IDisposable
- {
- private IntPtr _handle;
- private bool disposed = false;
-
- public InstalledApplicationMetadataFilter(IDictionary<string, string> filter)
- {
- Interop.ApplicationManager.AppInfoMetadataFilterCreate(out _handle);
- foreach (var item in filter)
- {
- Interop.ApplicationManager.AppInfoMetadataFilterAdd(_handle, item.Key, item.Value);
- }
- }
-
- internal IntPtr Handle
- {
- get
- {
- return _handle;
- }
- }
-
- ~InstalledApplicationMetadataFilter()
- {
- Dispose(false);
- }
-
- public void Dispose()
- {
- Dispose(true);
- GC.SuppressFinalize(this);
- }
-
- private void Dispose(bool disposing)
- {
- if (disposed)
- return;
- if (disposing)
- {
- // to be used if there are any other disposable objects
- }
- if (_handle != IntPtr.Zero)
- {
- Interop.ApplicationManager.AppInfoMetadataFilterDestroy(_handle);
- }
- disposed = true;
- }
- }
-}
\ No newline at end of file
+}
--- /dev/null
+/// Copyright 2016 by Samsung Electronics, Inc.,
+///
+/// This software is the confidential and proprietary information
+/// of Samsung Electronics, Inc. ("Confidential Information"). You
+/// shall not disclose such Confidential Information and shall use
+/// it only in accordance with the terms of the license agreement
+/// you entered into with Samsung.
+
+using System;
+using System.Collections.Generic;
+
+namespace Tizen.Applications.Manager
+{
+ /// <summary>
+ /// InstalledApplicationMetadataFilter class. This class is a parameter of InstallerApplicationAppsAsync method.
+ /// </summary>
+ public class InstalledApplicationMetadataFilter : IDisposable
+ {
+ private IntPtr _handle;
+ private bool disposed = false;
+
+ public InstalledApplicationMetadataFilter(IDictionary<string, string> filter)
+ {
+ Interop.ApplicationManager.AppInfoMetadataFilterCreate(out _handle);
+ foreach (var item in filter)
+ {
+ Interop.ApplicationManager.AppInfoMetadataFilterAdd(_handle, item.Key, item.Value);
+ }
+ }
+
+ internal IntPtr Handle
+ {
+ get
+ {
+ return _handle;
+ }
+ }
+
+ ~InstalledApplicationMetadataFilter()
+ {
+ Dispose(false);
+ }
+
+ public void Dispose()
+ {
+ Dispose(true);
+ GC.SuppressFinalize(this);
+ }
+
+ private void Dispose(bool disposing)
+ {
+ if (disposed)
+ return;
+ if (disposing)
+ {
+ // to be used if there are any other disposable objects
+ }
+ if (_handle != IntPtr.Zero)
+ {
+ Interop.ApplicationManager.AppInfoMetadataFilterDestroy(_handle);
+ }
+ disposed = true;
+ }
+ }
+}
/// it only in accordance with the terms of the license agreement
/// you entered into with Samsung.
-using System;
-using System.Threading.Tasks;
-using System.Runtime.InteropServices;
-
-namespace Tizen.Applications
+namespace Tizen.Applications.Manager
{
/// <summary>
/// RunningApplication class. This class has the properties of RunningApplication.
/// </summary>
public class RunningApplication
{
- private string _applicationId;
- private int _processId;
+ private readonly string _applicationId;
+ private readonly int _processId;
internal RunningApplication(string applicationId, int processId)
{
<Compile Include="Interop\Interop.Libraries.cs" />
<Compile Include="Interop\Interop.Service.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
+ <Compile Include="Tizen.Applications.Manager\ApplicationState.cs" />
+ <Compile Include="Tizen.Applications.Manager\InstalledApplicationMetadataFilter.cs" />
<Compile Include="Tizen.Applications\ApplicationInfo.cs" />
<Compile Include="Tizen.Applications\LocaleChangedEventArgs.cs" />
<Compile Include="Tizen.Applications\LowMemoryEventArgs.cs" />
<Compile Include="Tizen.Applications\LowMemoryStatus.cs" />
+ <Compile Include="Tizen.Applications\ReceivedAppControl.cs" />
<Compile Include="Tizen.Applications\ServiceApplication.cs" />
<Compile Include="Tizen.Applications\UIApplication.cs" />
- <Compile Include="Tizen.Applications\ApplicationChangedEventArgs.cs" />
- <Compile Include="Tizen.Applications\ApplicationManager.cs" />
- <Compile Include="Tizen.Applications\ApplicationManagerEvent.cs" />
- <Compile Include="Tizen.Applications\ApplicationManagerFilter.cs" />
- <Compile Include="Tizen.Applications\ApplicationManagerImpl.cs" />
- <Compile Include="Tizen.Applications\InstalledApplication.cs" />
- <Compile Include="Tizen.Applications\RunningApplication.cs" />
+ <Compile Include="Tizen.Applications.Manager\ApplicationChangedEventArgs.cs" />
+ <Compile Include="Tizen.Applications.Manager\ApplicationManager.cs" />
+ <Compile Include="Tizen.Applications.Manager\InstalledApplicationFilter.cs" />
+ <Compile Include="Tizen.Applications.Manager\ApplicationManagerImpl.cs" />
+ <Compile Include="Tizen.Applications.Manager\InstalledApplication.cs" />
+ <Compile Include="Tizen.Applications.Manager\RunningApplication.cs" />
<Compile Include="Tizen.Applications\AppControl.cs" />
<Compile Include="Tizen.Applications\AppControlLaunchMode.cs" />
<Compile Include="Tizen.Applications\AppControlLaunchResult.cs" />
<Target Name="AfterBuild">
</Target>
-->
-</Project>
+</Project>
\ No newline at end of file
{
private const string LogTag = "Tizen.Applications";
- private readonly Interop.AppControl.SafeAppControlHandle _handle;
+ internal Interop.AppControl.SafeAppControlHandle _handle;
private string _operation = null;
private string _mime = null;
}
}
- internal AppControl(IntPtr handle)
- {
- ErrorCode err = Interop.AppControl.DangerousClone(out _handle, handle);
- if (err != ErrorCode.None)
- {
- throw new InvalidOperationException("Failed to create the appcontrol handle. Err = " + err);
- }
- }
-
#region Public Properties
/// <summary>
}
}
- /// <summary>
- ///
- /// </summary>
- public string CallerApplicationId
- {
- get
- {
- string value = String.Empty;
- ErrorCode err = Interop.AppControl.GetCaller(_handle, out value);
- if (err != ErrorCode.None)
- {
- Log.Warn(LogTag, "Failed to get the caller appId from the appcontrol. Err = " + err);
- }
- return value;
- }
- }
-
- /// <summary>
- ///
- /// </summary>
- public bool IsReplyRequested
- {
- get
- {
- bool value = false;
- ErrorCode err = Interop.AppControl.IsReplyRequested(_handle, out value);
- if (err != ErrorCode.None)
- {
- Log.Warn(LogTag, "Failed to check the replyRequested of the appcontrol. Err = " + err);
- }
- return value;
- }
- }
-
public ExtraDataCollection ExtraData
{
get
{
if (_extraData == null)
{
- _extraData = new ExtraDataCollection(_handle);
+ _extraData = new ExtraDataCollection();
}
return _extraData;
}
///
/// </summary>
/// <returns></returns>
- public IEnumerable<string> GetMatchedApplicationIds()
+ public static IEnumerable<string> GetMatchedApplicationIds(AppControl control)
{
List<string> ids = new List<string>();
Interop.AppControl.AppMatchedCallback callback = new Interop.AppControl.AppMatchedCallback(
IntPtr pointerToApplicationIds = Marshal.GetIUnknownForObject(ids);
if (pointerToApplicationIds != null)
{
- ErrorCode err = Interop.AppControl.ForeachAppMatched(_handle, callback, pointerToApplicationIds);
+ ErrorCode err = Interop.AppControl.ForeachAppMatched(control._handle, callback, pointerToApplicationIds);
if (err != ErrorCode.None)
{
throw new InvalidOperationException("Failed to get matched appids. err = " + err);
/// <summary>
///
/// </summary>
- /// <param name="reply"></param>
- public void Reply(AppControl reply)
- {
- throw new NotImplementedException();
- }
-
-
- /// <summary>
- ///
- /// </summary>
public class ExtraDataCollection
{
- private readonly Interop.AppControl.SafeAppControlHandle _handle;
-
- internal ExtraDataCollection(Interop.AppControl.SafeAppControlHandle handle)
- {
- _handle = handle;
- }
-
/// <summary>
///
/// </summary>
///
/// </summary>
/// <param name="control"></param>
- protected virtual void OnStart(AppControl control)
+ protected virtual void OnAppControlReceived(ReceivedAppControl control)
{
}
+++ /dev/null
-/// Copyright 2016 by Samsung Electronics, Inc.,
-///
-/// This software is the confidential and proprietary information
-/// of Samsung Electronics, Inc. ("Confidential Information"). You
-/// shall not disclose such Confidential Information and shall use
-/// it only in accordance with the terms of the license agreement
-/// you entered into with Samsung.
-
-using System;
-using System.Threading.Tasks;
-using System.Runtime.InteropServices;
-
-namespace Tizen.Applications
-{
- internal partial class ApplicationManagerImpl
- {
- internal event EventHandler<ApplicationChangedEventArgs> ApplicationLaunched;
- internal event EventHandler<ApplicationChangedEventArgs> ApplicationTerminated;
- private Interop.ApplicationManager.AppManagerAppContextEventCallback _applicationChangedEventCallback;
-
- private void RegisterApplicationChangedEvent()
- {
- Console.WriteLine("RegisterApplicationChangedEvent()");
- _applicationChangedEventCallback = (IntPtr context, int state, IntPtr userData) =>
- {
- Console.WriteLine("ApplicationChangedEventCallback");
- if (context == IntPtr.Zero) return;
-
- IntPtr ptr = IntPtr.Zero;
- Interop.ApplicationManager.AppContextGetAppId(context, out ptr);
- string appid = Marshal.PtrToStringAuto(ptr);
- int pid = 0;
- Interop.ApplicationManager.AppContextGetPid(context, out pid);
-
- if (state == 0)
- {
- var launchedEventCache = ApplicationLaunched;
- if (launchedEventCache != null)
- {
- Console.WriteLine("Raise up ApplicationLaunched");
- ApplicationChangedEventArgs e = new ApplicationChangedEventArgs(appid, pid, state);
- launchedEventCache(null, e);
- }
- }
- else if (state == 1)
- {
- var terminatedEventCache = ApplicationTerminated;
- if (terminatedEventCache != null)
- {
- Console.WriteLine("Raise up ApplicationTerminated");
- ApplicationChangedEventArgs e = new ApplicationChangedEventArgs(appid, pid, state);
- terminatedEventCache(null, e);
- }
- }
- };
-
- Interop.ApplicationManager.AppManagerSetAppContextEvent(_applicationChangedEventCallback, IntPtr.Zero);
- }
-
- private void UnRegisterApplicationChangedEvent()
- {
- Console.WriteLine("UnRegisterApplicationChangedEvent()");
- Interop.ApplicationManager.AppManagerUnSetAppContextEvent();
- }
- }
-}
-
--- /dev/null
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+using Tizen.Internals.Errors;
+
+namespace Tizen.Applications
+{
+ public class ReceivedAppControl : AppControl
+ {
+ private const string LogTag = "Tizen.Applications";
+
+ internal ReceivedAppControl(IntPtr handle)
+ {
+ ErrorCode err = Interop.AppControl.DangerousClone(out _handle, handle);
+ if (err != ErrorCode.None)
+ {
+ throw new InvalidOperationException("Failed to create the appcontrol handle. Err = " + err);
+ }
+ }
+
+ /// <summary>
+ ///
+ /// </summary>
+ public string CallerApplicationId
+ {
+ get
+ {
+ string value = String.Empty;
+ ErrorCode err = Interop.AppControl.GetCaller(_handle, out value);
+ if (err != ErrorCode.None)
+ {
+ Log.Warn(LogTag, "Failed to get the caller appId from the appcontrol. Err = " + err);
+ }
+ return value;
+ }
+ }
+
+ /// <summary>
+ ///
+ /// </summary>
+ public bool IsReplyRequested
+ {
+ get
+ {
+ bool value = false;
+ ErrorCode err = Interop.AppControl.IsReplyRequested(_handle, out value);
+ if (err != ErrorCode.None)
+ {
+ Log.Warn(LogTag, "Failed to check the replyRequested of the appcontrol. Err = " + err);
+ }
+ return value;
+ }
+ }
+
+
+ /// <summary>
+ ///
+ /// </summary>
+ /// <param name="reply"></param>
+ public void Reply(AppControl reply)
+ {
+ throw new NotImplementedException();
+ }
+
+ }
+}
};
ops.OnAppControl = (appControlHandle, data) =>
{
- OnStart(new AppControl(appControlHandle));
+ OnAppControlReceived(new ReceivedAppControl(appControlHandle));
};
TizenSynchronizationContext.Initialize();
};
ops.OnAppControl = (appControlHandle, data) =>
{
- OnStart(new AppControl(appControlHandle));
+ OnAppControlReceived(new ReceivedAppControl(appControlHandle));
};
ops.OnResume = (data) =>
{