Merge "Update BatteryUtils to update system battery estimate cache" into qt-dev

This commit is contained in:
Salvador Martinez
2019-04-25 17:23:28 +00:00
committed by Android (Google) Code Review
3 changed files with 31 additions and 2 deletions

View File

@@ -193,6 +193,7 @@ public class BatteryInfo {
&& provider.isEnhancedBatteryPredictionEnabled(context)) { && provider.isEnhancedBatteryPredictionEnabled(context)) {
Estimate estimate = provider.getEnhancedBatteryPrediction(context); Estimate estimate = provider.getEnhancedBatteryPrediction(context);
if (estimate != null) { if (estimate != null) {
Estimate.storeCachedEstimate(context, estimate);
BatteryUtils BatteryUtils
.logRuntime(LOG_TAG, "time for enhanced BatteryInfo", startTime); .logRuntime(LOG_TAG, "time for enhanced BatteryInfo", startTime);
return BatteryInfo.getBatteryInfo(context, batteryBroadcast, stats, return BatteryInfo.getBatteryInfo(context, batteryBroadcast, stats,

View File

@@ -450,7 +450,6 @@ public class BatteryUtils {
SystemClock.elapsedRealtime()); SystemClock.elapsedRealtime());
final BatteryStats stats = statsHelper.getStats(); final BatteryStats stats = statsHelper.getStats();
BatteryInfo batteryInfo; BatteryInfo batteryInfo;
Estimate estimate = null; Estimate estimate = null;
// Get enhanced prediction if available // Get enhanced prediction if available
if (mPowerUsageFeatureProvider != null && if (mPowerUsageFeatureProvider != null &&
@@ -458,7 +457,9 @@ public class BatteryUtils {
estimate = mPowerUsageFeatureProvider.getEnhancedBatteryPrediction(mContext); estimate = mPowerUsageFeatureProvider.getEnhancedBatteryPrediction(mContext);
} }
if (estimate == null) { if (estimate != null) {
Estimate.storeCachedEstimate(mContext, estimate);
} else {
estimate = new Estimate( estimate = new Estimate(
PowerUtil.convertUsToMs(stats.computeBatteryTimeRemaining(elapsedRealtimeUs)), PowerUtil.convertUsToMs(stats.computeBatteryTimeRemaining(elapsedRealtimeUs)),
false /* isBasedOnUsage */, false /* isBasedOnUsage */,

View File

@@ -20,9 +20,14 @@ import static com.android.settings.fuelgauge.BatteryBroadcastReceiver.BatteryUpd
import android.app.settings.SettingsEnums; import android.app.settings.SettingsEnums;
import android.content.Context; import android.content.Context;
import android.database.ContentObserver;
import android.net.Uri;
import android.os.BatteryStats; import android.os.BatteryStats;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler;
import android.provider.SearchIndexableResource; import android.provider.SearchIndexableResource;
import android.provider.Settings;
import android.provider.Settings.Global;
import android.text.format.Formatter; import android.text.format.Formatter;
import android.view.Menu; import android.view.Menu;
import android.view.MenuInflater; import android.view.MenuInflater;
@@ -102,6 +107,13 @@ public class PowerUsageSummary extends PowerUsageBase implements OnLongClickList
BatteryTipPreferenceController mBatteryTipPreferenceController; BatteryTipPreferenceController mBatteryTipPreferenceController;
private int mStatsType = BatteryStats.STATS_SINCE_CHARGED; private int mStatsType = BatteryStats.STATS_SINCE_CHARGED;
private final ContentObserver mSettingsObserver = new ContentObserver(new Handler()) {
@Override
public void onChange(boolean selfChange, Uri uri) {
restartBatteryInfoLoader();
}
};
@VisibleForTesting @VisibleForTesting
LoaderManager.LoaderCallbacks<BatteryInfo> mBatteryInfoLoaderCallbacks = LoaderManager.LoaderCallbacks<BatteryInfo> mBatteryInfoLoaderCallbacks =
new LoaderManager.LoaderCallbacks<BatteryInfo>() { new LoaderManager.LoaderCallbacks<BatteryInfo>() {
@@ -189,6 +201,21 @@ public class PowerUsageSummary extends PowerUsageBase implements OnLongClickList
} }
}; };
@Override
public void onStop() {
getContentResolver().unregisterContentObserver(mSettingsObserver);
super.onStop();
}
@Override
public void onResume() {
super.onResume();
getContentResolver().registerContentObserver(
Global.getUriFor(Global.BATTERY_ESTIMATES_LAST_UPDATE_TIME),
false,
mSettingsObserver);
}
@Override @Override
public void onAttach(Context context) { public void onAttach(Context context) {
super.onAttach(context); super.onAttach(context);