Skip to content

Instantly share code, notes, and snippets.

@Razziell
Created May 8, 2018 14:35
Show Gist options
  • Save Razziell/ea7ef841093d23168301430fad3a953e to your computer and use it in GitHub Desktop.
Save Razziell/ea7ef841093d23168301430fad3a953e to your computer and use it in GitHub Desktop.
Фреймворк:
From 19abe51e94f16616177a8cef1eb8ee522cd77993 Mon Sep 17 00:00:00 2001
From: Razziell <razziell@ya.ru>
Date: Mon, 7 May 2018 20:41:48 +0300
Subject: [PATCH] Battery light: 100% charged level (1/3)
---
core/res/res/values/config.xml | 5 ++++-
core/res/res/values/symbols.xml | 1 +
services/core/java/com/android/server/BatteryService.java | 3 +++
3 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index a3e623f..c3d510c 100644
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -1078,7 +1078,10 @@
<integer name="config_notificationsBatteryMediumARGB">0xFFFFFF00</integer>
<!-- Default value for led color when battery is fully charged -->
- <integer name="config_notificationsBatteryFullARGB">0xFF00FF00</integer>
+ <integer name="config_notificationsBatteryFullARGB">0xFF0000FF</integer>
+
+ <!-- Default value for led color when battery is really fully charged -->
+ <integer name="config_notificationsBatteryReallyFullARGB">0xFF00FF00</integer>
<!-- Default value for LED on time when the battery is low on charge in miliseconds -->
<integer name="config_notificationsBatteryLedOn">125</integer>
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index 2e8055d..6f2648d 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -1832,6 +1832,7 @@
<java-symbol type="bool" name="config_apfDrop802_3Frames" />
<java-symbol type="integer" name="config_networkMeteredMultipathPreference" />
<java-symbol type="integer" name="config_notificationsBatteryFullARGB" />
+ <java-symbol type="integer" name="config_notificationsBatteryReallyFullARGB" />
<java-symbol type="integer" name="config_notificationsBatteryLedOff" />
<java-symbol type="integer" name="config_notificationsBatteryLedOn" />
<java-symbol type="integer" name="config_notificationsBatteryLowARGB" />
diff --git a/services/core/java/com/android/server/BatteryService.java b/services/core/java/com/android/server/BatteryService.java
index 0837252..d55d29d 100644
--- a/services/core/java/com/android/server/BatteryService.java
+++ b/services/core/java/com/android/server/BatteryService.java
@@ -959,6 +959,7 @@ public final class BatteryService extends SystemService {
private final int mBatteryLowARGB;
private final int mBatteryMediumARGB;
private final int mBatteryFullARGB;
+ private final int mBatteryReallyFullARGB;
private final int mBatteryLedOn;
private final int mBatteryLedOff;
@@ -971,6 +972,8 @@ public final class BatteryService extends SystemService {
com.android.internal.R.integer.config_notificationsBatteryMediumARGB);
mBatteryFullARGB = context.getResources().getInteger(
com.android.internal.R.integer.config_notificationsBatteryFullARGB);
+ mBatteryReallyFullARGB = context.getResources().getInteger(
+ com.android.internal.R.integer.config_notificationsBatteryReallyFullARGB);
mBatteryLedOn = context.getResources().getInteger(
com.android.internal.R.integer.config_notificationsBatteryLedOn);
mBatteryLedOff = context.getResources().getInteger(
--
2.7.4
lineage-sdk:
From e20208903cabf33f94826ad500d3f356627d2779 Mon Sep 17 00:00:00 2001
From: Razziell <razziell@ya.ru>
Date: Mon, 7 May 2018 20:53:14 +0300
Subject: [PATCH] Battery light: 100% charged level (3/3)
---
api/lineage_current.txt | 1 +
.../java/lineageos/providers/LineageSettings.java | 11 +++++++++++
.../internal/notification/LineageBatteryLights.java | 20 +++++++++++++++++---
3 files changed, 29 insertions(+), 3 deletions(-)
diff --git a/api/lineage_current.txt b/api/lineage_current.txt
index 9f36306..114fdab 100644
--- a/api/lineage_current.txt
+++ b/api/lineage_current.txt
@@ -797,6 +797,7 @@ package lineageos.providers {
field public static final java.lang.String BATTERY_LIGHT_BRIGHTNESS_LEVEL = "battery_light_brightness_level";
field public static final java.lang.String BATTERY_LIGHT_BRIGHTNESS_LEVEL_ZEN = "battery_light_brightness_level_zen";
field public static final java.lang.String BATTERY_LIGHT_ENABLED = "battery_light_enabled";
+ field public static final java.lang.String BATTERY_LIGHT_REALLY_FULL_COLOR = "battery_light_really_full_color";
field public static final java.lang.String BATTERY_LIGHT_FULL_COLOR = "battery_light_full_color";
field public static final java.lang.String BATTERY_LIGHT_LOW_COLOR = "battery_light_low_color";
field public static final java.lang.String BATTERY_LIGHT_MEDIUM_COLOR = "battery_light_medium_color";
diff --git a/sdk/src/java/lineageos/providers/LineageSettings.java b/sdk/src/java/lineageos/providers/LineageSettings.java
index aa154fd..1b1d708 100644
--- a/sdk/src/java/lineageos/providers/LineageSettings.java
+++ b/sdk/src/java/lineageos/providers/LineageSettings.java
@@ -1302,6 +1302,15 @@ public final class LineageSettings {
sColorValidator;
/**
+ * What color to use for the battery LED while charging - really full
+ */
+ public static final String BATTERY_LIGHT_REALLY_FULL_COLOR = "battery_light_really_full_color";
+
+ /** @hide */
+ public static final Validator BATTERY_LIGHT_REALLY_FULL_COLOR_VALIDATOR =
+ sColorValidator;
+
+ /**
* Sprint MWI Quirk: Show message wait indicator notifications
* @hide
*/
@@ -2057,6 +2066,7 @@ public final class LineageSettings {
LineageSettings.System.BATTERY_LIGHT_LOW_COLOR,
LineageSettings.System.BATTERY_LIGHT_MEDIUM_COLOR,
LineageSettings.System.BATTERY_LIGHT_FULL_COLOR,
+ LineageSettings.System.BATTERY_LIGHT_REALLY_FULL_COLOR,
LineageSettings.System.ENABLE_MWI_NOTIFICATION,
LineageSettings.System.PROXIMITY_ON_WAKE,
LineageSettings.System.ENABLE_FORWARD_LOOKUP,
@@ -2211,6 +2221,7 @@ public final class LineageSettings {
VALIDATORS.put(BATTERY_LIGHT_LOW_COLOR, BATTERY_LIGHT_LOW_COLOR_VALIDATOR);
VALIDATORS.put(BATTERY_LIGHT_MEDIUM_COLOR, BATTERY_LIGHT_MEDIUM_COLOR_VALIDATOR);
VALIDATORS.put(BATTERY_LIGHT_FULL_COLOR, BATTERY_LIGHT_FULL_COLOR_VALIDATOR);
+ VALIDATORS.put(BATTERY_LIGHT_REALLY_FULL_COLOR, BATTERY_LIGHT_REALLY_FULL_COLOR_VALIDATOR);
VALIDATORS.put(ENABLE_MWI_NOTIFICATION, ENABLE_MWI_NOTIFICATION_VALIDATOR);
VALIDATORS.put(PROXIMITY_ON_WAKE, PROXIMITY_ON_WAKE_VALIDATOR);
VALIDATORS.put(BERRY_GLOBAL_STYLE, BERRY_GLOBAL_STYLE_VALIDATOR);
diff --git a/sdk/src/java/org/lineageos/internal/notification/LineageBatteryLights.java b/sdk/src/java/org/lineageos/internal/notification/LineageBatteryLights.java
index a318ce1..2b8cf6c 100644
--- a/sdk/src/java/org/lineageos/internal/notification/LineageBatteryLights.java
+++ b/sdk/src/java/org/lineageos/internal/notification/LineageBatteryLights.java
@@ -55,6 +55,7 @@ public final class LineageBatteryLights {
private int mBatteryLowARGB;
private int mBatteryMediumARGB;
private int mBatteryFullARGB;
+ private int mBatteryReallyFullARGB;
private int mBatteryBrightnessLevel;
private int mBatteryBrightnessZenLevel;
@@ -166,9 +167,15 @@ public final class LineageBatteryLights {
} else if (status == BatteryManager.BATTERY_STATUS_CHARGING
|| status == BatteryManager.BATTERY_STATUS_FULL) {
if (status == BatteryManager.BATTERY_STATUS_FULL || level >= 90) {
- // Battery is full or charging and nearly full.
- ledValues.setColor(mBatteryFullARGB);
- ledValues.setSolid();
+ if (level == 100) {
+ // Battery is really full
+ ledValues.setColor(mBatteryReallyFullARGB);
+ ledValues.setSolid();
+ } else {
+ // Battery is full or charging and nearly full
+ ledValues.setColor(mBatteryFullARGB);
+ ledValues.setSolid();
+ }
} else {
// Battery is charging and not nearly full.
ledValues.setColor(mBatteryMediumARGB);
@@ -226,6 +233,9 @@ public final class LineageBatteryLights {
resolver.registerContentObserver(LineageSettings.System.getUriFor(
LineageSettings.System.BATTERY_LIGHT_FULL_COLOR), false, this,
UserHandle.USER_ALL);
+ resolver.registerContentObserver(LineageSettings.System.getUriFor(
+ LineageSettings.System.BATTERY_LIGHT_REALLY_FULL_COLOR), false, this,
+ UserHandle.USER_ALL);
}
if (mCanAdjustBrightness) {
@@ -274,6 +284,10 @@ public final class LineageBatteryLights {
LineageSettings.System.BATTERY_LIGHT_FULL_COLOR, res.getInteger(
com.android.internal.R.integer.config_notificationsBatteryFullARGB),
UserHandle.USER_CURRENT);
+ mBatteryReallyFullARGB = LineageSettings.System.getIntForUser(resolver,
+ LineageSettings.System.BATTERY_LIGHT_REALLY_FULL_COLOR, res.getInteger(
+ com.android.internal.R.integer.config_notificationsBatteryReallyFullARGB),
+ UserHandle.USER_CURRENT);
// Adustable battery LED brightness.
if (mCanAdjustBrightness) {
--
2.7.4
LineageParts:
From 5ac901429833ecb692781af7a40495fcb6c41d93 Mon Sep 17 00:00:00 2001
From: Razziell <razziell@ya.ru>
Date: Mon, 7 May 2018 20:45:15 +0300
Subject: [PATCH] Battery light: 100% charged level (2/3)
---
res/values-ru/strings.xml | 3 ++-
res/values/strings.xml | 3 ++-
res/xml/battery_light_settings.xml | 5 +++++
.../notificationlight/BatteryLightSettings.java | 25 +++++++++++++++++++++-
4 files changed, 33 insertions(+), 3 deletions(-)
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 9d05376..f8a3a3b 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -86,7 +86,8 @@
<string name="battery_light_list_title">Цвета</string>
<string name="battery_light_low_color_title">Батарея разряжена</string>
<string name="battery_light_medium_color_title">Заряжается</string>
- <string name="battery_light_full_color_title">Полностью заряжена</string>
+ <string name="battery_light_full_color_title">Заряжена (90%)</string>
+ <string name="battery_light_really_full_color_title">Полностью заряжена</string>
<!-- Lights settings screen, notification light settings -->
<string name="notification_light_title">Индикация уведомлений</string>
<string name="notification_light_general_title">Общие</string>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 16e20b9..3d835e5 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -96,7 +96,8 @@
<string name="battery_light_list_title">Colors</string>
<string name="battery_light_low_color_title">Battery low</string>
<string name="battery_light_medium_color_title">Charging</string>
- <string name="battery_light_full_color_title">Fully charged</string>
+ <string name="battery_light_full_color_title">Charged (90%)</string>
+ <string name="battery_light_really_full_color_title">Charged (100%)</string>
<string name="battery_light_brightness_normal" translatable="false">@string/light_brightness_normal</string>
<string name="battery_light_brightness_zen" translatable="false">@string/light_brightness_zen</string>
diff --git a/res/xml/battery_light_settings.xml b/res/xml/battery_light_settings.xml
index eb2b671..b94a05c 100644
--- a/res/xml/battery_light_settings.xml
+++ b/res/xml/battery_light_settings.xml
@@ -55,6 +55,11 @@
android:title="@string/battery_light_full_color_title"
android:persistent="false" />
+ <org.lineageos.lineageparts.notificationlight.ApplicationLightPreference
+ android:key="really_full_color"
+ android:title="@string/battery_light_really_full_color_title"
+ android:persistent="false" />
+
</PreferenceCategory>
<PreferenceCategory
diff --git a/src/org/lineageos/lineageparts/notificationlight/BatteryLightSettings.java b/src/org/lineageos/lineageparts/notificationlight/BatteryLightSettings.java
index c723156..94ca3ca 100644
--- a/src/org/lineageos/lineageparts/notificationlight/BatteryLightSettings.java
+++ b/src/org/lineageos/lineageparts/notificationlight/BatteryLightSettings.java
@@ -20,6 +20,7 @@ import android.content.ContentResolver;
import android.content.Context;
import android.content.res.Resources;
import android.os.Bundle;
+import android.provider.Settings;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceGroup;
import android.support.v7.preference.PreferenceScreen;
@@ -45,6 +46,7 @@ public class BatteryLightSettings extends SettingsPreferenceFragment implements
private static final String LOW_COLOR_PREF = "low_color";
private static final String MEDIUM_COLOR_PREF = "medium_color";
private static final String FULL_COLOR_PREF = "full_color";
+ private static final String REALLY_FULL_COLOR_PREF = "really_full_color";
private static final String LIGHT_ENABLED_PREF = "battery_light_enabled";
private static final String PULSE_ENABLED_PREF = "battery_light_pulse";
private static final String BRIGHTNESS_PREFERENCE = "battery_light_brightness_level";
@@ -54,6 +56,7 @@ public class BatteryLightSettings extends SettingsPreferenceFragment implements
private ApplicationLightPreference mLowColorPref;
private ApplicationLightPreference mMediumColorPref;
private ApplicationLightPreference mFullColorPref;
+ private ApplicationLightPreference mReallyFullColorPref;
private LineageSystemSettingSwitchPreference mLightEnabledPref;
private LineageSystemSettingSwitchPreference mPulseEnabledPref;
private BatteryBrightnessPreference mBatteryBrightnessPref;
@@ -61,6 +64,7 @@ public class BatteryLightSettings extends SettingsPreferenceFragment implements
private int mDefaultLowColor;
private int mDefaultMediumColor;
private int mDefaultFullColor;
+ private int mDefaultReallyFullColor;
private int mBatteryBrightness;
// liblights supports brightness control
private boolean mHALAdjustableBrightness;
@@ -107,6 +111,8 @@ public class BatteryLightSettings extends SettingsPreferenceFragment implements
com.android.internal.R.integer.config_notificationsBatteryMediumARGB);
mDefaultFullColor = res.getInteger(
com.android.internal.R.integer.config_notificationsBatteryFullARGB);
+ mDefaultReallyFullColor = res.getInteger(
+ com.android.internal.R.integer.config_notificationsBatteryReallyFullARGB);
mBatteryBrightness = mBatteryBrightnessPref.getBrightnessSetting();
@@ -133,6 +139,11 @@ public class BatteryLightSettings extends SettingsPreferenceFragment implements
mFullColorPref.setDefaultValues(mDefaultFullColor, 0, 0);
mFullColorPref.setBrightness(mBatteryBrightness);
+ mReallyFullColorPref = (ApplicationLightPreference) prefSet.findPreference(REALLY_FULL_COLOR_PREF);
+ mReallyFullColorPref.setOnPreferenceChangeListener(this);
+ mReallyFullColorPref.setDefaultValues(mDefaultReallyFullColor, 0, 0);
+ mReallyFullColorPref.setBrightness(mBatteryBrightness);
+
final BrightnessPreference.OnBrightnessChangedListener brightnessListener =
new BrightnessPreference.OnBrightnessChangedListener() {
@Override
@@ -140,6 +151,7 @@ public class BatteryLightSettings extends SettingsPreferenceFragment implements
mLowColorPref.setBrightness(brightness);
mMediumColorPref.setBrightness(brightness);
mFullColorPref.setBrightness(brightness);
+ mReallyFullColorPref.setBrightness(brightness);
}
};
mBatteryBrightnessPref.setOnBrightnessChangedListener(brightnessListener);
@@ -182,8 +194,15 @@ public class BatteryLightSettings extends SettingsPreferenceFragment implements
int fullColor = LineageSettings.System.getInt(resolver,
LineageSettings.System.BATTERY_LIGHT_FULL_COLOR, mDefaultFullColor);
mFullColorPref.setAllValues(fullColor, 0, 0, false);
- updateBrightnessPrefColor(fullColor);
}
+
+ if (mReallyFullColorPref != null) {
+ int reallyfullColor = LineageSettings.System.getInt(resolver,
+ LineageSettings.System.BATTERY_LIGHT_REALLY_FULL_COLOR, mDefaultReallyFullColor);
+ mReallyFullColorPref.setAllValues(reallyfullColor, 0, 0, false);
+ updateBrightnessPrefColor(reallyfullColor);
+ }
+
}
private void updateBrightnessPrefColor(int color) {
@@ -211,6 +230,8 @@ public class BatteryLightSettings extends SettingsPreferenceFragment implements
LineageSettings.System.putInt(resolver, LineageSettings.System.BATTERY_LIGHT_MEDIUM_COLOR, color);
} else if (key.equals(FULL_COLOR_PREF)) {
LineageSettings.System.putInt(resolver, LineageSettings.System.BATTERY_LIGHT_FULL_COLOR, color);
+ } else if (key.equals(REALLY_FULL_COLOR_PREF)) {
+ LineageSettings.System.putInt(resolver, LineageSettings.System.BATTERY_LIGHT_REALLY_FULL_COLOR, color);
updateBrightnessPrefColor(color);
}
}
@@ -246,6 +267,8 @@ public class BatteryLightSettings extends SettingsPreferenceFragment implements
mDefaultMediumColor);
LineageSettings.System.putInt(resolver, LineageSettings.System.BATTERY_LIGHT_FULL_COLOR,
mDefaultFullColor);
+ LineageSettings.System.putInt(resolver, LineageSettings.System.BATTERY_LIGHT_REALLY_FULL_COLOR,
+ mDefaultReallyFullColor);
refreshColors();
}
--
2.7.4
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment