| /* | |
| * Copyright (C) 2020 The Android Open Source Project | |
| * | |
| * Licensed under the Apache License, Version 2.0 (the "License"); | |
| * you may not use this file except in compliance with the License. | |
| * You may obtain a copy of the License at | |
| * | |
| * http://www.apache.org/licenses/LICENSE-2.0 | |
| * | |
| * Unless required by applicable law or agreed to in writing, software | |
| * distributed under the License is distributed on an "AS IS" BASIS, | |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| * See the License for the specific language governing permissions and | |
| * limitations under the License. | |
| */ | |
| #define LOG_TAG "BatterySaverPolicyConfig" | |
| #include <android/BatterySaverPolicyConfig.h> | |
| #include <binder/Parcel.h> | |
| #include <utils/Log.h> | |
| namespace android::os { | |
| status_t BatterySaverPolicyConfig::readDeviceSpecificSettings(const android::Parcel *parcel) { | |
| int32_t num = 0; | |
| status_t ret = parcel->readInt32(&num); | |
| if (ret != OK) { | |
| return ret; | |
| } | |
| for (int i = 0; i < num; i++) { | |
| String16 key, val; | |
| ret = parcel->readString16(&key) ?: | |
| parcel->readString16(&val); | |
| if (ret != OK) { | |
| return ret; | |
| } | |
| mDeviceSpecificSettings.emplace_back(key, val); | |
| } | |
| return ret; | |
| } | |
| status_t BatterySaverPolicyConfig::readFromParcel(const android::Parcel *parcel) { | |
| if (parcel == nullptr) { | |
| ALOGE("%s: Null parcel", __func__); | |
| return BAD_VALUE; | |
| } | |
| return parcel->readFloat(&mAdjustBrightnessFactor) | |
| ?: parcel->readBool(&mAdvertiseIsEnabled) | |
| ?: parcel->readBool(&mDeferFullBackup) | |
| ?: parcel->readBool(&mDeferKeyValueBackup) | |
| ?: readDeviceSpecificSettings(parcel) | |
| ?: parcel->readBool(&mDisableAnimation) | |
| ?: parcel->readBool(&mDisableAod) | |
| ?: parcel->readBool(&mDisableLaunchBoost) | |
| ?: parcel->readBool(&mDisableOptionalSensors) | |
| ?: parcel->readBool(&mDisableVibration) | |
| ?: parcel->readBool(&mEnableAdjustBrightness) | |
| ?: parcel->readBool(&mEnableDataSaver) | |
| ?: parcel->readBool(&mEnableFirewall) | |
| ?: parcel->readBool(&mEnableNightMode) | |
| ?: parcel->readBool(&mEnableQuickDoze) | |
| ?: parcel->readBool(&mForceAllAppsStandby) | |
| ?: parcel->readBool(&mForceBackgroundCheck) | |
| ?: parcel->readInt32(reinterpret_cast<int32_t *>(&mLocationMode)) | |
| ?: parcel->readInt32(reinterpret_cast<int32_t *>(&mSoundTriggerMode)); | |
| } | |
| status_t BatterySaverPolicyConfig::writeDeviceSpecificSettings(android::Parcel *parcel) const { | |
| status_t ret = parcel->writeInt32(mDeviceSpecificSettings.size()); | |
| if (ret != OK) { | |
| return ret; | |
| } | |
| for (auto& settings : mDeviceSpecificSettings) { | |
| ret = parcel->writeString16(settings.first) ?: | |
| parcel->writeString16(settings.second); | |
| if (ret != OK) { | |
| return ret; | |
| } | |
| } | |
| return ret; | |
| } | |
| status_t BatterySaverPolicyConfig::writeToParcel(android::Parcel *parcel) const { | |
| if (parcel == nullptr) { | |
| ALOGE("%s: Null parcel", __func__); | |
| return BAD_VALUE; | |
| } | |
| return parcel->writeFloat(mAdjustBrightnessFactor) | |
| ?: parcel->writeBool(mAdvertiseIsEnabled) | |
| ?: parcel->writeBool(mDeferFullBackup) | |
| ?: parcel->writeBool(mDeferKeyValueBackup) | |
| ?: writeDeviceSpecificSettings(parcel) | |
| ?: parcel->writeBool(mDisableAnimation) | |
| ?: parcel->writeBool(mDisableAod) | |
| ?: parcel->writeBool(mDisableLaunchBoost) | |
| ?: parcel->writeBool(mDisableOptionalSensors) | |
| ?: parcel->writeBool(mDisableVibration) | |
| ?: parcel->writeBool(mEnableAdjustBrightness) | |
| ?: parcel->writeBool(mEnableDataSaver) | |
| ?: parcel->writeBool(mEnableFirewall) | |
| ?: parcel->writeBool(mEnableNightMode) | |
| ?: parcel->writeBool(mEnableQuickDoze) | |
| ?: parcel->writeBool(mForceAllAppsStandby) | |
| ?: parcel->writeBool(mForceBackgroundCheck) | |
| ?: parcel->writeInt32(static_cast<int32_t>(mLocationMode)) | |
| ?: parcel->writeInt32(static_cast<int32_t>(mSoundTriggerMode)); | |
| } | |
| } // namespace android::os |