From bf08de31fa83070acbce92617412f39d00732892 Mon Sep 17 00:00:00 2001 From: hjhun <36876573+hjhun@users.noreply.github.com> Date: Thu, 7 Sep 2023 13:59:09 +0900 Subject: [PATCH] [Applications.Service] Modify ServiceCoreBackend for TimeZone Event (#5534) This patch registers and unregister the time zone changed event. Signed-off-by: Hwankyu Jhun --- .../ServiceCoreBackend.cs | 30 +++++++++++++++++++--- .../Tizen.Applications/ServiceApplication.cs | 2 ++ 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/src/Tizen.Applications.Service/Tizen.Applications.CoreBackend/ServiceCoreBackend.cs b/src/Tizen.Applications.Service/Tizen.Applications.CoreBackend/ServiceCoreBackend.cs index bc1a096..dfdf1dd 100755 --- a/src/Tizen.Applications.Service/Tizen.Applications.CoreBackend/ServiceCoreBackend.cs +++ b/src/Tizen.Applications.Service/Tizen.Applications.CoreBackend/ServiceCoreBackend.cs @@ -28,12 +28,14 @@ namespace Tizen.Applications.CoreBackend private IntPtr _localeChangedEventHandle = IntPtr.Zero; private IntPtr _regionChangedEventHandle = IntPtr.Zero; private IntPtr _deviceOrientationChangedEventHandle = IntPtr.Zero; + private IntPtr _timeZoneChangedEventHandle = IntPtr.Zero; private bool _disposedValue = false; private Interop.Service.AppEventCallback _onLowMemoryNative; private Interop.Service.AppEventCallback _onLowBatteryNative; private Interop.Service.AppEventCallback _onLocaleChangedNative; private Interop.Service.AppEventCallback _onRegionChangedNative; private Interop.Service.AppEventCallback _onDeviceOrientationChangedNative; + private Interop.Service.AppEventCallback _onTimeZoneChangedNative; public ServiceCoreBackend() { @@ -46,6 +48,7 @@ namespace Tizen.Applications.CoreBackend _onLocaleChangedNative = new Interop.Service.AppEventCallback(OnLocaleChangedNative); _onRegionChangedNative = new Interop.Service.AppEventCallback(OnRegionChangedNative); _onDeviceOrientationChangedNative = new Interop.Service.AppEventCallback(OnDeviceOrientationChangedNative); + _onTimeZoneChangedNative = new Interop.Service.AppEventCallback(OnTimeZoneChangedNative); } public override void Exit() @@ -87,6 +90,12 @@ namespace Tizen.Applications.CoreBackend Log.Error(LogTag, "Failed to add event handler for DeviceOrientationChanged event. Err = " + err); } + err = Interop.Service.AddEventHandler(out _timeZoneChangedEventHandle, AppEventType.TimeZoneChanged, _onTimeZoneChangedNative, IntPtr.Zero); + if (err != ErrorCode.None) + { + Log.Error(LogTag, "Failed to add event handler for TimeZoneChanged event. Err = " + err); + } + err = Interop.Service.Main(args.Length, args, ref _callbacks, IntPtr.Zero); if (err != ErrorCode.None) { @@ -107,14 +116,17 @@ namespace Tizen.Applications.CoreBackend { Interop.Service.RemoveEventHandler(_lowMemoryEventHandle); } + if (_lowBatteryEventHandle != IntPtr.Zero) { Interop.Service.RemoveEventHandler(_lowBatteryEventHandle); } + if (_localeChangedEventHandle != IntPtr.Zero) { Interop.Service.RemoveEventHandler(_localeChangedEventHandle); } + if (_regionChangedEventHandle != IntPtr.Zero) { Interop.Service.RemoveEventHandler(_regionChangedEventHandle); @@ -125,6 +137,11 @@ namespace Tizen.Applications.CoreBackend Interop.Service.RemoveEventHandler(_deviceOrientationChangedEventHandle); } + if (_timeZoneChangedEventHandle != IntPtr.Zero) + { + Interop.Service.RemoveEventHandler(_timeZoneChangedEventHandle); + } + _disposedValue = true; } } @@ -154,10 +171,11 @@ namespace Tizen.Applications.CoreBackend { // Create a SafeAppControlHandle but the ownsHandle is false, // because the appControlHandle will be closed by native appfw after this method automatically. - SafeAppControlHandle safeHandle = new SafeAppControlHandle(appControlHandle, false); - - var handler = Handlers[EventType.AppControlReceived] as Action; - handler?.Invoke(new AppControlReceivedEventArgs(new ReceivedAppControl(safeHandle))); + using (SafeAppControlHandle safeHandle = new SafeAppControlHandle(appControlHandle, false)) + { + var handler = Handlers[EventType.AppControlReceived] as Action; + handler?.Invoke(new AppControlReceivedEventArgs(new ReceivedAppControl(safeHandle))); + } } } @@ -186,5 +204,9 @@ namespace Tizen.Applications.CoreBackend base.OnDeviceOrientationChangedNative(infoHandle, data); } + protected override void OnTimeZoneChangedNative(IntPtr infoHandle, IntPtr data) + { + base.OnTimeZoneChangedNative(infoHandle, data); + } } } diff --git a/src/Tizen.Applications.Service/Tizen.Applications/ServiceApplication.cs b/src/Tizen.Applications.Service/Tizen.Applications/ServiceApplication.cs index 109c1d7..91babc5 100755 --- a/src/Tizen.Applications.Service/Tizen.Applications/ServiceApplication.cs +++ b/src/Tizen.Applications.Service/Tizen.Applications/ServiceApplication.cs @@ -29,7 +29,9 @@ namespace Tizen.Applications /// Initializes the ServiceApplication class. /// /// 3 +#pragma warning disable CA2000 public ServiceApplication() : base(new ServiceCoreBackend()) +#pragma warning restore CA2000 { } -- 2.7.4