Health@2.0: uses @1.0::HealthInfo
Revert "Update for expanding @2.0::HealthInfo."
BatteryService does not use these fields for posting
sticky intents.
This reverts commit be17a4f23529da0b769b745e3296e4e4e5ef06c5.
Test: boots
Bug: 63702641
Change-Id: I4df61645ab38a8e205ee21efc86bbef3e39674ab
diff --git a/healthd/Health.cpp b/healthd/Health.cpp
index ec05398..74f3eec 100644
--- a/healthd/Health.cpp
+++ b/healthd/Health.cpp
@@ -120,7 +120,7 @@
}
// Retrieve all information and call healthd_mode_ops->battery_update, which calls
- // updateAndNotify.
+ // notifyListeners.
bool chargerOnline = battery_monitor_->update();
// adjust uevent / wakealarm periods
@@ -129,19 +129,10 @@
return Result::SUCCESS;
}
-void Health::updateAndNotify(HealthInfo* info) {
- // update 2.0 specific fields
- struct BatteryProperty prop;
- if (battery_monitor_->getProperty(BATTERY_PROP_CURRENT_AVG, &prop) == OK)
- info->batteryCurrentAverage = static_cast<int32_t>(prop.valueInt64);
- if (battery_monitor_->getProperty(BATTERY_PROP_CAPACITY, &prop) == OK)
- info->batteryCapacity = static_cast<int32_t>(prop.valueInt64);
- if (battery_monitor_->getProperty(BATTERY_PROP_ENERGY_COUNTER, &prop) == OK)
- info->energyCounter = prop.valueInt64;
-
+void Health::notifyListeners(const HealthInfo& info) {
std::lock_guard<std::mutex> _lock(callbacks_lock_);
for (auto it = callbacks_.begin(); it != callbacks_.end();) {
- auto ret = (*it)->healthInfoChanged(*info);
+ auto ret = (*it)->healthInfoChanged(info);
if (!ret.isOk() && ret.isDeadObject()) {
it = callbacks_.erase(it);
} else {
diff --git a/healthd/HealthService.cpp b/healthd/HealthService.cpp
index 29a29ed..e8a1a85 100644
--- a/healthd/HealthService.cpp
+++ b/healthd/HealthService.cpp
@@ -28,8 +28,8 @@
using android::hardware::IPCThreadState;
using android::hardware::configureRpcThreadpool;
+using android::hardware::health::V1_0::HealthInfo;
using android::hardware::health::V1_0::hal_conversion::convertToHealthInfo;
-using android::hardware::health::V2_0::HealthInfo;
using android::hardware::health::V2_0::IHealth;
using android::hardware::health::V2_0::implementation::Health;
@@ -89,9 +89,9 @@
// Implementation-defined update logic goes here. An implementation
// can make modifications to prop before broadcasting it to all callbacks.
- HealthInfo info{};
- convertToHealthInfo(prop, info.legacy);
- static_cast<Health*>(gHealth.get())->updateAndNotify(&info);
+ HealthInfo info;
+ convertToHealthInfo(prop, info);
+ static_cast<Health*>(gHealth.get())->notifyListeners(info);
}
static struct healthd_mode_ops healthd_mode_service_2_0_ops = {
diff --git a/healthd/include/health2/Health.h b/healthd/include/health2/Health.h
index d390b92..4e78380 100644
--- a/healthd/include/health2/Health.h
+++ b/healthd/include/health2/Health.h
@@ -16,6 +16,7 @@
namespace implementation {
using V1_0::BatteryStatus;
+using V1_0::HealthInfo;
using ::android::hidl::base::V1_0::IBase;
@@ -24,7 +25,7 @@
Health(struct healthd_config* c);
// TODO(b/62229583): clean up and hide these functions.
- void updateAndNotify(HealthInfo* info);
+ void notifyListeners(const HealthInfo& info);
// Methods from IHealth follow.
Return<Result> registerCallback(const sp<IHealthInfoCallback>& callback) override;