diff --git a/src/com/android/settings/fuelgauge/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/PowerUsageSummary.java index 0ac0c6008a2..cd7b336fb6d 100644 --- a/src/com/android/settings/fuelgauge/PowerUsageSummary.java +++ b/src/com/android/settings/fuelgauge/PowerUsageSummary.java @@ -92,7 +92,6 @@ public class PowerUsageSummary extends PowerUsageBase implements private static final String KEY_BATTERY_HEADER = "battery_header"; private static final int MAX_ITEMS_TO_LIST = USE_FAKE_DATA ? 30 : 10; private static final int MIN_AVERAGE_POWER_THRESHOLD_MILLI_AMP = 10; - private static final int ANOMALY_LOADER = 1; private static final String KEY_SCREEN_USAGE = "screen_usage"; private static final String KEY_TIME_SINCE_LAST_FULL_CHARGE = "last_full_charge"; @@ -101,6 +100,8 @@ public class PowerUsageSummary extends PowerUsageBase implements private static final String KEY_SCREEN_TIMEOUT = "screen_timeout_battery"; private static final String KEY_BATTERY_SAVER_SUMMARY = "battery_saver_summary"; + @VisibleForTesting + static final int ANOMALY_LOADER = 1; private static final int MENU_STATS_TYPE = Menu.FIRST; @VisibleForTesting static final int MENU_HIGH_POWER_APPS = Menu.FIRST + 3; @@ -446,7 +447,7 @@ public class PowerUsageSummary extends PowerUsageBase implements return; } - getLoaderManager().initLoader(ANOMALY_LOADER, null, mAnomalyLoaderCallbacks); + initAnomalyDetectionIfPossible(); final long elapsedRealtimeUs = SystemClock.elapsedRealtime() * 1000; Intent batteryBroadcast = context.registerReceiver(null, @@ -576,6 +577,13 @@ public class PowerUsageSummary extends PowerUsageBase implements BatteryEntry.startRequestQueue(); } + @VisibleForTesting + void initAnomalyDetectionIfPossible() { + if (mPowerFeatureProvider.isAnomalyDetectionEnabled()) { + getLoaderManager().initLoader(ANOMALY_LOADER, Bundle.EMPTY, mAnomalyLoaderCallbacks); + } + } + @VisibleForTesting BatterySipper findBatterySipperByType(List usageList, DrainType type) { for (int i = 0, size = usageList.size(); i < size; i++) { diff --git a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java index 24dbfe0a97b..bbcd4f281a1 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java @@ -15,8 +15,10 @@ */ package com.android.settings.fuelgauge; +import android.app.LoaderManager; import android.content.Context; import android.content.Intent; +import android.os.Bundle; import android.os.PowerManager; import android.os.Process; import android.text.TextUtils; @@ -142,6 +144,8 @@ public class PowerUsageSummaryTest { private PowerManager mPowerManager; @Mock private SettingsActivity mSettingsActivity; + @Mock + private LoaderManager mLoaderManager; private List mUsageList; private Context mRealContext; @@ -486,6 +490,18 @@ public class PowerUsageSummaryTest { } + @Test + public void testInitAnomalyDetectionIfPossible_detectionEnabled_init() { + when(mFeatureFactory.powerUsageFeatureProvider.isAnomalyDetectionEnabled()).thenReturn( + true); + doReturn(mLoaderManager).when(mFragment).getLoaderManager(); + + mFragment.initAnomalyDetectionIfPossible(); + + verify(mLoaderManager).initLoader(eq(PowerUsageSummary.ANOMALY_LOADER), eq(Bundle.EMPTY), + any()); + } + public static class TestFragment extends PowerUsageSummary { private Context mContext;