Replaces getBatteryHistoryUri and getBatteryHistorySinceLastFullCharge
with the new functions in DatabaseUtils.

Bug: 253395332
Test: make RunSettingsRoboTests + manually
Change-Id: I5f60cef80d1e9ba3f87ab6f84492463152a40276
diff --git a/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java b/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java
index 1720845..f6d153b 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java
@@ -18,7 +18,6 @@
 
 import android.content.Context;
 import android.content.Intent;
-import android.net.Uri;
 import android.util.SparseIntArray;
 
 import com.android.settings.fuelgauge.batteryusage.BatteryHistEntry;
@@ -155,16 +154,6 @@
     Map<Long, Map<String, BatteryHistEntry>> getBatteryHistory(Context context);
 
     /**
-     * Returns battery history data since last full charge with corresponding timestamp key.
-     */
-    Map<Long, Map<String, BatteryHistEntry>> getBatteryHistorySinceLastFullCharge(Context context);
-
-    /**
-     * Returns {@link Uri} to monitor battery history data is update.
-     */
-    Uri getBatteryHistoryUri();
-
-    /**
      * Returns {@link Set} for hidding applications background usage time.
      */
     Set<CharSequence> getHideBackgroundUsageTimeSet(Context context);
diff --git a/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java b/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java
index 48f4421..ed6b622 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java
@@ -19,7 +19,6 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.PackageManager;
-import android.net.Uri;
 import android.os.Process;
 import android.util.ArraySet;
 import android.util.SparseIntArray;
@@ -170,17 +169,6 @@
     }
 
     @Override
-    public Map<Long, Map<String, BatteryHistEntry>> getBatteryHistorySinceLastFullCharge(
-            Context context) {
-        return null;
-    }
-
-    @Override
-    public Uri getBatteryHistoryUri() {
-        return null;
-    }
-
-    @Override
     public Set<CharSequence> getHideBackgroundUsageTimeSet(Context context) {
         return new ArraySet<>();
     }
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java
index 419ae90..6dd59b7 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java
@@ -58,6 +58,7 @@
 import com.android.settingslib.widget.FooterPreference;
 
 import java.util.ArrayList;
+import java.util.Calendar;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -760,9 +761,7 @@
     public static List<BatteryDiffEntry> getAppBatteryUsageData(Context context) {
         final long start = System.currentTimeMillis();
         final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap =
-                FeatureFactory.getFactory(context)
-                        .getPowerUsageFeatureProvider(context)
-                        .getBatteryHistorySinceLastFullCharge(context);
+                DatabaseUtils.getHistoryMapSinceLastFullCharge(context, Calendar.getInstance());
         if (batteryHistoryMap == null || batteryHistoryMap.isEmpty()) {
             return null;
         }
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryHistoryLoader.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryHistoryLoader.java
index 83b2615..9a0e410 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryHistoryLoader.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryHistoryLoader.java
@@ -17,10 +17,9 @@
 
 import android.content.Context;
 
-import com.android.settings.fuelgauge.PowerUsageFeatureProvider;
-import com.android.settings.overlay.FeatureFactory;
 import com.android.settingslib.utils.AsyncLoaderCompat;
 
+import java.util.Calendar;
 import java.util.Map;
 
 /** Loader that can be used to load battery history information. */
@@ -41,8 +40,6 @@
 
     @Override
     public Map<Long, Map<String, BatteryHistEntry>> loadInBackground() {
-        final PowerUsageFeatureProvider powerUsageFeatureProvider =
-                FeatureFactory.getFactory(mContext).getPowerUsageFeatureProvider(mContext);
-        return powerUsageFeatureProvider.getBatteryHistorySinceLastFullCharge(mContext);
+        return DatabaseUtils.getHistoryMapSinceLastFullCharge(mContext, Calendar.getInstance());
     }
 }
diff --git a/src/com/android/settings/fuelgauge/batteryusage/PowerUsageAdvanced.java b/src/com/android/settings/fuelgauge/batteryusage/PowerUsageAdvanced.java
index b88d85d..1c1e6a5 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/PowerUsageAdvanced.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/PowerUsageAdvanced.java
@@ -123,7 +123,7 @@
         super.onPause();
         // Resets the flag to reload usage data in onResume() callback.
         mIsChartDataLoaded = false;
-        final Uri uri = mPowerUsageFeatureProvider.getBatteryHistoryUri();
+        final Uri uri = DatabaseUtils.BATTERY_CONTENT_URI;
         if (uri != null) {
             getContext().getContentResolver().unregisterContentObserver(mBatteryObserver);
         }
@@ -132,7 +132,7 @@
     @Override
     public void onResume() {
         super.onResume();
-        final Uri uri = mPowerUsageFeatureProvider.getBatteryHistoryUri();
+        final Uri uri = DatabaseUtils.BATTERY_CONTENT_URI;
         if (uri != null) {
             getContext().getContentResolver().registerContentObserver(
                     uri, /*notifyForDescendants*/ true, mBatteryObserver);
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryHistoryLoaderTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryHistoryLoaderTest.java
deleted file mode 100644
index 5717857..0000000
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryHistoryLoaderTest.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.settings.fuelgauge.batteryusage;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.Mockito.doReturn;
-
-import android.content.Context;
-
-import com.android.settings.testutils.FakeFeatureFactory;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-
-import java.util.HashMap;
-import java.util.Map;
-
-@RunWith(RobolectricTestRunner.class)
-public final class BatteryHistoryLoaderTest {
-
-    private Context mContext;
-    private FakeFeatureFactory mFeatureFactory;
-    private BatteryHistoryLoader mBatteryHistoryLoader;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-
-        mContext = RuntimeEnvironment.application;
-        mFeatureFactory = FakeFeatureFactory.setupForTest();
-        mBatteryHistoryLoader = new BatteryHistoryLoader(mContext);
-    }
-
-    @Test
-    public void testLoadIBackground_returnsMapFromPowerFeatureProvider() {
-        final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap = new HashMap<>();
-        doReturn(batteryHistoryMap).when(mFeatureFactory.powerUsageFeatureProvider)
-                .getBatteryHistorySinceLastFullCharge(mContext);
-
-        assertThat(mBatteryHistoryLoader.loadInBackground())
-                .isSameInstanceAs(batteryHistoryMap);
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/ConvertUtilsTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/ConvertUtilsTest.java
index 2ae73b1..46ef7bc 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/ConvertUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/ConvertUtilsTest.java
@@ -336,21 +336,6 @@
         // Verifies the fake data is cleared out.
         assertThat(entryList.get(0).getPackageName())
                 .isNotEqualTo(ConvertUtils.FAKE_PACKAGE_NAME);
-
-        // Adds lacked data into the battery history map.
-        final int remainingSize = 25 - batteryHistoryKeys.length;
-        for (int index = 0; index < remainingSize; index++) {
-            batteryHistoryMap.put(105L + index + 1, new HashMap<>());
-        }
-        when(mPowerUsageFeatureProvider.getBatteryHistorySinceLastFullCharge(mContext))
-                .thenReturn(batteryHistoryMap);
-
-        final List<BatteryDiffEntry> batteryDiffEntryList =
-                BatteryChartPreferenceController.getAppBatteryUsageData(mContext);
-
-        assertThat(batteryDiffEntryList).isNotEmpty();
-        final BatteryDiffEntry resultEntry = batteryDiffEntryList.get(0);
-        assertThat(resultEntry.getPackageName()).isEqualTo("package2");
     }
 
     @Test