Hide bluetooth and media in battery settings page.

Media is a bundled process which contains the following packages:

com.android.providers.downloads
com.android.mtp
com.android.providers.media
com.android.providers.downloads.ui

This cl moves them to advanced battery page.
1. Bluetooth lives in category bluetooth
2. Media lives in category system

Bug: 35811926
Test: RunSettingsRoboTests
Change-Id: Ie229fa15e2e62b67d571988f7f4e7788a665bcdd
This commit is contained in:
jackqdyulei
2017-02-28 13:51:24 -08:00
parent 238c1c000b
commit 44e8968662
4 changed files with 30 additions and 4 deletions

View File

@@ -26,6 +26,9 @@ import com.android.internal.util.ArrayUtils;
public class PowerUsageFeatureProviderImpl implements PowerUsageFeatureProvider {
private static final String PACKAGE_CALENDAR_PROVIDER = "com.android.providers.calendar";
private static final String PACKAGE_MEDIA_PROVIDER = "com.android.providers.media";
private static final String[] PACKAGES_SYSTEM = {PACKAGE_MEDIA_PROVIDER,
PACKAGE_CALENDAR_PROVIDER};
protected PackageManager mPackageManager;
@@ -45,9 +48,15 @@ public class PowerUsageFeatureProviderImpl implements PowerUsageFeatureProvider
// Classify all the sippers to type system if the range of uid is 0...FIRST_APPLICATION_UID
if (uid >= Process.ROOT_UID && uid < Process.FIRST_APPLICATION_UID) {
return true;
} else {
return ArrayUtils.contains(sipper.mPackages, PACKAGE_CALENDAR_PROVIDER);
} else if (sipper.mPackages != null) {
for (final String packageName : sipper.mPackages) {
if (ArrayUtils.contains(PACKAGES_SYSTEM, packageName)) {
return true;
}
}
}
return false;
}
@Override

View File

@@ -581,7 +581,7 @@ public class PowerUsageSummary extends PowerUsageBase {
final DrainType drainType = sipper.drainType;
return drainType == DrainType.IDLE || drainType == DrainType.CELL
|| drainType == DrainType.SCREEN
|| drainType == DrainType.SCREEN || drainType == DrainType.BLUETOOTH
|| (sipper.totalPowerMah * SECONDS_IN_HOUR) < MIN_POWER_THRESHOLD_MILLI_AMP
|| mPowerFeatureProvider.isTypeService(sipper)
|| mPowerFeatureProvider.isTypeSystem(sipper);

View File

@@ -35,9 +35,11 @@ import static com.google.common.truth.Truth.assertThat;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class PowerUsageFeatureProviderImplTest {
private static final int UID_CALENDAR = 1234;
private static final int UID_OTHER = Process.FIRST_APPLICATION_UID + 2;
private static final int UID_CALENDAR = Process.FIRST_APPLICATION_UID + 3;
private static final int UID_MEDIA = Process.FIRST_APPLICATION_UID + 4;
private static final String[] PACKAGES_CALENDAR = {"com.android.providers.calendar"};
private static final String[] PACKAGES_MEDIA = {"com.android.providers.media"};
@Mock
private Context mContext;
@Mock
@@ -52,6 +54,7 @@ public class PowerUsageFeatureProviderImplTest {
mPowerFeatureProvider = new PowerUsageFeatureProviderImpl(mContext);
when(mPackageManager.getPackagesForUid(UID_CALENDAR)).thenReturn(PACKAGES_CALENDAR);
when(mPackageManager.getPackagesForUid(UID_MEDIA)).thenReturn(PACKAGES_MEDIA);
mPowerFeatureProvider.mPackageManager = mPackageManager;
mBatterySipper.uidObj = new FakeUid(UID_OTHER);
}
@@ -88,6 +91,14 @@ public class PowerUsageFeatureProviderImplTest {
assertThat(mPowerFeatureProvider.isTypeSystem(mBatterySipper)).isTrue();
}
@Test
public void testIsTypeSystem_AppMedia_ReturnTrue() {
mBatterySipper.drainType = BatterySipper.DrainType.APP;
when(mBatterySipper.getUid()).thenReturn(UID_MEDIA);
assertThat(mPowerFeatureProvider.isTypeSystem(mBatterySipper)).isTrue();
}
@Test
public void testIsTypeSystem_UidOther_ReturnFalse() {
mBatterySipper.drainType = BatterySipper.DrainType.APP;

View File

@@ -291,6 +291,12 @@ public class PowerUsageSummaryTest {
assertThat(mFragment.shouldHideSipper(mNormalBatterySipper)).isTrue();
}
@Test
public void testShouldHideSipper_TypeBluetooth_ReturnTrue() {
mNormalBatterySipper.drainType = BatterySipper.DrainType.BLUETOOTH;
assertThat(mFragment.shouldHideSipper(mNormalBatterySipper)).isTrue();
}
@Test
public void testShouldHideSipper_TypeSystem_ReturnTrue() {
mNormalBatterySipper.drainType = BatterySipper.DrainType.APP;