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.Intent;
|
||||||
import android.content.IntentFilter;
|
import android.content.IntentFilter;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
|
import android.content.pm.UserInfo;
|
||||||
import android.os.BatteryManager;
|
import android.os.BatteryManager;
|
||||||
import android.os.BatteryStats;
|
import android.os.BatteryStats;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
@@ -250,7 +251,7 @@ public class PowerUsageAdvanced extends PowerUsageBase {
|
|||||||
boolean shouldHideCategory(PowerUsageData powerUsageData) {
|
boolean shouldHideCategory(PowerUsageData powerUsageData) {
|
||||||
return powerUsageData.usageType == UsageType.UNACCOUNTED
|
return powerUsageData.usageType == UsageType.UNACCOUNTED
|
||||||
|| powerUsageData.usageType == UsageType.OVERCOUNTED
|
|| powerUsageData.usageType == UsageType.OVERCOUNTED
|
||||||
|| (powerUsageData.usageType == UsageType.USER && mUserManager.getUserCount() == 1)
|
|| (powerUsageData.usageType == UsageType.USER && isSingleNormalUser())
|
||||||
|| (powerUsageData.usageType == UsageType.CELL
|
|| (powerUsageData.usageType == UsageType.CELL
|
||||||
&& !DataUsageUtils.hasMobileData(getContext()));
|
&& !DataUsageUtils.hasMobileData(getContext()));
|
||||||
}
|
}
|
||||||
@@ -373,6 +374,18 @@ public class PowerUsageAdvanced extends PowerUsageBase {
|
|||||||
mBatteryUtils = batteryUtils;
|
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}.
|
* 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.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
|
import android.content.pm.UserInfo;
|
||||||
import android.net.ConnectivityManager;
|
import android.net.ConnectivityManager;
|
||||||
import android.os.UserManager;
|
import android.os.UserManager;
|
||||||
import android.support.v7.preference.PreferenceCategory;
|
import android.support.v7.preference.PreferenceCategory;
|
||||||
@@ -93,6 +94,10 @@ public class PowerUsageAdvancedTest {
|
|||||||
private PreferenceGroup mUsageListGroup;
|
private PreferenceGroup mUsageListGroup;
|
||||||
@Mock
|
@Mock
|
||||||
private ConnectivityManager mConnectivityManager;
|
private ConnectivityManager mConnectivityManager;
|
||||||
|
@Mock
|
||||||
|
private UserInfo mNormalUserInfo;
|
||||||
|
@Mock
|
||||||
|
private UserInfo mManagedUserInfo;
|
||||||
private PowerUsageAdvanced mPowerUsageAdvanced;
|
private PowerUsageAdvanced mPowerUsageAdvanced;
|
||||||
private PowerUsageData mPowerUsageData;
|
private PowerUsageData mPowerUsageData;
|
||||||
private Context mShadowContext;
|
private Context mShadowContext;
|
||||||
@@ -136,6 +141,11 @@ public class PowerUsageAdvancedTest {
|
|||||||
mMaxBatterySipper.totalPowerMah = TYPE_BLUETOOTH_USAGE;
|
mMaxBatterySipper.totalPowerMah = TYPE_BLUETOOTH_USAGE;
|
||||||
mMaxBatterySipper.drainType = DrainType.BLUETOOTH;
|
mMaxBatterySipper.drainType = DrainType.BLUETOOTH;
|
||||||
mNormalBatterySipper.drainType = DrainType.SCREEN;
|
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
|
@Test
|
||||||
@@ -293,9 +303,12 @@ public class PowerUsageAdvancedTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testShouldHideCategory_typeUserAndOnlyOne_returnTrue() {
|
public void testShouldHideCategory_typeUserAndOnlyOneNormalUser_returnTrue() {
|
||||||
mPowerUsageData.usageType = UsageType.USER;
|
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();
|
assertThat(mPowerUsageAdvanced.shouldHideCategory(mPowerUsageData)).isTrue();
|
||||||
}
|
}
|
||||||
@@ -321,7 +334,10 @@ public class PowerUsageAdvancedTest {
|
|||||||
@Test
|
@Test
|
||||||
public void testShouldHideCategory_typeUserAndMoreThanOne_returnFalse() {
|
public void testShouldHideCategory_typeUserAndMoreThanOne_returnFalse() {
|
||||||
mPowerUsageData.usageType = UsageType.USER;
|
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();
|
assertThat(mPowerUsageAdvanced.shouldHideCategory(mPowerUsageData)).isFalse();
|
||||||
}
|
}
|
||||||
@@ -423,4 +439,5 @@ public class PowerUsageAdvancedTest {
|
|||||||
mPowerUsageAdvanced.refreshUi();
|
mPowerUsageAdvanced.refreshUi();
|
||||||
verify(mHistPref, atLeastOnce()).setBottomSummary(any());
|
verify(mHistPref, atLeastOnce()).setBottomSummary(any());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user