Don't consider managedProfile in PowerUsageAdvanced
When calculating how many uses exists, we shouldn't count the managedProfile since this is not the normal user. Bug: 37681923 Test: RunSettingsRoboTests Change-Id: Ic24e98f8e8696530d534bc9e1d8f675ad6ad5063
This commit is contained in:
@@ -18,6 +18,7 @@ import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.UserInfo;
|
||||
import android.os.BatteryManager;
|
||||
import android.os.BatteryStats;
|
||||
import android.os.Bundle;
|
||||
@@ -250,7 +251,7 @@ public class PowerUsageAdvanced extends PowerUsageBase {
|
||||
boolean shouldHideCategory(PowerUsageData powerUsageData) {
|
||||
return powerUsageData.usageType == UsageType.UNACCOUNTED
|
||||
|| powerUsageData.usageType == UsageType.OVERCOUNTED
|
||||
|| (powerUsageData.usageType == UsageType.USER && mUserManager.getUserCount() == 1)
|
||||
|| (powerUsageData.usageType == UsageType.USER && isSingleNormalUser())
|
||||
|| (powerUsageData.usageType == UsageType.CELL
|
||||
&& !DataUsageUtils.hasMobileData(getContext()));
|
||||
}
|
||||
@@ -373,6 +374,18 @@ public class PowerUsageAdvanced extends PowerUsageBase {
|
||||
mBatteryUtils = batteryUtils;
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
boolean isSingleNormalUser() {
|
||||
int count = 0;
|
||||
for (UserInfo userInfo : mUserManager.getUsers()) {
|
||||
if (userInfo.isEnabled() && !userInfo.isManagedProfile()) {
|
||||
count++;
|
||||
}
|
||||
}
|
||||
|
||||
return count == 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Class that contains data used in {@link PowerGaugePreference}.
|
||||
*/
|
||||
|
@@ -31,6 +31,7 @@ import static org.mockito.Mockito.when;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.UserInfo;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.os.UserManager;
|
||||
import android.support.v7.preference.PreferenceCategory;
|
||||
@@ -93,6 +94,10 @@ public class PowerUsageAdvancedTest {
|
||||
private PreferenceGroup mUsageListGroup;
|
||||
@Mock
|
||||
private ConnectivityManager mConnectivityManager;
|
||||
@Mock
|
||||
private UserInfo mNormalUserInfo;
|
||||
@Mock
|
||||
private UserInfo mManagedUserInfo;
|
||||
private PowerUsageAdvanced mPowerUsageAdvanced;
|
||||
private PowerUsageData mPowerUsageData;
|
||||
private Context mShadowContext;
|
||||
@@ -136,6 +141,11 @@ public class PowerUsageAdvancedTest {
|
||||
mMaxBatterySipper.totalPowerMah = TYPE_BLUETOOTH_USAGE;
|
||||
mMaxBatterySipper.drainType = DrainType.BLUETOOTH;
|
||||
mNormalBatterySipper.drainType = DrainType.SCREEN;
|
||||
|
||||
doReturn(true).when(mNormalUserInfo).isEnabled();
|
||||
doReturn(false).when(mNormalUserInfo).isManagedProfile();
|
||||
doReturn(true).when(mManagedUserInfo).isEnabled();
|
||||
doReturn(true).when(mManagedUserInfo).isManagedProfile();
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -293,9 +303,12 @@ public class PowerUsageAdvancedTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testShouldHideCategory_typeUserAndOnlyOne_returnTrue() {
|
||||
public void testShouldHideCategory_typeUserAndOnlyOneNormalUser_returnTrue() {
|
||||
mPowerUsageData.usageType = UsageType.USER;
|
||||
doReturn(1).when(mUserManager).getUserCount();
|
||||
List<UserInfo> userInfos = new ArrayList<>();
|
||||
userInfos.add(mNormalUserInfo);
|
||||
userInfos.add(mManagedUserInfo);
|
||||
doReturn(userInfos).when(mUserManager).getUsers();
|
||||
|
||||
assertThat(mPowerUsageAdvanced.shouldHideCategory(mPowerUsageData)).isTrue();
|
||||
}
|
||||
@@ -321,7 +334,10 @@ public class PowerUsageAdvancedTest {
|
||||
@Test
|
||||
public void testShouldHideCategory_typeUserAndMoreThanOne_returnFalse() {
|
||||
mPowerUsageData.usageType = UsageType.USER;
|
||||
doReturn(2).when(mUserManager).getUserCount();
|
||||
List<UserInfo> userInfos = new ArrayList<>();
|
||||
userInfos.add(mNormalUserInfo);
|
||||
userInfos.add(mNormalUserInfo);
|
||||
doReturn(userInfos).when(mUserManager).getUsers();
|
||||
|
||||
assertThat(mPowerUsageAdvanced.shouldHideCategory(mPowerUsageData)).isFalse();
|
||||
}
|
||||
@@ -423,4 +439,5 @@ public class PowerUsageAdvancedTest {
|
||||
mPowerUsageAdvanced.refreshUi();
|
||||
verify(mHistPref, atLeastOnce()).setBottomSummary(any());
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user