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

Commit 56488ef8 authored by Wesley Wang's avatar Wesley Wang Committed by Android (Google) Code Review
Browse files

Merge "Update battery usage summary" into sc-dev

parents 333b68d0 8d5010f6
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -5963,8 +5963,10 @@
    <string name="history_details_title">History details</string>
    <!-- Preference title for advanced battery usage [CHAR LIMIT=40] -->
    <string name="advanced_battery_preference_title">View battery usage</string>
    <!-- Preference summary for advanced battery usage [CHAR LIMIT=40] -->
    <string name="advanced_battery_preference_summary">View usage for past 24 hours</string>
    <!-- Preference summary for advanced battery usage, for past 24 hours [CHAR LIMIT=40] -->
    <string name="advanced_battery_preference_summary_with_hours">View usage for past 24 hours</string>
    <!-- Preference summary for advanced battery usage, from last full charge [CHAR LIMIT=40] -->
    <string name="advanced_battery_preference_summary">View usage from last full charge</string>
    <!-- Activity title for battery usage details for an app. or power consumer -->
    <string name="battery_details_title">Battery usage</string>
+20 −5
Original line number Diff line number Diff line
@@ -52,10 +52,13 @@ import java.util.List;
public class PowerUsageSummary extends PowerUsageBase implements
        BatteryTipPreferenceController.BatteryTipListener {

    private static final String KEY_BATTERY_ERROR = "battery_help_message";

    static final String TAG = "PowerUsageSummary";

    @VisibleForTesting
    static final String KEY_BATTERY_ERROR = "battery_help_message";
    @VisibleForTesting
    static final String KEY_BATTERY_USAGE = "battery_usage_summary";

    @VisibleForTesting
    static final int BATTERY_INFO_LOADER = 1;
    @VisibleForTesting
@@ -78,6 +81,8 @@ public class PowerUsageSummary extends PowerUsageBase implements
    boolean mNeedUpdateBatteryTip;
    @VisibleForTesting
    Preference mHelpPreference;
    @VisibleForTesting
    Preference mBatteryUsagePreference;

    @VisibleForTesting
    final ContentObserver mSettingsObserver = new ContentObserver(new Handler()) {
@@ -154,12 +159,10 @@ public class PowerUsageSummary extends PowerUsageBase implements
        setAnimationAllowed(true);

        initFeatureProvider();
        initPreference();

        mBatteryUtils = BatteryUtils.getInstance(getContext());

        mHelpPreference = findPreference(KEY_BATTERY_ERROR);
        mHelpPreference.setVisible(false);

        if (Utils.isBatteryPresent(getContext())) {
            restartBatteryInfoLoader();
        } else {
@@ -248,6 +251,18 @@ public class PowerUsageSummary extends PowerUsageBase implements
                .getPowerUsageFeatureProvider(context);
    }

    @VisibleForTesting
    void initPreference() {
        mBatteryUsagePreference = findPreference(KEY_BATTERY_USAGE);
        mBatteryUsagePreference.setSummary(
                mPowerFeatureProvider.isChartGraphEnabled(getContext()) ?
                        getString(R.string.advanced_battery_preference_summary_with_hours) :
                        getString(R.string.advanced_battery_preference_summary));

        mHelpPreference = findPreference(KEY_BATTERY_ERROR);
        mHelpPreference.setVisible(false);
    }

    @VisibleForTesting
    void restartBatteryInfoLoader() {
        if (getContext() == null) {
+35 −0
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@
package com.android.settings.fuelgauge;

import static com.android.settings.fuelgauge.PowerUsageSummary.BATTERY_INFO_LOADER;
import static com.android.settings.fuelgauge.PowerUsageSummary.KEY_BATTERY_ERROR;
import static com.android.settings.fuelgauge.PowerUsageSummary.KEY_BATTERY_USAGE;

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

@@ -37,6 +39,7 @@ import android.os.Bundle;
import android.provider.Settings;

import androidx.loader.app.LoaderManager;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;

import com.android.settings.R;
@@ -83,6 +86,10 @@ public class PowerUsageSummaryTest {
    private VisibilityLoggerMixin mVisibilityLoggerMixin;
    @Mock
    private PreferenceScreen mPreferenceScreen;
    @Mock
    private Preference mBatteryUsagePreference;
    @Mock
    private Preference mHelpPreference;

    private Context mRealContext;
    private TestFragment mFragment;
@@ -102,12 +109,16 @@ public class PowerUsageSummaryTest {
        when(mFragment.getActivity()).thenReturn(mSettingsActivity);
        when(mFeatureFactory.powerUsageFeatureProvider.getAdditionalBatteryInfoIntent())
                .thenReturn(sAdditionalBatteryInfoIntent);
        when(mFeatureFactory.powerUsageFeatureProvider.isChartGraphEnabled(mRealContext))
                .thenReturn(true);
        mFragment.mBatteryUtils = spy(new BatteryUtils(mRealContext));
        ReflectionHelpers.setField(mFragment, "mVisibilityLoggerMixin", mVisibilityLoggerMixin);
        ReflectionHelpers.setField(mFragment, "mBatteryBroadcastReceiver",
                mBatteryBroadcastReceiver);
        doReturn(mPreferenceScreen).when(mFragment).getPreferenceScreen();
        when(mFragment.getContentResolver()).thenReturn(mContentResolver);
        when(mFragment.findPreference(KEY_BATTERY_USAGE)).thenReturn(mBatteryUsagePreference);
        when(mFragment.findPreference(KEY_BATTERY_ERROR)).thenReturn(mHelpPreference);
    }

    @Test
@@ -123,6 +134,30 @@ public class PowerUsageSummaryTest {
        assertThat(keys).containsAtLeastElementsIn(niks);
    }

    @Test
    public void initPreference_chartGraphEnabled_hasCorrectSummary() {
        mFragment.initPreference();

        verify(mBatteryUsagePreference).setSummary("View usage for past 24 hours");
    }

    @Test
    public void initPreference_chartGraphDisabled_hasCorrectSummary() {
        when(mFeatureFactory.powerUsageFeatureProvider.isChartGraphEnabled(mRealContext))
                .thenReturn(false);

        mFragment.initPreference();

        verify(mBatteryUsagePreference).setSummary("View usage from last full charge");
    }

    @Test
    public void initPreference_helpPreferenceInvisible() {
        mFragment.initPreference();

        verify(mHelpPreference).setVisible(false);
    }

    @Test
    public void restartBatteryTipLoader() {
        //TODO: add policy logic here when BatteryTipPolicy is implemented