2 * Copyright (c) 2016 Samsung Electronics Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 #include "BatteryMonitor.h"
18 #include "RecentBatteryUsage.h"
22 RecentBatteryUsageProvider::RecentBatteryUsageProvider() :
23 BatteryStatsProvider(SUBJ_BATTERY_RECENT_USAGE)
27 RecentBatteryUsageProvider::~RecentBatteryUsageProvider()
31 int RecentBatteryUsageProvider::read(CtxJson1 option, CtxJson1 *requestResult)
33 BatteryMonitor::getInstance()->prepareData();
36 bool hasLimit = option.get(NULL, KEY_RESULT_SIZE, &resultSize);
38 BatteryStatsQuerier *querier = getQuerier(option);
39 IF_FAIL_RETURN(querier, ERR_OPERATION_FAILED);
42 int lastFullTime = BatteryMonitor::getInstance()->getLastFullTime();
44 error = querier->queryRecent(lastFullTime, CURRENT_TIME, resultSize);
46 error = querier->queryRecent(lastFullTime, CURRENT_TIME);
48 IF_FAIL_RETURN_TAG(error == ERR_NONE, ERR_OPERATION_FAILED, _E, "Failed to get recent app battery usage");