import com.android.internal.os.BatteryStatsHelper;
import com.android.settings.R;
import com.android.settings.Utils;
+import com.android.settings.datausage.DataUsageUtils;
import com.android.settings.fuelgauge.PowerUsageAdvanced.PowerUsageData.UsageType;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.search.BaseSearchIndexProvider;
boolean shouldHideCategory(PowerUsageData powerUsageData) {
return powerUsageData.usageType == UsageType.UNACCOUNTED
|| powerUsageData.usageType == UsageType.OVERCOUNTED
- || (powerUsageData.usageType == UsageType.USER && mUserManager.getUserCount() == 1);
+ || (powerUsageData.usageType == UsageType.USER && mUserManager.getUserCount() == 1)
+ || (powerUsageData.usageType == UsageType.CELL
+ && !DataUsageUtils.hasMobileData(getContext()));
}
@VisibleForTesting
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
+import android.net.ConnectivityManager;
import android.os.UserManager;
import android.support.v7.preference.PreferenceCategory;
import android.support.v7.preference.PreferenceGroup;
private BatteryHistoryPreference mHistPref;
@Mock
private PreferenceGroup mUsageListGroup;
+ @Mock
+ private ConnectivityManager mConnectivityManager;
private PowerUsageAdvanced mPowerUsageAdvanced;
private PowerUsageData mPowerUsageData;
private Context mShadowContext;
mPowerUsageAdvanced.setPowerUsageFeatureProvider(mPowerUsageFeatureProvider);
mPowerUsageAdvanced.setUserManager(mUserManager);
mPowerUsageAdvanced.setBatteryUtils(BatteryUtils.getInstance(mShadowContext));
+ when(mShadowContext.getSystemService(Context.CONNECTIVITY_SERVICE)).thenReturn(
+ mConnectivityManager);
mPowerUsageData = new PowerUsageData(UsageType.SYSTEM);
mMaxBatterySipper.totalPowerMah = TYPE_BLUETOOTH_USAGE;
}
@Test
+ public void testShouldHideCategory_typeCellWhileNotSupported_returnTrue() {
+ mPowerUsageData.usageType = UsageType.CELL;
+ doReturn(false).when(mConnectivityManager).isNetworkSupported(
+ ConnectivityManager.TYPE_MOBILE);
+
+ assertThat(mPowerUsageAdvanced.shouldHideCategory(mPowerUsageData)).isTrue();
+ }
+
+ @Test
+ public void testShouldHideCategory_typeCellWhileSupported_returnFalse() {
+ mPowerUsageData.usageType = UsageType.CELL;
+ doReturn(true).when(mConnectivityManager).isNetworkSupported(
+ ConnectivityManager.TYPE_MOBILE);
+
+ assertThat(mPowerUsageAdvanced.shouldHideCategory(mPowerUsageData)).isFalse();
+ }
+
+ @Test
public void testShouldHideCategory_typeUserAndMoreThanOne_returnFalse() {
mPowerUsageData.usageType = UsageType.USER;
doReturn(2).when(mUserManager).getUserCount();