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

Commit 3ebad898 authored by YK Hung's avatar YK Hung Committed by Android (Google) Code Review
Browse files

Merge "Use try-with-resources for BatteryUsageStats" into main

parents 1d10e6bb 5a3107b9
Loading
Loading
Loading
Loading
+26 −23
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ import com.android.settings.fuelgauge.PowerUsageFeatureProvider;
import com.android.settings.fuelgauge.batteryusage.bugreport.BatteryUsageLogUtils;
import com.android.settings.overlay.FeatureFactory;

import java.io.IOException;
import java.util.List;
import java.util.Map;
import java.util.function.Supplier;
@@ -56,7 +57,7 @@ public final class BatteryUsageDataLoader {
    static void loadBatteryStatsData(final Context context, final boolean isFullChargeStart) {
        BatteryUsageLogUtils.writeLog(context, Action.FETCH_USAGE_DATA, "");
        final long currentTime = System.currentTimeMillis();
        final BatteryUsageStats batteryUsageStats = DataProcessor.getBatteryUsageStats(context);
        try (BatteryUsageStats batteryUsageStats = DataProcessor.getBatteryUsageStats(context)) {
            final List<BatteryEntry> batteryEntryList =
                    sFakeBatteryEntryListSupplier != null
                            ? sFakeBatteryEntryListSupplier.get()
@@ -79,7 +80,9 @@ public final class BatteryUsageDataLoader {
            // Uploads the BatteryEntry data into database.
            DatabaseUtils.sendBatteryEntryData(
                    context, currentTime, batteryEntryList, batteryUsageStats, isFullChargeStart);
        DataProcessor.closeBatteryUsageStats(batteryUsageStats);
        } catch (IOException e) {
            Log.e(TAG, "loadBatteryStatsData:", e);
        }
    }

    @VisibleForTesting
+7 −23
Original line number Diff line number Diff line
@@ -170,7 +170,7 @@ public final class DataProcessor {
    }

    /** Gets the {@link BatteryUsageStats} from system service. */
    @Nullable
    @NonNull
    public static BatteryUsageStats getBatteryUsageStats(final Context context) {
        final long startTime = System.currentTimeMillis();
        final BatteryUsageStatsQuery batteryUsageStatsQuery =
@@ -240,17 +240,6 @@ public final class DataProcessor {
        return events;
    }

    /** Closes the {@link BatteryUsageStats} after using it. */
    public static void closeBatteryUsageStats(BatteryUsageStats batteryUsageStats) {
        if (batteryUsageStats != null) {
            try {
                batteryUsageStats.close();
            } catch (Exception e) {
                Log.e(TAG, "BatteryUsageStats.close() failed", e);
            }
        }
    }

    /**
     * Generates the indexed {@link AppUsagePeriod} list data for each corresponding time slot.
     * Attributes the list of {@link AppUsageEvent} into hourly time slots and reformat them into
@@ -1073,20 +1062,15 @@ public final class DataProcessor {
    }

    @Nullable
    private static List<BatteryHistEntry> getBatteryHistListFromFromStatsService(
            final Context context) {
        List<BatteryHistEntry> batteryHistEntryList = null;
        try {
            final BatteryUsageStats batteryUsageStats = getBatteryUsageStats(context);
    private static List<BatteryHistEntry> getBatteryHistListFromFromStatsService(Context context) {
        try (BatteryUsageStats batteryUsageStats = getBatteryUsageStats(context)) {
            final List<BatteryEntry> batteryEntryList =
                    generateBatteryEntryListFromBatteryUsageStats(context, batteryUsageStats);
            batteryHistEntryList = convertToBatteryHistEntry(batteryEntryList, batteryUsageStats);
            closeBatteryUsageStats(batteryUsageStats);
        } catch (RuntimeException e) {
            Log.e(TAG, "load batteryUsageStats:", e);
            return convertToBatteryHistEntry(batteryEntryList, batteryUsageStats);
        } catch (Exception e) {
            Log.e(TAG, "getBatteryHistListFromFromStatsService:", e);
            return null;
        }

        return batteryHistEntryList;
    }

    @VisibleForTesting
+2 −1
Original line number Diff line number Diff line
@@ -38,6 +38,7 @@ import android.util.ArrayMap;
import android.util.ArraySet;
import android.util.Log;

import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting;

import com.android.settings.fuelgauge.BatteryUsageHistoricalLogEntry.Action;
@@ -676,7 +677,7 @@ public final class DatabaseUtils {
    static List<ContentValues> sendBatteryEntryData(
            final Context context,
            final long snapshotTimestamp,
            final List<BatteryEntry> batteryEntryList,
            @Nullable final List<BatteryEntry> batteryEntryList,
            final BatteryUsageStats batteryUsageStats,
            final boolean isFullChargeStart) {
        final long startTime = System.currentTimeMillis();