Hide User category if only one user in device
Fix: 37293124
Test: RunSettingsRoboTests
Change-Id: If50548396614672b05811d37a719f8f08df3165d
diff --git a/src/com/android/settings/fuelgauge/PowerUsageAdvanced.java b/src/com/android/settings/fuelgauge/PowerUsageAdvanced.java
index a0ebba8..5bb289a 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageAdvanced.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageAdvanced.java
@@ -218,12 +218,9 @@
@VisibleForTesting
boolean shouldHideCategory(PowerUsageData powerUsageData) {
- if (powerUsageData.usageType == UsageType.UNACCOUNTED
- || powerUsageData.usageType == UsageType.OVERCOUNTED) {
- return true;
- }
-
- return false;
+ return powerUsageData.usageType == UsageType.UNACCOUNTED
+ || powerUsageData.usageType == UsageType.OVERCOUNTED
+ || (powerUsageData.usageType == UsageType.USER && mUserManager.getUserCount() == 1);
}
@VisibleForTesting
@@ -309,6 +306,10 @@
void setPowerUsageFeatureProvider(PowerUsageFeatureProvider provider) {
mPowerUsageFeatureProvider = provider;
}
+ @VisibleForTesting
+ void setUserManager(UserManager userManager) {
+ mUserManager = userManager;
+ }
/**
* Class that contains data used in {@link PowerGaugePreference}.
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageAdvancedTest.java b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageAdvancedTest.java
index 3f87bb4..7359d91 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageAdvancedTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageAdvancedTest.java
@@ -17,6 +17,7 @@
import android.content.Context;
import android.content.pm.PackageManager;
+import android.os.UserManager;
import com.android.internal.os.BatterySipper;
import com.android.internal.os.BatterySipper.DrainType;
@@ -75,6 +76,8 @@
private PowerUsageFeatureProvider mPowerUsageFeatureProvider;
@Mock
private PackageManager mPackageManager;
+ @Mock
+ private UserManager mUserManager;
private PowerUsageAdvanced mPowerUsageAdvanced;
private PowerUsageData mPowerUsageData;
private Context mShadowContext;
@@ -104,6 +107,7 @@
doReturn(STUB_STRING).when(mPowerUsageAdvanced).getString(anyInt(), any());
mPowerUsageAdvanced.setPackageManager(mPackageManager);
mPowerUsageAdvanced.setPowerUsageFeatureProvider(mPowerUsageFeatureProvider);
+ mPowerUsageAdvanced.setUserManager(mUserManager);
mPowerUsageData = new PowerUsageData(UsageType.APP);
mMaxBatterySipper.totalPowerMah = TYPE_BLUETOOTH_USAGE;
@@ -225,13 +229,12 @@
}
@Test
- public void testShouldHide_typeUnAccounted_returnTrue() {
+ public void testShouldHideCategory_typeUnAccounted_returnTrue() {
mPowerUsageData.usageType = UsageType.UNACCOUNTED;
assertThat(mPowerUsageAdvanced.shouldHideCategory(mPowerUsageData)).isTrue();
}
-
@Test
public void testShouldHideCategory_typeOverCounted_returnTrue() {
mPowerUsageData.usageType = UsageType.OVERCOUNTED;
@@ -240,6 +243,22 @@
}
@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
public void testShouldHideCategory_typeNormal_returnFalse() {
mPowerUsageData.usageType = UsageType.APP;