aidl: battery: Split up constructor functions

This commit is contained in:
Soo Hwan Na
2023-12-22 15:33:43 +09:00
parent 17af54aefc
commit 3763fc7447
2 changed files with 38 additions and 17 deletions

View File

@@ -121,23 +121,25 @@ void SmartCharge::loadHealthImpl(void) {
}
}
SmartCharge::SmartCharge(void) {
{
ConfigPair<int> ret{};
if (getAndParse(kSmartChargeConfigProp, &ret) &&
verifyConfig(ret.first, ret.second)) {
upper = ret.second;
lower = ret.first;
ALOGD("%s: upper: %d, lower: %d", __func__, upper, lower);
} else {
upper = -1;
lower = -1;
ALOGW("%s: Parsing config failed", __func__);
return;
}
bool SmartCharge::loadAndParseConfigProp(void) {
ConfigPair<int> ret{};
if (getAndParse(kSmartChargeConfigProp, &ret) &&
verifyConfig(ret.first, ret.second)) {
upper = ret.second;
lower = ret.first;
ALOGD("%s: upper: %d, lower: %d", __func__, upper, lower);
} else {
upper = -1;
lower = -1;
ALOGW("%s: Parsing config failed", __func__);
return false;
}
return true;
}
void SmartCharge::loadOverrideLibrary(void) {
std::string prop = GetProperty(kSmartChargeOverrideProp, "");
ConfigPair<bool> ret{};
if (!prop.empty()) {
ALOGI("%s: Try dlopen '%s'", __func__, prop.c_str());
handle = dlopen(prop.c_str(), RTLD_NOW);
@@ -160,7 +162,11 @@ SmartCharge::SmartCharge(void) {
setChargableFunc = setChargableDef;
ALOGD("%s: setChargable using default impl", __func__);
}
loadHealthImpl();
}
void SmartCharge::loadEnabledAndStart(void) {
ConfigPair<bool> ret{};
if (getAndParse(kSmartChargeEnabledProp, &ret)) {
if (ret.first) {
ALOGD("%s: Starting loop, withrestart: %d", __func__, ret.second);
@@ -174,6 +180,17 @@ SmartCharge::SmartCharge(void) {
}
}
SmartCharge::SmartCharge(void) {
bool ret;
ret = loadAndParseConfigProp();
if (ret) {
loadOverrideLibrary();
loadHealthImpl();
loadEnabledAndStart();
}
}
enum ChargeStatus {
ON,
OFF,

View File

@@ -55,11 +55,15 @@ class SmartCharge : public BnSmartCharge {
sp<IHealth> health_hidl;
std::shared_ptr<IHealthAIDL> health_aidl;
void loadHealthImpl();
enum {
USE_HEALTH_AIDL,
USE_HEALTH_HIDL,
} healthState;
void loadHealthImpl();
bool loadAndParseConfigProp();
void loadOverrideLibrary();
void loadEnabledAndStart();
public:
SmartCharge();
ndk::ScopedAStatus setChargeLimit(int32_t upper, int32_t lower) override;