Remove references to BatteryStatsHelper from AppBatteryPreferenceController

Bug: 173745486
Bug: 180630447
Test: make RunSettingsRoboTests
Test: male RunSettingsGoogleRoboTests
Change-Id: Ic836d9f5e791d1e3ddc2237ff108190e53dcac19
This commit is contained in:
Dmitri Plotnikov
2021-03-13 20:17:58 -08:00
parent a565961bf0
commit 296dce404e
2 changed files with 15 additions and 85 deletions

View File

@@ -30,14 +30,11 @@ import androidx.loader.content.Loader;
import androidx.preference.Preference; import androidx.preference.Preference;
import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceScreen;
import com.android.internal.os.BatterySipper;
import com.android.internal.os.BatteryStatsHelper;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.Utils; import com.android.settings.Utils;
import com.android.settings.core.BasePreferenceController; import com.android.settings.core.BasePreferenceController;
import com.android.settings.fuelgauge.AdvancedPowerUsageDetail; import com.android.settings.fuelgauge.AdvancedPowerUsageDetail;
import com.android.settings.fuelgauge.BatteryEntry; import com.android.settings.fuelgauge.BatteryEntry;
import com.android.settings.fuelgauge.BatteryStatsHelperLoader;
import com.android.settings.fuelgauge.BatteryUsageStatsLoader; import com.android.settings.fuelgauge.BatteryUsageStatsLoader;
import com.android.settings.fuelgauge.BatteryUtils; import com.android.settings.fuelgauge.BatteryUtils;
import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.Lifecycle;
@@ -52,22 +49,11 @@ public class AppBatteryPreferenceController extends BasePreferenceController
private static final String KEY_BATTERY = "battery"; private static final String KEY_BATTERY = "battery";
// TODO(b/180630447): switch to BatteryUsageStatsLoader and remove all references to
// BatteryStatsHelper and BatterySipper
@VisibleForTesting
final BatteryStatsHelperLoaderCallbacks mBatteryStatsHelperLoaderCallbacks =
new BatteryStatsHelperLoaderCallbacks();
@VisibleForTesting @VisibleForTesting
final BatteryUsageStatsLoaderCallbacks mBatteryUsageStatsLoaderCallbacks = final BatteryUsageStatsLoaderCallbacks mBatteryUsageStatsLoaderCallbacks =
new BatteryUsageStatsLoaderCallbacks(); new BatteryUsageStatsLoaderCallbacks();
@VisibleForTesting
BatterySipper mSipper;
@VisibleForTesting
BatteryStatsHelper mBatteryHelper;
@VisibleForTesting @VisibleForTesting
BatteryUtils mBatteryUtils; BatteryUtils mBatteryUtils;
@VisibleForTesting @VisibleForTesting
BatteryUsageStats mBatteryUsageStats; BatteryUsageStats mBatteryUsageStats;
@VisibleForTesting @VisibleForTesting
@@ -124,9 +110,6 @@ public class AppBatteryPreferenceController extends BasePreferenceController
@Override @Override
public void onResume() { public void onResume() {
mParent.getLoaderManager().restartLoader(
AppInfoDashboardFragment.LOADER_BATTERY, Bundle.EMPTY,
mBatteryStatsHelperLoaderCallbacks);
mParent.getLoaderManager().restartLoader( mParent.getLoaderManager().restartLoader(
AppInfoDashboardFragment.LOADER_BATTERY_USAGE_STATS, Bundle.EMPTY, AppInfoDashboardFragment.LOADER_BATTERY_USAGE_STATS, Bundle.EMPTY,
mBatteryUsageStatsLoaderCallbacks); mBatteryUsageStatsLoaderCallbacks);
@@ -134,20 +117,17 @@ public class AppBatteryPreferenceController extends BasePreferenceController
@Override @Override
public void onPause() { public void onPause() {
mParent.getLoaderManager().destroyLoader(AppInfoDashboardFragment.LOADER_BATTERY);
mParent.getLoaderManager().destroyLoader( mParent.getLoaderManager().destroyLoader(
AppInfoDashboardFragment.LOADER_BATTERY_USAGE_STATS); AppInfoDashboardFragment.LOADER_BATTERY_USAGE_STATS);
} }
private void onLoadFinished() { private void onLoadFinished() {
// Wait for both loaders to finish before proceeding. if (mBatteryUsageStats == null) {
if (mBatteryHelper == null || mBatteryUsageStats == null) {
return; return;
} }
final PackageInfo packageInfo = mParent.getPackageInfo(); final PackageInfo packageInfo = mParent.getPackageInfo();
if (packageInfo != null) { if (packageInfo != null) {
mSipper = findTargetSipper(mBatteryHelper, packageInfo.applicationInfo.uid);
mUidBatteryConsumer = findTargetUidBatteryConsumer(mBatteryUsageStats, mUidBatteryConsumer = findTargetUidBatteryConsumer(mBatteryUsageStats,
packageInfo.applicationInfo.uid); packageInfo.applicationInfo.uid);
if (mParent.getActivity() != null) { if (mParent.getActivity() != null) {
@@ -172,19 +152,7 @@ public class AppBatteryPreferenceController extends BasePreferenceController
@VisibleForTesting @VisibleForTesting
boolean isBatteryStatsAvailable() { boolean isBatteryStatsAvailable() {
return mBatteryHelper != null && mSipper != null && mUidBatteryConsumer != null; return mUidBatteryConsumer != null;
}
@VisibleForTesting
BatterySipper findTargetSipper(BatteryStatsHelper batteryHelper, int uid) {
final List<BatterySipper> usageList = batteryHelper.getUsageList();
for (int i = 0, size = usageList.size(); i < size; i++) {
final BatterySipper sipper = usageList.get(i);
if (sipper.getUid() == uid) {
return sipper;
}
}
return null;
} }
@VisibleForTesting @VisibleForTesting
@@ -199,25 +167,6 @@ public class AppBatteryPreferenceController extends BasePreferenceController
return null; return null;
} }
private class BatteryStatsHelperLoaderCallbacks
implements LoaderManager.LoaderCallbacks<BatteryStatsHelper> {
@Override
public Loader<BatteryStatsHelper> onCreateLoader(int id, Bundle args) {
return new BatteryStatsHelperLoader(mContext);
}
@Override
public void onLoadFinished(Loader<BatteryStatsHelper> loader,
BatteryStatsHelper batteryHelper) {
mBatteryHelper = batteryHelper;
AppBatteryPreferenceController.this.onLoadFinished();
}
@Override
public void onLoaderReset(Loader<BatteryStatsHelper> loader) {
}
}
private class BatteryUsageStatsLoaderCallbacks private class BatteryUsageStatsLoaderCallbacks
implements LoaderManager.LoaderCallbacks<BatteryUsageStats> { implements LoaderManager.LoaderCallbacks<BatteryUsageStats> {
@Override @Override

View File

@@ -30,7 +30,6 @@ import android.app.AppOpsManager;
import android.content.Context; import android.content.Context;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.PackageManager.NameNotFoundException;
import android.os.BatteryStats;
import android.os.BatteryUsageStats; import android.os.BatteryUsageStats;
import android.os.Bundle; import android.os.Bundle;
import android.os.UidBatteryConsumer; import android.os.UidBatteryConsumer;
@@ -39,15 +38,12 @@ import androidx.loader.app.LoaderManager;
import androidx.preference.Preference; import androidx.preference.Preference;
import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceScreen;
import com.android.internal.os.BatterySipper;
import com.android.internal.os.BatteryStatsHelper;
import com.android.settings.SettingsActivity; import com.android.settings.SettingsActivity;
import com.android.settings.fuelgauge.BatteryUtils; import com.android.settings.fuelgauge.BatteryUtils;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.mockito.Answers;
import org.mockito.Mock; import org.mockito.Mock;
import org.mockito.MockitoAnnotations; import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner; import org.robolectric.RobolectricTestRunner;
@@ -73,13 +69,7 @@ public class AppBatteryPreferenceControllerTest {
@Mock @Mock
private UidBatteryConsumer mUidBatteryConsumer; private UidBatteryConsumer mUidBatteryConsumer;
@Mock @Mock
private BatterySipper mBatterySipper; private UidBatteryConsumer mOtherUidBatteryConsumer;
@Mock
private BatterySipper mOtherBatterySipper;
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
private BatteryStatsHelper mBatteryStatsHelper;
@Mock
private BatteryStats.Uid mUid;
@Mock @Mock
private PreferenceScreen mScreen; private PreferenceScreen mScreen;
@Mock @Mock
@@ -102,10 +92,8 @@ public class AppBatteryPreferenceControllerTest {
mBatteryPreference = spy(new Preference(RuntimeEnvironment.application)); mBatteryPreference = spy(new Preference(RuntimeEnvironment.application));
mBatterySipper.drainType = BatterySipper.DrainType.IDLE; when(mUidBatteryConsumer.getUid()).thenReturn(TARGET_UID);
mBatterySipper.uidObj = mUid; when(mOtherUidBatteryConsumer.getUid()).thenReturn(OTHER_UID);
doReturn(TARGET_UID).when(mBatterySipper).getUid();
doReturn(OTHER_UID).when(mOtherBatterySipper).getUid();
mController = spy(new AppBatteryPreferenceController( mController = spy(new AppBatteryPreferenceController(
RuntimeEnvironment.application, mFragment, "package1", null /* lifecycle */)); RuntimeEnvironment.application, mFragment, "package1", null /* lifecycle */));
@@ -125,14 +113,14 @@ public class AppBatteryPreferenceControllerTest {
} }
@Test @Test
public void findTargetSipper_findCorrectSipper() { public void findTargetBatteryConsumer_findCorrectBatteryConsumer() {
final List<BatterySipper> usageList = new ArrayList<>(); final List<UidBatteryConsumer> uidBatteryConsumers = new ArrayList<>();
usageList.add(mBatterySipper); uidBatteryConsumers.add(mUidBatteryConsumer);
usageList.add(mOtherBatterySipper); uidBatteryConsumers.add(mOtherUidBatteryConsumer);
when(mBatteryStatsHelper.getUsageList()).thenReturn(usageList); when(mBatteryUsageStats.getUidBatteryConsumers()).thenReturn(uidBatteryConsumers);
assertThat(mController.findTargetSipper(mBatteryStatsHelper, TARGET_UID)) assertThat(mController.findTargetUidBatteryConsumer(mBatteryUsageStats, TARGET_UID))
.isEqualTo(mBatterySipper); .isEqualTo(mUidBatteryConsumer);
} }
@Test @Test
@@ -147,13 +135,10 @@ public class AppBatteryPreferenceControllerTest {
@Test @Test
public void updateBattery_hasBatteryStats_summaryPercent() { public void updateBattery_hasBatteryStats_summaryPercent() {
mController.mBatteryHelper = mBatteryStatsHelper;
mController.mSipper = mBatterySipper;
mController.mBatteryUsageStats = mBatteryUsageStats; mController.mBatteryUsageStats = mBatteryUsageStats;
mController.mUidBatteryConsumer = mUidBatteryConsumer; mController.mUidBatteryConsumer = mUidBatteryConsumer;
doReturn(BATTERY_LEVEL).when(mBatteryUtils).calculateBatteryPercent(anyDouble(), doReturn(BATTERY_LEVEL).when(mBatteryUtils).calculateBatteryPercent(anyDouble(),
anyDouble(), anyInt()); anyDouble(), anyInt());
doReturn(new ArrayList<>()).when(mBatteryStatsHelper).getUsageList();
mController.displayPreference(mScreen); mController.displayPreference(mScreen);
mController.updateBattery(); mController.updateBattery();
@@ -163,8 +148,6 @@ public class AppBatteryPreferenceControllerTest {
@Test @Test
public void isBatteryStatsAvailable_hasBatteryStatsHelperAndSipper_returnTrue() { public void isBatteryStatsAvailable_hasBatteryStatsHelperAndSipper_returnTrue() {
mController.mBatteryHelper = mBatteryStatsHelper;
mController.mSipper = mBatterySipper;
mController.mBatteryUsageStats = mBatteryUsageStats; mController.mBatteryUsageStats = mBatteryUsageStats;
mController.mUidBatteryConsumer = mUidBatteryConsumer; mController.mUidBatteryConsumer = mUidBatteryConsumer;
@@ -183,8 +166,6 @@ public class AppBatteryPreferenceControllerTest {
when(mFragment.getActivity()).thenReturn(mActivity); when(mFragment.getActivity()).thenReturn(mActivity);
final String key = mController.getPreferenceKey(); final String key = mController.getPreferenceKey();
when(mBatteryPreference.getKey()).thenReturn(key); when(mBatteryPreference.getKey()).thenReturn(key);
mController.mSipper = mBatterySipper;
mController.mBatteryHelper = mBatteryStatsHelper;
mController.mBatteryUsageStats = mBatteryUsageStats; mController.mBatteryUsageStats = mBatteryUsageStats;
mController.mUidBatteryConsumer = mUidBatteryConsumer; mController.mUidBatteryConsumer = mUidBatteryConsumer;
@@ -199,8 +180,8 @@ public class AppBatteryPreferenceControllerTest {
mController.onResume(); mController.onResume();
verify(mLoaderManager) verify(mLoaderManager)
.restartLoader(AppInfoDashboardFragment.LOADER_BATTERY, Bundle.EMPTY, .restartLoader(AppInfoDashboardFragment.LOADER_BATTERY_USAGE_STATS, Bundle.EMPTY,
mController.mBatteryStatsHelperLoaderCallbacks); mController.mBatteryUsageStatsLoaderCallbacks);
} }
@Test @Test
@@ -209,6 +190,6 @@ public class AppBatteryPreferenceControllerTest {
mController.onPause(); mController.onPause();
verify(mLoaderManager).destroyLoader(AppInfoDashboardFragment.LOADER_BATTERY); verify(mLoaderManager).destroyLoader(AppInfoDashboardFragment.LOADER_BATTERY_USAGE_STATS);
} }
} }