Update battery stuff to use SettingsLib Estimate class
This will make the upcoming consistency Cl easier to implement. Test: Robotests still pass Bug: 124030091 Change-Id: Ief4989e2b5f9b83b5c3b93d17f9f9fa12136f3ee
This commit is contained in:
@@ -34,6 +34,8 @@ 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.Estimate;
|
||||||
|
import com.android.settingslib.fuelgauge.EstimateKt;
|
||||||
import com.android.settingslib.utils.PowerUtil;
|
import com.android.settingslib.utils.PowerUtil;
|
||||||
import com.android.settingslib.utils.StringUtil;
|
import com.android.settingslib.utils.StringUtil;
|
||||||
|
|
||||||
@@ -44,7 +46,7 @@ public class BatteryInfo {
|
|||||||
public int batteryLevel;
|
public int batteryLevel;
|
||||||
public boolean discharging = true;
|
public boolean discharging = true;
|
||||||
public long remainingTimeUs = 0;
|
public long remainingTimeUs = 0;
|
||||||
public long averageTimeToDischarge = Estimate.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN;
|
public long averageTimeToDischarge = EstimateKt.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN;
|
||||||
public String batteryPercentString;
|
public String batteryPercentString;
|
||||||
public String statusLabel;
|
public String statusLabel;
|
||||||
public String suggestionLabel;
|
public String suggestionLabel;
|
||||||
@@ -202,7 +204,7 @@ public class BatteryInfo {
|
|||||||
final Estimate estimate = new Estimate(
|
final Estimate estimate = new Estimate(
|
||||||
PowerUtil.convertUsToMs(prediction),
|
PowerUtil.convertUsToMs(prediction),
|
||||||
false, /* isBasedOnUsage */
|
false, /* isBasedOnUsage */
|
||||||
Estimate.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN);
|
EstimateKt.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN);
|
||||||
BatteryUtils.logRuntime(LOG_TAG, "time for regular BatteryInfo", startTime);
|
BatteryUtils.logRuntime(LOG_TAG, "time for regular BatteryInfo", startTime);
|
||||||
return BatteryInfo.getBatteryInfo(context, batteryBroadcast, stats,
|
return BatteryInfo.getBatteryInfo(context, batteryBroadcast, stats,
|
||||||
estimate, elapsedRealtimeUs, shortString);
|
estimate, elapsedRealtimeUs, shortString);
|
||||||
@@ -214,7 +216,7 @@ public class BatteryInfo {
|
|||||||
Estimate estimate = new Estimate(
|
Estimate estimate = new Estimate(
|
||||||
PowerUtil.convertUsToMs(stats.computeBatteryTimeRemaining(elapsedRealtimeUs)),
|
PowerUtil.convertUsToMs(stats.computeBatteryTimeRemaining(elapsedRealtimeUs)),
|
||||||
false,
|
false,
|
||||||
Estimate.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN);
|
EstimateKt.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN);
|
||||||
return getBatteryInfo(context, batteryBroadcast, stats, estimate, elapsedRealtimeUs,
|
return getBatteryInfo(context, batteryBroadcast, stats, estimate, elapsedRealtimeUs,
|
||||||
shortString);
|
shortString);
|
||||||
}
|
}
|
||||||
@@ -228,7 +230,7 @@ public class BatteryInfo {
|
|||||||
info.batteryLevel = Utils.getBatteryLevel(batteryBroadcast);
|
info.batteryLevel = Utils.getBatteryLevel(batteryBroadcast);
|
||||||
info.batteryPercentString = Utils.formatPercentage(info.batteryLevel);
|
info.batteryPercentString = Utils.formatPercentage(info.batteryLevel);
|
||||||
info.mCharging = batteryBroadcast.getIntExtra(BatteryManager.EXTRA_PLUGGED, 0) != 0;
|
info.mCharging = batteryBroadcast.getIntExtra(BatteryManager.EXTRA_PLUGGED, 0) != 0;
|
||||||
info.averageTimeToDischarge = estimate.averageDischargeTime;
|
info.averageTimeToDischarge = estimate.getAverageDischargeTime();
|
||||||
final Resources resources = context.getResources();
|
final Resources resources = context.getResources();
|
||||||
|
|
||||||
info.statusLabel = Utils.getBatteryStatus(resources, batteryBroadcast);
|
info.statusLabel = Utils.getBatteryStatus(resources, batteryBroadcast);
|
||||||
@@ -269,20 +271,20 @@ public class BatteryInfo {
|
|||||||
|
|
||||||
private static void updateBatteryInfoDischarging(Context context, boolean shortString,
|
private static void updateBatteryInfoDischarging(Context context, boolean shortString,
|
||||||
Estimate estimate, BatteryInfo info) {
|
Estimate estimate, BatteryInfo info) {
|
||||||
final long drainTimeUs = PowerUtil.convertMsToUs(estimate.estimateMillis);
|
final long drainTimeUs = PowerUtil.convertMsToUs(estimate.getEstimateMillis());
|
||||||
if (drainTimeUs > 0) {
|
if (drainTimeUs > 0) {
|
||||||
info.remainingTimeUs = drainTimeUs;
|
info.remainingTimeUs = drainTimeUs;
|
||||||
info.remainingLabel = PowerUtil.getBatteryRemainingStringFormatted(
|
info.remainingLabel = PowerUtil.getBatteryRemainingStringFormatted(
|
||||||
context,
|
context,
|
||||||
PowerUtil.convertUsToMs(drainTimeUs),
|
PowerUtil.convertUsToMs(drainTimeUs),
|
||||||
null /* percentageString */,
|
null /* percentageString */,
|
||||||
estimate.isBasedOnUsage && !shortString
|
estimate.isBasedOnUsage() && !shortString
|
||||||
);
|
);
|
||||||
info.chargeLabel = PowerUtil.getBatteryRemainingStringFormatted(
|
info.chargeLabel = PowerUtil.getBatteryRemainingStringFormatted(
|
||||||
context,
|
context,
|
||||||
PowerUtil.convertUsToMs(drainTimeUs),
|
PowerUtil.convertUsToMs(drainTimeUs),
|
||||||
info.batteryPercentString,
|
info.batteryPercentString,
|
||||||
estimate.isBasedOnUsage && !shortString
|
estimate.isBasedOnUsage() && !shortString
|
||||||
);
|
);
|
||||||
info.suggestionLabel = PowerUtil.getBatteryTipStringFormatted(
|
info.suggestionLabel = PowerUtil.getBatteryTipStringFormatted(
|
||||||
context, PowerUtil.convertUsToMs(drainTimeUs));
|
context, PowerUtil.convertUsToMs(drainTimeUs));
|
||||||
|
@@ -47,6 +47,8 @@ import com.android.settings.fuelgauge.batterytip.AnomalyInfo;
|
|||||||
import com.android.settings.fuelgauge.batterytip.BatteryDatabaseManager;
|
import com.android.settings.fuelgauge.batterytip.BatteryDatabaseManager;
|
||||||
import com.android.settings.fuelgauge.batterytip.StatsManagerConfig;
|
import com.android.settings.fuelgauge.batterytip.StatsManagerConfig;
|
||||||
import com.android.settings.overlay.FeatureFactory;
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
|
import com.android.settingslib.fuelgauge.Estimate;
|
||||||
|
import com.android.settingslib.fuelgauge.EstimateKt;
|
||||||
import com.android.settingslib.fuelgauge.PowerWhitelistBackend;
|
import com.android.settingslib.fuelgauge.PowerWhitelistBackend;
|
||||||
import com.android.settingslib.utils.PowerUtil;
|
import com.android.settingslib.utils.PowerUtil;
|
||||||
import com.android.settingslib.utils.ThreadUtils;
|
import com.android.settingslib.utils.ThreadUtils;
|
||||||
@@ -460,7 +462,7 @@ public class BatteryUtils {
|
|||||||
estimate = new Estimate(
|
estimate = new Estimate(
|
||||||
PowerUtil.convertUsToMs(stats.computeBatteryTimeRemaining(elapsedRealtimeUs)),
|
PowerUtil.convertUsToMs(stats.computeBatteryTimeRemaining(elapsedRealtimeUs)),
|
||||||
false /* isBasedOnUsage */,
|
false /* isBasedOnUsage */,
|
||||||
Estimate.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN);
|
EstimateKt.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN);
|
||||||
}
|
}
|
||||||
|
|
||||||
BatteryUtils.logRuntime(tag, "BatteryInfoLoader post query", startTime);
|
BatteryUtils.logRuntime(tag, "BatteryInfoLoader post query", startTime);
|
||||||
|
@@ -23,6 +23,8 @@ import android.os.SystemClock;
|
|||||||
|
|
||||||
import com.android.internal.os.BatteryStatsHelper;
|
import com.android.internal.os.BatteryStatsHelper;
|
||||||
import com.android.settings.overlay.FeatureFactory;
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
|
import com.android.settingslib.fuelgauge.Estimate;
|
||||||
|
import com.android.settingslib.fuelgauge.EstimateKt;
|
||||||
import com.android.settingslib.utils.AsyncLoaderCompat;
|
import com.android.settingslib.utils.AsyncLoaderCompat;
|
||||||
import com.android.settingslib.utils.PowerUtil;
|
import com.android.settingslib.utils.PowerUtil;
|
||||||
|
|
||||||
@@ -60,7 +62,7 @@ public class DebugEstimatesLoader extends AsyncLoaderCompat<List<BatteryInfo>> {
|
|||||||
|
|
||||||
Estimate estimate = powerUsageFeatureProvider.getEnhancedBatteryPrediction(context);
|
Estimate estimate = powerUsageFeatureProvider.getEnhancedBatteryPrediction(context);
|
||||||
if (estimate == null) {
|
if (estimate == null) {
|
||||||
estimate = new Estimate(0, false, Estimate.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN);
|
estimate = new Estimate(0, false, EstimateKt.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN);
|
||||||
}
|
}
|
||||||
BatteryInfo newInfo = BatteryInfo.getBatteryInfo(getContext(), batteryBroadcast, stats,
|
BatteryInfo newInfo = BatteryInfo.getBatteryInfo(getContext(), batteryBroadcast, stats,
|
||||||
estimate, elapsedRealtimeUs, false);
|
estimate, elapsedRealtimeUs, false);
|
||||||
|
@@ -1,18 +0,0 @@
|
|||||||
package com.android.settings.fuelgauge;
|
|
||||||
|
|
||||||
public class Estimate {
|
|
||||||
|
|
||||||
// Value to indicate averageTimeToDischarge could not be obtained
|
|
||||||
public static final int AVERAGE_TIME_TO_DISCHARGE_UNKNOWN = -1;
|
|
||||||
|
|
||||||
public final long estimateMillis;
|
|
||||||
public final boolean isBasedOnUsage;
|
|
||||||
public final long averageDischargeTime;
|
|
||||||
|
|
||||||
public Estimate(long estimateMillis, boolean isBasedOnUsage,
|
|
||||||
long averageDischargeTime) {
|
|
||||||
this.estimateMillis = estimateMillis;
|
|
||||||
this.isBasedOnUsage = isBasedOnUsage;
|
|
||||||
this.averageDischargeTime = averageDischargeTime;
|
|
||||||
}
|
|
||||||
}
|
|
@@ -21,6 +21,7 @@ import android.content.Intent;
|
|||||||
import android.util.SparseIntArray;
|
import android.util.SparseIntArray;
|
||||||
|
|
||||||
import com.android.internal.os.BatterySipper;
|
import com.android.internal.os.BatterySipper;
|
||||||
|
import com.android.settingslib.fuelgauge.Estimate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Feature Provider used in power usage
|
* Feature Provider used in power usage
|
||||||
|
@@ -24,6 +24,7 @@ import android.util.SparseIntArray;
|
|||||||
|
|
||||||
import com.android.internal.os.BatterySipper;
|
import com.android.internal.os.BatterySipper;
|
||||||
import com.android.internal.util.ArrayUtils;
|
import com.android.internal.util.ArrayUtils;
|
||||||
|
import com.android.settingslib.fuelgauge.Estimate;
|
||||||
|
|
||||||
public class PowerUsageFeatureProviderImpl implements PowerUsageFeatureProvider {
|
public class PowerUsageFeatureProviderImpl implements PowerUsageFeatureProvider {
|
||||||
|
|
||||||
|
@@ -45,6 +45,7 @@ import com.android.settings.fuelgauge.batterytip.BatteryTipPreferenceController;
|
|||||||
import com.android.settings.fuelgauge.batterytip.tips.BatteryTip;
|
import com.android.settings.fuelgauge.batterytip.tips.BatteryTip;
|
||||||
import com.android.settings.overlay.FeatureFactory;
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
import com.android.settings.search.BaseSearchIndexProvider;
|
import com.android.settings.search.BaseSearchIndexProvider;
|
||||||
|
import com.android.settingslib.fuelgauge.EstimateKt;
|
||||||
import com.android.settingslib.search.SearchIndexable;
|
import com.android.settingslib.search.SearchIndexable;
|
||||||
import com.android.settingslib.utils.PowerUtil;
|
import com.android.settingslib.utils.PowerUtil;
|
||||||
import com.android.settingslib.utils.StringUtil;
|
import com.android.settingslib.utils.StringUtil;
|
||||||
@@ -313,7 +314,7 @@ public class PowerUsageSummary extends PowerUsageBase implements OnLongClickList
|
|||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
void updateLastFullChargePreference() {
|
void updateLastFullChargePreference() {
|
||||||
if (mBatteryInfo != null && mBatteryInfo.averageTimeToDischarge
|
if (mBatteryInfo != null && mBatteryInfo.averageTimeToDischarge
|
||||||
!= Estimate.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN) {
|
!= EstimateKt.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN) {
|
||||||
mLastFullChargePref.setTitle(R.string.battery_full_charge_last);
|
mLastFullChargePref.setTitle(R.string.battery_full_charge_last);
|
||||||
mLastFullChargePref.setSubtitle(
|
mLastFullChargePref.setSubtitle(
|
||||||
StringUtil.formatElapsedTime(getContext(), mBatteryInfo.averageTimeToDischarge,
|
StringUtil.formatElapsedTime(getContext(), mBatteryInfo.averageTimeToDischarge,
|
||||||
|
@@ -23,7 +23,6 @@ import androidx.annotation.VisibleForTesting;
|
|||||||
import com.android.internal.os.BatteryStatsHelper;
|
import com.android.internal.os.BatteryStatsHelper;
|
||||||
import com.android.settings.fuelgauge.BatteryInfo;
|
import com.android.settings.fuelgauge.BatteryInfo;
|
||||||
import com.android.settings.fuelgauge.BatteryUtils;
|
import com.android.settings.fuelgauge.BatteryUtils;
|
||||||
import com.android.settings.fuelgauge.Estimate;
|
|
||||||
import com.android.settings.fuelgauge.batterytip.detectors.EarlyWarningDetector;
|
import com.android.settings.fuelgauge.batterytip.detectors.EarlyWarningDetector;
|
||||||
import com.android.settings.fuelgauge.batterytip.detectors.HighUsageDetector;
|
import com.android.settings.fuelgauge.batterytip.detectors.HighUsageDetector;
|
||||||
import com.android.settings.fuelgauge.batterytip.detectors.LowBatteryDetector;
|
import com.android.settings.fuelgauge.batterytip.detectors.LowBatteryDetector;
|
||||||
@@ -33,6 +32,7 @@ import com.android.settings.fuelgauge.batterytip.detectors.SummaryDetector;
|
|||||||
import com.android.settings.fuelgauge.batterytip.tips.BatteryTip;
|
import com.android.settings.fuelgauge.batterytip.tips.BatteryTip;
|
||||||
import com.android.settings.fuelgauge.batterytip.tips.LowBatteryTip;
|
import com.android.settings.fuelgauge.batterytip.tips.LowBatteryTip;
|
||||||
import com.android.settings.fuelgauge.batterytip.tips.SummaryTip;
|
import com.android.settings.fuelgauge.batterytip.tips.SummaryTip;
|
||||||
|
import com.android.settingslib.fuelgauge.EstimateKt;
|
||||||
import com.android.settingslib.utils.AsyncLoaderCompat;
|
import com.android.settingslib.utils.AsyncLoaderCompat;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -87,7 +87,7 @@ public class BatteryTipLoader extends AsyncLoaderCompat<List<BatteryTip>> {
|
|||||||
private List<BatteryTip> getFakeData() {
|
private List<BatteryTip> getFakeData() {
|
||||||
final List<BatteryTip> tips = new ArrayList<>();
|
final List<BatteryTip> tips = new ArrayList<>();
|
||||||
tips.add(new SummaryTip(BatteryTip.StateType.NEW,
|
tips.add(new SummaryTip(BatteryTip.StateType.NEW,
|
||||||
Estimate.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN));
|
EstimateKt.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN));
|
||||||
tips.add(new LowBatteryTip(BatteryTip.StateType.NEW, false /* powerSaveModeOn */,
|
tips.add(new LowBatteryTip(BatteryTip.StateType.NEW, false /* powerSaveModeOn */,
|
||||||
"Fake data"));
|
"Fake data"));
|
||||||
|
|
||||||
|
@@ -26,13 +26,13 @@ import androidx.preference.PreferenceScreen;
|
|||||||
import com.android.settings.SettingsActivity;
|
import com.android.settings.SettingsActivity;
|
||||||
import com.android.settings.core.BasePreferenceController;
|
import com.android.settings.core.BasePreferenceController;
|
||||||
import com.android.settings.core.InstrumentedPreferenceFragment;
|
import com.android.settings.core.InstrumentedPreferenceFragment;
|
||||||
import com.android.settings.fuelgauge.Estimate;
|
|
||||||
import com.android.settings.fuelgauge.batterytip.actions.BatteryTipAction;
|
import com.android.settings.fuelgauge.batterytip.actions.BatteryTipAction;
|
||||||
import com.android.settings.fuelgauge.batterytip.tips.BatteryTip;
|
import com.android.settings.fuelgauge.batterytip.tips.BatteryTip;
|
||||||
import com.android.settings.fuelgauge.batterytip.tips.SummaryTip;
|
import com.android.settings.fuelgauge.batterytip.tips.SummaryTip;
|
||||||
import com.android.settings.overlay.FeatureFactory;
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
import com.android.settings.widget.CardPreference;
|
import com.android.settings.widget.CardPreference;
|
||||||
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
||||||
|
import com.android.settingslib.fuelgauge.EstimateKt;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -93,7 +93,7 @@ public class BatteryTipPreferenceController extends BasePreferenceController {
|
|||||||
|
|
||||||
// Add summary tip in advance to avoid UI flakiness
|
// Add summary tip in advance to avoid UI flakiness
|
||||||
final SummaryTip summaryTip = new SummaryTip(BatteryTip.StateType.NEW,
|
final SummaryTip summaryTip = new SummaryTip(BatteryTip.StateType.NEW,
|
||||||
Estimate.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN);
|
EstimateKt.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN);
|
||||||
summaryTip.updatePreference(mCardPreference);
|
summaryTip.updatePreference(mCardPreference);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -41,6 +41,7 @@ import com.android.settings.testutils.BatteryTestUtils;
|
|||||||
import com.android.settings.testutils.FakeFeatureFactory;
|
import com.android.settings.testutils.FakeFeatureFactory;
|
||||||
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.Estimate;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
@@ -28,7 +28,6 @@ import androidx.appcompat.app.AlertDialog;
|
|||||||
import androidx.fragment.app.FragmentActivity;
|
import androidx.fragment.app.FragmentActivity;
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.fuelgauge.Estimate;
|
|
||||||
import com.android.settings.fuelgauge.batterytip.tips.BatteryTip;
|
import com.android.settings.fuelgauge.batterytip.tips.BatteryTip;
|
||||||
import com.android.settings.fuelgauge.batterytip.tips.HighUsageTip;
|
import com.android.settings.fuelgauge.batterytip.tips.HighUsageTip;
|
||||||
import com.android.settings.fuelgauge.batterytip.tips.RestrictAppTip;
|
import com.android.settings.fuelgauge.batterytip.tips.RestrictAppTip;
|
||||||
@@ -37,6 +36,7 @@ import com.android.settings.fuelgauge.batterytip.tips.UnrestrictAppTip;
|
|||||||
import com.android.settings.testutils.FakeFeatureFactory;
|
import com.android.settings.testutils.FakeFeatureFactory;
|
||||||
import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
|
import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
|
||||||
import com.android.settings.testutils.shadow.ShadowUtils;
|
import com.android.settings.testutils.shadow.ShadowUtils;
|
||||||
|
import com.android.settingslib.fuelgauge.EstimateKt;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
@@ -96,7 +96,7 @@ public class BatteryTipDialogFragmentTest {
|
|||||||
|
|
||||||
mUnrestrictAppTip = new UnrestrictAppTip(BatteryTip.StateType.NEW, mAppInfo);
|
mUnrestrictAppTip = new UnrestrictAppTip(BatteryTip.StateType.NEW, mAppInfo);
|
||||||
mSummaryTip = spy(new SummaryTip(BatteryTip.StateType.NEW,
|
mSummaryTip = spy(new SummaryTip(BatteryTip.StateType.NEW,
|
||||||
Estimate.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN));
|
EstimateKt.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
Reference in New Issue
Block a user