update "Last full charge" preference
When there is average time estimation, change it to "Full charge lasts about" and also update the time. Also update the BatteryInfo to return average time estimation even though it is charging. Bug: 73018395 Test: RunSettingsRoboTests Change-Id: Ib22dadb5716e3034c60aeeb7768fdbf0cc86be0c
This commit is contained in:
@@ -422,32 +422,24 @@ public class BatteryUtils {
|
||||
new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
|
||||
final long elapsedRealtimeUs = PowerUtil.convertMsToUs(
|
||||
SystemClock.elapsedRealtime());
|
||||
final BatteryStats stats = statsHelper.getStats();
|
||||
BatteryInfo batteryInfo;
|
||||
|
||||
// 0 means we are discharging, anything else means charging
|
||||
final boolean discharging = batteryBroadcast.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1)
|
||||
== 0;
|
||||
// Get enhanced prediction if available and discharging, otherwise use the old code
|
||||
Estimate estimate = null;
|
||||
if (discharging && mPowerUsageFeatureProvider != null &&
|
||||
final Estimate estimate;
|
||||
// Get enhanced prediction if available
|
||||
if (mPowerUsageFeatureProvider != null &&
|
||||
mPowerUsageFeatureProvider.isEnhancedBatteryPredictionEnabled(mContext)) {
|
||||
estimate = mPowerUsageFeatureProvider.getEnhancedBatteryPrediction(mContext);
|
||||
}
|
||||
final BatteryStats stats = statsHelper.getStats();
|
||||
BatteryUtils.logRuntime(tag, "BatteryInfoLoader post query", startTime);
|
||||
|
||||
if (estimate != null) {
|
||||
batteryInfo = BatteryInfo.getBatteryInfo(mContext, batteryBroadcast, stats,
|
||||
estimate, elapsedRealtimeUs, false /* shortString */);
|
||||
} else {
|
||||
estimate = new Estimate(
|
||||
PowerUtil.convertUsToMs(stats.computeBatteryTimeRemaining(elapsedRealtimeUs)),
|
||||
false,
|
||||
Estimate.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN
|
||||
);
|
||||
batteryInfo = BatteryInfo.getBatteryInfo(mContext, batteryBroadcast, stats,
|
||||
estimate, elapsedRealtimeUs, false /* shortString */);
|
||||
false /* isBasedOnUsage */,
|
||||
Estimate.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN);
|
||||
}
|
||||
|
||||
BatteryUtils.logRuntime(tag, "BatteryInfoLoader post query", startTime);
|
||||
batteryInfo = BatteryInfo.getBatteryInfo(mContext, batteryBroadcast, stats,
|
||||
estimate, elapsedRealtimeUs, false /* shortString */);
|
||||
BatteryUtils.logRuntime(tag, "BatteryInfoLoader.loadInBackground", startTime);
|
||||
|
||||
return batteryInfo;
|
||||
|
@@ -95,6 +95,8 @@ public class PowerUsageSummary extends PowerUsageBase implements OnLongClickList
|
||||
BatteryUtils mBatteryUtils;
|
||||
@VisibleForTesting
|
||||
LayoutPreference mBatteryLayoutPref;
|
||||
@VisibleForTesting
|
||||
BatteryInfo mBatteryInfo;
|
||||
|
||||
/**
|
||||
* SparseArray that maps uid to {@link Anomaly}, so we could find {@link Anomaly} by uid
|
||||
@@ -118,6 +120,8 @@ public class PowerUsageSummary extends PowerUsageBase implements OnLongClickList
|
||||
@Override
|
||||
public void onLoadFinished(Loader<BatteryInfo> loader, BatteryInfo batteryInfo) {
|
||||
mBatteryHeaderPreferenceController.updateHeaderPreference(batteryInfo);
|
||||
mBatteryInfo = batteryInfo;
|
||||
updateLastFullChargePreference();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -291,9 +295,7 @@ public class PowerUsageSummary extends PowerUsageBase implements OnLongClickList
|
||||
|
||||
// reload BatteryInfo and updateUI
|
||||
restartBatteryInfoLoader();
|
||||
final long lastFullChargeTime = mBatteryUtils.calculateLastFullChargeTime(mStatsHelper,
|
||||
System.currentTimeMillis());
|
||||
updateLastFullChargePreference(lastFullChargeTime);
|
||||
updateLastFullChargePreference();
|
||||
mScreenUsagePref.setSubtitle(StringUtil.formatElapsedTime(getContext(),
|
||||
mBatteryUtils.calculateScreenUsageTime(mStatsHelper), false));
|
||||
}
|
||||
@@ -314,10 +316,21 @@ public class PowerUsageSummary extends PowerUsageBase implements OnLongClickList
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
void updateLastFullChargePreference(long timeMs) {
|
||||
final CharSequence timeSequence = StringUtil.formatRelativeTime(getContext(), timeMs,
|
||||
false);
|
||||
mLastFullChargePref.setSubtitle(timeSequence);
|
||||
void updateLastFullChargePreference() {
|
||||
if (mBatteryInfo != null && mBatteryInfo.averageTimeToDischarge
|
||||
!= Estimate.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN) {
|
||||
mLastFullChargePref.setTitle(R.string.battery_full_charge_last);
|
||||
mLastFullChargePref.setSubtitle(
|
||||
StringUtil.formatElapsedTime(getContext(), mBatteryInfo.averageTimeToDischarge,
|
||||
false /* withSeconds */));
|
||||
} else {
|
||||
final long lastFullChargeTime = mBatteryUtils.calculateLastFullChargeTime(mStatsHelper,
|
||||
System.currentTimeMillis());
|
||||
mLastFullChargePref.setTitle(R.string.battery_last_full_charge);
|
||||
mLastFullChargePref.setSubtitle(
|
||||
StringUtil.formatRelativeTime(getContext(), lastFullChargeTime,
|
||||
false /* withSeconds */));
|
||||
}
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
|
Reference in New Issue
Block a user