diff options
author | Bruno Martins <bgcngm@gmail.com> | 2021-04-30 16:44:56 +0100 |
---|---|---|
committer | Bruno Martins <bgcngm@gmail.com> | 2021-04-30 19:40:57 +0200 |
commit | c47d955826b073d3e4d0155e671f64ac188154ef (patch) | |
tree | 815525a4d2b11b574ad492aa1e7a5d555ac59ca8 | |
parent | 5f3ded7d05031989437c6213b0c921bda75622cb (diff) |
BatteryLights: Add ability to turn off LED when fully charged
Change-Id: I01b8c753a1f92838462a797fd97b5f6a3c666158
-rw-r--r-- | sdk/src/java/lineageos/providers/LineageSettings.java | 16 | ||||
-rw-r--r-- | sdk/src/java/org/lineageos/internal/notification/LineageBatteryLights.java | 15 |
2 files changed, 28 insertions, 3 deletions
diff --git a/sdk/src/java/lineageos/providers/LineageSettings.java b/sdk/src/java/lineageos/providers/LineageSettings.java index 3ebd92c0..c532869a 100644 --- a/sdk/src/java/lineageos/providers/LineageSettings.java +++ b/sdk/src/java/lineageos/providers/LineageSettings.java @@ -1,6 +1,6 @@ /** * Copyright (C) 2015-2016 The CyanogenMod Project - * 2017-2020 The LineageOS Project + * 2017-2021 The LineageOS Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -1316,6 +1316,17 @@ public final class LineageSettings { sBooleanValidator; /** + * Whether the battery LED should be disabled when the battery is fully charged. + * The value is boolean (1 or 0). + */ + public static final String BATTERY_LIGHT_FULL_CHARGE_DISABLED = + "battery_light_full_charge_disabled"; + + /** @hide */ + public static final Validator BATTERY_LIGHT_FULL_CHARGE_DISABLED_VALIDATOR = + sBooleanValidator; + + /** * Whether the battery LED should repeatedly flash when the battery is low * on charge. The value is boolean (1 or 0). */ @@ -2160,6 +2171,7 @@ public final class LineageSettings { LineageSettings.System.STYLUS_ICON_ENABLED, LineageSettings.System.SWAP_VOLUME_KEYS_ON_ROTATION, LineageSettings.System.BATTERY_LIGHT_ENABLED, + LineageSettings.System.BATTERY_LIGHT_FULL_CHARGE_DISABLED, LineageSettings.System.BATTERY_LIGHT_PULSE, LineageSettings.System.BATTERY_LIGHT_LOW_COLOR, LineageSettings.System.BATTERY_LIGHT_MEDIUM_COLOR, @@ -2298,6 +2310,8 @@ public final class LineageSettings { VALIDATORS.put(BUTTON_BACKLIGHT_ONLY_WHEN_PRESSED, BUTTON_BACKLIGHT_ONLY_WHEN_PRESSED_VALIDATOR); VALIDATORS.put(BATTERY_LIGHT_ENABLED, BATTERY_LIGHT_ENABLED_VALIDATOR); + VALIDATORS.put(BATTERY_LIGHT_FULL_CHARGE_DISABLED, + BATTERY_LIGHT_FULL_CHARGE_DISABLED_VALIDATOR); VALIDATORS.put(BATTERY_LIGHT_PULSE, BATTERY_LIGHT_PULSE_VALIDATOR); VALIDATORS.put(BATTERY_LIGHT_LOW_COLOR, BATTERY_LIGHT_LOW_COLOR_VALIDATOR); VALIDATORS.put(BATTERY_LIGHT_MEDIUM_COLOR, BATTERY_LIGHT_MEDIUM_COLOR_VALIDATOR); diff --git a/sdk/src/java/org/lineageos/internal/notification/LineageBatteryLights.java b/sdk/src/java/org/lineageos/internal/notification/LineageBatteryLights.java index 31ad0279..c87e4891 100644 --- a/sdk/src/java/org/lineageos/internal/notification/LineageBatteryLights.java +++ b/sdk/src/java/org/lineageos/internal/notification/LineageBatteryLights.java @@ -1,5 +1,5 @@ /** - * Copyright (C) 2017-2018 The LineageOS Project + * Copyright (C) 2017-2019,2021 The LineageOS Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -48,6 +48,7 @@ public final class LineageBatteryLights { // Battery light intended operational state. private boolean mLightEnabled = false; // Disable until observer is started + private boolean mLightFullChargeDisabled; private boolean mLedPulseEnabled; private int mBatteryLowARGB; private int mBatteryMediumARGB; @@ -133,7 +134,7 @@ public final class LineageBatteryLights { ledValues.setEnabled(false); ledValues.setColor(0); - if (!mLightEnabled) { + if (!mLightEnabled || mLightFullChargeDisabled) { return; } @@ -215,6 +216,11 @@ public final class LineageBatteryLights { LineageSettings.System.BATTERY_LIGHT_ENABLED), false, this, UserHandle.USER_ALL); + // Battery light disabled if fully charged + resolver.registerContentObserver(LineageSettings.System.getUriFor( + LineageSettings.System.BATTERY_LIGHT_FULL_CHARGE_DISABLED), false, this, + UserHandle.USER_ALL); + // Low battery pulse resolver.registerContentObserver(LineageSettings.System.getUriFor( LineageSettings.System.BATTERY_LIGHT_PULSE), false, this, @@ -261,6 +267,11 @@ public final class LineageBatteryLights { LineageSettings.System.BATTERY_LIGHT_ENABLED, 1, UserHandle.USER_CURRENT) != 0; + // Battery light disabled if fully charged + mLightFullChargeDisabled = LineageSettings.System.getIntForUser(resolver, + LineageSettings.System.BATTERY_LIGHT_FULL_CHARGE_DISABLED, + 1, UserHandle.USER_CURRENT) != 0; + // Low battery pulse mLedPulseEnabled = LineageSettings.System.getIntForUser(resolver, LineageSettings.System.BATTERY_LIGHT_PULSE, |