Loading healthd/BatteryMonitor.cpp +14 −0 Original line number Diff line number Diff line Loading @@ -233,6 +233,15 @@ int BatteryMonitor::getIntField(const String8& path) { return value; } bool BatteryMonitor::isScopedPowerSupply(const char* name) { constexpr char kScopeDevice[] = "Device"; String8 path; path.appendFormat("%s/%s/scope", POWER_SUPPLY_SYSFS_PATH, name); std::string scope; return (readFromFile(path, &scope) > 0 && scope == kScopeDevice); } void BatteryMonitor::updateValues(void) { initHealthInfo(mHealthInfo.get()); Loading Loading @@ -547,6 +556,11 @@ void BatteryMonitor::init(struct healthd_config *hc) { break; case ANDROID_POWER_SUPPLY_TYPE_BATTERY: // Some devices expose the battery status of sub-component like // stylus. Such a device-scoped battery info needs to be skipped // in BatteryMonitor, which is intended to report the status of // the battery supplying the power to the whole system. if (isScopedPowerSupply(name)) continue; mBatteryDevicePresent = true; if (mHealthdConfig->batteryStatusPath.isEmpty()) { Loading healthd/include/healthd/BatteryMonitor.h +1 −0 Original line number Diff line number Diff line Loading @@ -78,6 +78,7 @@ class BatteryMonitor { PowerSupplyType readPowerSupplyType(const String8& path); bool getBooleanField(const String8& path); int getIntField(const String8& path); bool isScopedPowerSupply(const char* name); }; }; // namespace android Loading Loading
healthd/BatteryMonitor.cpp +14 −0 Original line number Diff line number Diff line Loading @@ -233,6 +233,15 @@ int BatteryMonitor::getIntField(const String8& path) { return value; } bool BatteryMonitor::isScopedPowerSupply(const char* name) { constexpr char kScopeDevice[] = "Device"; String8 path; path.appendFormat("%s/%s/scope", POWER_SUPPLY_SYSFS_PATH, name); std::string scope; return (readFromFile(path, &scope) > 0 && scope == kScopeDevice); } void BatteryMonitor::updateValues(void) { initHealthInfo(mHealthInfo.get()); Loading Loading @@ -547,6 +556,11 @@ void BatteryMonitor::init(struct healthd_config *hc) { break; case ANDROID_POWER_SUPPLY_TYPE_BATTERY: // Some devices expose the battery status of sub-component like // stylus. Such a device-scoped battery info needs to be skipped // in BatteryMonitor, which is intended to report the status of // the battery supplying the power to the whole system. if (isScopedPowerSupply(name)) continue; mBatteryDevicePresent = true; if (mHealthdConfig->batteryStatusPath.isEmpty()) { Loading
healthd/include/healthd/BatteryMonitor.h +1 −0 Original line number Diff line number Diff line Loading @@ -78,6 +78,7 @@ class BatteryMonitor { PowerSupplyType readPowerSupplyType(const String8& path); bool getBooleanField(const String8& path); int getIntField(const String8& path); bool isScopedPowerSupply(const char* name); }; }; // namespace android Loading