Loading src/com/android/settings/applications/appinfo/AppBatteryPreferenceController.java +1 −1 Original line number Diff line number Diff line Loading @@ -230,7 +230,7 @@ public class AppBatteryPreferenceController extends BasePreferenceController @Override @NonNull public Loader<BatteryUsageStats> onCreateLoader(int id, Bundle args) { return new BatteryUsageStatsLoader(mContext); return new BatteryUsageStatsLoader(mContext, /* includeBatteryHistory */ false); } @Override Loading src/com/android/settings/fuelgauge/BatteryHistoryPreference.java +4 −3 Original line number Diff line number Diff line Loading @@ -17,15 +17,16 @@ package com.android.settings.fuelgauge; import android.content.Context; import android.os.BatteryUsageStats; import android.util.AttributeSet; import android.view.View; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.VisibleForTesting; import androidx.preference.Preference; import androidx.preference.PreferenceViewHolder; import com.android.internal.os.BatteryStatsHelper; import com.android.settings.R; import com.android.settings.widget.UsageView; Loading @@ -50,11 +51,11 @@ public class BatteryHistoryPreference extends Preference { setSelectable(false); } public void setStats(BatteryStatsHelper batteryStats) { void setBatteryUsageStats(@NonNull BatteryUsageStats batteryUsageStats) { BatteryInfo.getBatteryInfo(getContext(), info -> { mBatteryInfo = info; notifyChanged(); }, batteryStats, false); }, batteryUsageStats, false); } public void setBottomSummary(CharSequence text) { Loading src/com/android/settings/fuelgauge/BatteryInfo.java +80 −75 Original line number Diff line number Diff line Loading @@ -20,16 +20,18 @@ import android.content.IntentFilter; import android.content.res.Resources; import android.os.AsyncTask; import android.os.BatteryManager; import android.os.BatteryStats; import android.os.BatteryStats.HistoryItem; import android.os.Bundle; import android.os.BatteryStatsManager; import android.os.BatteryUsageStats; import android.os.SystemClock; import android.text.format.Formatter; import android.util.SparseIntArray; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.WorkerThread; import com.android.internal.os.BatteryStatsHelper; import com.android.internal.os.BatteryStatsHistoryIterator; import com.android.settings.Utils; import com.android.settings.overlay.FeatureFactory; import com.android.settings.widget.UsageView; Loading @@ -52,7 +54,7 @@ public class BatteryInfo { public String statusLabel; public String suggestionLabel; private boolean mCharging; private BatteryStats mStats; private BatteryUsageStats mBatteryUsageStats; private static final String LOG_TAG = "BatteryInfo"; private long timePeriod; Loading Loading @@ -126,7 +128,7 @@ public class BatteryInfo { parserList[i] = parsers[i]; } parserList[parsers.length] = parser; parse(mStats, parserList); parseBatteryHistory(parserList); String timeString = context.getString(R.string.charge_length_format, Formatter.formatShortElapsedTime(context, timePeriod)); String remaining = ""; Loading @@ -137,22 +139,25 @@ public class BatteryInfo { view.setBottomLabels(new CharSequence[]{timeString, remaining}); } public static void getBatteryInfo(final Context context, final Callback callback) { BatteryInfo.getBatteryInfo(context, callback, null /* statsHelper */, false /* shortString */); } public static void getBatteryInfo(final Context context, final Callback callback, boolean shortString) { BatteryInfo.getBatteryInfo(context, callback, null /* statsHelper */, shortString); BatteryInfo.getBatteryInfo(context, callback, /* batteryUsageStats */ null, shortString); } public static void getBatteryInfo(final Context context, final Callback callback, final BatteryStatsHelper statsHelper, boolean shortString) { @Nullable final BatteryUsageStats batteryUsageStats, boolean shortString) { new AsyncTask<Void, Void, BatteryInfo>() { @Override protected BatteryInfo doInBackground(Void... params) { return getBatteryInfo(context, statsHelper, shortString); BatteryUsageStats stats; if (batteryUsageStats != null) { stats = batteryUsageStats; } else { stats = context.getSystemService(BatteryStatsManager.class) .getBatteryUsageStats(); } return getBatteryInfo(context, stats, shortString); } @Override Loading @@ -164,18 +169,13 @@ public class BatteryInfo { }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); } /** * Creates a BatteryInfo based on BatteryUsageStats */ @WorkerThread public static BatteryInfo getBatteryInfo(final Context context, final BatteryStatsHelper statsHelper, boolean shortString) { final BatteryStats stats; @NonNull final BatteryUsageStats batteryUsageStats, boolean shortString) { final long batteryStatsTime = System.currentTimeMillis(); if (statsHelper == null) { final BatteryStatsHelper localStatsHelper = new BatteryStatsHelper(context, true); localStatsHelper.create((Bundle) null); stats = localStatsHelper.getStats(); } else { stats = statsHelper.getStats(); } BatteryUtils.logRuntime(LOG_TAG, "time for getStats", batteryStatsTime); final long startTime = System.currentTimeMillis(); Loading @@ -197,38 +197,38 @@ public class BatteryInfo { Estimate.storeCachedEstimate(context, estimate); BatteryUtils .logRuntime(LOG_TAG, "time for enhanced BatteryInfo", startTime); return BatteryInfo.getBatteryInfo(context, batteryBroadcast, stats, return BatteryInfo.getBatteryInfo(context, batteryBroadcast, batteryUsageStats, estimate, elapsedRealtimeUs, shortString); } } final long prediction = discharging ? stats.computeBatteryTimeRemaining(elapsedRealtimeUs) : 0; final long prediction = discharging ? batteryUsageStats.getBatteryTimeRemainingMs() : 0; final Estimate estimate = new Estimate( PowerUtil.convertUsToMs(prediction), false, /* isBasedOnUsage */ EstimateKt.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN); BatteryUtils.logRuntime(LOG_TAG, "time for regular BatteryInfo", startTime); return BatteryInfo.getBatteryInfo(context, batteryBroadcast, stats, return BatteryInfo.getBatteryInfo(context, batteryBroadcast, batteryUsageStats, estimate, elapsedRealtimeUs, shortString); } @WorkerThread public static BatteryInfo getBatteryInfoOld(Context context, Intent batteryBroadcast, BatteryStats stats, long elapsedRealtimeUs, boolean shortString) { BatteryUsageStats batteryUsageStats, long elapsedRealtimeUs, boolean shortString) { Estimate estimate = new Estimate( PowerUtil.convertUsToMs(stats.computeBatteryTimeRemaining(elapsedRealtimeUs)), batteryUsageStats.getBatteryTimeRemainingMs(), false, EstimateKt.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN); return getBatteryInfo(context, batteryBroadcast, stats, estimate, elapsedRealtimeUs, shortString); return getBatteryInfo(context, batteryBroadcast, batteryUsageStats, estimate, elapsedRealtimeUs, shortString); } @WorkerThread public static BatteryInfo getBatteryInfo(Context context, Intent batteryBroadcast, BatteryStats stats, Estimate estimate, long elapsedRealtimeUs, boolean shortString) { @NonNull BatteryUsageStats batteryUsageStats, Estimate estimate, long elapsedRealtimeUs, boolean shortString) { final long startTime = System.currentTimeMillis(); BatteryInfo info = new BatteryInfo(); info.mStats = stats; info.mBatteryUsageStats = batteryUsageStats; info.batteryLevel = Utils.getBatteryLevel(batteryBroadcast); info.batteryPercentString = Utils.formatPercentage(info.batteryLevel); info.mCharging = batteryBroadcast.getIntExtra(BatteryManager.EXTRA_PLUGGED, 0) != 0; Loading @@ -241,16 +241,17 @@ public class BatteryInfo { if (!info.mCharging) { updateBatteryInfoDischarging(context, shortString, estimate, info); } else { updateBatteryInfoCharging(context, batteryBroadcast, stats, elapsedRealtimeUs, info); updateBatteryInfoCharging(context, batteryBroadcast, batteryUsageStats, info); } BatteryUtils.logRuntime(LOG_TAG, "time for getBatteryInfo", startTime); return info; } private static void updateBatteryInfoCharging(Context context, Intent batteryBroadcast, BatteryStats stats, long elapsedRealtimeUs, BatteryInfo info) { BatteryUsageStats stats, BatteryInfo info) { final Resources resources = context.getResources(); final long chargeTime = stats.computeChargeTimeRemaining(elapsedRealtimeUs); final long chargeTimeMs = stats.getChargeTimeRemainingMs(); final int status = batteryBroadcast.getIntExtra(BatteryManager.EXTRA_STATUS, BatteryManager.BATTERY_STATUS_UNKNOWN); info.discharging = false; Loading @@ -260,8 +261,8 @@ public class BatteryInfo { int chargingLimitedResId = R.string.power_charging_limited; info.chargeLabel = context.getString(chargingLimitedResId, info.batteryPercentString); } else if (chargeTime > 0 && status != BatteryManager.BATTERY_STATUS_FULL) { info.remainingTimeUs = chargeTime; } else if (chargeTimeMs > 0 && status != BatteryManager.BATTERY_STATUS_FULL) { info.remainingTimeUs = PowerUtil.convertMsToUs(chargeTimeMs); CharSequence timeString = StringUtil.formatElapsedTime(context, PowerUtil.convertUsToMs(info.remainingTimeUs), false /* withSeconds */); int resId = R.string.power_charging_duration; Loading Loading @@ -313,7 +314,11 @@ public class BatteryInfo { void onParsingDone(); } public static void parse(BatteryStats stats, BatteryDataParser... parsers) { /** * Iterates over battery history included in the BatteryUsageStats that this object * was initialized with. */ public void parseBatteryHistory(BatteryDataParser... parsers) { long startWalltime = 0; long endWalltime = 0; long historyStart = 0; Loading @@ -324,9 +329,10 @@ public class BatteryInfo { int lastInteresting = 0; int pos = 0; boolean first = true; if (stats.startIteratingHistoryLocked()) { final BatteryStatsHistoryIterator iterator1 = mBatteryUsageStats.iterateBatteryStatsHistory(); final HistoryItem rec = new HistoryItem(); while (stats.getNextHistoryLocked(rec)) { while (iterator1.next(rec)) { pos++; if (first) { first = false; Loading Loading @@ -357,8 +363,7 @@ public class BatteryInfo { historyEnd = rec.time; } } } stats.finishIteratingHistoryLocked(); endWalltime = lastWallTime + historyEnd - lastRealtime; int i = 0; Loading @@ -367,9 +372,11 @@ public class BatteryInfo { for (int j = 0; j < parsers.length; j++) { parsers[j].onParsingStarted(startWalltime, endWalltime); } if (endWalltime > startWalltime && stats.startIteratingHistoryLocked()) { final HistoryItem rec = new HistoryItem(); while (stats.getNextHistoryLocked(rec) && i < N) { if (endWalltime > startWalltime) { final BatteryStatsHistoryIterator iterator2 = mBatteryUsageStats.iterateBatteryStatsHistory(); while (iterator2.next(rec) && i < N) { if (rec.isDeltaData()) { curWalltime += rec.time - lastRealtime; lastRealtime = rec.time; Loading Loading @@ -404,8 +411,6 @@ public class BatteryInfo { } } stats.finishIteratingHistoryLocked(); for (int j = 0; j < parsers.length; j++) { parsers[j].onParsingDone(); } Loading src/com/android/settings/fuelgauge/BatteryInfoLoader.java +4 −8 Original line number Diff line number Diff line Loading @@ -19,7 +19,6 @@ import android.content.Context; import androidx.annotation.VisibleForTesting; import com.android.internal.os.BatteryStatsHelper; import com.android.settingslib.utils.AsyncLoaderCompat; /** Loading @@ -28,17 +27,14 @@ import com.android.settingslib.utils.AsyncLoaderCompat; * when not available. */ public class BatteryInfoLoader extends AsyncLoaderCompat<BatteryInfo>{ BatteryStatsHelper mStatsHelper; private static final String LOG_TAG = "BatteryInfoLoader"; @VisibleForTesting BatteryUtils batteryUtils; BatteryUtils mBatteryUtils; public BatteryInfoLoader(Context context, BatteryStatsHelper batteryStatsHelper) { public BatteryInfoLoader(Context context) { super(context); mStatsHelper = batteryStatsHelper; batteryUtils = BatteryUtils.getInstance(context); mBatteryUtils = BatteryUtils.getInstance(context); } @Override Loading @@ -48,6 +44,6 @@ public class BatteryInfoLoader extends AsyncLoaderCompat<BatteryInfo>{ @Override public BatteryInfo loadInBackground() { return batteryUtils.getBatteryInfo(mStatsHelper, LOG_TAG); return mBatteryUtils.getBatteryInfo(LOG_TAG); } } src/com/android/settings/fuelgauge/BatteryUsageStatsLoader.java +9 −2 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.settings.fuelgauge; import android.content.Context; import android.os.BatteryStatsManager; import android.os.BatteryUsageStats; import android.os.BatteryUsageStatsQuery; import com.android.settingslib.utils.AsyncLoaderCompat; Loading @@ -27,15 +28,21 @@ import com.android.settingslib.utils.AsyncLoaderCompat; */ public class BatteryUsageStatsLoader extends AsyncLoaderCompat<BatteryUsageStats> { private final BatteryStatsManager mBatteryStatsManager; private final boolean mIncludeBatteryHistory; public BatteryUsageStatsLoader(Context context) { public BatteryUsageStatsLoader(Context context, boolean includeBatteryHistory) { super(context); mBatteryStatsManager = context.getSystemService(BatteryStatsManager.class); mIncludeBatteryHistory = includeBatteryHistory; } @Override public BatteryUsageStats loadInBackground() { return mBatteryStatsManager.getBatteryUsageStats(); final BatteryUsageStatsQuery.Builder builder = new BatteryUsageStatsQuery.Builder(); if (mIncludeBatteryHistory) { builder.includeBatteryHistory(); } return mBatteryStatsManager.getBatteryUsageStats(builder.build()); } @Override Loading Loading
src/com/android/settings/applications/appinfo/AppBatteryPreferenceController.java +1 −1 Original line number Diff line number Diff line Loading @@ -230,7 +230,7 @@ public class AppBatteryPreferenceController extends BasePreferenceController @Override @NonNull public Loader<BatteryUsageStats> onCreateLoader(int id, Bundle args) { return new BatteryUsageStatsLoader(mContext); return new BatteryUsageStatsLoader(mContext, /* includeBatteryHistory */ false); } @Override Loading
src/com/android/settings/fuelgauge/BatteryHistoryPreference.java +4 −3 Original line number Diff line number Diff line Loading @@ -17,15 +17,16 @@ package com.android.settings.fuelgauge; import android.content.Context; import android.os.BatteryUsageStats; import android.util.AttributeSet; import android.view.View; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.VisibleForTesting; import androidx.preference.Preference; import androidx.preference.PreferenceViewHolder; import com.android.internal.os.BatteryStatsHelper; import com.android.settings.R; import com.android.settings.widget.UsageView; Loading @@ -50,11 +51,11 @@ public class BatteryHistoryPreference extends Preference { setSelectable(false); } public void setStats(BatteryStatsHelper batteryStats) { void setBatteryUsageStats(@NonNull BatteryUsageStats batteryUsageStats) { BatteryInfo.getBatteryInfo(getContext(), info -> { mBatteryInfo = info; notifyChanged(); }, batteryStats, false); }, batteryUsageStats, false); } public void setBottomSummary(CharSequence text) { Loading
src/com/android/settings/fuelgauge/BatteryInfo.java +80 −75 Original line number Diff line number Diff line Loading @@ -20,16 +20,18 @@ import android.content.IntentFilter; import android.content.res.Resources; import android.os.AsyncTask; import android.os.BatteryManager; import android.os.BatteryStats; import android.os.BatteryStats.HistoryItem; import android.os.Bundle; import android.os.BatteryStatsManager; import android.os.BatteryUsageStats; import android.os.SystemClock; import android.text.format.Formatter; import android.util.SparseIntArray; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.WorkerThread; import com.android.internal.os.BatteryStatsHelper; import com.android.internal.os.BatteryStatsHistoryIterator; import com.android.settings.Utils; import com.android.settings.overlay.FeatureFactory; import com.android.settings.widget.UsageView; Loading @@ -52,7 +54,7 @@ public class BatteryInfo { public String statusLabel; public String suggestionLabel; private boolean mCharging; private BatteryStats mStats; private BatteryUsageStats mBatteryUsageStats; private static final String LOG_TAG = "BatteryInfo"; private long timePeriod; Loading Loading @@ -126,7 +128,7 @@ public class BatteryInfo { parserList[i] = parsers[i]; } parserList[parsers.length] = parser; parse(mStats, parserList); parseBatteryHistory(parserList); String timeString = context.getString(R.string.charge_length_format, Formatter.formatShortElapsedTime(context, timePeriod)); String remaining = ""; Loading @@ -137,22 +139,25 @@ public class BatteryInfo { view.setBottomLabels(new CharSequence[]{timeString, remaining}); } public static void getBatteryInfo(final Context context, final Callback callback) { BatteryInfo.getBatteryInfo(context, callback, null /* statsHelper */, false /* shortString */); } public static void getBatteryInfo(final Context context, final Callback callback, boolean shortString) { BatteryInfo.getBatteryInfo(context, callback, null /* statsHelper */, shortString); BatteryInfo.getBatteryInfo(context, callback, /* batteryUsageStats */ null, shortString); } public static void getBatteryInfo(final Context context, final Callback callback, final BatteryStatsHelper statsHelper, boolean shortString) { @Nullable final BatteryUsageStats batteryUsageStats, boolean shortString) { new AsyncTask<Void, Void, BatteryInfo>() { @Override protected BatteryInfo doInBackground(Void... params) { return getBatteryInfo(context, statsHelper, shortString); BatteryUsageStats stats; if (batteryUsageStats != null) { stats = batteryUsageStats; } else { stats = context.getSystemService(BatteryStatsManager.class) .getBatteryUsageStats(); } return getBatteryInfo(context, stats, shortString); } @Override Loading @@ -164,18 +169,13 @@ public class BatteryInfo { }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); } /** * Creates a BatteryInfo based on BatteryUsageStats */ @WorkerThread public static BatteryInfo getBatteryInfo(final Context context, final BatteryStatsHelper statsHelper, boolean shortString) { final BatteryStats stats; @NonNull final BatteryUsageStats batteryUsageStats, boolean shortString) { final long batteryStatsTime = System.currentTimeMillis(); if (statsHelper == null) { final BatteryStatsHelper localStatsHelper = new BatteryStatsHelper(context, true); localStatsHelper.create((Bundle) null); stats = localStatsHelper.getStats(); } else { stats = statsHelper.getStats(); } BatteryUtils.logRuntime(LOG_TAG, "time for getStats", batteryStatsTime); final long startTime = System.currentTimeMillis(); Loading @@ -197,38 +197,38 @@ public class BatteryInfo { Estimate.storeCachedEstimate(context, estimate); BatteryUtils .logRuntime(LOG_TAG, "time for enhanced BatteryInfo", startTime); return BatteryInfo.getBatteryInfo(context, batteryBroadcast, stats, return BatteryInfo.getBatteryInfo(context, batteryBroadcast, batteryUsageStats, estimate, elapsedRealtimeUs, shortString); } } final long prediction = discharging ? stats.computeBatteryTimeRemaining(elapsedRealtimeUs) : 0; final long prediction = discharging ? batteryUsageStats.getBatteryTimeRemainingMs() : 0; final Estimate estimate = new Estimate( PowerUtil.convertUsToMs(prediction), false, /* isBasedOnUsage */ EstimateKt.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN); BatteryUtils.logRuntime(LOG_TAG, "time for regular BatteryInfo", startTime); return BatteryInfo.getBatteryInfo(context, batteryBroadcast, stats, return BatteryInfo.getBatteryInfo(context, batteryBroadcast, batteryUsageStats, estimate, elapsedRealtimeUs, shortString); } @WorkerThread public static BatteryInfo getBatteryInfoOld(Context context, Intent batteryBroadcast, BatteryStats stats, long elapsedRealtimeUs, boolean shortString) { BatteryUsageStats batteryUsageStats, long elapsedRealtimeUs, boolean shortString) { Estimate estimate = new Estimate( PowerUtil.convertUsToMs(stats.computeBatteryTimeRemaining(elapsedRealtimeUs)), batteryUsageStats.getBatteryTimeRemainingMs(), false, EstimateKt.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN); return getBatteryInfo(context, batteryBroadcast, stats, estimate, elapsedRealtimeUs, shortString); return getBatteryInfo(context, batteryBroadcast, batteryUsageStats, estimate, elapsedRealtimeUs, shortString); } @WorkerThread public static BatteryInfo getBatteryInfo(Context context, Intent batteryBroadcast, BatteryStats stats, Estimate estimate, long elapsedRealtimeUs, boolean shortString) { @NonNull BatteryUsageStats batteryUsageStats, Estimate estimate, long elapsedRealtimeUs, boolean shortString) { final long startTime = System.currentTimeMillis(); BatteryInfo info = new BatteryInfo(); info.mStats = stats; info.mBatteryUsageStats = batteryUsageStats; info.batteryLevel = Utils.getBatteryLevel(batteryBroadcast); info.batteryPercentString = Utils.formatPercentage(info.batteryLevel); info.mCharging = batteryBroadcast.getIntExtra(BatteryManager.EXTRA_PLUGGED, 0) != 0; Loading @@ -241,16 +241,17 @@ public class BatteryInfo { if (!info.mCharging) { updateBatteryInfoDischarging(context, shortString, estimate, info); } else { updateBatteryInfoCharging(context, batteryBroadcast, stats, elapsedRealtimeUs, info); updateBatteryInfoCharging(context, batteryBroadcast, batteryUsageStats, info); } BatteryUtils.logRuntime(LOG_TAG, "time for getBatteryInfo", startTime); return info; } private static void updateBatteryInfoCharging(Context context, Intent batteryBroadcast, BatteryStats stats, long elapsedRealtimeUs, BatteryInfo info) { BatteryUsageStats stats, BatteryInfo info) { final Resources resources = context.getResources(); final long chargeTime = stats.computeChargeTimeRemaining(elapsedRealtimeUs); final long chargeTimeMs = stats.getChargeTimeRemainingMs(); final int status = batteryBroadcast.getIntExtra(BatteryManager.EXTRA_STATUS, BatteryManager.BATTERY_STATUS_UNKNOWN); info.discharging = false; Loading @@ -260,8 +261,8 @@ public class BatteryInfo { int chargingLimitedResId = R.string.power_charging_limited; info.chargeLabel = context.getString(chargingLimitedResId, info.batteryPercentString); } else if (chargeTime > 0 && status != BatteryManager.BATTERY_STATUS_FULL) { info.remainingTimeUs = chargeTime; } else if (chargeTimeMs > 0 && status != BatteryManager.BATTERY_STATUS_FULL) { info.remainingTimeUs = PowerUtil.convertMsToUs(chargeTimeMs); CharSequence timeString = StringUtil.formatElapsedTime(context, PowerUtil.convertUsToMs(info.remainingTimeUs), false /* withSeconds */); int resId = R.string.power_charging_duration; Loading Loading @@ -313,7 +314,11 @@ public class BatteryInfo { void onParsingDone(); } public static void parse(BatteryStats stats, BatteryDataParser... parsers) { /** * Iterates over battery history included in the BatteryUsageStats that this object * was initialized with. */ public void parseBatteryHistory(BatteryDataParser... parsers) { long startWalltime = 0; long endWalltime = 0; long historyStart = 0; Loading @@ -324,9 +329,10 @@ public class BatteryInfo { int lastInteresting = 0; int pos = 0; boolean first = true; if (stats.startIteratingHistoryLocked()) { final BatteryStatsHistoryIterator iterator1 = mBatteryUsageStats.iterateBatteryStatsHistory(); final HistoryItem rec = new HistoryItem(); while (stats.getNextHistoryLocked(rec)) { while (iterator1.next(rec)) { pos++; if (first) { first = false; Loading Loading @@ -357,8 +363,7 @@ public class BatteryInfo { historyEnd = rec.time; } } } stats.finishIteratingHistoryLocked(); endWalltime = lastWallTime + historyEnd - lastRealtime; int i = 0; Loading @@ -367,9 +372,11 @@ public class BatteryInfo { for (int j = 0; j < parsers.length; j++) { parsers[j].onParsingStarted(startWalltime, endWalltime); } if (endWalltime > startWalltime && stats.startIteratingHistoryLocked()) { final HistoryItem rec = new HistoryItem(); while (stats.getNextHistoryLocked(rec) && i < N) { if (endWalltime > startWalltime) { final BatteryStatsHistoryIterator iterator2 = mBatteryUsageStats.iterateBatteryStatsHistory(); while (iterator2.next(rec) && i < N) { if (rec.isDeltaData()) { curWalltime += rec.time - lastRealtime; lastRealtime = rec.time; Loading Loading @@ -404,8 +411,6 @@ public class BatteryInfo { } } stats.finishIteratingHistoryLocked(); for (int j = 0; j < parsers.length; j++) { parsers[j].onParsingDone(); } Loading
src/com/android/settings/fuelgauge/BatteryInfoLoader.java +4 −8 Original line number Diff line number Diff line Loading @@ -19,7 +19,6 @@ import android.content.Context; import androidx.annotation.VisibleForTesting; import com.android.internal.os.BatteryStatsHelper; import com.android.settingslib.utils.AsyncLoaderCompat; /** Loading @@ -28,17 +27,14 @@ import com.android.settingslib.utils.AsyncLoaderCompat; * when not available. */ public class BatteryInfoLoader extends AsyncLoaderCompat<BatteryInfo>{ BatteryStatsHelper mStatsHelper; private static final String LOG_TAG = "BatteryInfoLoader"; @VisibleForTesting BatteryUtils batteryUtils; BatteryUtils mBatteryUtils; public BatteryInfoLoader(Context context, BatteryStatsHelper batteryStatsHelper) { public BatteryInfoLoader(Context context) { super(context); mStatsHelper = batteryStatsHelper; batteryUtils = BatteryUtils.getInstance(context); mBatteryUtils = BatteryUtils.getInstance(context); } @Override Loading @@ -48,6 +44,6 @@ public class BatteryInfoLoader extends AsyncLoaderCompat<BatteryInfo>{ @Override public BatteryInfo loadInBackground() { return batteryUtils.getBatteryInfo(mStatsHelper, LOG_TAG); return mBatteryUtils.getBatteryInfo(LOG_TAG); } }
src/com/android/settings/fuelgauge/BatteryUsageStatsLoader.java +9 −2 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.settings.fuelgauge; import android.content.Context; import android.os.BatteryStatsManager; import android.os.BatteryUsageStats; import android.os.BatteryUsageStatsQuery; import com.android.settingslib.utils.AsyncLoaderCompat; Loading @@ -27,15 +28,21 @@ import com.android.settingslib.utils.AsyncLoaderCompat; */ public class BatteryUsageStatsLoader extends AsyncLoaderCompat<BatteryUsageStats> { private final BatteryStatsManager mBatteryStatsManager; private final boolean mIncludeBatteryHistory; public BatteryUsageStatsLoader(Context context) { public BatteryUsageStatsLoader(Context context, boolean includeBatteryHistory) { super(context); mBatteryStatsManager = context.getSystemService(BatteryStatsManager.class); mIncludeBatteryHistory = includeBatteryHistory; } @Override public BatteryUsageStats loadInBackground() { return mBatteryStatsManager.getBatteryUsageStats(); final BatteryUsageStatsQuery.Builder builder = new BatteryUsageStatsQuery.Builder(); if (mIncludeBatteryHistory) { builder.includeBatteryHistory(); } return mBatteryStatsManager.getBatteryUsageStats(builder.build()); } @Override Loading