Refactor compact battery status method (1/2)
- Move compact battery status logic into libs Bug: 219650786 Test: make SettingsRoboTests Change-Id: Icc53c8d88235bffedfb51a3526668277fcbf4f40
This commit is contained in:
@@ -112,7 +112,8 @@ public class BatteryBroadcastReceiver extends BroadcastReceiver {
|
|||||||
if (intent != null && mBatteryListener != null) {
|
if (intent != null && mBatteryListener != null) {
|
||||||
if (Intent.ACTION_BATTERY_CHANGED.equals(intent.getAction())) {
|
if (Intent.ACTION_BATTERY_CHANGED.equals(intent.getAction())) {
|
||||||
final String batteryLevel = Utils.getBatteryPercentage(intent);
|
final String batteryLevel = Utils.getBatteryPercentage(intent);
|
||||||
final String batteryStatus = Utils.getBatteryStatus(mContext, intent);
|
final String batteryStatus =
|
||||||
|
Utils.getBatteryStatus(mContext, intent, /* compactStatus= */ false);
|
||||||
final int batteryHealth = intent.getIntExtra(
|
final int batteryHealth = intent.getIntExtra(
|
||||||
BatteryManager.EXTRA_HEALTH, BatteryManager.BATTERY_HEALTH_UNKNOWN);
|
BatteryManager.EXTRA_HEALTH, BatteryManager.BATTERY_HEALTH_UNKNOWN);
|
||||||
if (!Utils.isBatteryPresent(intent)) {
|
if (!Utils.isBatteryPresent(intent)) {
|
||||||
|
@@ -37,7 +37,6 @@ import com.android.settings.Utils;
|
|||||||
import com.android.settings.overlay.FeatureFactory;
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
import com.android.settings.widget.UsageView;
|
import com.android.settings.widget.UsageView;
|
||||||
import com.android.settingslib.R;
|
import com.android.settingslib.R;
|
||||||
import com.android.settingslib.fuelgauge.BatteryStatus;
|
|
||||||
import com.android.settingslib.fuelgauge.Estimate;
|
import com.android.settingslib.fuelgauge.Estimate;
|
||||||
import com.android.settingslib.fuelgauge.EstimateKt;
|
import com.android.settingslib.fuelgauge.EstimateKt;
|
||||||
import com.android.settingslib.utils.PowerUtil;
|
import com.android.settingslib.utils.PowerUtil;
|
||||||
@@ -244,6 +243,8 @@ public class BatteryInfo {
|
|||||||
@NonNull BatteryUsageStats batteryUsageStats, Estimate estimate,
|
@NonNull BatteryUsageStats batteryUsageStats, Estimate estimate,
|
||||||
long elapsedRealtimeUs, boolean shortString) {
|
long elapsedRealtimeUs, boolean shortString) {
|
||||||
final long startTime = System.currentTimeMillis();
|
final long startTime = System.currentTimeMillis();
|
||||||
|
final boolean isCompactStatus = context.getResources().getBoolean(
|
||||||
|
com.android.settings.R.bool.config_use_compact_battery_status);
|
||||||
BatteryInfo info = new BatteryInfo();
|
BatteryInfo info = new BatteryInfo();
|
||||||
info.mBatteryUsageStats = batteryUsageStats;
|
info.mBatteryUsageStats = batteryUsageStats;
|
||||||
info.batteryLevel = Utils.getBatteryLevel(batteryBroadcast);
|
info.batteryLevel = Utils.getBatteryLevel(batteryBroadcast);
|
||||||
@@ -254,21 +255,21 @@ public class BatteryInfo {
|
|||||||
BatteryManager.EXTRA_HEALTH, BatteryManager.BATTERY_HEALTH_UNKNOWN)
|
BatteryManager.EXTRA_HEALTH, BatteryManager.BATTERY_HEALTH_UNKNOWN)
|
||||||
== BatteryManager.BATTERY_HEALTH_OVERHEAT;
|
== BatteryManager.BATTERY_HEALTH_OVERHEAT;
|
||||||
|
|
||||||
info.statusLabel = getBatteryStatus(context, batteryBroadcast);
|
info.statusLabel = Utils.getBatteryStatus(context, batteryBroadcast, isCompactStatus);
|
||||||
info.batteryStatus = batteryBroadcast.getIntExtra(
|
info.batteryStatus = batteryBroadcast.getIntExtra(
|
||||||
BatteryManager.EXTRA_STATUS, BatteryManager.BATTERY_STATUS_UNKNOWN);
|
BatteryManager.EXTRA_STATUS, BatteryManager.BATTERY_STATUS_UNKNOWN);
|
||||||
if (!info.mCharging) {
|
if (!info.mCharging) {
|
||||||
updateBatteryInfoDischarging(context, shortString, estimate, info);
|
updateBatteryInfoDischarging(context, shortString, estimate, info);
|
||||||
} else {
|
} else {
|
||||||
updateBatteryInfoCharging(context, batteryBroadcast, batteryUsageStats,
|
updateBatteryInfoCharging(context, batteryBroadcast, batteryUsageStats,
|
||||||
info);
|
info, isCompactStatus);
|
||||||
}
|
}
|
||||||
BatteryUtils.logRuntime(LOG_TAG, "time for getBatteryInfo", startTime);
|
BatteryUtils.logRuntime(LOG_TAG, "time for getBatteryInfo", startTime);
|
||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void updateBatteryInfoCharging(Context context, Intent batteryBroadcast,
|
private static void updateBatteryInfoCharging(Context context, Intent batteryBroadcast,
|
||||||
BatteryUsageStats stats, BatteryInfo info) {
|
BatteryUsageStats stats, BatteryInfo info, boolean compactStatus) {
|
||||||
final Resources resources = context.getResources();
|
final Resources resources = context.getResources();
|
||||||
final long chargeTimeMs = stats.getChargeTimeRemainingMs();
|
final long chargeTimeMs = stats.getChargeTimeRemainingMs();
|
||||||
final int status = batteryBroadcast.getIntExtra(BatteryManager.EXTRA_STATUS,
|
final int status = batteryBroadcast.getIntExtra(BatteryManager.EXTRA_STATUS,
|
||||||
@@ -292,7 +293,8 @@ public class BatteryInfo {
|
|||||||
R.string.power_remaining_charging_duration_only, timeString);
|
R.string.power_remaining_charging_duration_only, timeString);
|
||||||
info.chargeLabel = context.getString(resId, info.batteryPercentString, timeString);
|
info.chargeLabel = context.getString(resId, info.batteryPercentString, timeString);
|
||||||
} else {
|
} else {
|
||||||
final String chargeStatusLabel = getBatteryStatus(context, batteryBroadcast);
|
final String chargeStatusLabel =
|
||||||
|
Utils.getBatteryStatus(context, batteryBroadcast, compactStatus);
|
||||||
info.remainingLabel = null;
|
info.remainingLabel = null;
|
||||||
info.chargeLabel = info.batteryLevel == 100 ? info.batteryPercentString :
|
info.chargeLabel = info.batteryLevel == 100 ? info.batteryPercentString :
|
||||||
resources.getString(R.string.power_charging, info.batteryPercentString,
|
resources.getString(R.string.power_charging, info.batteryPercentString,
|
||||||
@@ -326,35 +328,6 @@ public class BatteryInfo {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String getBatteryStatus(Context context, Intent batteryChangedIntent) {
|
|
||||||
final Resources res = context.getResources();
|
|
||||||
final boolean isShortStatus =
|
|
||||||
res.getBoolean(com.android.settings.R.bool.config_use_compact_battery_status);
|
|
||||||
|
|
||||||
if (!isShortStatus) {
|
|
||||||
return Utils.getBatteryStatus(context, batteryChangedIntent);
|
|
||||||
}
|
|
||||||
|
|
||||||
final int status = batteryChangedIntent.getIntExtra(BatteryManager.EXTRA_STATUS,
|
|
||||||
BatteryManager.BATTERY_STATUS_UNKNOWN);
|
|
||||||
final BatteryStatus batteryStatus = new BatteryStatus(batteryChangedIntent);
|
|
||||||
String statusString = res.getString(R.string.battery_info_status_unknown);
|
|
||||||
|
|
||||||
if (batteryStatus.isCharged()) {
|
|
||||||
statusString = res.getString(R.string.battery_info_status_full);
|
|
||||||
} else {
|
|
||||||
if (status == BatteryManager.BATTERY_STATUS_CHARGING) {
|
|
||||||
statusString = res.getString(R.string.battery_info_status_charging);
|
|
||||||
} else if (status == BatteryManager.BATTERY_STATUS_DISCHARGING) {
|
|
||||||
statusString = res.getString(R.string.battery_info_status_discharging);
|
|
||||||
} else if (status == BatteryManager.BATTERY_STATUS_NOT_CHARGING) {
|
|
||||||
statusString = res.getString(R.string.battery_info_status_not_charging);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return statusString;
|
|
||||||
}
|
|
||||||
|
|
||||||
public interface BatteryDataParser {
|
public interface BatteryDataParser {
|
||||||
void onParsingStarted(long startTime, long endTime);
|
void onParsingStarted(long startTime, long endTime);
|
||||||
|
|
||||||
|
@@ -85,8 +85,8 @@ public class BatteryBroadcastReceiverTest {
|
|||||||
|
|
||||||
assertThat(mBatteryBroadcastReceiver.mBatteryLevel)
|
assertThat(mBatteryBroadcastReceiver.mBatteryLevel)
|
||||||
.isEqualTo(Utils.getBatteryPercentage(mChargingIntent));
|
.isEqualTo(Utils.getBatteryPercentage(mChargingIntent));
|
||||||
assertThat(mBatteryBroadcastReceiver.mBatteryStatus)
|
assertThat(mBatteryBroadcastReceiver.mBatteryStatus).isEqualTo(
|
||||||
.isEqualTo(Utils.getBatteryStatus(mContext, mChargingIntent));
|
Utils.getBatteryStatus(mContext, mChargingIntent, /* compactStatus= */ false));
|
||||||
verify(mBatteryListener).onBatteryChanged(BatteryUpdateType.BATTERY_LEVEL);
|
verify(mBatteryListener).onBatteryChanged(BatteryUpdateType.BATTERY_LEVEL);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -134,7 +134,7 @@ public class BatteryBroadcastReceiverTest {
|
|||||||
public void testOnReceive_batteryDataNotChanged_listenerNotInvoked() {
|
public void testOnReceive_batteryDataNotChanged_listenerNotInvoked() {
|
||||||
final String batteryLevel = Utils.getBatteryPercentage(mChargingIntent);
|
final String batteryLevel = Utils.getBatteryPercentage(mChargingIntent);
|
||||||
final String batteryStatus =
|
final String batteryStatus =
|
||||||
Utils.getBatteryStatus(mContext, mChargingIntent);
|
Utils.getBatteryStatus(mContext, mChargingIntent, /* compactStatus= */ false);
|
||||||
mBatteryBroadcastReceiver.mBatteryLevel = batteryLevel;
|
mBatteryBroadcastReceiver.mBatteryLevel = batteryLevel;
|
||||||
mBatteryBroadcastReceiver.mBatteryStatus = batteryStatus;
|
mBatteryBroadcastReceiver.mBatteryStatus = batteryStatus;
|
||||||
|
|
||||||
@@ -159,8 +159,8 @@ public class BatteryBroadcastReceiverTest {
|
|||||||
|
|
||||||
assertThat(mBatteryBroadcastReceiver.mBatteryLevel)
|
assertThat(mBatteryBroadcastReceiver.mBatteryLevel)
|
||||||
.isEqualTo(Utils.getBatteryPercentage(mChargingIntent));
|
.isEqualTo(Utils.getBatteryPercentage(mChargingIntent));
|
||||||
assertThat(mBatteryBroadcastReceiver.mBatteryStatus)
|
assertThat(mBatteryBroadcastReceiver.mBatteryStatus).isEqualTo(
|
||||||
.isEqualTo(Utils.getBatteryStatus(mContext, mChargingIntent));
|
Utils.getBatteryStatus(mContext, mChargingIntent, /* compactStatus= */ false));
|
||||||
assertThat(mBatteryBroadcastReceiver.mBatteryHealth)
|
assertThat(mBatteryBroadcastReceiver.mBatteryHealth)
|
||||||
.isEqualTo(BatteryManager.BATTERY_HEALTH_UNKNOWN);
|
.isEqualTo(BatteryManager.BATTERY_HEALTH_UNKNOWN);
|
||||||
// 2 times because register will force update the battery
|
// 2 times because register will force update the battery
|
||||||
|
Reference in New Issue
Block a user