private static void EventListenerStart() { s_handler = (int type, IntPtr value, IntPtr data) => { int val = value.ToInt32(); DisplayStateChangedEventArgs e = new DisplayStateChangedEventArgs() { State = (DisplayState)val }; s_stateChanged?.Invoke(null, e); return(true); }; Interop.Device.DeviceAddCallback(EventType.DisplayState, s_handler, IntPtr.Zero); }
// Raised when the screen of the device is on/off/dim. private void Display_StateChanged(object sender, TSystem.DisplayStateChangedEventArgs e) { Console.WriteLine("[Display_StateChanged] " + e.State); // When device's screen turns on if (e.State == TSystem.DisplayState.Normal) { // Update Time for UI update WatchTime time = GetCurrentTime(); _viewModel.Time = time.UtcTimestamp + TimeSpan.FromMilliseconds(time.Millisecond); // Update Information about Weather & Battery _viewModel.UpdateInformation(); } else if (e.State == TSystem.DisplayState.Off) { // When the screen of the device is off _viewModel.UnregisterEvents(); } }