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

Commit 8ccb5a46 authored by Salvador Martinez's avatar Salvador Martinez
Browse files

Fix enhanced estimate discharge text showing while charging

In the PowerUsageAdvanced screen the text showing whether your time
remaining information is enhanced or not should not show when the
device is plugged in. This CL fixes a bug in that logic that would
show the text when it wasn't supposed to.

Test: robotests still pass, manual verification
Bug: 63176050
Change-Id: I33fb31671cd9c29aed20483301e51ae1ded1f1b6
parent a7f5953a
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -35,8 +35,9 @@ public class BatteryHistoryPreference extends Preference {

    private CharSequence mSummary;
    private TextView mSummaryView;
    private boolean hideSummary;

    @VisibleForTesting
    boolean hideSummary;
    @VisibleForTesting
    BatteryInfo mBatteryInfo;

@@ -56,8 +57,10 @@ public class BatteryHistoryPreference extends Preference {
    public void setBottomSummary(CharSequence text) {
        mSummary = text;
        if (mSummaryView != null) {
            mSummaryView.setVisibility(View.VISIBLE);
            mSummaryView.setText(mSummary);
        }
        hideSummary = false;
    }

    public void hideBottomSummary() {
+8 −1
Original line number Diff line number Diff line
@@ -15,7 +15,10 @@ package com.android.settings.fuelgauge;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.PackageManager;
import android.os.BatteryManager;
import android.os.BatteryStats;
import android.os.Bundle;
import android.os.Handler;
@@ -171,7 +174,11 @@ public class PowerUsageAdvanced extends PowerUsageBase {
        updatePreference(mHistPref);
        refreshPowerUsageDataList(mStatsHelper, mUsageListGroup);

        if (mPowerUsageFeatureProvider.isEnhancedBatteryPredictionEnabled(context)) {
        Intent batteryIntent =
                context.registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
        final boolean plugged = batteryIntent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1) != 0;

        if (mPowerUsageFeatureProvider.isEnhancedBatteryPredictionEnabled(context) && !plugged) {
            mHistPref.setBottomSummary(
                    mPowerUsageFeatureProvider.getAdvancedUsageScreenInfoString());
        } else {
+2 −0
Original line number Diff line number Diff line
@@ -97,6 +97,7 @@ public class BatteryHistoryPreferenceTest {
        TextView view = (TextView) mViewHolder.findViewById(R.id.bottom_summary);
        assertThat(view.getVisibility()).isEqualTo(View.VISIBLE);
        assertThat(view.getText()).isEqualTo(TEST_STRING);
        assertThat(mBatteryHistoryPreference.hideSummary).isFalse();
    }

    @Test
@@ -107,5 +108,6 @@ public class BatteryHistoryPreferenceTest {
        TextView view = (TextView) mViewHolder.findViewById(R.id.bottom_summary);
        assertThat(view.getVisibility()).isEqualTo(View.GONE);
        assertThat(view.getText()).isEqualTo("");
        assertThat(mBatteryHistoryPreference.hideSummary).isTrue();
    }
}
+2 −6
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@ import android.os.BatteryManager;
import android.os.BatteryStats;
import com.android.internal.os.BatteryStatsHelper;
import com.android.settings.TestConfig;
import com.android.settings.testutils.BatteryTestUtils;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import org.junit.Before;
@@ -64,12 +65,7 @@ public class BatteryInfoLoaderTest {
                .setupForTest(mContext)
                .getPowerUsageFeatureProvider(mContext);

        mDisChargingBatteryBroadcast = new Intent();
        mDisChargingBatteryBroadcast.putExtra(BatteryManager.EXTRA_PLUGGED, 0);
        mDisChargingBatteryBroadcast.putExtra(BatteryManager.EXTRA_LEVEL, 0);
        mDisChargingBatteryBroadcast.putExtra(BatteryManager.EXTRA_SCALE, 100);
        mDisChargingBatteryBroadcast.putExtra(BatteryManager.EXTRA_STATUS,
                BatteryManager.BATTERY_STATUS_FULL);
        mDisChargingBatteryBroadcast = BatteryTestUtils.getDischargingIntent();

        doReturn(mContext).when(mContext).getApplicationContext();
        when(mStats.computeBatteryTimeRemaining(anyLong())).thenReturn(TEST_TIME_REMAINING);
+6 −15
Original line number Diff line number Diff line
@@ -39,6 +39,7 @@ import android.util.SparseIntArray;

import com.android.settings.TestConfig;
import com.android.settings.graph.UsageView;
import com.android.settings.testutils.BatteryTestUtils;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.SettingsRobolectricTestRunner;

@@ -63,6 +64,7 @@ public class BatteryInfoTest {
    private static final String STATUS_FULL = "Full";
    private static final String STATUS_CHARGING_NO_TIME = "50% - charging";
    private static final String STATUS_CHARGING_TIME = "50% - 0m until fully charged";
    private static final String STATUS_NOT_CHARGING = "Not charging";
    private static final int PLUGGED_IN = 1;
    private static final long REMAINING_TIME_NULL = -1;
    private static final long REMAINING_TIME = 2;
@@ -87,20 +89,9 @@ public class BatteryInfoTest {
        mContext = spy(RuntimeEnvironment.application);
        mFeatureFactory = FakeFeatureFactory.setupForTest(mContext);

        mDisChargingBatteryBroadcast = new Intent();
        mDisChargingBatteryBroadcast.putExtra(BatteryManager.EXTRA_PLUGGED, 0);
        mDisChargingBatteryBroadcast.putExtra(BatteryManager.EXTRA_LEVEL, 0);
        mDisChargingBatteryBroadcast.putExtra(BatteryManager.EXTRA_SCALE, 100);
        mDisChargingBatteryBroadcast.putExtra(BatteryManager.EXTRA_STATUS,
                BatteryManager.BATTERY_STATUS_FULL);

        mChargingBatteryBroadcast = new Intent();
        mChargingBatteryBroadcast.putExtra(BatteryManager.EXTRA_PLUGGED,
                BatteryManager.BATTERY_PLUGGED_AC);
        mChargingBatteryBroadcast.putExtra(BatteryManager.EXTRA_LEVEL, 50);
        mChargingBatteryBroadcast.putExtra(BatteryManager.EXTRA_SCALE, 100);
        mChargingBatteryBroadcast.putExtra(BatteryManager.EXTRA_STATUS,
                BatteryManager.BATTERY_STATUS_UNKNOWN);
        mDisChargingBatteryBroadcast = BatteryTestUtils.getDischargingIntent();

        mChargingBatteryBroadcast = BatteryTestUtils.getChargingIntent();
    }

    @Test
@@ -110,7 +101,7 @@ public class BatteryInfoTest {
                mDisChargingBatteryBroadcast, mBatteryStats, SystemClock.elapsedRealtime() * 1000,
                true /* shortString */);

        assertThat(info.statusLabel).isEqualTo(STATUS_FULL);
        assertThat(info.statusLabel).isEqualTo(STATUS_NOT_CHARGING);
    }

    @Test
Loading