Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d5d87b29 authored by Kenneth Andersson's avatar Kenneth Andersson
Browse files

Make the LED colors when charging customizable by the vendor

This commit will make the default LED colors in the NotificationManager
for battery charge customizable via overlays. The blink on/off
times are customizable in the same manner.

Change-Id: I57ce93656cc4080f5b99554df0ada44c5b31e959
parent 0f0dd448
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -227,6 +227,21 @@
    <!-- Default LED off time for notification LED in milliseconds. -->
    <integer name="config_defaultNotificationLedOff">2000</integer>

    <!-- Default value for led color when battery is low on charge -->
    <integer name="config_notificationsBatteryLowARGB">0xFFFF0000</integer>

    <!-- Default value for led color when battery is medium charged -->
    <integer name="config_notificationsBatteryMediumARGB">0xFFFFFF00</integer>

    <!-- Default value for led color when battery is fully charged -->
    <integer name="config_notificationsBatteryFullARGB">0xFF00FF00</integer>

    <!-- Default value for LED on time when the battery is low on charge in miliseconds -->
    <integer name="config_notificationsBatteryLedOn">125</integer>

    <!-- Default value for LED off time when the battery is low on charge in miliseconds -->
    <integer name="config_notificationsBatteryLedOff">2875</integer>

    <!-- Allow the menu hard key to be disabled in LockScreen on some devices -->
    <bool name="config_disableMenuKeyInLockScreen">false</bool>

+21 −10
Original line number Diff line number Diff line
@@ -127,11 +127,11 @@ class NotificationManagerService extends INotificationManager.Stub
    private boolean mBatteryFull;
    private NotificationRecord mLedNotification;

    private static final int BATTERY_LOW_ARGB = 0xFFFF0000; // Charging Low - red solid on
    private static final int BATTERY_MEDIUM_ARGB = 0xFFFFFF00;    // Charging - orange solid on
    private static final int BATTERY_FULL_ARGB = 0xFF00FF00; // Charging Full - green solid on
    private static final int BATTERY_BLINK_ON = 125;
    private static final int BATTERY_BLINK_OFF = 2875;
    private static int mBatteryLowARGB;
    private static int mBatteryMediumARGB;
    private static int mBatteryFullARGB;
    private static int mBatteryLedOn;
    private static int mBatteryLedOff;

    private static String idDebugString(Context baseContext, String packageName, int id) {
        Context c = null;
@@ -432,6 +432,17 @@ class NotificationManagerService extends INotificationManager.Stub
        mDefaultNotificationLedOff = resources.getInteger(
                com.android.internal.R.integer.config_defaultNotificationLedOff);

        mBatteryLowARGB = mContext.getResources().getInteger(
                com.android.internal.R.integer.config_notificationsBatteryLowARGB);
        mBatteryMediumARGB = mContext.getResources().getInteger(
                com.android.internal.R.integer.config_notificationsBatteryMediumARGB);
        mBatteryFullARGB = mContext.getResources().getInteger(
                com.android.internal.R.integer.config_notificationsBatteryFullARGB);
        mBatteryLedOn = mContext.getResources().getInteger(
                com.android.internal.R.integer.config_notificationsBatteryLedOn);
        mBatteryLedOff = mContext.getResources().getInteger(
                com.android.internal.R.integer.config_notificationsBatteryLedOff);

        // Don't start allowing notifications until the setup wizard has run once.
        // After that, including subsequent boots, init with notifications turned on.
        // This works on the first boot because the setup wizard will toggle this
@@ -1043,17 +1054,17 @@ class NotificationManagerService extends INotificationManager.Stub
        // Battery low always shows, other states only show if charging.
        if (mBatteryLow) {
            if (mBatteryCharging) {
                mBatteryLight.setColor(BATTERY_LOW_ARGB);
                mBatteryLight.setColor(mBatteryLowARGB);
            } else {
                // Flash when battery is low and not charging
                mBatteryLight.setFlashing(BATTERY_LOW_ARGB, LightsService.LIGHT_FLASH_TIMED,
                        BATTERY_BLINK_ON, BATTERY_BLINK_OFF);
                mBatteryLight.setFlashing(mBatteryLowARGB, LightsService.LIGHT_FLASH_TIMED,
                        mBatteryLedOn, mBatteryLedOff);
            }
        } else if (mBatteryCharging) {
            if (mBatteryFull) {
                mBatteryLight.setColor(BATTERY_FULL_ARGB);
                mBatteryLight.setColor(mBatteryFullARGB);
            } else {
                mBatteryLight.setColor(BATTERY_MEDIUM_ARGB);
                mBatteryLight.setColor(mBatteryMediumARGB);
            }
        } else {
            mBatteryLight.turnOff();