Merge "Fix the update error in EarlyWarningTip"
This commit is contained in:
@@ -62,13 +62,17 @@ public class EarlyWarningTip extends BatteryTip {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateState(BatteryTip tip) {
|
public void updateState(BatteryTip tip) {
|
||||||
final EarlyWarningTip earlyHeadsUpTip = (EarlyWarningTip) tip;
|
final EarlyWarningTip earlyWarningTip = (EarlyWarningTip) tip;
|
||||||
if (mPowerSaveModeOn != earlyHeadsUpTip.mPowerSaveModeOn) {
|
if (earlyWarningTip.mState == StateType.NEW) {
|
||||||
mPowerSaveModeOn = earlyHeadsUpTip.mPowerSaveModeOn;
|
// Display it if there is early warning
|
||||||
mState = earlyHeadsUpTip.mPowerSaveModeOn ? StateType.HANDLED : StateType.NEW;
|
mState = StateType.NEW;
|
||||||
} else if (mState != StateType.HANDLED) {
|
} else if (mState == StateType.NEW && earlyWarningTip.mState == StateType.INVISIBLE) {
|
||||||
mState = earlyHeadsUpTip.getState();
|
// If powerSaveMode is really on, show it as handled, otherwise just dismiss it.
|
||||||
|
mState = earlyWarningTip.mPowerSaveModeOn ? StateType.HANDLED : StateType.INVISIBLE;
|
||||||
|
} else {
|
||||||
|
mState = earlyWarningTip.getState();
|
||||||
}
|
}
|
||||||
|
mPowerSaveModeOn = earlyWarningTip.mPowerSaveModeOn;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -83,4 +83,38 @@ public class EarlyWarningTipTest {
|
|||||||
|
|
||||||
assertThat(mEarlyWarningTip.getState()).isEqualTo(BatteryTip.StateType.HANDLED);
|
assertThat(mEarlyWarningTip.getState()).isEqualTo(BatteryTip.StateType.HANDLED);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUpdate_devicePluggedIn_typeBecomeInvisible() {
|
||||||
|
final EarlyWarningTip nextTip = new EarlyWarningTip(BatteryTip.StateType.INVISIBLE,
|
||||||
|
false /* powerModeOn */);
|
||||||
|
|
||||||
|
mEarlyWarningTip.updateState(nextTip);
|
||||||
|
|
||||||
|
assertThat(mEarlyWarningTip.getState()).isEqualTo(BatteryTip.StateType.INVISIBLE);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUpdate_turnOnLowPowerModeExplicitly_typeStillInvisible() {
|
||||||
|
final EarlyWarningTip earlyWarningTip = new EarlyWarningTip(BatteryTip.StateType.INVISIBLE,
|
||||||
|
false /* powerModeOn */);
|
||||||
|
final EarlyWarningTip nextTip = new EarlyWarningTip(BatteryTip.StateType.INVISIBLE,
|
||||||
|
true /* powerModeOn */);
|
||||||
|
|
||||||
|
earlyWarningTip.updateState(nextTip);
|
||||||
|
|
||||||
|
assertThat(earlyWarningTip.getState()).isEqualTo(BatteryTip.StateType.INVISIBLE);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUpdate_turnOffLowPowerModeExplicitly_typeBecomeInvisible() {
|
||||||
|
final EarlyWarningTip earlyWarningTip = new EarlyWarningTip(BatteryTip.StateType.HANDLED,
|
||||||
|
true /* powerModeOn */);
|
||||||
|
final EarlyWarningTip nextTip = new EarlyWarningTip(BatteryTip.StateType.INVISIBLE,
|
||||||
|
false /* powerModeOn */);
|
||||||
|
|
||||||
|
earlyWarningTip.updateState(nextTip);
|
||||||
|
|
||||||
|
assertThat(earlyWarningTip.getState()).isEqualTo(BatteryTip.StateType.INVISIBLE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user