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

Commit b5274974 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

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

parents d328f73e ffba705f
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 =