internal class Application : BaseHandle, IResourcesProvider, IApplicationController, IElementConfiguration<Application>
{
+
static Application s_current;
Task<IDictionary<string, object>> _propertiesTask;
readonly Lazy<PlatformConfigurationRegistry<Application>> _platformConfigurationRegistry;
ResourceDictionary _resources;
public bool IsResourcesCreated => _resources != null;
- public delegate void resChangeCb (object sender, ResourcesChangedEventArgs e);
+ public delegate void resChangeCb(object sender, ResourcesChangedEventArgs e);
static private Dictionary<object, Dictionary<resChangeCb, int>> resourceChangeCallbackDict = new Dictionary<object, Dictionary<resChangeCb, int>>();
static public void AddResourceChangedCallback(object handle, resChangeCb cb)
await SaveSemaphore.WaitAsync();
try
{
- await DependencyService.Get<IDeserializer>().SerializePropertiesAsync(Properties);
+ await DependencyService.Get<IDeserializer>()?.SerializePropertiesAsync(Properties);
}
finally
{
if (swigCMemOwn)
{
swigCMemOwn = false;
- NDalicPINVOKE.delete_Application(swigCPtr);
+ Interop.Application.delete_Application(swigCPtr);
}
swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
}
// Initialize DisposeQueue Singleton class. This is also required to create DisposeQueue on main thread.
DisposeQueue.Instance.Initialize();
- NUIApplicationInitEventArgs e = new NUIApplicationInitEventArgs();
- // Populate all members of "e" (NUIApplicationInitEventArgs) with real data
- using (e.Application = Application.GetApplicationFromPtr(data))
+ if (_applicationInitEventHandler != null)
{
- if (_applicationInitEventHandler != null)
- {
- //here we send all data to user event handlers
- _applicationInitEventHandler(this, e);
- }
+ NUIApplicationInitEventArgs e = new NUIApplicationInitEventArgs();
+ e.Application = this;
+ _applicationInitEventHandler.Invoke(this, e);
}
}
// Callback for Application TerminateSignal
private void OnNUIApplicationTerminate(IntPtr data)
{
- NUIApplicationTerminatingEventArgs e = new NUIApplicationTerminatingEventArgs();
-
- // Populate all members of "e" (NUIApplicationTerminateEventArgs) with real data
- using (e.Application = Application.GetApplicationFromPtr(data))
+ if (_applicationTerminateEventHandler != null)
{
- if (_applicationTerminateEventHandler != null)
- {
- //here we send all data to user event handlers
- _applicationTerminateEventHandler(this, e);
- }
+ NUIApplicationTerminatingEventArgs e = new NUIApplicationTerminatingEventArgs();
+ e.Application = this;
+ _applicationTerminateEventHandler.Invoke(this, e);
+ }
+ if (Window.Instance)
+ {
+ Window.Instance.DisconnectNativeSignals();
}
}
// Callback for Application PauseSignal
private void OnNUIApplicationPause(IntPtr data)
{
- NUIApplicationPausedEventArgs e = new NUIApplicationPausedEventArgs();
-
- // Populate all members of "e" (NUIApplicationPauseEventArgs) with real data
- using (e.Application = Application.GetApplicationFromPtr(data))
+ if (_applicationPauseEventHandler != null)
{
- if (_applicationPauseEventHandler != null)
- {
- //here we send all data to user event handlers
- _applicationPauseEventHandler(this, e);
- }
+ NUIApplicationPausedEventArgs e = new NUIApplicationPausedEventArgs();
+ e.Application = this;
+ _applicationPauseEventHandler.Invoke(this, e);
}
}
// Callback for Application ResumeSignal
private void OnNUIApplicationResume(IntPtr data)
{
- NUIApplicationResumedEventArgs e = new NUIApplicationResumedEventArgs();
-
- // Populate all members of "e" (NUIApplicationResumeEventArgs) with real data
- using (e.Application = Application.GetApplicationFromPtr(data))
+ if (_applicationResumeEventHandler != null)
{
- if (_applicationResumeEventHandler != null)
- {
- //here we send all data to user event handlers
- _applicationResumeEventHandler(this, e);
- }
+ NUIApplicationResumedEventArgs e = new NUIApplicationResumedEventArgs();
+ e.Application = this;
+ _applicationResumeEventHandler.Invoke(this, e);
}
}
// Callback for Application ResetSignal
private void OnNUIApplicationReset(IntPtr data)
{
- NUIApplicationResetEventArgs e = new NUIApplicationResetEventArgs();
-
- // Populate all members of "e" (NUIApplicationResetEventArgs) with real data
- using (e.Application = Application.GetApplicationFromPtr(data))
+ if (_applicationResetEventHandler != null)
{
- if (_applicationResetEventHandler != null)
- {
- //here we send all data to user event handlers
- _applicationResetEventHandler(this, e);
- }
+ NUIApplicationResetEventArgs e = new NUIApplicationResetEventArgs();
+ e.Application = this;
+ _applicationResetEventHandler.Invoke(this, e);
}
}
// Callback for Application ResizeSignal
private void OnNUIApplicationResize(IntPtr data)
{
- NUIApplicationResizedEventArgs e = new NUIApplicationResizedEventArgs();
-
- // Populate all members of "e" (NUIApplicationResizeEventArgs) with real data
- using (e.Application = Application.GetApplicationFromPtr(data))
+ if (_applicationResizeEventHandler != null)
{
- if (_applicationResizeEventHandler != null)
- {
- //here we send all data to user event handlers
- _applicationResizeEventHandler(this, e);
- }
+ NUIApplicationResizedEventArgs e = new NUIApplicationResizedEventArgs();
+ e.Application = this;
+ _applicationResizeEventHandler.Invoke(this, e);
}
}
// Callback for Application LanguageChangedSignal
private void OnNUIApplicationLanguageChanged(IntPtr data)
{
- NUIApplicationLanguageChangedEventArgs e = new NUIApplicationLanguageChangedEventArgs();
-
- // Populate all members of "e" (NUIApplicationLanguageChangedEventArgs) with real data
- using (e.Application = Application.GetApplicationFromPtr(data))
+ if (_applicationLanguageChangedEventHandler != null)
{
- if (_applicationLanguageChangedEventHandler != null)
- {
- //here we send all data to user event handlers
- _applicationLanguageChangedEventHandler(this, e);
- }
+ NUIApplicationLanguageChangedEventArgs e = new NUIApplicationLanguageChangedEventArgs();
+ e.Application = this;
+ _applicationLanguageChangedEventHandler.Invoke(this, e);
}
}
// Callback for Application RegionChangedSignal
private void OnNUIApplicationRegionChanged(IntPtr data)
{
- NUIApplicationRegionChangedEventArgs e = new NUIApplicationRegionChangedEventArgs();
-
- // Populate all members of "e" (NUIApplicationRegionChangedEventArgs) with real data
- using (e.Application = Application.GetApplicationFromPtr(data))
+ if (_applicationRegionChangedEventHandler != null)
{
- if (_applicationRegionChangedEventHandler != null)
- {
- //here we send all data to user event handlers
- _applicationRegionChangedEventHandler(this, e);
- }
+ NUIApplicationRegionChangedEventArgs e = new NUIApplicationRegionChangedEventArgs();
+ e.Application = this;
+ _applicationRegionChangedEventHandler.Invoke(this, e);
}
}
// Callback for Application BatteryLowSignal
private void OnNUIApplicationBatteryLow(BatteryStatus status)
{
- NUIApplicationBatteryLowEventArgs e = new NUIApplicationBatteryLowEventArgs();
-
- // Populate all members of "e" (NUIApplicationBatteryLowEventArgs) with real data
- e.BatteryStatus = status;
-
- if (_applicationBatteryLowEventHandler != null)
+ lock (this)
{
- //here we send all data to user event handlers
- _applicationBatteryLowEventHandler(this, e);
+ NUIApplicationBatteryLowEventArgs e = new NUIApplicationBatteryLowEventArgs();
+
+ // Populate all members of "e" (NUIApplicationBatteryLowEventArgs) with real data
+ e.BatteryStatus = status;
+ _applicationBatteryLowEventHandler?.Invoke(this, e);
}
}
// Callback for Application MemoryLowSignal
private void OnNUIApplicationMemoryLow(MemoryStatus status)
{
- NUIApplicationMemoryLowEventArgs e = new NUIApplicationMemoryLowEventArgs();
-
- // Populate all members of "e" (NUIApplicationMemoryLowEventArgs) with real data
- e.MemoryStatus = status;
-
- if (_applicationMemoryLowEventHandler != null)
+ lock (this)
{
- //here we send all data to user event handlers
- _applicationMemoryLowEventHandler(this, e);
+ NUIApplicationMemoryLowEventArgs e = new NUIApplicationMemoryLowEventArgs();
+
+ // Populate all members of "e" (NUIApplicationMemoryLowEventArgs) with real data
+ e.MemoryStatus = status;
+ _applicationMemoryLowEventHandler?.Invoke(this, e);
}
}
// Callback for Application AppControlSignal
private void OnNUIApplicationAppControl(IntPtr application, IntPtr voidp)
{
- NUIApplicationAppControlEventArgs e = new NUIApplicationAppControlEventArgs();
- e.VoidP = voidp;
-
- // Populate all members of "e" (NUIApplicationAppControlEventArgs) with real data
- using (e.Application = Application.GetApplicationFromPtr(application))
+ if (_applicationAppControlEventHandler != null)
{
- if (_applicationAppControlEventHandler != null)
- {
- //here we send all data to user event handlers
- _applicationAppControlEventHandler(this, e);
- }
+ NUIApplicationAppControlEventArgs e = new NUIApplicationAppControlEventArgs();
+ e.VoidP = voidp;
+ e.Application = this;
+ _applicationAppControlEventHandler.Invoke(this, e);
}
}
public static Application GetApplicationFromPtr(global::System.IntPtr cPtr)
{
- Application ret = new Application(cPtr, false);
+ if (cPtr == global::System.IntPtr.Zero)
+ {
+ return null;
+ }
+
+ Application ret = Registry.GetManagedBaseHandleFromNativePtr(cPtr) as Application;
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
public bool AddIdle(System.Delegate func)
{
System.IntPtr ip = System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate<System.Delegate>(func);
- System.IntPtr ip2 = NDalicManualPINVOKE.MakeCallback(new System.Runtime.InteropServices.HandleRef(this, ip));
+ System.IntPtr ip2 = Interop.Application.MakeCallback(new System.Runtime.InteropServices.HandleRef(this, ip));
- bool ret = NDalicPINVOKE.Application_AddIdle(swigCPtr, new System.Runtime.InteropServices.HandleRef(this, ip2));
+ bool ret = Interop.Application.Application_AddIdle(swigCPtr, new System.Runtime.InteropServices.HandleRef(this, ip2));
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
*/
public static Application New()
{
- Application ret = new Application(NDalicPINVOKE.Application_New__SWIG_0(), true);
+ Application ret = new Application(Interop.Application.Application_New__SWIG_0(), true);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
public static Application New(int argc)
{
- Application ret = new Application(NDalicPINVOKE.Application_New__SWIG_1(argc), true);
+ Application ret = new Application(Interop.Application.Application_New__SWIG_1(argc), true);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
public static Application New(int argc, string stylesheet)
{
- Application ret = new Application(NDalicPINVOKE.Application_New__SWIG_2(argc, stylesheet), true);
+ Application ret = new Application(Interop.Application.Application_New__SWIG_2(argc, stylesheet), true);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
public static Application New(int argc, string stylesheet, Application.WindowMode windowMode)
{
- Application ret = new Application(NDalicPINVOKE.Application_New__SWIG_3(argc, stylesheet, (int)windowMode), true);
+ Application ret = new Application(Interop.Application.Application_New__SWIG_3(argc, stylesheet, (int)windowMode), true);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
ret.SendResume();
return ret;
string argvStr = string.Join(" ", args);
Application ret = new Application(NDalicPINVOKE.Application_New__MANUAL_4(argc, argvStr, stylesheet, (int)windowMode), true);
+
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+
return ret;
}
public static Application New(int argc, string stylesheet, Application.WindowMode windowMode, Rectangle positionSize)
{
- Application ret = new Application(NDalicPINVOKE.Application_New__SWIG_4(argc, stylesheet, (int)windowMode, Rectangle.getCPtr(positionSize)), true);
+ Application ret = new Application(Interop.Application.Application_New__SWIG_4(argc, stylesheet, (int)windowMode, Rectangle.getCPtr(positionSize)), true);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
- public Application() : this(NDalicPINVOKE.new_Application__SWIG_0(), true)
+ public Application() : this(Interop.Application.new_Application__SWIG_0(), true)
{
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
- public Application(Application application) : this(NDalicPINVOKE.new_Application__SWIG_1(Application.getCPtr(application)), true)
+ public Application(Application application) : this(Interop.Application.new_Application__SWIG_1(Application.getCPtr(application)), true)
{
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
public Application Assign(Application application)
{
- Application ret = new Application(NDalicPINVOKE.Application_Assign(swigCPtr, Application.getCPtr(application)), false);
+ Application ret = new Application(Interop.Application.Application_Assign(swigCPtr, Application.getCPtr(application)), false);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
internal void MainLoop(SWIGTYPE_p_Configuration__ContextLoss configuration)
{
- NDalicPINVOKE.Application_MainLoop__SWIG_1(swigCPtr, SWIGTYPE_p_Configuration__ContextLoss.getCPtr(configuration));
+ Interop.Application.Application_MainLoop__SWIG_1(swigCPtr, SWIGTYPE_p_Configuration__ContextLoss.getCPtr(configuration));
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
public void Lower()
{
- NDalicPINVOKE.Application_Lower(swigCPtr);
+ Interop.Application.Application_Lower(swigCPtr);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
public void Quit()
{
- NDalicPINVOKE.Application_Quit(swigCPtr);
+ Interop.Application.Application_Quit(swigCPtr);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
internal bool AddIdle(SWIGTYPE_p_Dali__CallbackBase callback)
{
- bool ret = NDalicPINVOKE.Application_AddIdle(swigCPtr, SWIGTYPE_p_Dali__CallbackBase.getCPtr(callback));
+ bool ret = Interop.Application.Application_AddIdle(swigCPtr, SWIGTYPE_p_Dali__CallbackBase.getCPtr(callback));
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
public Window GetWindow()
{
- Window ret = new Window(NDalicPINVOKE.Application_GetWindow(swigCPtr), true);
+ Window ret = new Window(Interop.Application.Application_GetWindow(swigCPtr), true);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
public void ReplaceWindow(Rectangle windowPosition, string name)
{
- NDalicPINVOKE.Application_ReplaceWindow(swigCPtr, Rectangle.getCPtr(windowPosition), name);
+ Interop.Application.Application_ReplaceWindow(swigCPtr, Rectangle.getCPtr(windowPosition), name);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
public static string GetResourcePath()
{
- string ret = NDalicPINVOKE.Application_GetResourcePath();
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- return ret;
- }
-
- internal void SetViewMode(ViewMode viewMode)
- {
- NDalicPINVOKE.Application_SetViewMode(swigCPtr, (int)viewMode);
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- }
-
- internal ViewMode GetViewMode()
- {
- ViewMode ret = (ViewMode)NDalicPINVOKE.Application_GetViewMode(swigCPtr);
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- return ret;
- }
-
- public void SetStereoBase(float stereoBase)
- {
- NDalicPINVOKE.Application_SetStereoBase(swigCPtr, stereoBase);
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- }
-
- public float GetStereoBase()
- {
- float ret = NDalicPINVOKE.Application_GetStereoBase(swigCPtr);
+ string ret = Interop.Application.Application_GetResourcePath();
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
public string GetLanguage()
{
- string ret = NDalicPINVOKE.Application_GetLanguage(swigCPtr);
+ string ret = Interop.Application.Application_GetLanguage(swigCPtr);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
public string GetRegion()
{
- string ret = NDalicPINVOKE.Application_GetRegion(swigCPtr);
+ string ret = Interop.Application.Application_GetRegion(swigCPtr);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}