示例#1
0
        /// <summary>
        /// Default class constructor.
        /// </summary>
        public Display()
        {
            _service = DependencyService.Get <IDisplay>();

            _service.DisplayChanged += (s, e) => { DisplayStateChanged?.Invoke(s, e); };

            _service.ScreenBacklightTimeChanged += (s, e) => { ScreenBacklightTimeChanged?.Invoke(s, e); };

            _service.StartListening();

            var oldBrightness = MainDisplayBrightness;

            Device.StartTimer(TimeSpan.FromSeconds(3), () =>
            {
                var brightness = _service.MainDisplayBrightness;
                if (oldBrightness == brightness)
                {
                    return(true);
                }

                oldBrightness = brightness;
                DisplayBrightnessChanged?.Invoke(this, new DisplayBrightnessEventArgs(brightness));

                return(true);
            });
        }
        /// <summary>
        /// Starts observing display information for changes.
        /// </summary>
        /// <remarks>
        /// Display events will be never invoked before calling this method.
        /// </remarks>
        public void StartListening()
        {
            Display.StateChanged +=
                (s, e) =>
            {
                DisplayChanged?.Invoke(s, new DisplayStateEventArgs(EnumMapper.DisplayStateMapper(e.State)));
            };

            SystemSettings.ScreenBacklightTimeChanged +=
                (s, e) =>
            {
                ScreenBacklightTimeChanged?.Invoke(s,
                                                   new SystemInfo.Model.Display.ScreenBacklightTimeChangedEventArgs(e.Value));
            };
        }