Update battery health state intent (2/3)

- Update the extra from overheated to longlife

Bug: 278192441
Test: make SettingsRoboTests

Change-Id: I5a906e64effbd9aaf84446c0670249afefdf7da8
This commit is contained in:
Wesley Wang
2023-04-19 20:00:31 +08:00
parent 1cc7d75d91
commit cf1190c7cb
10 changed files with 85 additions and 63 deletions

View File

@@ -34,24 +34,20 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
/** /**
* Use this broadcastReceiver to listen to the battery change, and it will invoke * Use this broadcastReceiver to listen to the battery change and it will invoke
* {@link OnBatteryChangedListener} if any of the following has been changed: * {@link OnBatteryChangedListener}
*
* 1. Battery level(e.g. 100%->99%)
* 2. Battery status(e.g. plugged->unplugged)
* 3. Battery saver(e.g. off->on)
* 4. Battery health(e.g. good->overheat)
*/ */
public class BatteryBroadcastReceiver extends BroadcastReceiver { public class BatteryBroadcastReceiver extends BroadcastReceiver {
private static final String TAG = "BatteryBroadcastRcvr"; private static final String TAG = "BatteryBroadcastRcvr";
/** /**
* Callback when the following has been changed: * Callback if any of the monitored fields has been changed:
* *
* Battery level(e.g. 100%->99%) * Battery level(e.g. 100%->99%)
* Battery status(e.g. plugged->unplugged) * Battery status(e.g. plugged->unplugged)
* Battery saver(e.g. off->on) * Battery saver(e.g. off->on)
* Battery health(e.g. good->overheat) * Battery health(e.g. good->overheat)
* Battery charging status(e.g. default->long life)
*/ */
public interface OnBatteryChangedListener { public interface OnBatteryChangedListener {
void onBatteryChanged(@BatteryUpdateType int type); void onBatteryChanged(@BatteryUpdateType int type);
@@ -63,6 +59,7 @@ public class BatteryBroadcastReceiver extends BroadcastReceiver {
BatteryUpdateType.BATTERY_SAVER, BatteryUpdateType.BATTERY_SAVER,
BatteryUpdateType.BATTERY_STATUS, BatteryUpdateType.BATTERY_STATUS,
BatteryUpdateType.BATTERY_HEALTH, BatteryUpdateType.BATTERY_HEALTH,
BatteryUpdateType.CHARGING_STATUS,
BatteryUpdateType.BATTERY_NOT_PRESENT}) BatteryUpdateType.BATTERY_NOT_PRESENT})
public @interface BatteryUpdateType { public @interface BatteryUpdateType {
int MANUAL = 0; int MANUAL = 0;
@@ -70,7 +67,8 @@ public class BatteryBroadcastReceiver extends BroadcastReceiver {
int BATTERY_SAVER = 2; int BATTERY_SAVER = 2;
int BATTERY_STATUS = 3; int BATTERY_STATUS = 3;
int BATTERY_HEALTH = 4; int BATTERY_HEALTH = 4;
int BATTERY_NOT_PRESENT = 5; int CHARGING_STATUS = 5;
int BATTERY_NOT_PRESENT = 6;
} }
@VisibleForTesting @VisibleForTesting
@@ -78,6 +76,8 @@ public class BatteryBroadcastReceiver extends BroadcastReceiver {
@VisibleForTesting @VisibleForTesting
String mBatteryStatus; String mBatteryStatus;
@VisibleForTesting @VisibleForTesting
int mChargingStatus;
@VisibleForTesting
int mBatteryHealth; int mBatteryHealth;
private OnBatteryChangedListener mBatteryListener; private OnBatteryChangedListener mBatteryListener;
private Context mContext; private Context mContext;
@@ -121,21 +121,27 @@ public class BatteryBroadcastReceiver extends BroadcastReceiver {
final String batteryLevel = Utils.getBatteryPercentage(intent); final String batteryLevel = Utils.getBatteryPercentage(intent);
final String batteryStatus = final String batteryStatus =
Utils.getBatteryStatus(mContext, intent, /* compactStatus= */ false); Utils.getBatteryStatus(mContext, intent, /* compactStatus= */ false);
final int chargingStatus = intent.getIntExtra(
BatteryManager.EXTRA_CHARGING_STATUS, BatteryManager.CHARGING_POLICY_DEFAULT);
final int batteryHealth = intent.getIntExtra( final int batteryHealth = intent.getIntExtra(
BatteryManager.EXTRA_HEALTH, BatteryManager.BATTERY_HEALTH_UNKNOWN); BatteryManager.EXTRA_HEALTH, BatteryManager.BATTERY_HEALTH_UNKNOWN);
Log.d( Log.d(
TAG, TAG,
"Battery changed: level=" "Battery changed: level: "
+ batteryLevel + batteryLevel
+ ", status=" + "| status: "
+ batteryStatus + batteryStatus
+ ", health=" + "| chargingStatus: "
+ chargingStatus
+ "| health: "
+ batteryHealth); + batteryHealth);
if (!Utils.isBatteryPresent(intent)) { if (!Utils.isBatteryPresent(intent)) {
Log.w(TAG, "Problem reading the battery meter."); Log.w(TAG, "Problem reading the battery meter.");
mBatteryListener.onBatteryChanged(BatteryUpdateType.BATTERY_NOT_PRESENT); mBatteryListener.onBatteryChanged(BatteryUpdateType.BATTERY_NOT_PRESENT);
} else if (forceUpdate) { } else if (forceUpdate) {
mBatteryListener.onBatteryChanged(BatteryUpdateType.MANUAL); mBatteryListener.onBatteryChanged(BatteryUpdateType.MANUAL);
} else if (chargingStatus != mChargingStatus) {
mBatteryListener.onBatteryChanged(BatteryUpdateType.CHARGING_STATUS);
} else if (batteryHealth != mBatteryHealth) { } else if (batteryHealth != mBatteryHealth) {
mBatteryListener.onBatteryChanged(BatteryUpdateType.BATTERY_HEALTH); mBatteryListener.onBatteryChanged(BatteryUpdateType.BATTERY_HEALTH);
} else if(!batteryLevel.equals(mBatteryLevel)) { } else if(!batteryLevel.equals(mBatteryLevel)) {
@@ -145,6 +151,7 @@ public class BatteryBroadcastReceiver extends BroadcastReceiver {
} }
mBatteryLevel = batteryLevel; mBatteryLevel = batteryLevel;
mBatteryStatus = batteryStatus; mBatteryStatus = batteryStatus;
mChargingStatus = chargingStatus;
mBatteryHealth = batteryHealth; mBatteryHealth = batteryHealth;
} else if (PowerManager.ACTION_POWER_SAVE_MODE_CHANGED.equals(action)) { } else if (PowerManager.ACTION_POWER_SAVE_MODE_CHANGED.equals(action)) {
mBatteryListener.onBatteryChanged(BatteryUpdateType.BATTERY_SAVER); mBatteryListener.onBatteryChanged(BatteryUpdateType.BATTERY_SAVER);

View File

@@ -51,7 +51,7 @@ public class BatteryInfo {
public int batteryStatus; public int batteryStatus;
public int pluggedStatus; public int pluggedStatus;
public boolean discharging = true; public boolean discharging = true;
public boolean isOverheated; public boolean isBatteryDefender;
public long remainingTimeUs = 0; public long remainingTimeUs = 0;
public long averageTimeToDischarge = EstimateKt.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN; public long averageTimeToDischarge = EstimateKt.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN;
public String batteryPercentString; public String batteryPercentString;
@@ -257,9 +257,9 @@ public class BatteryInfo {
info.pluggedStatus = batteryBroadcast.getIntExtra(BatteryManager.EXTRA_PLUGGED, 0); info.pluggedStatus = batteryBroadcast.getIntExtra(BatteryManager.EXTRA_PLUGGED, 0);
info.mCharging = info.pluggedStatus != 0; info.mCharging = info.pluggedStatus != 0;
info.averageTimeToDischarge = estimate.getAverageDischargeTime(); info.averageTimeToDischarge = estimate.getAverageDischargeTime();
info.isOverheated = batteryBroadcast.getIntExtra( info.isBatteryDefender = batteryBroadcast.getIntExtra(
BatteryManager.EXTRA_HEALTH, BatteryManager.BATTERY_HEALTH_UNKNOWN) BatteryManager.EXTRA_CHARGING_STATUS, BatteryManager.CHARGING_POLICY_DEFAULT)
== BatteryManager.BATTERY_HEALTH_OVERHEAT; == BatteryManager.CHARGING_POLICY_ADAPTIVE_LONGLIFE;
info.statusLabel = Utils.getBatteryStatus(context, batteryBroadcast, isCompactStatus); info.statusLabel = Utils.getBatteryStatus(context, batteryBroadcast, isCompactStatus);
info.batteryStatus = batteryBroadcast.getIntExtra( info.batteryStatus = batteryBroadcast.getIntExtra(
@@ -283,7 +283,7 @@ public class BatteryInfo {
info.discharging = false; info.discharging = false;
info.suggestionLabel = null; info.suggestionLabel = null;
int dockDefenderMode = BatteryUtils.getCurrentDockDefenderMode(context, info); int dockDefenderMode = BatteryUtils.getCurrentDockDefenderMode(context, info);
if ((info.isOverheated && status != BatteryManager.BATTERY_STATUS_FULL if ((info.isBatteryDefender && status != BatteryManager.BATTERY_STATUS_FULL
&& dockDefenderMode == BatteryUtils.DockDefenderMode.DISABLED) && dockDefenderMode == BatteryUtils.DockDefenderMode.DISABLED)
|| dockDefenderMode == BatteryUtils.DockDefenderMode.ACTIVE) { || dockDefenderMode == BatteryUtils.DockDefenderMode.ACTIVE) {
// Battery defender active, battery charging paused // Battery defender active, battery charging paused

View File

@@ -18,7 +18,6 @@ package com.android.settings.fuelgauge;
import android.app.AppOpsManager; import android.app.AppOpsManager;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.ApplicationInfo; import android.content.pm.ApplicationInfo;
import android.content.pm.InstallSourceInfo; import android.content.pm.InstallSourceInfo;
import android.content.pm.PackageInfo; import android.content.pm.PackageInfo;
@@ -322,10 +321,10 @@ public class BatteryUtils {
} }
/** /**
* Return {@code true} if battery is overheated and charging. * Return {@code true} if battery defender is on and charging.
*/ */
public static boolean isBatteryDefenderOn(BatteryInfo batteryInfo) { public static boolean isBatteryDefenderOn(BatteryInfo batteryInfo) {
return batteryInfo.isOverheated && !batteryInfo.discharging; return batteryInfo.isBatteryDefender && !batteryInfo.discharging;
} }
/** /**
@@ -627,11 +626,11 @@ public class BatteryUtils {
if (Settings.Global.getInt(context.getContentResolver(), if (Settings.Global.getInt(context.getContentResolver(),
SETTINGS_GLOBAL_DOCK_DEFENDER_BYPASS, 0) == 1) { SETTINGS_GLOBAL_DOCK_DEFENDER_BYPASS, 0) == 1) {
return DockDefenderMode.TEMPORARILY_BYPASSED; return DockDefenderMode.TEMPORARILY_BYPASSED;
} else if (batteryInfo.isOverheated && FeatureFactory.getFactory(context) } else if (batteryInfo.isBatteryDefender && FeatureFactory.getFactory(context)
.getPowerUsageFeatureProvider(context) .getPowerUsageFeatureProvider(context)
.isExtraDefend()) { .isExtraDefend()) {
return DockDefenderMode.ACTIVE; return DockDefenderMode.ACTIVE;
} else if (!batteryInfo.isOverheated) { } else if (!batteryInfo.isBatteryDefender) {
return DockDefenderMode.FUTURE_BYPASS; return DockDefenderMode.FUTURE_BYPASS;
} }
} }

View File

@@ -37,9 +37,8 @@ public class BatteryDefenderDetector implements BatteryTipDetector {
@Override @Override
public BatteryTip detect() { public BatteryTip detect() {
final boolean isBasicBatteryDefend = mBatteryInfo.isOverheated final boolean isBasicBatteryDefend = mBatteryInfo.isBatteryDefender
&& !FeatureFactory.getFactory(mContext) && !FeatureFactory.getFactory(mContext).getPowerUsageFeatureProvider(mContext)
.getPowerUsageFeatureProvider(mContext)
.isExtraDefend(); .isExtraDefend();
final int state = isBasicBatteryDefend final int state = isBasicBatteryDefend
? BatteryTip.StateType.NEW : BatteryTip.StateType.INVISIBLE; ? BatteryTip.StateType.NEW : BatteryTip.StateType.INVISIBLE;

View File

@@ -69,6 +69,7 @@ public class BatteryBroadcastReceiverTest {
mBatteryBroadcastReceiver.mBatteryLevel = BATTERY_INIT_LEVEL; mBatteryBroadcastReceiver.mBatteryLevel = BATTERY_INIT_LEVEL;
mBatteryBroadcastReceiver.mBatteryStatus = BATTERY_INIT_STATUS; mBatteryBroadcastReceiver.mBatteryStatus = BATTERY_INIT_STATUS;
mBatteryBroadcastReceiver.mBatteryHealth = BatteryManager.BATTERY_HEALTH_UNKNOWN; mBatteryBroadcastReceiver.mBatteryHealth = BatteryManager.BATTERY_HEALTH_UNKNOWN;
mBatteryBroadcastReceiver.mChargingStatus = BatteryManager.CHARGING_POLICY_DEFAULT;
mBatteryBroadcastReceiver.setBatteryChangedListener(mBatteryListener); mBatteryBroadcastReceiver.setBatteryChangedListener(mBatteryListener);
mChargingIntent = new Intent(Intent.ACTION_BATTERY_CHANGED); mChargingIntent = new Intent(Intent.ACTION_BATTERY_CHANGED);
@@ -91,8 +92,8 @@ public class BatteryBroadcastReceiverTest {
@Test @Test
public void onReceive_batteryHealthChanged_dataUpdated() { public void onReceive_batteryHealthChanged_dataUpdated() {
mChargingIntent mChargingIntent.putExtra(
.putExtra(BatteryManager.EXTRA_HEALTH, BatteryManager.BATTERY_HEALTH_OVERHEAT); BatteryManager.EXTRA_HEALTH, BatteryManager.BATTERY_HEALTH_OVERHEAT);
mBatteryBroadcastReceiver.onReceive(mContext, mChargingIntent); mBatteryBroadcastReceiver.onReceive(mContext, mChargingIntent);
assertThat(mBatteryBroadcastReceiver.mBatteryHealth) assertThat(mBatteryBroadcastReceiver.mBatteryHealth)
@@ -100,6 +101,17 @@ public class BatteryBroadcastReceiverTest {
verify(mBatteryListener).onBatteryChanged(BatteryUpdateType.BATTERY_HEALTH); verify(mBatteryListener).onBatteryChanged(BatteryUpdateType.BATTERY_HEALTH);
} }
@Test
public void onReceive_chargingStatusChanged_dataUpdated() {
mChargingIntent.putExtra(BatteryManager.EXTRA_CHARGING_STATUS,
BatteryManager.CHARGING_POLICY_ADAPTIVE_LONGLIFE);
mBatteryBroadcastReceiver.onReceive(mContext, mChargingIntent);
assertThat(mBatteryBroadcastReceiver.mChargingStatus)
.isEqualTo(BatteryManager.CHARGING_POLICY_ADAPTIVE_LONGLIFE);
verify(mBatteryListener).onBatteryChanged(BatteryUpdateType.CHARGING_STATUS);
}
@Test @Test
public void onReceive_batteryNotPresent_shouldShowHelpMessage() { public void onReceive_batteryNotPresent_shouldShowHelpMessage() {
mChargingIntent.putExtra(BatteryManager.EXTRA_PRESENT, false); mChargingIntent.putExtra(BatteryManager.EXTRA_PRESENT, false);
@@ -131,6 +143,8 @@ public class BatteryBroadcastReceiverTest {
assertThat(mBatteryBroadcastReceiver.mBatteryStatus).isEqualTo(batteryStatus); assertThat(mBatteryBroadcastReceiver.mBatteryStatus).isEqualTo(batteryStatus);
assertThat(mBatteryBroadcastReceiver.mBatteryHealth) assertThat(mBatteryBroadcastReceiver.mBatteryHealth)
.isEqualTo(BatteryManager.BATTERY_HEALTH_UNKNOWN); .isEqualTo(BatteryManager.BATTERY_HEALTH_UNKNOWN);
assertThat(mBatteryBroadcastReceiver.mChargingStatus)
.isEqualTo(BatteryManager.CHARGING_POLICY_DEFAULT);
verify(mBatteryListener, never()).onBatteryChanged(anyInt()); verify(mBatteryListener, never()).onBatteryChanged(anyInt());
} }
@@ -163,6 +177,8 @@ public class BatteryBroadcastReceiverTest {
Utils.getBatteryStatus(mContext, mChargingIntent, /* compactStatus= */ false)); Utils.getBatteryStatus(mContext, mChargingIntent, /* compactStatus= */ false));
assertThat(mBatteryBroadcastReceiver.mBatteryHealth) assertThat(mBatteryBroadcastReceiver.mBatteryHealth)
.isEqualTo(BatteryManager.BATTERY_HEALTH_UNKNOWN); .isEqualTo(BatteryManager.BATTERY_HEALTH_UNKNOWN);
assertThat(mBatteryBroadcastReceiver.mChargingStatus)
.isEqualTo(BatteryManager.CHARGING_POLICY_DEFAULT);
// 2 times because register will force update the battery // 2 times because register will force update the battery
verify(mBatteryListener, times(2)).onBatteryChanged(BatteryUpdateType.MANUAL); verify(mBatteryListener, times(2)).onBatteryChanged(BatteryUpdateType.MANUAL);
} }

View File

@@ -290,8 +290,8 @@ public class BatteryHeaderPreferenceControllerTest {
} }
@Test @Test
public void updatePreference_isOverheat_showEmptyText() { public void updatePreference_isBatteryDefender_showEmptyText() {
mBatteryInfo.isOverheated = true; mBatteryInfo.isBatteryDefender = true;
mController.updateHeaderPreference(mBatteryInfo); mController.updateHeaderPreference(mBatteryInfo);

View File

@@ -254,18 +254,18 @@ public class BatteryInfoTest {
} }
@Test @Test
public void testGetBatteryInfo_chargingWithOverheated_updateChargeLabel() { public void testGetBatteryInfo_chargingWithDefender_updateChargeLabel() {
doReturn(TEST_CHARGE_TIME_REMAINING) doReturn(TEST_CHARGE_TIME_REMAINING)
.when(mBatteryUsageStats) .when(mBatteryUsageStats)
.getChargeTimeRemainingMs(); .getChargeTimeRemainingMs();
mChargingBatteryBroadcast mChargingBatteryBroadcast.putExtra(BatteryManager.EXTRA_CHARGING_STATUS,
.putExtra(BatteryManager.EXTRA_HEALTH, BatteryManager.BATTERY_HEALTH_OVERHEAT); BatteryManager.CHARGING_POLICY_ADAPTIVE_LONGLIFE);
BatteryInfo info = BatteryInfo.getBatteryInfo(mContext, mChargingBatteryBroadcast, BatteryInfo info = BatteryInfo.getBatteryInfo(mContext, mChargingBatteryBroadcast,
mBatteryUsageStats, MOCK_ESTIMATE, SystemClock.elapsedRealtime() * 1000, mBatteryUsageStats, MOCK_ESTIMATE, SystemClock.elapsedRealtime() * 1000,
false /* shortString */); false /* shortString */);
assertThat(info.isOverheated).isTrue(); assertThat(info.isBatteryDefender).isTrue();
assertThat(info.chargeLabel.toString()).contains(STATUS_CHARGING_PAUSED); assertThat(info.chargeLabel.toString()).contains(STATUS_CHARGING_PAUSED);
} }
@@ -278,7 +278,8 @@ public class BatteryInfoTest {
50 /* level */, 50 /* level */,
100 /* scale */, 100 /* scale */,
BatteryManager.BATTERY_STATUS_CHARGING) BatteryManager.BATTERY_STATUS_CHARGING)
.putExtra(BatteryManager.EXTRA_HEALTH, BatteryManager.BATTERY_HEALTH_OVERHEAT); .putExtra(BatteryManager.EXTRA_CHARGING_STATUS,
BatteryManager.CHARGING_POLICY_ADAPTIVE_LONGLIFE);
BatteryInfo info = BatteryInfo.getBatteryInfo(mContext, intent, BatteryInfo info = BatteryInfo.getBatteryInfo(mContext, intent,
mBatteryUsageStats, MOCK_ESTIMATE, SystemClock.elapsedRealtime() * 1000, mBatteryUsageStats, MOCK_ESTIMATE, SystemClock.elapsedRealtime() * 1000,
@@ -290,8 +291,8 @@ public class BatteryInfoTest {
@Test @Test
public void testGetBatteryInfo_dockDefenderTemporarilyBypassed_updateChargeLabel() { public void testGetBatteryInfo_dockDefenderTemporarilyBypassed_updateChargeLabel() {
doReturn(REMAINING_TIME).when(mBatteryUsageStats).getChargeTimeRemainingMs(); doReturn(REMAINING_TIME).when(mBatteryUsageStats).getChargeTimeRemainingMs();
mChargingBatteryBroadcast mChargingBatteryBroadcast.putExtra(BatteryManager.EXTRA_CHARGING_STATUS,
.putExtra(BatteryManager.EXTRA_HEALTH, BatteryManager.BATTERY_HEALTH_GOOD); BatteryManager.CHARGING_POLICY_DEFAULT);
Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.putInt(mContext.getContentResolver(),
BatteryUtils.SETTINGS_GLOBAL_DOCK_DEFENDER_BYPASS, 1); BatteryUtils.SETTINGS_GLOBAL_DOCK_DEFENDER_BYPASS, 1);
@@ -309,8 +310,8 @@ public class BatteryInfoTest {
@Test @Test
public void testGetBatteryInfo_dockDefenderFutureBypass_updateChargeLabel() { public void testGetBatteryInfo_dockDefenderFutureBypass_updateChargeLabel() {
doReturn(false).when(mFeatureFactory.powerUsageFeatureProvider).isExtraDefend(); doReturn(false).when(mFeatureFactory.powerUsageFeatureProvider).isExtraDefend();
mChargingBatteryBroadcast mChargingBatteryBroadcast.putExtra(BatteryManager.EXTRA_CHARGING_STATUS,
.putExtra(BatteryManager.EXTRA_HEALTH, BatteryManager.BATTERY_HEALTH_GOOD); BatteryManager.CHARGING_POLICY_DEFAULT);
BatteryInfo info = BatteryInfo.getBatteryInfo(mContext, BatteryInfo info = BatteryInfo.getBatteryInfo(mContext,
BatteryTestUtils.getCustomBatteryIntent(BatteryManager.BATTERY_PLUGGED_DOCK, BatteryTestUtils.getCustomBatteryIntent(BatteryManager.BATTERY_PLUGGED_DOCK,

View File

@@ -487,32 +487,32 @@ public class BatteryUtilsTest {
} }
@Test @Test
public void testIsBatteryDefenderOn_isOverheatedAndIsCharging_returnTrue() { public void testIsBatteryDefenderOn_isDefenderAndIsCharging_returnTrue() {
mBatteryInfo.isOverheated = true; mBatteryInfo.isBatteryDefender = true;
mBatteryInfo.discharging = false; mBatteryInfo.discharging = false;
assertThat(mBatteryUtils.isBatteryDefenderOn(mBatteryInfo)).isTrue(); assertThat(mBatteryUtils.isBatteryDefenderOn(mBatteryInfo)).isTrue();
} }
@Test @Test
public void testIsBatteryDefenderOn_isOverheatedAndDischarging_returnFalse() { public void testIsBatteryDefenderOn_isDefenderAndDischarging_returnFalse() {
mBatteryInfo.isOverheated = true; mBatteryInfo.isBatteryDefender = true;
mBatteryInfo.discharging = true; mBatteryInfo.discharging = true;
assertThat(mBatteryUtils.isBatteryDefenderOn(mBatteryInfo)).isFalse(); assertThat(mBatteryUtils.isBatteryDefenderOn(mBatteryInfo)).isFalse();
} }
@Test @Test
public void testIsBatteryDefenderOn_notOverheatedAndDischarging_returnFalse() { public void testIsBatteryDefenderOn_notDefenderAndDischarging_returnFalse() {
mBatteryInfo.isOverheated = false; mBatteryInfo.isBatteryDefender = false;
mBatteryInfo.discharging = true; mBatteryInfo.discharging = true;
assertThat(mBatteryUtils.isBatteryDefenderOn(mBatteryInfo)).isFalse(); assertThat(mBatteryUtils.isBatteryDefenderOn(mBatteryInfo)).isFalse();
} }
@Test @Test
public void testIsBatteryDefenderOn_notOverheatedAndIsCharging_returnFalse() { public void testIsBatteryDefenderOn_notDefenderAndIsCharging_returnFalse() {
mBatteryInfo.isOverheated = false; mBatteryInfo.isBatteryDefender = false;
mBatteryInfo.discharging = false; mBatteryInfo.discharging = false;
assertThat(mBatteryUtils.isBatteryDefenderOn(mBatteryInfo)).isFalse(); assertThat(mBatteryUtils.isBatteryDefenderOn(mBatteryInfo)).isFalse();

View File

@@ -60,32 +60,32 @@ public class BatteryDefenderDetectorTest {
} }
@Test @Test
public void testDetect_notOverheatedNotExtraDefend_tipInvisible() { public void testDetect_notDefenderNotExtraDefend_tipInvisible() {
mBatteryInfo.isOverheated = false; mBatteryInfo.isBatteryDefender = false;
when(mFakeFeatureFactory.powerUsageFeatureProvider.isExtraDefend()).thenReturn(false); when(mFakeFeatureFactory.powerUsageFeatureProvider.isExtraDefend()).thenReturn(false);
assertThat(mBatteryDefenderDetector.detect().isVisible()).isFalse(); assertThat(mBatteryDefenderDetector.detect().isVisible()).isFalse();
} }
@Test @Test
public void testDetect_notOverheatedIsExtraDefend_tipInvisible() { public void testDetect_notDefenderIsExtraDefend_tipInvisible() {
mBatteryInfo.isOverheated = false; mBatteryInfo.isBatteryDefender = false;
when(mFakeFeatureFactory.powerUsageFeatureProvider.isExtraDefend()).thenReturn(true); when(mFakeFeatureFactory.powerUsageFeatureProvider.isExtraDefend()).thenReturn(true);
assertThat(mBatteryDefenderDetector.detect().isVisible()).isFalse(); assertThat(mBatteryDefenderDetector.detect().isVisible()).isFalse();
} }
@Test @Test
public void testDetect_isOverheatedIsExtraDefend_tipInvisible() { public void testDetect_isDefenderIsExtraDefend_tipInvisible() {
mBatteryInfo.isOverheated = false; mBatteryInfo.isBatteryDefender = false;
when(mFakeFeatureFactory.powerUsageFeatureProvider.isExtraDefend()).thenReturn(true); when(mFakeFeatureFactory.powerUsageFeatureProvider.isExtraDefend()).thenReturn(true);
assertThat(mBatteryDefenderDetector.detect().isVisible()).isFalse(); assertThat(mBatteryDefenderDetector.detect().isVisible()).isFalse();
} }
@Test @Test
public void testDetect_isOverheatedNotExtraDefend_tipNew() { public void testDetect_isDefenderNotExtraDefend_tipNew() {
mBatteryInfo.isOverheated = true; mBatteryInfo.isBatteryDefender = true;
when(mFakeFeatureFactory.powerUsageFeatureProvider.isExtraDefend()).thenReturn(false); when(mFakeFeatureFactory.powerUsageFeatureProvider.isExtraDefend()).thenReturn(false);
assertThat(mBatteryDefenderDetector.detect().getState()) assertThat(mBatteryDefenderDetector.detect().getState())

View File

@@ -83,7 +83,7 @@ public class DockDefenderDetectorTest {
@Test @Test
public void testDetect_dockDefenderActive() { public void testDetect_dockDefenderActive() {
mBatteryInfo.isOverheated = true; mBatteryInfo.isBatteryDefender = true;
doReturn(true).when(mFakeFeatureFactory.powerUsageFeatureProvider).isExtraDefend(); doReturn(true).when(mFakeFeatureFactory.powerUsageFeatureProvider).isExtraDefend();
BatteryTip batteryTip = mDockDefenderDetector.detect(); BatteryTip batteryTip = mDockDefenderDetector.detect();
@@ -95,7 +95,7 @@ public class DockDefenderDetectorTest {
@Test @Test
public void testDetect_dockDefenderFutureBypass() { public void testDetect_dockDefenderFutureBypass() {
mBatteryInfo.isOverheated = false; mBatteryInfo.isBatteryDefender = false;
doReturn(false).when(mFakeFeatureFactory.powerUsageFeatureProvider).isExtraDefend(); doReturn(false).when(mFakeFeatureFactory.powerUsageFeatureProvider).isExtraDefend();
BatteryTip batteryTip = mDockDefenderDetector.detect(); BatteryTip batteryTip = mDockDefenderDetector.detect();
@@ -107,7 +107,7 @@ public class DockDefenderDetectorTest {
@Test @Test
public void testDetect_overheatedTrue_dockDefenderDisabled() { public void testDetect_overheatedTrue_dockDefenderDisabled() {
mBatteryInfo.isOverheated = true; mBatteryInfo.isBatteryDefender = true;
doReturn(false).when(mFakeFeatureFactory.powerUsageFeatureProvider).isExtraDefend(); doReturn(false).when(mFakeFeatureFactory.powerUsageFeatureProvider).isExtraDefend();
BatteryTip batteryTip = mDockDefenderDetector.detect(); BatteryTip batteryTip = mDockDefenderDetector.detect();
@@ -131,7 +131,7 @@ public class DockDefenderDetectorTest {
@Test @Test
public void testDetect_overheatedTrueAndDockDefenderNotTriggered_dockDefenderDisabled() { public void testDetect_overheatedTrueAndDockDefenderNotTriggered_dockDefenderDisabled() {
doReturn(false).when(mFakeFeatureFactory.powerUsageFeatureProvider).isExtraDefend(); doReturn(false).when(mFakeFeatureFactory.powerUsageFeatureProvider).isExtraDefend();
mBatteryInfo.isOverheated = true; mBatteryInfo.isBatteryDefender = true;
BatteryTip batteryTip = mDockDefenderDetector.detect(); BatteryTip batteryTip = mDockDefenderDetector.detect();