Provide different ways to detect battery defender.

Bug: 335567248
Test: robotests
Change-Id: Ie1d3d7da99fa698468ffd124410cfd3b56bc0c34
This commit is contained in:
Yiling Chuang
2024-04-25 08:00:59 +00:00
parent c44d4f3f6f
commit 11e810e7a7
5 changed files with 74 additions and 51 deletions

View File

@@ -151,4 +151,7 @@ public interface PowerUsageFeatureProvider {
/** Whether the app optimization mode is valid to restore */
boolean isValidToRestoreOptimizationMode(ArrayMap<String, String> deviceInfoMap);
/** Whether the device is under the battery defender mode */
boolean isBatteryDefend(BatteryInfo info);
}

View File

@@ -235,4 +235,9 @@ public class PowerUsageFeatureProviderImpl implements PowerUsageFeatureProvider
public boolean isValidToRestoreOptimizationMode(ArrayMap<String, String> deviceInfoMap) {
return false;
}
@Override
public boolean isBatteryDefend(BatteryInfo info) {
return info.isBatteryDefender && !isExtraDefend();
}
}

View File

@@ -36,10 +36,9 @@ public class BatteryDefenderDetector implements BatteryTipDetector {
@Override
public BatteryTip detect() {
final boolean isBasicBatteryDefend =
mBatteryInfo.isBatteryDefender
&& !FeatureFactory.getFeatureFactory()
.getPowerUsageFeatureProvider()
.isExtraDefend();
FeatureFactory.getFeatureFactory()
.getPowerUsageFeatureProvider()
.isBatteryDefend(mBatteryInfo);
final int state =
isBasicBatteryDefend ? BatteryTip.StateType.NEW : BatteryTip.StateType.INVISIBLE;
final boolean isPluggedIn = mBatteryInfo.pluggedStatus != 0;