diff --git a/app/AppConfig.cs b/app/AppConfig.cs index f85e65e5..eca94356 100644 --- a/app/AppConfig.cs +++ b/app/AppConfig.cs @@ -691,4 +691,9 @@ public static class AppConfig return ContainsModel("G834JYR") || Is("force_miniled"); } + public static bool SaveDimming() + { + return Is("save_dimming"); + } + } diff --git a/app/Display/VisualControl.cs b/app/Display/VisualControl.cs index d1bb0f7f..158f22c4 100644 --- a/app/Display/VisualControl.cs +++ b/app/Display/VisualControl.cs @@ -323,14 +323,32 @@ namespace GHelper.Display SetGamma(_brightness); } + public static void InitBrightness() + { + if (!AppConfig.IsOLED()) return; + if (!AppConfig.SaveDimming()) return; + + int brightness = GetBrightness(); + if (brightness >= 0) SetBrightness(brightness); + } + + private static bool IsOnBattery() + { + return AppConfig.SaveDimming() && SystemInformation.PowerStatus.PowerLineStatus != PowerLineStatus.Online; + } + + public static int GetBrightness() + { + return AppConfig.Get(IsOnBattery() ? "brightness_battery" : "brightness", 100); + } + public static int SetBrightness(int brightness = -1, int delta = 0) { if (!AppConfig.IsOLED()) return -1; - - if (brightness < 0) brightness = AppConfig.Get("brightness", 100); + if (brightness < 0) GetBrightness(); _brightness = Math.Max(0, Math.Min(100, brightness + delta)); - AppConfig.Set("brightness", _brightness); + AppConfig.Set(IsOnBattery() ? "brightness_battery" : "brightness", _brightness); brightnessTimer.Start(); diff --git a/app/Program.cs b/app/Program.cs index 247f683c..d03df92f 100644 --- a/app/Program.cs +++ b/app/Program.cs @@ -256,6 +256,8 @@ namespace GHelper settingsForm.AutoKeyboard(); } + VisualControl.InitBrightness(); + return true; } diff --git a/app/Settings.cs b/app/Settings.cs index ab6385ff..4a223711 100644 --- a/app/Settings.cs +++ b/app/Settings.cs @@ -453,7 +453,7 @@ namespace GHelper Invoke(delegate { sliderGammaIgnore = true; - sliderGamma.Value = AppConfig.Get("brightness", 100); + sliderGamma.Value = VisualControl.GetBrightness(); labelGamma.Text = sliderGamma.Value + "%"; sliderGammaIgnore = false; });