diff --git a/app/Battery/BatteryControl.cs b/app/Battery/BatteryControl.cs index e2c88ca3..3400eac7 100644 --- a/app/Battery/BatteryControl.cs +++ b/app/Battery/BatteryControl.cs @@ -18,6 +18,12 @@ } + public static void AutoBattery(bool init = false) + { + if (AppConfig.Is("charge_full") && !init) SetBatteryLimitFull(); + else SetBatteryChargeLimit(); + } + public static void SetBatteryChargeLimit(int limit = -1) { diff --git a/app/Program.cs b/app/Program.cs index 662ac677..9af94d86 100644 --- a/app/Program.cs +++ b/app/Program.cs @@ -97,7 +97,7 @@ namespace GHelper gpuControl.InitXGM(); - SetAutoModes(); + SetAutoModes(init : true); // Subscribing for system power change events SystemEvents.PowerModeChanged += SystemEvents_PowerModeChanged; @@ -129,7 +129,7 @@ namespace GHelper private static void SystemEvents_SessionEnding(object sender, SessionEndingEventArgs e) { gpuControl.StandardModeFix(); - BatteryControl.SetBatteryChargeLimit(); + BatteryControl.AutoBattery(); } private static void SystemEvents_SessionSwitch(object sender, SessionSwitchEventArgs e) @@ -173,7 +173,7 @@ namespace GHelper - public static void SetAutoModes(bool powerChanged = false) + public static void SetAutoModes(bool powerChanged = false, bool init = false) { if (Math.Abs(DateTimeOffset.Now.ToUnixTimeMilliseconds() - lastAuto) < 3000) return; @@ -194,7 +194,7 @@ namespace GHelper screenControl.AutoScreen(); } - BatteryControl.SetBatteryChargeLimit(); + BatteryControl.AutoBattery(init); settingsForm.AutoKeyboard(); settingsForm.matrixControl.SetMatrix(true);