Hide User category if only one user in device

Fix: 37293124
Test: RunSettingsRoboTests
Change-Id: If50548396614672b05811d37a719f8f08df3165d
This commit is contained in:
jackqdyulei
2017-04-17 14:54:29 -07:00
parent 667d694220
commit cdba2e7266
2 changed files with 28 additions and 8 deletions

View File

@@ -218,12 +218,9 @@ public class PowerUsageAdvanced extends PowerUsageBase {
@VisibleForTesting @VisibleForTesting
boolean shouldHideCategory(PowerUsageData powerUsageData) { boolean shouldHideCategory(PowerUsageData powerUsageData) {
if (powerUsageData.usageType == UsageType.UNACCOUNTED return powerUsageData.usageType == UsageType.UNACCOUNTED
|| powerUsageData.usageType == UsageType.OVERCOUNTED) { || powerUsageData.usageType == UsageType.OVERCOUNTED
return true; || (powerUsageData.usageType == UsageType.USER && mUserManager.getUserCount() == 1);
}
return false;
} }
@VisibleForTesting @VisibleForTesting
@@ -309,6 +306,10 @@ public class PowerUsageAdvanced extends PowerUsageBase {
void setPowerUsageFeatureProvider(PowerUsageFeatureProvider provider) { void setPowerUsageFeatureProvider(PowerUsageFeatureProvider provider) {
mPowerUsageFeatureProvider = provider; mPowerUsageFeatureProvider = provider;
} }
@VisibleForTesting
void setUserManager(UserManager userManager) {
mUserManager = userManager;
}
/** /**
* Class that contains data used in {@link PowerGaugePreference}. * Class that contains data used in {@link PowerGaugePreference}.

View File

@@ -17,6 +17,7 @@ package com.android.settings.fuelgauge;
import android.content.Context; import android.content.Context;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.os.UserManager;
import com.android.internal.os.BatterySipper; import com.android.internal.os.BatterySipper;
import com.android.internal.os.BatterySipper.DrainType; import com.android.internal.os.BatterySipper.DrainType;
@@ -75,6 +76,8 @@ public class PowerUsageAdvancedTest {
private PowerUsageFeatureProvider mPowerUsageFeatureProvider; private PowerUsageFeatureProvider mPowerUsageFeatureProvider;
@Mock @Mock
private PackageManager mPackageManager; private PackageManager mPackageManager;
@Mock
private UserManager mUserManager;
private PowerUsageAdvanced mPowerUsageAdvanced; private PowerUsageAdvanced mPowerUsageAdvanced;
private PowerUsageData mPowerUsageData; private PowerUsageData mPowerUsageData;
private Context mShadowContext; private Context mShadowContext;
@@ -104,6 +107,7 @@ public class PowerUsageAdvancedTest {
doReturn(STUB_STRING).when(mPowerUsageAdvanced).getString(anyInt(), any()); doReturn(STUB_STRING).when(mPowerUsageAdvanced).getString(anyInt(), any());
mPowerUsageAdvanced.setPackageManager(mPackageManager); mPowerUsageAdvanced.setPackageManager(mPackageManager);
mPowerUsageAdvanced.setPowerUsageFeatureProvider(mPowerUsageFeatureProvider); mPowerUsageAdvanced.setPowerUsageFeatureProvider(mPowerUsageFeatureProvider);
mPowerUsageAdvanced.setUserManager(mUserManager);
mPowerUsageData = new PowerUsageData(UsageType.APP); mPowerUsageData = new PowerUsageData(UsageType.APP);
mMaxBatterySipper.totalPowerMah = TYPE_BLUETOOTH_USAGE; mMaxBatterySipper.totalPowerMah = TYPE_BLUETOOTH_USAGE;
@@ -225,13 +229,12 @@ public class PowerUsageAdvancedTest {
} }
@Test @Test
public void testShouldHide_typeUnAccounted_returnTrue() { public void testShouldHideCategory_typeUnAccounted_returnTrue() {
mPowerUsageData.usageType = UsageType.UNACCOUNTED; mPowerUsageData.usageType = UsageType.UNACCOUNTED;
assertThat(mPowerUsageAdvanced.shouldHideCategory(mPowerUsageData)).isTrue(); assertThat(mPowerUsageAdvanced.shouldHideCategory(mPowerUsageData)).isTrue();
} }
@Test @Test
public void testShouldHideCategory_typeOverCounted_returnTrue() { public void testShouldHideCategory_typeOverCounted_returnTrue() {
mPowerUsageData.usageType = UsageType.OVERCOUNTED; mPowerUsageData.usageType = UsageType.OVERCOUNTED;
@@ -239,6 +242,22 @@ public class PowerUsageAdvancedTest {
assertThat(mPowerUsageAdvanced.shouldHideCategory(mPowerUsageData)).isTrue(); assertThat(mPowerUsageAdvanced.shouldHideCategory(mPowerUsageData)).isTrue();
} }
@Test
public void testShouldHideCategory_typeUserAndOnlyOne_returnTrue() {
mPowerUsageData.usageType = UsageType.USER;
doReturn(1).when(mUserManager).getUserCount();
assertThat(mPowerUsageAdvanced.shouldHideCategory(mPowerUsageData)).isTrue();
}
@Test
public void testShouldHideCategory_typeUserAndMoreThanOne_returnFalse() {
mPowerUsageData.usageType = UsageType.USER;
doReturn(2).when(mUserManager).getUserCount();
assertThat(mPowerUsageAdvanced.shouldHideCategory(mPowerUsageData)).isFalse();
}
@Test @Test
public void testShouldHideCategory_typeNormal_returnFalse() { public void testShouldHideCategory_typeNormal_returnFalse() {
mPowerUsageData.usageType = UsageType.APP; mPowerUsageData.usageType = UsageType.APP;