Merge "Add one more param to isChargingOptimizationMode() for flexibility" into main
This commit is contained in:
committed by
Android (Google) Code Review
commit
1ecacd8a5a
@@ -80,13 +80,14 @@ public class BatteryHeaderTextPreferenceController extends BasePreferenceControl
|
||||
}
|
||||
if (BatteryUtils.isBatteryDefenderOn(info)
|
||||
|| FeatureFactory.getFeatureFactory()
|
||||
.getPowerUsageFeatureProvider()
|
||||
.isExtraDefend()) {
|
||||
.getPowerUsageFeatureProvider()
|
||||
.isExtraDefend()) {
|
||||
return mContext.getString(
|
||||
com.android.settingslib.R.string.battery_info_status_charging_on_hold);
|
||||
}
|
||||
if (info.remainingLabel != null
|
||||
&& mBatterySettingsFeatureProvider.isChargingOptimizationMode(mContext)) {
|
||||
&& mBatterySettingsFeatureProvider.isChargingOptimizationMode(
|
||||
mContext, info.isLongLife)) {
|
||||
return info.remainingLabel;
|
||||
}
|
||||
if (info.batteryStatus == BatteryManager.BATTERY_STATUS_NOT_CHARGING) {
|
||||
@@ -97,8 +98,8 @@ public class BatteryHeaderTextPreferenceController extends BasePreferenceControl
|
||||
mBatterySettingsFeatureProvider.getWirelessChargingLabel(mContext, info);
|
||||
if (mBatteryHeaderTextPreference != null && wirelessChargingLabel != null) {
|
||||
mBatteryHeaderTextPreference.setContentDescription(
|
||||
mBatterySettingsFeatureProvider
|
||||
.getWirelessChargingContentDescription(mContext, info));
|
||||
mBatterySettingsFeatureProvider.getWirelessChargingContentDescription(
|
||||
mContext, info));
|
||||
return wirelessChargingLabel;
|
||||
}
|
||||
}
|
||||
|
@@ -404,7 +404,7 @@ public class BatteryInfo {
|
||||
}
|
||||
final BatterySettingsFeatureProvider featureProvider =
|
||||
FeatureFactory.getFeatureFactory().getBatterySettingsFeatureProvider();
|
||||
if (featureProvider.isChargingOptimizationMode(context)) {
|
||||
if (featureProvider.isChargingOptimizationMode(context, info.isLongLife)) {
|
||||
final CharSequence chargeLabel =
|
||||
featureProvider.getChargingOptimizationChargeLabel(
|
||||
context,
|
||||
@@ -567,10 +567,11 @@ public class BatteryInfo {
|
||||
|
||||
private static boolean isPluggedIn(Context context, boolean isCharging, int chargingPolicy) {
|
||||
return isCharging
|
||||
|| (chargingPolicy == BatteryManager.CHARGING_POLICY_ADAPTIVE_LONGLIFE
|
||||
&& FeatureFactory.getFeatureFactory()
|
||||
.getBatterySettingsFeatureProvider()
|
||||
.isChargingOptimizationMode(context));
|
||||
|| FeatureFactory.getFeatureFactory()
|
||||
.getBatterySettingsFeatureProvider()
|
||||
.isChargingOptimizationMode(
|
||||
context,
|
||||
chargingPolicy == BatteryManager.CHARGING_POLICY_ADAPTIVE_LONGLIFE);
|
||||
}
|
||||
|
||||
public interface BatteryDataParser {
|
||||
|
@@ -60,7 +60,7 @@ public interface BatterySettingsFeatureProvider {
|
||||
@NonNull Context context, long remainingTimeMs, long currentTimeMs);
|
||||
|
||||
/** Return true if it's in the charging optimization mode. */
|
||||
boolean isChargingOptimizationMode(@NonNull Context context);
|
||||
boolean isChargingOptimizationMode(@NonNull Context context, boolean isLongLife);
|
||||
|
||||
/** Return a charging remaining time label for charging optimization mode. */
|
||||
@Nullable
|
||||
|
@@ -76,7 +76,7 @@ public class BatterySettingsFeatureProviderImpl implements BatterySettingsFeatur
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isChargingOptimizationMode(@NonNull Context context) {
|
||||
public boolean isChargingOptimizationMode(@NonNull Context context, boolean isLongLife) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@@ -161,7 +161,8 @@ public class TopLevelBatteryPreferenceController extends BasePreferenceControlle
|
||||
}
|
||||
final BatterySettingsFeatureProvider featureProvider =
|
||||
FeatureFactory.getFeatureFactory().getBatterySettingsFeatureProvider();
|
||||
if (info.chargeLabel != null && featureProvider.isChargingOptimizationMode(mContext)) {
|
||||
if (info.chargeLabel != null
|
||||
&& featureProvider.isChargingOptimizationMode(mContext, info.isLongLife)) {
|
||||
return info.chargeLabel;
|
||||
}
|
||||
if (info.batteryStatus == BatteryManager.BATTERY_STATUS_NOT_CHARGING) {
|
||||
|
@@ -18,6 +18,7 @@ package com.android.settings.fuelgauge;
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.ArgumentMatchers.anyBoolean;
|
||||
import static org.mockito.ArgumentMatchers.eq;
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
import static org.mockito.Mockito.never;
|
||||
@@ -98,9 +99,7 @@ public class BatteryHeaderTextPreferenceControllerTest {
|
||||
mBatteryIntent.putExtra(BatteryManager.EXTRA_PLUGGED, 1);
|
||||
doReturn(mBatteryIntent).when(mContext).registerReceiver(any(), any());
|
||||
|
||||
doReturn(mBatteryHeaderTextPreference)
|
||||
.when(mPreferenceScreen)
|
||||
.findPreference(PREF_KEY);
|
||||
doReturn(mBatteryHeaderTextPreference).when(mPreferenceScreen).findPreference(PREF_KEY);
|
||||
|
||||
mBatteryInfo.batteryLevel = BATTERY_LEVEL;
|
||||
|
||||
@@ -322,7 +321,8 @@ public class BatteryHeaderTextPreferenceControllerTest {
|
||||
/* isFastCharging= */ true,
|
||||
/* isChargingStringV2= */ true);
|
||||
var expectedChargingString = batteryInfo.remainingLabel;
|
||||
when(mFactory.batterySettingsFeatureProvider.isChargingOptimizationMode(mContext))
|
||||
when(mFactory.batterySettingsFeatureProvider.isChargingOptimizationMode(
|
||||
eq(mContext), anyBoolean()))
|
||||
.thenReturn(true);
|
||||
|
||||
mController.updateBatteryStatus(/* label= */ null, batteryInfo);
|
||||
@@ -339,7 +339,8 @@ public class BatteryHeaderTextPreferenceControllerTest {
|
||||
/* isFastCharging= */ true,
|
||||
/* isChargingStringV2= */ true);
|
||||
var expectedChargingString = batteryInfo.statusLabel;
|
||||
when(mFactory.batterySettingsFeatureProvider.isChargingOptimizationMode(mContext))
|
||||
when(mFactory.batterySettingsFeatureProvider.isChargingOptimizationMode(
|
||||
eq(mContext), anyBoolean()))
|
||||
.thenReturn(true);
|
||||
|
||||
mController.updateBatteryStatus(/* label= */ null, batteryInfo);
|
||||
@@ -356,7 +357,8 @@ public class BatteryHeaderTextPreferenceControllerTest {
|
||||
/* isFastCharging= */ true,
|
||||
/* isChargingStringV2= */ true);
|
||||
var expectedChargingString = batteryInfo.statusLabel + " • " + batteryInfo.remainingLabel;
|
||||
when(mFactory.batterySettingsFeatureProvider.isChargingOptimizationMode(mContext))
|
||||
when(mFactory.batterySettingsFeatureProvider.isChargingOptimizationMode(
|
||||
eq(mContext), anyBoolean()))
|
||||
.thenReturn(false);
|
||||
|
||||
mController.updateBatteryStatus(/* label= */ null, batteryInfo);
|
||||
@@ -448,7 +450,9 @@ public class BatteryHeaderTextPreferenceControllerTest {
|
||||
|
||||
mController.updateHeaderPreference(mBatteryInfo);
|
||||
|
||||
verify(mBatteryHeaderTextPreference).setText(mContext.getString(
|
||||
verify(mBatteryHeaderTextPreference)
|
||||
.setText(
|
||||
mContext.getString(
|
||||
com.android.settingslib.R.string
|
||||
.battery_info_status_charging_on_hold));
|
||||
}
|
||||
|
@@ -19,6 +19,7 @@ package com.android.settings.fuelgauge;
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
import static com.google.common.truth.Truth.assertWithMessage;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.anyBoolean;
|
||||
import static org.mockito.ArgumentMatchers.anyInt;
|
||||
import static org.mockito.ArgumentMatchers.anyLong;
|
||||
import static org.mockito.ArgumentMatchers.anyString;
|
||||
@@ -729,7 +730,8 @@ public class BatteryInfoTest {
|
||||
ChargingType.WIRED, ChargingSpeed.REGULAR, /* batteryLevel= */ 65);
|
||||
var expectedRemainingLabel = "Expected remaining label";
|
||||
var expectedChargeLabel = "65% - " + expectedRemainingLabel;
|
||||
when(mFeatureFactory.batterySettingsFeatureProvider.isChargingOptimizationMode(mContext))
|
||||
when(mFeatureFactory.batterySettingsFeatureProvider.isChargingOptimizationMode(
|
||||
eq(mContext), anyBoolean()))
|
||||
.thenReturn(true);
|
||||
when(mFeatureFactory.batterySettingsFeatureProvider.getChargingOptimizationRemainingLabel(
|
||||
eq(mContext), anyInt(), anyInt(), anyLong(), anyLong()))
|
||||
@@ -755,7 +757,8 @@ public class BatteryInfoTest {
|
||||
Intent batteryIntent =
|
||||
createIntentForGetBatteryInfoTest(
|
||||
ChargingType.WIRED, ChargingSpeed.REGULAR, /* batteryLevel= */ 65);
|
||||
when(mFeatureFactory.batterySettingsFeatureProvider.isChargingOptimizationMode(mContext))
|
||||
when(mFeatureFactory.batterySettingsFeatureProvider.isChargingOptimizationMode(
|
||||
eq(mContext), anyBoolean()))
|
||||
.thenReturn(false);
|
||||
var expectedStatusLabel = "Charging";
|
||||
var expectedRemainingLabel = "2 hr, 10 min left until full";
|
||||
@@ -777,7 +780,8 @@ public class BatteryInfoTest {
|
||||
Intent batteryIntent =
|
||||
createIntentForGetBatteryInfoTest(
|
||||
ChargingType.WIRED, ChargingSpeed.REGULAR, /* batteryLevel= */ 65);
|
||||
when(mFeatureFactory.batterySettingsFeatureProvider.isChargingOptimizationMode(mContext))
|
||||
when(mFeatureFactory.batterySettingsFeatureProvider.isChargingOptimizationMode(
|
||||
eq(mContext), anyBoolean()))
|
||||
.thenReturn(false);
|
||||
var expectedStatusLabel = "Charging";
|
||||
var expectedRemainingLabel = "Fully charged by";
|
||||
@@ -827,7 +831,7 @@ public class BatteryInfoTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getBatteryInfo_plugTypeNoneWithLonglifeAndChargeOptimization_chargingString() {
|
||||
public void getBatteryInfo_plugTypeNoneIsChargeOptimization_chargingString() {
|
||||
prepareTestGetBatteryInfoEnvironment(
|
||||
/* remainingTimeMs= */ Duration.ofMinutes(130).toMillis(),
|
||||
/* chargingStringV2Enabled= */ false);
|
||||
@@ -840,7 +844,8 @@ public class BatteryInfoTest {
|
||||
/* isLonglife= */ true);
|
||||
var expectedRemainingLabel = "Expected remaining label";
|
||||
var expectedChargeLabel = "85% - " + expectedRemainingLabel;
|
||||
when(mFeatureFactory.batterySettingsFeatureProvider.isChargingOptimizationMode(mContext))
|
||||
when(mFeatureFactory.batterySettingsFeatureProvider.isChargingOptimizationMode(
|
||||
eq(mContext), anyBoolean()))
|
||||
.thenReturn(true);
|
||||
when(mFeatureFactory.batterySettingsFeatureProvider.getChargingOptimizationRemainingLabel(
|
||||
eq(mContext), anyInt(), anyInt(), anyLong(), anyLong()))
|
||||
@@ -859,34 +864,7 @@ public class BatteryInfoTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getBatteryInfo_plugTypeNoneNotChargeOptimizationLonglife_dischargingString() {
|
||||
prepareTestGetBatteryInfoEnvironment(
|
||||
/* remainingTimeMs= */ Duration.ofMinutes(130).toMillis(),
|
||||
/* chargingStringV2Enabled= */ false);
|
||||
Intent batteryIntent =
|
||||
createIntentForGetBatteryInfoTest(
|
||||
ChargingType.NONE,
|
||||
ChargingSpeed.REGULAR,
|
||||
/* batteryLevel= */ 85,
|
||||
BatteryManager.BATTERY_STATUS_DISCHARGING,
|
||||
/* isLonglife= */ true);
|
||||
var expectedRemainingLabel =
|
||||
PowerUtil.getBatteryRemainingShortStringFormatted(
|
||||
mContext, PowerUtil.convertUsToMs(1000L));
|
||||
when(mFeatureFactory.batterySettingsFeatureProvider.isChargingOptimizationMode(mContext))
|
||||
.thenReturn(false);
|
||||
var expectedStatusLabel = "Not charging";
|
||||
|
||||
assertGetBatteryInfo(
|
||||
batteryIntent,
|
||||
/* currentTimeMillis= */ UNUSED_TIME_MS,
|
||||
expectedStatusLabel,
|
||||
expectedRemainingLabel,
|
||||
expectedRemainingLabel);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getBatteryInfo_plugTypeNoneChargeOptimizationNotLonglife_dischargingString() {
|
||||
public void getBatteryInfo_plugTypeNoneNotChargeOptimization_dischargingString() {
|
||||
prepareTestGetBatteryInfoEnvironment(
|
||||
/* remainingTimeMs= */ Duration.ofMinutes(130).toMillis(),
|
||||
/* chargingStringV2Enabled= */ false);
|
||||
@@ -900,8 +878,9 @@ public class BatteryInfoTest {
|
||||
var expectedRemainingLabel =
|
||||
PowerUtil.getBatteryRemainingShortStringFormatted(
|
||||
mContext, PowerUtil.convertUsToMs(1000L));
|
||||
when(mFeatureFactory.batterySettingsFeatureProvider.isChargingOptimizationMode(mContext))
|
||||
.thenReturn(true);
|
||||
when(mFeatureFactory.batterySettingsFeatureProvider.isChargingOptimizationMode(
|
||||
eq(mContext), anyBoolean()))
|
||||
.thenReturn(false);
|
||||
var expectedStatusLabel = "Not charging";
|
||||
|
||||
assertGetBatteryInfo(
|
||||
|
@@ -89,7 +89,7 @@ public class BatterySettingsFeatureProviderImplTest {
|
||||
|
||||
@Test
|
||||
public void isChargingOptimizationMode_default_returnFalse() {
|
||||
assertThat(mImpl.isChargingOptimizationMode(mContext)).isFalse();
|
||||
assertThat(mImpl.isChargingOptimizationMode(mContext, true)).isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
|
Reference in New Issue
Block a user