Fix the update error in EarlyWarningTip

Fixes: 73331241
Test: RunSettingsRoboTests
Change-Id: I8b270d813c8c398d5ddd12f84d3e43426044b597
This commit is contained in:
jackqdyulei
2018-02-20 16:15:54 -08:00
parent 49c8080a50
commit 8fee141f28
2 changed files with 44 additions and 6 deletions

View File

@@ -62,13 +62,17 @@ public class EarlyWarningTip extends BatteryTip {
@Override
public void updateState(BatteryTip tip) {
final EarlyWarningTip earlyHeadsUpTip = (EarlyWarningTip) tip;
if (mPowerSaveModeOn != earlyHeadsUpTip.mPowerSaveModeOn) {
mPowerSaveModeOn = earlyHeadsUpTip.mPowerSaveModeOn;
mState = earlyHeadsUpTip.mPowerSaveModeOn ? StateType.HANDLED : StateType.NEW;
} else if (mState != StateType.HANDLED) {
mState = earlyHeadsUpTip.getState();
final EarlyWarningTip earlyWarningTip = (EarlyWarningTip) tip;
if (earlyWarningTip.mState == StateType.NEW) {
// Display it if there is early warning
mState = StateType.NEW;
} else if (mState == StateType.NEW && earlyWarningTip.mState == StateType.INVISIBLE) {
// 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