Replaces getBatteryHistoryUri and getBatteryHistorySinceLastFullCharge

with the new functions in DatabaseUtils.

Bug: 253395332
Test: make RunSettingsRoboTests + manually
Change-Id: I5f60cef80d1e9ba3f87ab6f84492463152a40276
This commit is contained in:
Kuan Wang
2022-10-25 20:37:11 +08:00
parent df05a1378b
commit c5c87b7774
7 changed files with 6 additions and 109 deletions

View File

@@ -18,7 +18,6 @@ package com.android.settings.fuelgauge;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.net.Uri;
import android.util.SparseIntArray; import android.util.SparseIntArray;
import com.android.settings.fuelgauge.batteryusage.BatteryHistEntry; import com.android.settings.fuelgauge.batteryusage.BatteryHistEntry;
@@ -154,16 +153,6 @@ public interface PowerUsageFeatureProvider {
*/ */
Map<Long, Map<String, BatteryHistEntry>> getBatteryHistory(Context context); 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. * Returns {@link Set} for hidding applications background usage time.
*/ */

View File

@@ -19,7 +19,6 @@ package com.android.settings.fuelgauge;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Process; import android.os.Process;
import android.util.ArraySet; import android.util.ArraySet;
import android.util.SparseIntArray; import android.util.SparseIntArray;
@@ -169,17 +168,6 @@ public class PowerUsageFeatureProviderImpl implements PowerUsageFeatureProvider
return null; return null;
} }
@Override
public Map<Long, Map<String, BatteryHistEntry>> getBatteryHistorySinceLastFullCharge(
Context context) {
return null;
}
@Override
public Uri getBatteryHistoryUri() {
return null;
}
@Override @Override
public Set<CharSequence> getHideBackgroundUsageTimeSet(Context context) { public Set<CharSequence> getHideBackgroundUsageTimeSet(Context context) {
return new ArraySet<>(); return new ArraySet<>();

View File

@@ -58,6 +58,7 @@ import com.android.settingslib.utils.StringUtil;
import com.android.settingslib.widget.FooterPreference; import com.android.settingslib.widget.FooterPreference;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@@ -760,9 +761,7 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll
public static List<BatteryDiffEntry> getAppBatteryUsageData(Context context) { public static List<BatteryDiffEntry> getAppBatteryUsageData(Context context) {
final long start = System.currentTimeMillis(); final long start = System.currentTimeMillis();
final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap = final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap =
FeatureFactory.getFactory(context) DatabaseUtils.getHistoryMapSinceLastFullCharge(context, Calendar.getInstance());
.getPowerUsageFeatureProvider(context)
.getBatteryHistorySinceLastFullCharge(context);
if (batteryHistoryMap == null || batteryHistoryMap.isEmpty()) { if (batteryHistoryMap == null || batteryHistoryMap.isEmpty()) {
return null; return null;
} }

View File

@@ -17,10 +17,9 @@ package com.android.settings.fuelgauge.batteryusage;
import android.content.Context; import android.content.Context;
import com.android.settings.fuelgauge.PowerUsageFeatureProvider;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.utils.AsyncLoaderCompat; import com.android.settingslib.utils.AsyncLoaderCompat;
import java.util.Calendar;
import java.util.Map; import java.util.Map;
/** Loader that can be used to load battery history information. */ /** Loader that can be used to load battery history information. */
@@ -41,8 +40,6 @@ public class BatteryHistoryLoader
@Override @Override
public Map<Long, Map<String, BatteryHistEntry>> loadInBackground() { public Map<Long, Map<String, BatteryHistEntry>> loadInBackground() {
final PowerUsageFeatureProvider powerUsageFeatureProvider = return DatabaseUtils.getHistoryMapSinceLastFullCharge(mContext, Calendar.getInstance());
FeatureFactory.getFactory(mContext).getPowerUsageFeatureProvider(mContext);
return powerUsageFeatureProvider.getBatteryHistorySinceLastFullCharge(mContext);
} }
} }

View File

@@ -123,7 +123,7 @@ public class PowerUsageAdvanced extends PowerUsageBase {
super.onPause(); super.onPause();
// Resets the flag to reload usage data in onResume() callback. // Resets the flag to reload usage data in onResume() callback.
mIsChartDataLoaded = false; mIsChartDataLoaded = false;
final Uri uri = mPowerUsageFeatureProvider.getBatteryHistoryUri(); final Uri uri = DatabaseUtils.BATTERY_CONTENT_URI;
if (uri != null) { if (uri != null) {
getContext().getContentResolver().unregisterContentObserver(mBatteryObserver); getContext().getContentResolver().unregisterContentObserver(mBatteryObserver);
} }
@@ -132,7 +132,7 @@ public class PowerUsageAdvanced extends PowerUsageBase {
@Override @Override
public void onResume() { public void onResume() {
super.onResume(); super.onResume();
final Uri uri = mPowerUsageFeatureProvider.getBatteryHistoryUri(); final Uri uri = DatabaseUtils.BATTERY_CONTENT_URI;
if (uri != null) { if (uri != null) {
getContext().getContentResolver().registerContentObserver( getContext().getContentResolver().registerContentObserver(
uri, /*notifyForDescendants*/ true, mBatteryObserver); uri, /*notifyForDescendants*/ true, mBatteryObserver);

View File

@@ -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);
}
}

View File

@@ -336,21 +336,6 @@ public final class ConvertUtilsTest {
// Verifies the fake data is cleared out. // Verifies the fake data is cleared out.
assertThat(entryList.get(0).getPackageName()) assertThat(entryList.get(0).getPackageName())
.isNotEqualTo(ConvertUtils.FAKE_PACKAGE_NAME); .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 @Test