summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruno Martins <bgcngm@gmail.com>2021-04-30 16:44:56 +0100
committerBruno Martins <bgcngm@gmail.com>2021-04-30 19:40:57 +0200
commitc47d955826b073d3e4d0155e671f64ac188154ef (patch)
tree815525a4d2b11b574ad492aa1e7a5d555ac59ca8
parent5f3ded7d05031989437c6213b0c921bda75622cb (diff)
BatteryLights: Add ability to turn off LED when fully charged
Change-Id: I01b8c753a1f92838462a797fd97b5f6a3c666158
-rw-r--r--sdk/src/java/lineageos/providers/LineageSettings.java16
-rw-r--r--sdk/src/java/org/lineageos/internal/notification/LineageBatteryLights.java15
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,