summaryrefslogtreecommitdiffstats
path: root/services/core/java/com/android/server/BatteryService.java
diff options
context:
space:
mode:
authorAshay Jaiswal <ashayj@codeaurora.org>2015-08-24 18:50:22 +0530
committerLinux Build Service Account <lnxbuild@localhost>2015-10-06 03:28:11 -0600
commitec43b6d83449b7d65c9091f78e376d8c9b073c1f (patch)
tree2d8bd25609f8c125c8352a6787a0e7e3d63a1962 /services/core/java/com/android/server/BatteryService.java
parent9585921d6d448a6424a25273b29156ffd3404092 (diff)
downloadframeworks_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.java43
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