diff options
author | Ashay Jaiswal <ashayj@codeaurora.org> | 2015-08-24 18:50:22 +0530 |
---|---|---|
committer | Linux Build Service Account <lnxbuild@localhost> | 2015-10-06 03:28:11 -0600 |
commit | ec43b6d83449b7d65c9091f78e376d8c9b073c1f (patch) | |
tree | 2d8bd25609f8c125c8352a6787a0e7e3d63a1962 /services/core/java/com/android/server/BatteryService.java | |
parent | 9585921d6d448a6424a25273b29156ffd3404092 (diff) | |
download | frameworks_base-ec43b6d83449b7d65c9091f78e376d8c9b073c1f.zip frameworks_base-ec43b6d83449b7d65c9091f78e376d8c9b073c1f.tar.gz frameworks_base-ec43b6d83449b7d65c9091f78e376d8c9b073c1f.tar.bz2 |
batteryservice: add support for charger led blinking
Add following charger LED behaviour:
If battery SOC is between 15 and 90
- if charger type is HVDCP blink LED (orange color)
- for any other charger type solid orange color.
Change-Id: Ibd0589911f9b6d9c92b331f10d93c4035a8f89b8
Diffstat (limited to 'services/core/java/com/android/server/BatteryService.java')
-rw-r--r-- | services/core/java/com/android/server/BatteryService.java | 43 |
1 files changed, 41 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/BatteryService.java b/services/core/java/com/android/server/BatteryService.java index b3b4651..c3200fe 100644 --- a/services/core/java/com/android/server/BatteryService.java +++ b/services/core/java/com/android/server/BatteryService.java @@ -51,6 +51,11 @@ import android.util.Slog; import java.io.File; import java.io.FileDescriptor; import java.io.FileOutputStream; +import java.io.FileReader; +import java.io.BufferedInputStream; +import java.io.BufferedReader; +import java.io.FileInputStream; +import java.io.FileNotFoundException; import java.io.IOException; import java.io.PrintWriter; @@ -735,6 +740,34 @@ public final class BatteryService extends SystemService { com.android.internal.R.integer.config_notificationsBatteryLedOff); } + private boolean isHvdcpPresent() { + File mChargerTypeFile = new File("/sys/class/power_supply/usb/type"); + FileReader fileReader; + BufferedReader br; + String type; + boolean ret; + + try { + fileReader = new FileReader(mChargerTypeFile); + br = new BufferedReader(fileReader); + type = br.readLine(); + if (type.regionMatches(true, 0, "USB_HVDCP", 0, 9)) + ret = true; + else + ret = false; + br.close(); + fileReader.close(); + } catch (FileNotFoundException e) { + ret = false; + Slog.e(TAG, "Failure in reading charger type", e); + } catch (IOException e) { + ret = false; + Slog.e(TAG, "Failure in reading charger type", e); + } + + return ret; + } + /** * Synchronize on BatteryService. */ @@ -756,8 +789,14 @@ public final class BatteryService extends SystemService { // Solid green when full or charging and nearly full mBatteryLight.setColor(mBatteryFullARGB); } else { - // Solid orange when charging and halfway full - mBatteryLight.setColor(mBatteryMediumARGB); + if (isHvdcpPresent()) { + // Blinking orange if HVDCP charger + mBatteryLight.setFlashing(mBatteryMediumARGB, Light.LIGHT_FLASH_TIMED, + mBatteryLedOn, mBatteryLedOn); + } else { + // Solid orange when charging and halfway full + mBatteryLight.setColor(mBatteryMediumARGB); + } } } else { // No lights if not charging and not low |