From cdba2e7266ad4a3b2534cb6494c8f5766fbc42c5 Mon Sep 17 00:00:00 2001 From: jackqdyulei Date: Mon, 17 Apr 2017 14:54:29 -0700 Subject: [PATCH] Hide User category if only one user in device Fix: 37293124 Test: RunSettingsRoboTests Change-Id: If50548396614672b05811d37a719f8f08df3165d --- .../fuelgauge/PowerUsageAdvanced.java | 13 ++++++----- .../fuelgauge/PowerUsageAdvancedTest.java | 23 +++++++++++++++++-- 2 files changed, 28 insertions(+), 8 deletions(-) diff --git a/src/com/android/settings/fuelgauge/PowerUsageAdvanced.java b/src/com/android/settings/fuelgauge/PowerUsageAdvanced.java index a0ebba815e7..5bb289a4859 100644 --- a/src/com/android/settings/fuelgauge/PowerUsageAdvanced.java +++ b/src/com/android/settings/fuelgauge/PowerUsageAdvanced.java @@ -218,12 +218,9 @@ public class PowerUsageAdvanced extends PowerUsageBase { @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 @@ public class PowerUsageAdvanced extends PowerUsageBase { 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 3f87bb4f69d..7359d91cf9f 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 @@ package com.android.settings.fuelgauge; 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 @@ public class PowerUsageAdvancedTest { private PowerUsageFeatureProvider mPowerUsageFeatureProvider; @Mock private PackageManager mPackageManager; + @Mock + private UserManager mUserManager; private PowerUsageAdvanced mPowerUsageAdvanced; private PowerUsageData mPowerUsageData; private Context mShadowContext; @@ -104,6 +107,7 @@ public class PowerUsageAdvancedTest { 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 @@ public class PowerUsageAdvancedTest { } @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; @@ -239,6 +242,22 @@ public class PowerUsageAdvancedTest { 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 public void testShouldHideCategory_typeNormal_returnFalse() { mPowerUsageData.usageType = UsageType.APP;