Provide getBatteryLast24HrUsageData() method for application info
Bug: 178197718 Test: make SettingsRoboTests Change-Id: Iaa5f0c1bdead1a5380129f63987bbae3b4461633
This commit is contained in:
@@ -43,7 +43,6 @@ import com.android.settings.fuelgauge.BatteryDiffEntry;
|
||||
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 @@ public class AppBatteryPreferenceController extends BasePreferenceController
|
||||
}
|
||||
|
||||
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 @@ public class AppBatteryPreferenceController extends BasePreferenceController
|
||||
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
|
||||
|
@@ -617,7 +617,8 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll
|
||||
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 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll
|
||||
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 =
|
||||
|
Reference in New Issue
Block a user