Combine screen on time map into battery usage map

This cl is refactor only. It makes next cl ag/22809776 easy to replace screen
compenent time with screen on time.

Bug: 278022529
Test: manual
Change-Id: I2538aeafb0c697f13ec617cea44a70a1b2a114b0
This commit is contained in:
Zaiyue Xue
2023-04-23 15:48:53 +08:00
parent 85e5174132
commit d92c4fc823
7 changed files with 73 additions and 259 deletions

View File

@@ -353,9 +353,9 @@ public class DataProcessManager {
}
private void loadAndApplyBatteryMapFromServiceOnly() {
new AsyncTask<Void, Void, BatteryCallbackData>() {
new AsyncTask<Void, Void, Map<Integer, Map<Integer, BatteryDiffData>>>() {
@Override
protected BatteryCallbackData doInBackground(Void... voids) {
protected Map<Integer, Map<Integer, BatteryDiffData>> doInBackground(Void... voids) {
final long startTime = System.currentTimeMillis();
final Map<Integer, Map<Integer, BatteryDiffData>> batteryUsageMap =
DataProcessor.getBatteryUsageMapFromStatsService(mContext);
@@ -363,18 +363,18 @@ public class DataProcessManager {
Log.d(TAG, String.format(
"execute loadAndApplyBatteryMapFromServiceOnly size=%d in %d/ms",
batteryUsageMap.size(), (System.currentTimeMillis() - startTime)));
return new BatteryCallbackData(batteryUsageMap, /*deviceScreenOnTime=*/ null);
return batteryUsageMap;
}
@Override
protected void onPostExecute(
final BatteryCallbackData batteryCallbackData) {
final Map<Integer, Map<Integer, BatteryDiffData>> batteryUsageMap) {
// Set the unused variables to null.
mContext = null;
// Post results back to main thread to refresh UI.
if (mHandler != null && mCallbackFunction != null) {
mHandler.post(() -> {
mCallbackFunction.onBatteryCallbackDataLoaded(batteryCallbackData);
mCallbackFunction.onBatteryCallbackDataLoaded(batteryUsageMap);
});
}
}
@@ -413,24 +413,23 @@ public class DataProcessManager {
}
private void generateFinalDataAndApplyCallback() {
new AsyncTask<Void, Void, BatteryCallbackData>() {
new AsyncTask<Void, Void, Map<Integer, Map<Integer, BatteryDiffData>>>() {
@Override
protected BatteryCallbackData doInBackground(Void... voids) {
protected Map<Integer, Map<Integer, BatteryDiffData>> doInBackground(Void... voids) {
final long startTime = System.currentTimeMillis();
final Map<Integer, Map<Integer, BatteryDiffData>> batteryUsageMap =
DataProcessor.getBatteryUsageMap(
mContext, mHourlyBatteryLevelsPerDay, mBatteryHistoryMap,
mAppUsagePeriodMap);
final Map<Integer, Map<Integer, Long>> deviceScreenOnTime =
DataProcessor.getDeviceScreenOnTime(mAppUsagePeriodMap);
DataProcessor.loadLabelAndIcon(batteryUsageMap);
Log.d(TAG, String.format("execute generateFinalDataAndApplyCallback in %d/ms",
(System.currentTimeMillis() - startTime)));
return new BatteryCallbackData(batteryUsageMap, deviceScreenOnTime);
return batteryUsageMap;
}
@Override
protected void onPostExecute(final BatteryCallbackData batteryCallbackData) {
protected void onPostExecute(
final Map<Integer, Map<Integer, BatteryDiffData>> batteryUsageMap) {
// Set the unused variables to null.
mContext = null;
mHourlyBatteryLevelsPerDay = null;
@@ -438,7 +437,7 @@ public class DataProcessManager {
// Post results back to main thread to refresh UI.
if (mHandler != null && mCallbackFunction != null) {
mHandler.post(() -> {
mCallbackFunction.onBatteryCallbackDataLoaded(batteryCallbackData);
mCallbackFunction.onBatteryCallbackDataLoaded(batteryUsageMap);
});
}
}