diff --git a/src/com/android/settings/fuelgauge/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/PowerUsageSummary.java index 36f9be1b768..c27ea224e15 100644 --- a/src/com/android/settings/fuelgauge/PowerUsageSummary.java +++ b/src/com/android/settings/fuelgauge/PowerUsageSummary.java @@ -113,7 +113,8 @@ public class PowerUsageSummary extends PowerUsageBase implements @VisibleForTesting static final int ANOMALY_LOADER = 1; - private static final int BATTERY_ESTIMATE_LOADER = 2; + @VisibleForTesting + static final int BATTERY_ESTIMATE_LOADER = 2; private static final int MENU_STATS_TYPE = Menu.FIRST; @VisibleForTesting static final int MENU_HIGH_POWER_APPS = Menu.FIRST + 3; @@ -182,6 +183,7 @@ public class PowerUsageSummary extends PowerUsageBase implements @Override public Loader onCreateLoader(int i, Bundle bundle) { final Uri queryUri = mPowerFeatureProvider.getEnhancedBatteryPredictionUri(); + return new CursorLoader(getContext(), queryUri, null, null, null, null); } @@ -228,10 +230,7 @@ public class PowerUsageSummary extends PowerUsageBase implements mAnomalySparseArray = new SparseArray<>(); initFeatureProvider(); - if (mPowerFeatureProvider != null) { - getLoaderManager().initLoader(BATTERY_ESTIMATE_LOADER, Bundle.EMPTY, - mBatteryPredictionLoaderCallbacks); - } + initializeBatteryEstimateLoader(); } @Override @@ -815,6 +814,15 @@ public class PowerUsageSummary extends PowerUsageBase implements } } + @VisibleForTesting + void initializeBatteryEstimateLoader() { + if (mPowerFeatureProvider != null + && mPowerFeatureProvider.isEnhancedBatteryPredictionEnabled(getContext())) { + getLoaderManager().initLoader(BATTERY_ESTIMATE_LOADER, Bundle.EMPTY, + mBatteryPredictionLoaderCallbacks); + } + } + private static List getFakeStats() { ArrayList stats = new ArrayList<>(); float use = 5; diff --git a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java index a7db96d1730..efbfbda0ccb 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java @@ -576,6 +576,18 @@ public class PowerUsageSummaryTest { mFragment.mBatteryPredictionLoaderCallbacks.onLoadFinished(null, null); } + @Test + public void testOnCreate_BatteryPredictionSkippedWhenDisabled() { + PowerUsageFeatureProvider provider = mFeatureFactory.getPowerUsageFeatureProvider(mContext); + when(provider.isEnhancedBatteryPredictionEnabled(any())).thenReturn(false); + mFragment.mPowerFeatureProvider = provider; + doReturn(mLoaderManager).when(mFragment).getLoaderManager(); + mFragment.initializeBatteryEstimateLoader(); + + verify(mLoaderManager, never()).initLoader(eq(PowerUsageSummary.BATTERY_ESTIMATE_LOADER), + eq(Bundle.EMPTY), any()); + } + @Test public void testInitAnomalyDetectionIfPossible_detectionEnabled_init() { when(mFeatureFactory.powerUsageFeatureProvider.isAnomalyDetectionEnabled()).thenReturn(