diff --git a/src/com/android/settings/fuelgauge/BatteryInfo.java b/src/com/android/settings/fuelgauge/BatteryInfo.java index c851a7178f7..33f25537327 100644 --- a/src/com/android/settings/fuelgauge/BatteryInfo.java +++ b/src/com/android/settings/fuelgauge/BatteryInfo.java @@ -34,6 +34,8 @@ import com.android.settings.Utils; import com.android.settings.overlay.FeatureFactory; import com.android.settings.widget.UsageView; 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.StringUtil; @@ -44,7 +46,7 @@ public class BatteryInfo { public int batteryLevel; public boolean discharging = true; 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 statusLabel; public String suggestionLabel; @@ -202,7 +204,7 @@ public class BatteryInfo { final Estimate estimate = new Estimate( PowerUtil.convertUsToMs(prediction), false, /* isBasedOnUsage */ - Estimate.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN); + EstimateKt.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN); BatteryUtils.logRuntime(LOG_TAG, "time for regular BatteryInfo", startTime); return BatteryInfo.getBatteryInfo(context, batteryBroadcast, stats, estimate, elapsedRealtimeUs, shortString); @@ -214,7 +216,7 @@ public class BatteryInfo { Estimate estimate = new Estimate( PowerUtil.convertUsToMs(stats.computeBatteryTimeRemaining(elapsedRealtimeUs)), false, - Estimate.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN); + EstimateKt.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN); return getBatteryInfo(context, batteryBroadcast, stats, estimate, elapsedRealtimeUs, shortString); } @@ -228,7 +230,7 @@ public class BatteryInfo { info.batteryLevel = Utils.getBatteryLevel(batteryBroadcast); info.batteryPercentString = Utils.formatPercentage(info.batteryLevel); info.mCharging = batteryBroadcast.getIntExtra(BatteryManager.EXTRA_PLUGGED, 0) != 0; - info.averageTimeToDischarge = estimate.averageDischargeTime; + info.averageTimeToDischarge = estimate.getAverageDischargeTime(); final Resources resources = context.getResources(); info.statusLabel = Utils.getBatteryStatus(resources, batteryBroadcast); @@ -269,20 +271,20 @@ public class BatteryInfo { private static void updateBatteryInfoDischarging(Context context, boolean shortString, Estimate estimate, BatteryInfo info) { - final long drainTimeUs = PowerUtil.convertMsToUs(estimate.estimateMillis); + final long drainTimeUs = PowerUtil.convertMsToUs(estimate.getEstimateMillis()); if (drainTimeUs > 0) { info.remainingTimeUs = drainTimeUs; info.remainingLabel = PowerUtil.getBatteryRemainingStringFormatted( context, PowerUtil.convertUsToMs(drainTimeUs), null /* percentageString */, - estimate.isBasedOnUsage && !shortString + estimate.isBasedOnUsage() && !shortString ); info.chargeLabel = PowerUtil.getBatteryRemainingStringFormatted( context, PowerUtil.convertUsToMs(drainTimeUs), info.batteryPercentString, - estimate.isBasedOnUsage && !shortString + estimate.isBasedOnUsage() && !shortString ); info.suggestionLabel = PowerUtil.getBatteryTipStringFormatted( context, PowerUtil.convertUsToMs(drainTimeUs)); diff --git a/src/com/android/settings/fuelgauge/BatteryUtils.java b/src/com/android/settings/fuelgauge/BatteryUtils.java index 6f779535943..cb22356aa90 100644 --- a/src/com/android/settings/fuelgauge/BatteryUtils.java +++ b/src/com/android/settings/fuelgauge/BatteryUtils.java @@ -47,6 +47,8 @@ import com.android.settings.fuelgauge.batterytip.AnomalyInfo; import com.android.settings.fuelgauge.batterytip.BatteryDatabaseManager; import com.android.settings.fuelgauge.batterytip.StatsManagerConfig; 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.utils.PowerUtil; import com.android.settingslib.utils.ThreadUtils; @@ -460,7 +462,7 @@ public class BatteryUtils { estimate = new Estimate( PowerUtil.convertUsToMs(stats.computeBatteryTimeRemaining(elapsedRealtimeUs)), false /* isBasedOnUsage */, - Estimate.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN); + EstimateKt.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN); } BatteryUtils.logRuntime(tag, "BatteryInfoLoader post query", startTime); diff --git a/src/com/android/settings/fuelgauge/DebugEstimatesLoader.java b/src/com/android/settings/fuelgauge/DebugEstimatesLoader.java index d27e4dcbcf7..c8dbb59a4bb 100644 --- a/src/com/android/settings/fuelgauge/DebugEstimatesLoader.java +++ b/src/com/android/settings/fuelgauge/DebugEstimatesLoader.java @@ -23,6 +23,8 @@ import android.os.SystemClock; import com.android.internal.os.BatteryStatsHelper; 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.PowerUtil; @@ -60,7 +62,7 @@ public class DebugEstimatesLoader extends AsyncLoaderCompat> { Estimate estimate = powerUsageFeatureProvider.getEnhancedBatteryPrediction(context); 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, estimate, elapsedRealtimeUs, false); diff --git a/src/com/android/settings/fuelgauge/Estimate.java b/src/com/android/settings/fuelgauge/Estimate.java deleted file mode 100644 index f59bbf15ac1..00000000000 --- a/src/com/android/settings/fuelgauge/Estimate.java +++ /dev/null @@ -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; - } -} diff --git a/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java b/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java index a6474fb21de..4f292dddacc 100644 --- a/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java +++ b/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java @@ -21,6 +21,7 @@ import android.content.Intent; import android.util.SparseIntArray; import com.android.internal.os.BatterySipper; +import com.android.settingslib.fuelgauge.Estimate; /** * Feature Provider used in power usage diff --git a/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java b/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java index b76aef087c1..ab71c97e141 100644 --- a/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java +++ b/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java @@ -24,6 +24,7 @@ import android.util.SparseIntArray; import com.android.internal.os.BatterySipper; import com.android.internal.util.ArrayUtils; +import com.android.settingslib.fuelgauge.Estimate; public class PowerUsageFeatureProviderImpl implements PowerUsageFeatureProvider { diff --git a/src/com/android/settings/fuelgauge/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/PowerUsageSummary.java index 75db2159dab..82ff4c227b8 100644 --- a/src/com/android/settings/fuelgauge/PowerUsageSummary.java +++ b/src/com/android/settings/fuelgauge/PowerUsageSummary.java @@ -45,6 +45,7 @@ import com.android.settings.fuelgauge.batterytip.BatteryTipPreferenceController; import com.android.settings.fuelgauge.batterytip.tips.BatteryTip; import com.android.settings.overlay.FeatureFactory; import com.android.settings.search.BaseSearchIndexProvider; +import com.android.settingslib.fuelgauge.EstimateKt; import com.android.settingslib.search.SearchIndexable; import com.android.settingslib.utils.PowerUtil; import com.android.settingslib.utils.StringUtil; @@ -313,7 +314,7 @@ public class PowerUsageSummary extends PowerUsageBase implements OnLongClickList @VisibleForTesting void updateLastFullChargePreference() { 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.setSubtitle( StringUtil.formatElapsedTime(getContext(), mBatteryInfo.averageTimeToDischarge, diff --git a/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoader.java b/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoader.java index aa66aed8c61..a1fb076e648 100644 --- a/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoader.java +++ b/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoader.java @@ -23,7 +23,6 @@ import androidx.annotation.VisibleForTesting; import com.android.internal.os.BatteryStatsHelper; import com.android.settings.fuelgauge.BatteryInfo; 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.HighUsageDetector; 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.LowBatteryTip; import com.android.settings.fuelgauge.batterytip.tips.SummaryTip; +import com.android.settingslib.fuelgauge.EstimateKt; import com.android.settingslib.utils.AsyncLoaderCompat; import java.util.ArrayList; @@ -87,7 +87,7 @@ public class BatteryTipLoader extends AsyncLoaderCompat> { private List getFakeData() { final List tips = new ArrayList<>(); 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 */, "Fake data")); diff --git a/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceController.java b/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceController.java index b0dc926e0a4..d615db6db19 100644 --- a/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceController.java +++ b/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceController.java @@ -26,13 +26,13 @@ import androidx.preference.PreferenceScreen; import com.android.settings.SettingsActivity; import com.android.settings.core.BasePreferenceController; 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.tips.BatteryTip; import com.android.settings.fuelgauge.batterytip.tips.SummaryTip; import com.android.settings.overlay.FeatureFactory; import com.android.settings.widget.CardPreference; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; +import com.android.settingslib.fuelgauge.EstimateKt; import java.util.HashMap; import java.util.List; @@ -93,7 +93,7 @@ public class BatteryTipPreferenceController extends BasePreferenceController { // Add summary tip in advance to avoid UI flakiness final SummaryTip summaryTip = new SummaryTip(BatteryTip.StateType.NEW, - Estimate.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN); + EstimateKt.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN); summaryTip.updatePreference(mCardPreference); } diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java index d5e0ed88177..6b917f0bf46 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java @@ -41,6 +41,7 @@ import com.android.settings.testutils.BatteryTestUtils; import com.android.settings.testutils.FakeFeatureFactory; import com.android.settings.widget.UsageView; import com.android.settingslib.R; +import com.android.settingslib.fuelgauge.Estimate; import org.junit.Before; import org.junit.Test; diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipDialogFragmentTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipDialogFragmentTest.java index e91190224e1..df9a194f4e5 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipDialogFragmentTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipDialogFragmentTest.java @@ -28,7 +28,6 @@ import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.FragmentActivity; 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.HighUsageTip; 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.shadow.ShadowAlertDialogCompat; import com.android.settings.testutils.shadow.ShadowUtils; +import com.android.settingslib.fuelgauge.EstimateKt; import org.junit.Before; import org.junit.Test; @@ -96,7 +96,7 @@ public class BatteryTipDialogFragmentTest { mUnrestrictAppTip = new UnrestrictAppTip(BatteryTip.StateType.NEW, mAppInfo); mSummaryTip = spy(new SummaryTip(BatteryTip.StateType.NEW, - Estimate.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN)); + EstimateKt.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN)); } @Test