Provide getBatteryLast24HrUsageData() method for application info
Bug: 178197718
Test: make SettingsRoboTests
Change-Id: Iaa5f0c1bdead1a5380129f63987bbae3b4461633
diff --git a/src/com/android/settings/applications/appinfo/AppBatteryPreferenceController.java b/src/com/android/settings/applications/appinfo/AppBatteryPreferenceController.java
index 8d29301..3cb22e0 100644
--- a/src/com/android/settings/applications/appinfo/AppBatteryPreferenceController.java
+++ b/src/com/android/settings/applications/appinfo/AppBatteryPreferenceController.java
@@ -43,7 +43,6 @@
import com.android.settings.fuelgauge.BatteryEntry;
import com.android.settings.fuelgauge.BatteryUsageStatsLoader;
import com.android.settings.fuelgauge.BatteryUtils;
-import com.android.settings.fuelgauge.ConvertUtils;
import com.android.settings.fuelgauge.PowerUsageFeatureProvider;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.core.lifecycle.Lifecycle;
@@ -118,11 +117,7 @@
}
if (mBatteryDiffEntry != null) {
- Log.i(TAG, "BatteryDiffEntry not null, launch : "
- + mBatteryDiffEntry.getPackageName()
- + " | uid : "
- + mBatteryDiffEntry.mBatteryHistEntry.mUid
- + " with DiffEntry data");
+ Log.i(TAG, "handlePreferenceTreeClick():\n" + mBatteryDiffEntry);
AdvancedPowerUsageDetail.startBatteryDetailPage(
mParent.getActivity(),
mParent,
@@ -176,30 +171,11 @@
if (mPackageName == null) {
return null;
}
- final List<BatteryDiffEntry> batteryDiffEntries =
- BatteryChartPreferenceController.getBatteryLast24HrUsageData(mContext);
- if (batteryDiffEntries == null) {
- return null;
- }
- // Filter entry with consumer type to avoid system app,
- // then use user id to divide normal app and work profile app,
- // return target application from filter list by package name.
- return batteryDiffEntries.stream()
- .filter(entry -> entry.mBatteryHistEntry.mConsumerType
- == ConvertUtils.CONSUMER_TYPE_UID_BATTERY)
- .filter(entry -> entry.mBatteryHistEntry.mUserId == mUserId)
- .filter(entry -> {
- if (mPackageName.equals(entry.getPackageName())) {
- Log.i(TAG, "Return target application: "
- + entry.mBatteryHistEntry.mPackageName
- + " | uid: " + entry.mBatteryHistEntry.mUid
- + " | userId: " + entry.mBatteryHistEntry.mUserId);
- return true;
- }
- return false;
- })
- .findFirst()
- .orElse(/* other */null);
+ final BatteryDiffEntry entry =
+ BatteryChartPreferenceController.getBatteryLast24HrUsageData(
+ mContext, mPackageName, mUserId);
+ Log.d(TAG, "loadBatteryDiffEntries():\n" + entry);
+ return entry;
}
@Override
diff --git a/src/com/android/settings/fuelgauge/BatteryChartPreferenceController.java b/src/com/android/settings/fuelgauge/BatteryChartPreferenceController.java
index 90a86f1..21bde69 100644
--- a/src/com/android/settings/fuelgauge/BatteryChartPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/BatteryChartPreferenceController.java
@@ -617,7 +617,8 @@
return true;
}
- public static List<BatteryDiffEntry> getBatteryLast24HrUsageData(Context context) {
+ /** Used for {@link AppBatteryPreferenceController}. */
+ static List<BatteryDiffEntry> getBatteryLast24HrUsageData(Context context) {
final long start = System.currentTimeMillis();
final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap =
FeatureFactory.getFactory(context)
@@ -638,6 +639,28 @@
return batteryIndexedMap.get(BatteryChartView.SELECTED_INDEX_ALL);
}
+ /** Used for {@link AppBatteryPreferenceController}. */
+ public static BatteryDiffEntry getBatteryLast24HrUsageData(
+ Context context, String packageName, int userId) {
+ if (packageName == null) {
+ return null;
+ }
+ final List<BatteryDiffEntry> entries = getBatteryLast24HrUsageData(context);
+ if (entries == null) {
+ return null;
+ }
+ for (BatteryDiffEntry entry : entries) {
+ final BatteryHistEntry batteryHistEntry = entry.mBatteryHistEntry;
+ if (batteryHistEntry != null
+ && batteryHistEntry.mConsumerType == ConvertUtils.CONSUMER_TYPE_UID_BATTERY
+ && batteryHistEntry.mUserId == userId
+ && packageName.equals(entry.getPackageName())) {
+ return entry;
+ }
+ }
+ return null;
+ }
+
private static long[] getBatteryHistoryKeys(
final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap) {
final List<Long> batteryHistoryKeyList =