Merge "Hide bluetooth and media in battery settings page."
This commit is contained in:
@@ -26,6 +26,9 @@ import com.android.internal.util.ArrayUtils;
|
|||||||
public class PowerUsageFeatureProviderImpl implements PowerUsageFeatureProvider {
|
public class PowerUsageFeatureProviderImpl implements PowerUsageFeatureProvider {
|
||||||
|
|
||||||
private static final String PACKAGE_CALENDAR_PROVIDER = "com.android.providers.calendar";
|
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;
|
protected PackageManager mPackageManager;
|
||||||
|
|
||||||
@@ -45,10 +48,16 @@ public class PowerUsageFeatureProviderImpl implements PowerUsageFeatureProvider
|
|||||||
// Classify all the sippers to type system if the range of uid is 0...FIRST_APPLICATION_UID
|
// 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) {
|
if (uid >= Process.ROOT_UID && uid < Process.FIRST_APPLICATION_UID) {
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else if (sipper.mPackages != null) {
|
||||||
return ArrayUtils.contains(sipper.mPackages, PACKAGE_CALENDAR_PROVIDER);
|
for (final String packageName : sipper.mPackages) {
|
||||||
|
if (ArrayUtils.contains(PACKAGES_SYSTEM, packageName)) {
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isLocationSettingEnabled(String[] packages) {
|
public boolean isLocationSettingEnabled(String[] packages) {
|
||||||
|
@@ -581,7 +581,7 @@ public class PowerUsageSummary extends PowerUsageBase {
|
|||||||
final DrainType drainType = sipper.drainType;
|
final DrainType drainType = sipper.drainType;
|
||||||
|
|
||||||
return drainType == DrainType.IDLE || drainType == DrainType.CELL
|
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
|
|| (sipper.totalPowerMah * SECONDS_IN_HOUR) < MIN_POWER_THRESHOLD_MILLI_AMP
|
||||||
|| mPowerFeatureProvider.isTypeService(sipper)
|
|| mPowerFeatureProvider.isTypeService(sipper)
|
||||||
|| mPowerFeatureProvider.isTypeSystem(sipper);
|
|| mPowerFeatureProvider.isTypeSystem(sipper);
|
||||||
|
@@ -35,9 +35,11 @@ import static com.google.common.truth.Truth.assertThat;
|
|||||||
@RunWith(SettingsRobolectricTestRunner.class)
|
@RunWith(SettingsRobolectricTestRunner.class)
|
||||||
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
|
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
|
||||||
public class PowerUsageFeatureProviderImplTest {
|
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_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_CALENDAR = {"com.android.providers.calendar"};
|
||||||
|
private static final String[] PACKAGES_MEDIA = {"com.android.providers.media"};
|
||||||
@Mock
|
@Mock
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
@Mock
|
@Mock
|
||||||
@@ -52,6 +54,7 @@ public class PowerUsageFeatureProviderImplTest {
|
|||||||
|
|
||||||
mPowerFeatureProvider = new PowerUsageFeatureProviderImpl(mContext);
|
mPowerFeatureProvider = new PowerUsageFeatureProviderImpl(mContext);
|
||||||
when(mPackageManager.getPackagesForUid(UID_CALENDAR)).thenReturn(PACKAGES_CALENDAR);
|
when(mPackageManager.getPackagesForUid(UID_CALENDAR)).thenReturn(PACKAGES_CALENDAR);
|
||||||
|
when(mPackageManager.getPackagesForUid(UID_MEDIA)).thenReturn(PACKAGES_MEDIA);
|
||||||
mPowerFeatureProvider.mPackageManager = mPackageManager;
|
mPowerFeatureProvider.mPackageManager = mPackageManager;
|
||||||
mBatterySipper.uidObj = new FakeUid(UID_OTHER);
|
mBatterySipper.uidObj = new FakeUid(UID_OTHER);
|
||||||
}
|
}
|
||||||
@@ -88,6 +91,14 @@ public class PowerUsageFeatureProviderImplTest {
|
|||||||
assertThat(mPowerFeatureProvider.isTypeSystem(mBatterySipper)).isTrue();
|
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
|
@Test
|
||||||
public void testIsTypeSystem_UidOther_ReturnFalse() {
|
public void testIsTypeSystem_UidOther_ReturnFalse() {
|
||||||
mBatterySipper.drainType = BatterySipper.DrainType.APP;
|
mBatterySipper.drainType = BatterySipper.DrainType.APP;
|
||||||
|
@@ -291,6 +291,12 @@ public class PowerUsageSummaryTest {
|
|||||||
assertThat(mFragment.shouldHideSipper(mNormalBatterySipper)).isTrue();
|
assertThat(mFragment.shouldHideSipper(mNormalBatterySipper)).isTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testShouldHideSipper_TypeBluetooth_ReturnTrue() {
|
||||||
|
mNormalBatterySipper.drainType = BatterySipper.DrainType.BLUETOOTH;
|
||||||
|
assertThat(mFragment.shouldHideSipper(mNormalBatterySipper)).isTrue();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testShouldHideSipper_TypeSystem_ReturnTrue() {
|
public void testShouldHideSipper_TypeSystem_ReturnTrue() {
|
||||||
mNormalBatterySipper.drainType = BatterySipper.DrainType.APP;
|
mNormalBatterySipper.drainType = BatterySipper.DrainType.APP;
|
||||||
|
Reference in New Issue
Block a user