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

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

Merge "Avoid dump BatteryReattributeDatabaseHist if the feature is disabled" into main

parents 2ae9ed02 e15e2397
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -166,6 +166,9 @@ public interface PowerUsageFeatureProvider {
    /** Whether the device is under the battery defender mode */
    boolean isBatteryDefend(BatteryInfo info);

    /** Whether the battery usage reattribute is eabled or not. */
    boolean isBatteryUsageReattributeEnabled();

    /** Collect and process battery reattribute data if needed. */
    boolean processBatteryReattributeData(
            @NonNull Context context,
+5 −0
Original line number Diff line number Diff line
@@ -256,6 +256,11 @@ public class PowerUsageFeatureProviderImpl implements PowerUsageFeatureProvider
        return info.isLongLife && !isExtraDefend();
    }

    @Override
    public boolean isBatteryUsageReattributeEnabled() {
        return false;
    }

    @Override
    public boolean processBatteryReattributeData(
            @NonNull Context context,
+13 −3
Original line number Diff line number Diff line
@@ -38,6 +38,7 @@ import com.android.settings.fuelgauge.batteryusage.db.BatteryStateDao;
import com.android.settings.fuelgauge.batteryusage.db.BatteryStateDatabase;
import com.android.settings.fuelgauge.batteryusage.db.BatteryUsageSlotDao;
import com.android.settings.fuelgauge.batteryusage.db.BatteryUsageSlotEntity;
import com.android.settings.overlay.FeatureFactory;

import java.io.PrintWriter;
import java.time.Clock;
@@ -132,14 +133,23 @@ public final class LogUtils {
    }

    static void dumpBatteryReattributeDatabaseHist(Context context, PrintWriter writer) {
        try {
            dumpBatteryReattributeDatabaseHist(
                    BatteryStateDatabase.getInstance(context).batteryReattributeDao(),
                    writer);
        } catch (Exception e) {
            Log.e(TAG, "failed to run dumpBatteryReattributeDatabaseHist()", e);
        }
    }

    @VisibleForTesting
    static void dumpBatteryReattributeDatabaseHist(
            BatteryReattributeDao batteryReattributeDao, PrintWriter writer) {
        if (!FeatureFactory.getFeatureFactory().getPowerUsageFeatureProvider()
                .isBatteryUsageReattributeEnabled()) {
            writer.println("\n\tBatteryReattribute is disabled!");
            return;
        }
        writer.println("\n\tBatteryReattribute DatabaseHistory:");
        final List<BatteryReattributeEntity> entities =
                batteryReattributeDao.getAllAfter(
+20 −0
Original line number Diff line number Diff line
@@ -18,15 +18,19 @@ package com.android.settings.fuelgauge.batteryusage.bugreport;

import static com.google.common.truth.Truth.assertThat;

import static org.mockito.Mockito.when;

import android.content.Context;

import androidx.test.core.app.ApplicationProvider;

import com.android.settings.fuelgauge.PowerUsageFeatureProvider;
import com.android.settings.fuelgauge.batteryusage.BatteryReattribute;
import com.android.settings.fuelgauge.batteryusage.db.BatteryReattributeDao;
import com.android.settings.fuelgauge.batteryusage.db.BatteryReattributeEntity;
import com.android.settings.fuelgauge.batteryusage.db.BatteryStateDatabase;
import com.android.settings.testutils.BatteryTestUtils;
import com.android.settings.testutils.FakeFeatureFactory;

import org.junit.After;
import org.junit.Before;
@@ -48,6 +52,7 @@ public final class LogUtilsTest {
    private Context mContext;
    private BatteryStateDatabase mDatabase;
    private BatteryReattributeDao mBatteryReattributeDao;
    private PowerUsageFeatureProvider mPowerUsageFeatureProvider;

    @Before
    public void setUp() {
@@ -56,6 +61,8 @@ public final class LogUtilsTest {
        mTestPrintWriter = new PrintWriter(mTestStringWriter);
        mDatabase = BatteryTestUtils.setUpBatteryStateDatabase(mContext);
        mBatteryReattributeDao = mDatabase.batteryReattributeDao();
        mPowerUsageFeatureProvider = FakeFeatureFactory.setupForTest().powerUsageFeatureProvider;
        when(mPowerUsageFeatureProvider.isBatteryUsageReattributeEnabled()).thenReturn(true);
    }

    @After
@@ -99,4 +106,17 @@ public final class LogUtilsTest {
        assertThat(result).contains(batteryReattribute1.toString());
        assertThat(result).contains(batteryReattribute2.toString());
    }

    @Test
    public void dumpBatteryReattributeDatabaseHist_featureDisable_notPrintData() {
        mBatteryReattributeDao.insert(new BatteryReattributeEntity(
                BatteryReattribute.getDefaultInstance()));
        when(mPowerUsageFeatureProvider.isBatteryUsageReattributeEnabled()).thenReturn(false);

        LogUtils.dumpBatteryReattributeDatabaseHist(mBatteryReattributeDao, mTestPrintWriter);

        final String result = mTestStringWriter.toString();
        assertThat(result).contains("BatteryReattribute is disabled!");
        assertThat(result.contains("BatteryReattribute DatabaseHistory:")).isFalse();
    }
}