Ejemplo n.º 1
0
        private void UpdateStatus(IPowerSupplyStatus status)
        {
            var percentage = Math.Round(status.BatteryCharge * 100);
            var tooltip    = string.Empty;

            RenderCharge(status.BatteryCharge, status.BatteryChargeStatus);

            if (status.IsOnline)
            {
                infoShown    = false;
                warningShown = false;
                tooltip      = text.Get(percentage == 100 ? TextKey.SystemControl_BatteryCharged : TextKey.SystemControl_BatteryCharging);
                tooltip      = tooltip.Replace("%%CHARGE%%", percentage.ToString());
            }
            else
            {
                tooltip = text.Get(TextKey.SystemControl_BatteryRemainingCharge);
                tooltip = tooltip.Replace("%%CHARGE%%", percentage.ToString());
                tooltip = tooltip.Replace("%%HOURS%%", status.BatteryTimeRemaining.Hours.ToString());
                tooltip = tooltip.Replace("%%MINUTES%%", status.BatteryTimeRemaining.Minutes.ToString());

                HandleBatteryStatus(status.BatteryChargeStatus);
            }

            if (!infoShown && !warningShown)
            {
                Button.ToolTip = tooltip;
            }

            PowerPlug.Visibility = status.IsOnline ? Visibility.Visible : Visibility.Collapsed;
            Text.Text            = tooltip;
            Warning.Visibility   = status.BatteryChargeStatus == BatteryChargeStatus.Critical ? Visibility.Visible : Visibility.Collapsed;
        }
Ejemplo n.º 2
0
 private void PowerSupply_StatusChanged(IPowerSupplyStatus status)
 {
     Dispatcher.InvokeAsync(() => UpdateStatus(status));
 }