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:
@@ -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);
|
||||||
|
@@ -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
|
||||||
|
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -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;
|
||||||
|
@@ -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);
|
||||||
}
|
}
|
||||||
|
@@ -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);
|
||||||
|
|
||||||
|
@@ -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,
|
||||||
|
@@ -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();
|
||||||
|
@@ -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())
|
||||||
|
@@ -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();
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user