Merge "Update filter logic for BatteryDiffEntries" into sc-dev
This commit is contained in:
@@ -78,6 +78,7 @@ public class AppBatteryPreferenceController extends BasePreferenceController
|
|||||||
private String mBatteryPercent;
|
private String mBatteryPercent;
|
||||||
private final String mPackageName;
|
private final String mPackageName;
|
||||||
private final int mUid;
|
private final int mUid;
|
||||||
|
private final int mUserId;
|
||||||
private boolean mBatteryUsageStatsLoaded = false;
|
private boolean mBatteryUsageStatsLoaded = false;
|
||||||
private boolean mBatteryDiffEntriesLoaded = false;
|
private boolean mBatteryDiffEntriesLoaded = false;
|
||||||
|
|
||||||
@@ -88,6 +89,7 @@ public class AppBatteryPreferenceController extends BasePreferenceController
|
|||||||
mBatteryUtils = BatteryUtils.getInstance(mContext);
|
mBatteryUtils = BatteryUtils.getInstance(mContext);
|
||||||
mPackageName = packageName;
|
mPackageName = packageName;
|
||||||
mUid = uid;
|
mUid = uid;
|
||||||
|
mUserId = mContext.getUserId();
|
||||||
refreshFeatureFlag(mContext);
|
refreshFeatureFlag(mContext);
|
||||||
if (lifecycle != null) {
|
if (lifecycle != null) {
|
||||||
lifecycle.addObserver(this);
|
lifecycle.addObserver(this);
|
||||||
@@ -173,16 +175,29 @@ public class AppBatteryPreferenceController extends BasePreferenceController
|
|||||||
protected BatteryDiffEntry doInBackground(Void... unused) {
|
protected BatteryDiffEntry doInBackground(Void... unused) {
|
||||||
final List<BatteryDiffEntry> batteryDiffEntries =
|
final List<BatteryDiffEntry> batteryDiffEntries =
|
||||||
BatteryChartPreferenceController.getBatteryLast24HrUsageData(mContext);
|
BatteryChartPreferenceController.getBatteryLast24HrUsageData(mContext);
|
||||||
if (batteryDiffEntries != null) {
|
if (batteryDiffEntries == null) {
|
||||||
for (BatteryDiffEntry batteryDiffEntry : batteryDiffEntries) {
|
return null;
|
||||||
if (batteryDiffEntry.mBatteryHistEntry.mUid == mUid
|
|
||||||
&& batteryDiffEntry.mBatteryHistEntry.mConsumerType
|
|
||||||
== ConvertUtils.CONSUMER_TYPE_UID_BATTERY) {
|
|
||||||
return batteryDiffEntry;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
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
|
@Override
|
||||||
|
Reference in New Issue
Block a user