Merge "Update filter logic for BatteryDiffEntries" into sc-dev am: a6a4fe474c

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/15154916

Change-Id: If4b2d991ddd95391b987246e40a6b34a5cd5b958
This commit is contained in:
Wesley Wang
2021-07-01 10:39:16 +00:00
committed by Automerger Merge Worker

View File

@@ -78,6 +78,7 @@ public class AppBatteryPreferenceController extends BasePreferenceController
private String mBatteryPercent;
private final String mPackageName;
private final int mUid;
private final int mUserId;
private boolean mBatteryUsageStatsLoaded = false;
private boolean mBatteryDiffEntriesLoaded = false;
@@ -88,6 +89,7 @@ public class AppBatteryPreferenceController extends BasePreferenceController
mBatteryUtils = BatteryUtils.getInstance(mContext);
mPackageName = packageName;
mUid = uid;
mUserId = mContext.getUserId();
refreshFeatureFlag(mContext);
if (lifecycle != null) {
lifecycle.addObserver(this);
@@ -173,16 +175,29 @@ public class AppBatteryPreferenceController extends BasePreferenceController
protected BatteryDiffEntry doInBackground(Void... unused) {
final List<BatteryDiffEntry> batteryDiffEntries =
BatteryChartPreferenceController.getBatteryLast24HrUsageData(mContext);
if (batteryDiffEntries != null) {
for (BatteryDiffEntry batteryDiffEntry : batteryDiffEntries) {
if (batteryDiffEntry.mBatteryHistEntry.mUid == mUid
&& batteryDiffEntry.mBatteryHistEntry.mConsumerType
== ConvertUtils.CONSUMER_TYPE_UID_BATTERY) {
return batteryDiffEntry;
}
}
if (batteryDiffEntries == null) {
return 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 (entry.mBatteryHistEntry.mPackageName
.equals(mPackageName)) {
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);
}
@Override