Only show mobile data usage information when mobile data is enabled.

Bug: 70950124

Test: manual
Test: make RunSettingsRoboTests
Change-Id: I4eb774120cbcf50f40d22c7c8c3caeb0eacbbed3
This commit is contained in:
Jan Nordqvist
2018-03-19 13:21:56 -07:00
parent 767743d64d
commit 19375adb5a
3 changed files with 47 additions and 14 deletions

View File

@@ -103,18 +103,10 @@ public class DataUsageSummary extends DataUsageBaseFragment implements Indexable
removePreference(KEY_RESTRICT_BACKGROUND); removePreference(KEY_RESTRICT_BACKGROUND);
} }
if (hasMobileData) { if (hasMobileData) {
List<SubscriptionInfo> subscriptions = SubscriptionInfo subInfo
services.mSubscriptionManager.getActiveSubscriptionInfoList(); = services.mSubscriptionManager.getDefaultDataSubscriptionInfo();
if (subscriptions == null || subscriptions.size() == 0) { if (subInfo != null) {
addMobileSection(defaultSubId); addMobileSection(subInfo.getSubscriptionId());
}
for (int i = 0; subscriptions != null && i < subscriptions.size(); i++) {
SubscriptionInfo subInfo = subscriptions.get(i);
if (subscriptions.size() > 1) {
addMobileSection(subInfo.getSubscriptionId(), subInfo);
} else {
addMobileSection(subInfo.getSubscriptionId());
}
} }
} }
boolean hasWifiRadio = DataUsageUtils.hasWifiRadio(context); boolean hasWifiRadio = DataUsageUtils.hasWifiRadio(context);

View File

@@ -37,7 +37,6 @@ import android.util.RecurrenceRule;
import com.android.internal.util.CollectionUtils; import com.android.internal.util.CollectionUtils;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.BasePreferenceController; import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.FeatureFlags;
import com.android.settingslib.NetworkPolicyEditor; import com.android.settingslib.NetworkPolicyEditor;
import com.android.settingslib.net.DataUsageController; import com.android.settingslib.net.DataUsageController;
@@ -150,7 +149,8 @@ public class DataUsageSummaryPreferenceController extends BasePreferenceControll
@Override @Override
public int getAvailabilityStatus() { public int getAvailabilityStatus() {
return AVAILABLE; return mSubscriptionManager.getDefaultDataSubscriptionInfo() != null
? AVAILABLE : DISABLED_UNSUPPORTED;
} }
@Override @Override

View File

@@ -16,6 +16,9 @@
package com.android.settings.datausage; package com.android.settings.datausage;
import static com.android.settings.core.BasePreferenceController.AVAILABLE;
import static com.android.settings.core.BasePreferenceController.DISABLED_UNSUPPORTED;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Matchers.any; import static org.mockito.Matchers.any;
import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy; import static org.mockito.Mockito.spy;
@@ -25,6 +28,8 @@ import static org.mockito.Mockito.when;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.net.NetworkTemplate; import android.net.NetworkTemplate;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.testutils.SettingsRobolectricTestRunner;
@@ -61,6 +66,8 @@ public class DataUsageSummaryPreferenceControllerTest {
private NetworkPolicyEditor mPolicyEditor; private NetworkPolicyEditor mPolicyEditor;
@Mock @Mock
private NetworkTemplate mNetworkTemplate; private NetworkTemplate mNetworkTemplate;
@Mock
private SubscriptionManager mSubscriptionManager;
private Context mContext; private Context mContext;
private DataUsageSummaryPreferenceController mController; private DataUsageSummaryPreferenceController mController;
@@ -230,6 +237,40 @@ public class DataUsageSummaryPreferenceControllerTest {
verify(mSummaryPreference).setLimitInfo("1.00 MB data warning / 1.00 MB data limit"); verify(mSummaryPreference).setLimitInfo("1.00 MB data warning / 1.00 MB data limit");
} }
@Test
public void testMobileData_preferenceAvailable() {
mController = new DataUsageSummaryPreferenceController(
mContext,
mDataUsageController,
mDataInfoController,
mNetworkTemplate,
mPolicyEditor,
R.string.cell_data_template,
true,
mSubscriptionManager);
final SubscriptionInfo subInfo = new SubscriptionInfo(0, "123456", 0, "name", "carrier",
0, 0, "number", 0, null, 123, 456, "ZX");
when(mSubscriptionManager.getDefaultDataSubscriptionInfo()).thenReturn(subInfo);
assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
}
@Test
public void testMobileData_preferenceDisabled() {
mController = new DataUsageSummaryPreferenceController(
mContext,
mDataUsageController,
mDataInfoController,
mNetworkTemplate,
mPolicyEditor,
R.string.cell_data_template,
true,
mSubscriptionManager);
when(mSubscriptionManager.getDefaultDataSubscriptionInfo()).thenReturn(null);
assertThat(mController.getAvailabilityStatus()).isEqualTo(DISABLED_UNSUPPORTED);
}
private DataUsageController.DataUsageInfo createTestDataUsageInfo(long now) { private DataUsageController.DataUsageInfo createTestDataUsageInfo(long now) {
DataUsageController.DataUsageInfo info = new DataUsageController.DataUsageInfo(); DataUsageController.DataUsageInfo info = new DataUsageController.DataUsageInfo();
info.carrier = CARRIER_NAME; info.carrier = CARRIER_NAME;