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

Commit 831b5f7e authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Provide getBatteryLast24HrUsageData() method for application info" into...

Merge "Provide getBatteryLast24HrUsageData() method for application info" into tm-dev am: b5274974

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

Change-Id: I562102e1e104004881653eb63ed9253168cb40e3
parents 9a5b90c6 b5274974
Loading
Loading
Loading
Loading
+6 −30
Original line number Diff line number Diff line
@@ -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
+24 −1
Original line number Diff line number Diff line
@@ -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 =