From 28284a52e660cc3ae34a3c88372544b9689b1fee Mon Sep 17 00:00:00 2001 From: jackqdyulei Date: Wed, 9 Aug 2017 15:55:36 -0700 Subject: [PATCH] Stop display "Cell network" item for tablet If device doesn't support MOBILE_DATA, then stop show "Mobile network standby" in battery advanced page. Bug: 63252393 Test: RunSettingsRoboTests Change-Id: Icaf5c0c781c96fa1d4df999c6769c27a84c27446 --- .../fuelgauge/PowerUsageAdvanced.java | 5 +++- .../fuelgauge/PowerUsageAdvancedTest.java | 23 +++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/fuelgauge/PowerUsageAdvanced.java b/src/com/android/settings/fuelgauge/PowerUsageAdvanced.java index 6b624eec3a8..fe002b0fc37 100644 --- a/src/com/android/settings/fuelgauge/PowerUsageAdvanced.java +++ b/src/com/android/settings/fuelgauge/PowerUsageAdvanced.java @@ -40,6 +40,7 @@ import com.android.internal.os.BatterySipper.DrainType; 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; @@ -243,7 +244,9 @@ 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 && mUserManager.getUserCount() == 1) + || (powerUsageData.usageType == UsageType.CELL + && !DataUsageUtils.hasMobileData(getContext())); } @VisibleForTesting diff --git a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageAdvancedTest.java b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageAdvancedTest.java index bf89caca1ee..6bde8390aec 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageAdvancedTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageAdvancedTest.java @@ -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.net.ConnectivityManager; import android.os.UserManager; import android.support.v7.preference.PreferenceCategory; import android.support.v7.preference.PreferenceGroup; @@ -91,6 +92,8 @@ public class PowerUsageAdvancedTest { private BatteryHistoryPreference mHistPref; @Mock private PreferenceGroup mUsageListGroup; + @Mock + private ConnectivityManager mConnectivityManager; private PowerUsageAdvanced mPowerUsageAdvanced; private PowerUsageData mPowerUsageData; private Context mShadowContext; @@ -127,6 +130,8 @@ public class PowerUsageAdvancedTest { 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; @@ -296,6 +301,24 @@ public class PowerUsageAdvancedTest { assertThat(mPowerUsageAdvanced.shouldHideCategory(mPowerUsageData)).isTrue(); } + @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;