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()
{
_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()
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)
{
{
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);
Interop.Service.RemoveEventHandler(_deviceOrientationChangedEventHandle);
}
+ if (_timeZoneChangedEventHandle != IntPtr.Zero)
+ {
+ Interop.Service.RemoveEventHandler(_timeZoneChangedEventHandle);
+ }
+
_disposedValue = true;
}
}
{
// 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<AppControlReceivedEventArgs>;
- handler?.Invoke(new AppControlReceivedEventArgs(new ReceivedAppControl(safeHandle)));
+ using (SafeAppControlHandle safeHandle = new SafeAppControlHandle(appControlHandle, false))
+ {
+ var handler = Handlers[EventType.AppControlReceived] as Action<AppControlReceivedEventArgs>;
+ handler?.Invoke(new AppControlReceivedEventArgs(new ReceivedAppControl(safeHandle)));
+ }
}
}
base.OnDeviceOrientationChangedNative(infoHandle, data);
}
+ protected override void OnTimeZoneChangedNative(IntPtr infoHandle, IntPtr data)
+ {
+ base.OnTimeZoneChangedNative(infoHandle, data);
+ }
}
}