Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6fc0fcdf authored by Wesley Wang's avatar Wesley Wang Committed by Automerger Merge Worker
Browse files

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

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

Change-Id: I4bc7ddcbf5b397d4c07e64c80e23b0e792043d72
parents 11506848 a6a4fe47
Loading
Loading
Loading
Loading
+24 −9
Original line number Diff line number Diff line
@@ -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;
                }
                // 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 null;
                            return false;
                        })
                        .findFirst()
                        .orElse(/* other */null);
            }

            @Override