OSDN Git Service

Stop display "Cell network" item for tablet
authorjackqdyulei <jackqdyulei@google.com>
Wed, 9 Aug 2017 22:55:36 +0000 (15:55 -0700)
committerjackqdyulei <jackqdyulei@google.com>
Thu, 10 Aug 2017 20:33:25 +0000 (13:33 -0700)
If device doesn't support MOBILE_DATA, then stop show
"Mobile network standby" in battery advanced page.

Bug: 63252393
Test: RunSettingsRoboTests
Change-Id: Icaf5c0c781c96fa1d4df999c6769c27a84c27446

src/com/android/settings/fuelgauge/PowerUsageAdvanced.java
tests/robotests/src/com/android/settings/fuelgauge/PowerUsageAdvancedTest.java

index 6b624ee..fe002b0 100644 (file)
@@ -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
index bf89cac..6bde839 100644 (file)
@@ -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;
@@ -297,6 +302,24 @@ public class PowerUsageAdvancedTest {
     }
 
     @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();