Merge "[Settings] Fix DataUsageUtilsTest" into rvc-dev am: b9217e8e17

Change-Id: Ifc346d43a3a7209304048da212f35326f543308f
This commit is contained in:
Bonian Chen
2020-04-25 05:06:36 +00:00
committed by Automerger Merge Worker
4 changed files with 13 additions and 35 deletions

View File

@@ -95,8 +95,8 @@ public class DataUsageSummary extends DataUsageBaseFragment implements DataUsage
boolean hasWifiRadio = DataUsageUtils.hasWifiRadio(context);
if (hasMobileData) {
addMobileSection(defaultSubId);
if (DataUsageUtils.hasSim(context) && hasWifiRadio) {
// If the device has a SIM installed, the data usage section shows usage for mobile,
if (hasActiveSubscription() && hasWifiRadio) {
// If the device has active SIM, the data usage section shows usage for mobile,
// and the WiFi section is added if there is a WiFi radio - legacy behavior.
addWifiSection();
}
@@ -156,6 +156,13 @@ public class DataUsageSummary extends DataUsageBaseFragment implements DataUsage
mProxySubscriptionMgr.setLifecycle(getLifecycle());
}
@VisibleForTesting
boolean hasActiveSubscription() {
final List<SubscriptionInfo> subInfoList =
mProxySubscriptionMgr.getActiveSubscriptionsInfo();
return ((subInfoList != null) && (subInfoList.size() > 0));
}
private void addMobileSection(int subId, SubscriptionInfo subInfo) {
TemplatePreferenceCategory category = (TemplatePreferenceCategory)
inflatePreferences(R.xml.data_usage_cellular);

View File

@@ -151,22 +151,6 @@ public final class DataUsageUtils extends com.android.settingslib.net.DataUsageU
return connectivityManager != null && connectivityManager.isNetworkSupported(TYPE_WIFI);
}
public static boolean hasSim(Context context) {
// Access cache within ProxySubscriptionManager to speed up
final List<SubscriptionInfo> subInfoList =
ProxySubscriptionManager.getInstance(context)
.getActiveSubscriptionsInfo();
if ((subInfoList != null) && (subInfoList.size() > 0)) {
return true;
}
TelephonyManager telephonyManager = context.getSystemService(TelephonyManager.class);
final int simState = telephonyManager.getSimState();
// Note that pulling the SIM card returns UNKNOWN, not ABSENT.
return simState != TelephonyManager.SIM_STATE_ABSENT
&& simState != TelephonyManager.SIM_STATE_UNKNOWN;
}
/**
* Returns the default subscription if available else returns
* SubscriptionManager#INVALID_SUBSCRIPTION_ID

View File

@@ -114,6 +114,7 @@ public class DataUsageSummaryTest {
final DataUsageSummary dataUsageSummary = spy(new DataUsageSummary());
doNothing().when(dataUsageSummary).enableProxySubscriptionManager(any());
doReturn(true).when(dataUsageSummary).hasActiveSubscription();
doReturn(mContext).when(dataUsageSummary).getContext();
doReturn(true).when(dataUsageSummary).removePreference(anyString());
@@ -134,6 +135,7 @@ public class DataUsageSummaryTest {
final DataUsageSummary dataUsageSummary = spy(new DataUsageSummary());
doNothing().when(dataUsageSummary).enableProxySubscriptionManager(any());
doReturn(false).when(dataUsageSummary).hasActiveSubscription();
doReturn(mContext).when(dataUsageSummary).getContext();
doReturn(true).when(dataUsageSummary).removePreference(anyString());
@@ -154,6 +156,7 @@ public class DataUsageSummaryTest {
final DataUsageSummary dataUsageSummary = spy(new DataUsageSummary());
doNothing().when(dataUsageSummary).enableProxySubscriptionManager(any());
doReturn(false).when(dataUsageSummary).hasActiveSubscription();
doReturn(mContext).when(dataUsageSummary).getContext();
doReturn(true).when(dataUsageSummary).removePreference(anyString());
@@ -177,6 +180,7 @@ public class DataUsageSummaryTest {
final DataUsageSummary dataUsageSummary = spy(new DataUsageSummary());
doNothing().when(dataUsageSummary).enableProxySubscriptionManager(any());
doReturn(false).when(dataUsageSummary).hasActiveSubscription();
doReturn(mContext).when(dataUsageSummary).getContext();
doReturn(true).when(dataUsageSummary).removePreference(anyString());

View File

@@ -31,7 +31,6 @@ import android.telephony.TelephonyManager;
import android.util.DataUnit;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -76,22 +75,6 @@ public final class DataUsageUtilsTest {
assertThat(hasMobileData).isFalse();
}
@Test
@Ignore
public void hasSim_simStateReady() {
when(mTelephonyManager.getSimState()).thenReturn(TelephonyManager.SIM_STATE_READY);
final boolean hasSim = DataUsageUtils.hasSim(mContext);
assertThat(hasSim).isTrue();
}
@Test
@Ignore
public void hasSim_simStateMissing() {
when(mTelephonyManager.getSimState()).thenReturn(TelephonyManager.SIM_STATE_ABSENT);
final boolean hasSim = DataUsageUtils.hasSim(mContext);
assertThat(hasSim).isFalse();
}
@Test
public void formatDataUsage_useIECUnit() {
final CharSequence formattedDataUsage = DataUsageUtils.formatDataUsage(