From: Somin Kim Date: Mon, 5 Dec 2016 04:42:13 +0000 (+0900) Subject: Modified RecentBetteryUsage to deliver UsedTime X-Git-Tag: submit/tizen_3.0/20161205.094941^2~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=16c87c180f9a103d5c624ef63347ae3bf7728e84;p=platform%2Fcore%2Fcontext%2Fcontext-provider.git Modified RecentBetteryUsage to deliver UsedTime Change-Id: I5a426ddbcf82351619a59e4edc6802f2f12ff5dd Signed-off-by: Somin Kim --- diff --git a/src/battery-stats/BatteryUsage.cpp b/src/battery-stats/BatteryUsage.cpp index 631308d..c443f62 100644 --- a/src/battery-stats/BatteryUsage.cpp +++ b/src/battery-stats/BatteryUsage.cpp @@ -55,9 +55,9 @@ int BatteryUsageProvider::read(Json option, Json *requestResult) int error; if (hasLimit) { - error = querier->queryRangeLimit((startTime > timeSpanPoint)? startTime : timeSpanPoint, endTime, resultSize); + error = querier->query((startTime > timeSpanPoint)? startTime : timeSpanPoint, endTime, resultSize); } else { - error = querier->queryRange((startTime > timeSpanPoint)? startTime : timeSpanPoint, endTime); + error = querier->query((startTime > timeSpanPoint)? startTime : timeSpanPoint, endTime); } IF_FAIL_RETURN_TAG(error == ERR_NONE, ERR_OPERATION_FAILED, _E, "Failed to get app battery usage"); diff --git a/src/battery-stats/Querier.cpp b/src/battery-stats/Querier.cpp index f0f043a..1185165 100644 --- a/src/battery-stats/Querier.cpp +++ b/src/battery-stats/Querier.cpp @@ -19,11 +19,17 @@ #include "BatteryStatisticsTypes.h" #include "Querier.h" -#define BATTERY_USAGE_DEFAULT_QUERY \ +#define BATTERY_USAGE_QUERY \ "SELECT " BATTERY_APP_ID " AS " KEY_APP_ID ", ROUND(SUM(" BATTERY_AMOUNT ")/10000.0, 2) AS " KEY_TOTAL_AMOUNT \ " FROM " BATTERY_USAGE_TABLE " WHERE " BATTERY_START_TIME " >= %d AND " BATTERY_END_TIME " <= %d" \ " GROUP BY " KEY_APP_ID " ORDER BY " KEY_TOTAL_AMOUNT " DESC" +#define RECENT_BATTERY_USAGE_QUERY \ + "SELECT " BATTERY_APP_ID " AS " KEY_APP_ID ", ROUND(SUM(" BATTERY_AMOUNT ")/10000.0, 2) AS " KEY_TOTAL_AMOUNT \ + ", %d AS " KEY_USED_TIME \ + " FROM " BATTERY_USAGE_TABLE " WHERE " BATTERY_START_TIME " >= %d AND " BATTERY_END_TIME " <= %d" \ + " GROUP BY " KEY_APP_ID " ORDER BY " KEY_TOTAL_AMOUNT " DESC" + using namespace ctx; BatteryStatsQuerier::BatteryStatsQuerier(ContextProvider *provider, Json option) : @@ -41,9 +47,29 @@ int BatteryStatsQuerier::query(const char *sql) return __dbMgr.execute(0, sql, this) ? ERR_NONE : ERR_OPERATION_FAILED; } -int BatteryStatsQuerier::queryRange(int startTime, int endTime) +int BatteryStatsQuerier::query(int startTime, int endTime) +{ + char *sql = sqlite3_mprintf(BATTERY_USAGE_QUERY, startTime, endTime); + + int error = query(sql); + sqlite3_free(sql); + + return error; +} + +int BatteryStatsQuerier::query(int startTime, int endTime, int resultSize) +{ + char *sql = sqlite3_mprintf(BATTERY_USAGE_QUERY " LIMIT %d", startTime, endTime, resultSize); + + int error = query(sql); + sqlite3_free(sql); + + return error; +} + +int BatteryStatsQuerier::queryRecent(int startTime, int endTime) { - char *sql = sqlite3_mprintf(BATTERY_USAGE_DEFAULT_QUERY, startTime, endTime); + char *sql = sqlite3_mprintf(RECENT_BATTERY_USAGE_QUERY, endTime - startTime, startTime, endTime); int error = query(sql); sqlite3_free(sql); @@ -51,9 +77,9 @@ int BatteryStatsQuerier::queryRange(int startTime, int endTime) return error; } -int BatteryStatsQuerier::queryRangeLimit(int startTime, int endTime, int resultSize) +int BatteryStatsQuerier::queryRecent(int startTime, int endTime, int resultSize) { - char *sql = sqlite3_mprintf(BATTERY_USAGE_DEFAULT_QUERY " LIMIT %d", startTime, endTime, resultSize); + char *sql = sqlite3_mprintf(RECENT_BATTERY_USAGE_QUERY " LIMIT %d", endTime - startTime, startTime, endTime, resultSize); int error = query(sql); sqlite3_free(sql); diff --git a/src/battery-stats/Querier.h b/src/battery-stats/Querier.h index 2385a2f..6d320ae 100644 --- a/src/battery-stats/Querier.h +++ b/src/battery-stats/Querier.h @@ -28,8 +28,10 @@ namespace ctx { ~BatteryStatsQuerier(); // For now, Default result size(10) isn't applied, unlike other history type. - int queryRange(int startTime, int endTime); - int queryRangeLimit(int startTime, int endTime, int resultSize); + int query(int startTime, int endTime); + int query(int startTime, int endTime, int resultSize); + int queryRecent(int startTime, int endTime); + int queryRecent(int startTime, int endTime, int resultSize); protected: int query(const char *sql); diff --git a/src/battery-stats/RecentBatteryUsage.cpp b/src/battery-stats/RecentBatteryUsage.cpp index 0663650..511b55b 100644 --- a/src/battery-stats/RecentBatteryUsage.cpp +++ b/src/battery-stats/RecentBatteryUsage.cpp @@ -38,9 +38,9 @@ int RecentBatteryUsageProvider::read(Json option, Json *requestResult) int error; if (hasLimit) { - error = querier->queryRangeLimit(BatteryMonitor::getLastResetTime(), CURRENT_TIME, resultSize); + error = querier->queryRecent(BatteryMonitor::getLastResetTime(), CURRENT_TIME, resultSize); } else { - error = querier->queryRange(BatteryMonitor::getLastResetTime(), CURRENT_TIME); + error = querier->queryRecent(BatteryMonitor::getLastResetTime(), CURRENT_TIME); } IF_FAIL_RETURN_TAG(error == ERR_NONE, ERR_OPERATION_FAILED, _E, "Failed to get recent app battery usage");