Remove PowerUsageFeatureProvider.isAnomalyDetectionEnabled

Instead, this decision is being handled via AnomalyDetectionPolicy.

Change-Id: I5b1831c78e31e3be984dda07bcea9f0b0a25d52f
Fixes: 62871629
Test: robotests
diff --git a/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java b/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java
index 732db23..969afb9 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java
@@ -63,11 +63,6 @@
     boolean isPowerAccountingToggleEnabled();
 
     /**
-     * Check whether the anomaly detection is enabled
-     */
-    boolean isAnomalyDetectionEnabled();
-
-    /**
      * Returns an improved prediction for battery time remaining.
      */
     long getEnhancedBatteryPrediction(Context context);
@@ -88,12 +83,6 @@
     long getTimeRemainingEstimate(Cursor cursor);
 
     /**
-     * Check whether a specific anomaly detector is enabled
-     */
-    //TODO(b/62096650): remove this method and use AnomalyDetectionPolicy instead
-    boolean isAnomalyDetectorEnabled(@Anomaly.AnomalyType int type);
-
-    /**
      * Checks whether debugging should be enabled for battery estimates.
      * @return
      */
diff --git a/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java b/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java
index 1d8e03a..df7e7e1 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java
@@ -89,11 +89,6 @@
     }
 
     @Override
-    public boolean isAnomalyDetectionEnabled() {
-        return false;
-    }
-
-    @Override
     public long getEnhancedBatteryPrediction(Context context) {
         return -1;
     }
@@ -114,11 +109,6 @@
     }
 
     @Override
-    public boolean isAnomalyDetectorEnabled(@Anomaly.AnomalyType int type) {
-        return false;
-    }
-
-    @Override
     public String getEnhancedEstimateDebugString(String timeRemaining) {
         return null;
     }
diff --git a/src/com/android/settings/fuelgauge/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
index 26dac41..e4ae053 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageSummary.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
@@ -63,6 +63,7 @@
 import com.android.settings.display.BatteryPercentagePreferenceController;
 import com.android.settings.display.TimeoutPreferenceController;
 import com.android.settings.fuelgauge.anomaly.Anomaly;
+import com.android.settings.fuelgauge.anomaly.AnomalyDetectionPolicy;
 import com.android.settings.fuelgauge.anomaly.AnomalyDialogFragment.AnomalyDialogListener;
 import com.android.settings.fuelgauge.anomaly.AnomalyLoader;
 import com.android.settings.fuelgauge.anomaly.AnomalySummaryPreferenceController;
@@ -661,12 +662,17 @@
 
     @VisibleForTesting
     void initAnomalyDetectionIfPossible() {
-        if (mPowerFeatureProvider.isAnomalyDetectionEnabled()) {
+        if (getAnomalyDetectionPolicy().isAnomalyDetectionEnabled()) {
             getLoaderManager().initLoader(ANOMALY_LOADER, Bundle.EMPTY, mAnomalyLoaderCallbacks);
         }
     }
 
     @VisibleForTesting
+    AnomalyDetectionPolicy getAnomalyDetectionPolicy() {
+        return new AnomalyDetectionPolicy(getContext());
+    }
+
+    @VisibleForTesting
     BatterySipper findBatterySipperByType(List<BatterySipper> usageList, DrainType type) {
         for (int i = 0, size = usageList.size(); i < size; i++) {
             final BatterySipper sipper = usageList.get(i);
diff --git a/src/com/android/settings/fuelgauge/anomaly/AnomalyDetectionPolicy.java b/src/com/android/settings/fuelgauge/anomaly/AnomalyDetectionPolicy.java
index 647737c..4829ca0 100644
--- a/src/com/android/settings/fuelgauge/anomaly/AnomalyDetectionPolicy.java
+++ b/src/com/android/settings/fuelgauge/anomaly/AnomalyDetectionPolicy.java
@@ -51,7 +51,7 @@
      * @see Settings.Global#ANOMALY_DETECTION_CONSTANTS
      * @see #KEY_ANOMALY_DETECTION_ENABLED
      */
-    public final boolean anomalyDetectionEnabled;
+    final boolean anomalyDetectionEnabled;
 
     /**
      * {@code true} if wakelock anomaly detection is enabled
@@ -59,7 +59,7 @@
      * @see Settings.Global#ANOMALY_DETECTION_CONSTANTS
      * @see #KEY_WAKELOCK_DETECTION_ENABLED
      */
-    public final boolean wakeLockDetectionEnabled;
+    final boolean wakeLockDetectionEnabled;
 
     /**
      * {@code true} if wakeup alarm detection is enabled
@@ -67,7 +67,7 @@
      * @see Settings.Global#ANOMALY_DETECTION_CONSTANTS
      * @see #KEY_WAKEUP_ALARM_DETECTION_ENABLED
      */
-    public final boolean wakeupAlarmDetectionEnabled;
+    final boolean wakeupAlarmDetectionEnabled;
 
     /**
      * {@code true} if bluetooth scanning detection is enabled
@@ -75,7 +75,7 @@
      * @see Settings.Global#ANOMALY_DETECTION_CONSTANTS
      * @see #KEY_BLUETOOTH_SCAN_THRESHOLD
      */
-    public final boolean bluetoothScanDetectionEnabled;
+    final boolean bluetoothScanDetectionEnabled;
 
     /**
      * Threshold for wakelock time in milli seconds
@@ -132,6 +132,10 @@
                 30 * DateUtils.MINUTE_IN_MILLIS);
     }
 
+    public boolean isAnomalyDetectionEnabled() {
+        return anomalyDetectionEnabled;
+    }
+
     public boolean isAnomalyDetectorEnabled(@Anomaly.AnomalyType int type) {
         switch (type) {
             case Anomaly.AnomalyType.WAKE_LOCK:
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java
index 659b079..5225a74 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java
@@ -39,6 +39,7 @@
 import com.android.internal.os.BatteryStatsImpl;
 import com.android.settings.R;
 import com.android.settings.SettingsActivity;
+import com.android.settings.fuelgauge.anomaly.AnomalyDetectionPolicy;
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
 import com.android.settings.Utils;
@@ -151,6 +152,8 @@
     private PreferenceScreen mPreferenceScreen;
     @Mock
     private PreferenceGroup mAppListGroup;
+    @Mock
+    private AnomalyDetectionPolicy mAnomalyDetectionPolicy;
 
     private List<BatterySipper> mUsageList;
     private Context mRealContext;
@@ -463,9 +466,9 @@
 
     @Test
     public void testInitAnomalyDetectionIfPossible_detectionEnabled_init() {
-        when(mFeatureFactory.powerUsageFeatureProvider.isAnomalyDetectionEnabled()).thenReturn(
-                true);
         doReturn(mLoaderManager).when(mFragment).getLoaderManager();
+        doReturn(mAnomalyDetectionPolicy).when(mFragment).getAnomalyDetectionPolicy();
+        when(mAnomalyDetectionPolicy.isAnomalyDetectionEnabled()).thenReturn(true);
 
         mFragment.initAnomalyDetectionIfPossible();