Extract the logic of loading battery usage data form BatteryUsageStats
in DataProcessor to make it reusable by BatteryUsageLoaderService. Bug: 246233366 Test: make RunSettingsRoboTests + manually Change-Id: I5c721120cc4005044def63937506cc64339a3e6b
This commit is contained in:
@@ -171,6 +171,56 @@ public final class DataProcessor {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the {@link BatteryUsageStats} from system service.
|
||||
*/
|
||||
@Nullable
|
||||
public static BatteryUsageStats getBatteryUsageStats(final Context context) {
|
||||
final BatteryUsageStatsQuery batteryUsageStatsQuery =
|
||||
new BatteryUsageStatsQuery.Builder().includeBatteryHistory().build();
|
||||
return context.getSystemService(BatteryStatsManager.class)
|
||||
.getBatteryUsageStats(batteryUsageStatsQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* Closes the {@link BatteryUsageStats} after using it.
|
||||
*/
|
||||
public static void closeBatteryUsageStats(BatteryUsageStats batteryUsageStats) {
|
||||
if (batteryUsageStats != null) {
|
||||
try {
|
||||
batteryUsageStats.close();
|
||||
} catch (Exception e) {
|
||||
Log.e(TAG, "BatteryUsageStats.close() failed", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates the list of {@link BatteryEntry} from the supplied {@link BatteryUsageStats}.
|
||||
*/
|
||||
@Nullable
|
||||
public static List<BatteryEntry> generateBatteryEntryListFromBatteryUsageStats(
|
||||
final Context context,
|
||||
@Nullable final BatteryUsageStats batteryUsageStats,
|
||||
@Nullable BatteryAppListPreferenceController batteryAppListPreferenceController) {
|
||||
if (batteryUsageStats == null) {
|
||||
Log.w(TAG, "batteryUsageStats is null content");
|
||||
return null;
|
||||
}
|
||||
// Loads the battery consuming data.
|
||||
final BatteryAppListPreferenceController controller =
|
||||
batteryAppListPreferenceController == null
|
||||
? new BatteryAppListPreferenceController(
|
||||
context,
|
||||
/*preferenceKey=*/ null,
|
||||
/*lifecycle=*/ null,
|
||||
/*activity*=*/ null,
|
||||
/*fragment=*/ null)
|
||||
: batteryAppListPreferenceController;
|
||||
|
||||
return controller.getBatteryEntryList(batteryUsageStats, /*showAllApps=*/ true);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Returns the processed history map which has interpolated to every hour data.
|
||||
* The start and end timestamp must be the even hours.
|
||||
@@ -477,20 +527,14 @@ public final class DataProcessor {
|
||||
final Context context) {
|
||||
BatteryDiffData batteryDiffData = null;
|
||||
try {
|
||||
final BatteryUsageStatsQuery batteryUsageStatsQuery =
|
||||
new BatteryUsageStatsQuery.Builder().includeBatteryHistory().build();
|
||||
final BatteryUsageStats batteryUsageStats =
|
||||
context.getSystemService(BatteryStatsManager.class)
|
||||
.getBatteryUsageStats(batteryUsageStatsQuery);
|
||||
|
||||
if (batteryUsageStats == null) {
|
||||
Log.w(TAG, "batteryUsageStats is null content");
|
||||
return null;
|
||||
}
|
||||
|
||||
final BatteryUsageStats batteryUsageStats = getBatteryUsageStats(context);
|
||||
final List<BatteryEntry> batteryEntryList =
|
||||
generateBatteryEntryListFromBatteryUsageStats(context, batteryUsageStats);
|
||||
generateBatteryEntryListFromBatteryUsageStats(
|
||||
context,
|
||||
batteryUsageStats,
|
||||
/*batteryAppListPreferenceController=*/ null);
|
||||
batteryDiffData = generateBatteryDiffData(context, batteryEntryList, batteryUsageStats);
|
||||
closeBatteryUsageStats(batteryUsageStats);
|
||||
} catch (RuntimeException e) {
|
||||
Log.e(TAG, "load batteryUsageStats:" + e);
|
||||
}
|
||||
@@ -498,20 +542,6 @@ public final class DataProcessor {
|
||||
return batteryDiffData;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private static List<BatteryEntry> generateBatteryEntryListFromBatteryUsageStats(
|
||||
final Context context, final BatteryUsageStats batteryUsageStats) {
|
||||
// Loads the battery consuming data.
|
||||
final BatteryAppListPreferenceController controller =
|
||||
new BatteryAppListPreferenceController(
|
||||
context,
|
||||
/*preferenceKey=*/ null,
|
||||
/*lifecycle=*/ null,
|
||||
/*activity*=*/ null,
|
||||
/*fragment=*/ null);
|
||||
return controller.getBatteryEntryList(batteryUsageStats, /*showAllApps=*/ true);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private static List<BatteryHistEntry> convertToBatteryHistEntry(
|
||||
@Nullable final List<BatteryEntry> batteryEntryList,
|
||||
|
Reference in New Issue
Block a user