In Network & internet screen, hide summary under Data usage when there is No SIM
Bug: 70950124 Test: manual Test: make RunSettingsRoboTests Change-Id: I4abd401aa9420b2b0090fac76991fe5067acc2e9
This commit is contained in:
@@ -28,6 +28,7 @@ import android.support.v7.preference.PreferenceScreen;
|
||||
import android.telephony.SubscriptionInfo;
|
||||
import android.telephony.SubscriptionManager;
|
||||
import android.telephony.SubscriptionPlan;
|
||||
import android.telephony.TelephonyManager;
|
||||
import android.text.BidiFormatter;
|
||||
import android.text.Spannable;
|
||||
import android.text.SpannableString;
|
||||
@@ -302,8 +303,18 @@ public class DataUsageSummary extends DataUsageBaseFragment implements Indexable
|
||||
@Override
|
||||
public void setListening(boolean listening) {
|
||||
if (listening) {
|
||||
mSummaryLoader.setSummary(this,
|
||||
mActivity.getString(R.string.data_usage_summary_format, formatUsedData()));
|
||||
TelephonyManager telephonyManager = (TelephonyManager) mActivity
|
||||
.getSystemService(Context.TELEPHONY_SERVICE);
|
||||
final int simState = telephonyManager.getSimState();
|
||||
// Note that pulling the SIM card returns UNKNOWN, not ABSENT.
|
||||
if (simState == TelephonyManager.SIM_STATE_ABSENT
|
||||
|| simState == TelephonyManager.SIM_STATE_UNKNOWN) {
|
||||
mSummaryLoader.setSummary(this, null);
|
||||
} else {
|
||||
mSummaryLoader.setSummary(this,
|
||||
mActivity.getString(R.string.data_usage_summary_format,
|
||||
formatUsedData()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -18,13 +18,20 @@ package com.android.settings.datausage;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
import static org.mockito.Matchers.anyInt;
|
||||
import static org.mockito.Matchers.anyObject;
|
||||
import static org.mockito.Matchers.endsWith;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.telephony.TelephonyManager;
|
||||
import android.text.format.Formatter;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.dashboard.SummaryLoader;
|
||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||
import com.android.settings.testutils.shadow.SettingsShadowResources;
|
||||
|
||||
@@ -33,6 +40,7 @@ import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.robolectric.Robolectric;
|
||||
import org.robolectric.shadows.ShadowApplication;
|
||||
|
||||
@RunWith(SettingsRobolectricTestRunner.class)
|
||||
@@ -41,6 +49,12 @@ public class DataUsageSummaryTest {
|
||||
@Mock
|
||||
private ConnectivityManager mManager;
|
||||
private Context mContext;
|
||||
@Mock
|
||||
TelephonyManager mTelephonyManager;
|
||||
@Mock
|
||||
private SummaryLoader mSummaryLoader;
|
||||
private Activity mActivity;
|
||||
private SummaryLoader.SummaryProvider mSummaryProvider;
|
||||
|
||||
/**
|
||||
* This set up is contrived to get a passing test so that the build doesn't block without tests.
|
||||
@@ -54,6 +68,12 @@ public class DataUsageSummaryTest {
|
||||
shadowContext.setSystemService(Context.CONNECTIVITY_SERVICE, mManager);
|
||||
mContext = shadowContext.getApplicationContext();
|
||||
when(mManager.isNetworkSupported(anyInt())).thenReturn(true);
|
||||
|
||||
mActivity = spy(Robolectric.buildActivity(Activity.class).get());
|
||||
when(mActivity.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mTelephonyManager);
|
||||
|
||||
mSummaryProvider = DataUsageSummary.SUMMARY_PROVIDER_FACTORY
|
||||
.createSummaryProvider(mActivity, mSummaryLoader);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -66,4 +86,18 @@ public class DataUsageSummaryTest {
|
||||
final String formattedAsFileSize = Formatter.formatFileSize(mContext, usage);
|
||||
assertThat(formattedUsage).isEqualTo(formattedAsFileSize);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setListening_shouldBlankSummaryWithNoSim() {
|
||||
when(mTelephonyManager.getSimState()).thenReturn(TelephonyManager.SIM_STATE_ABSENT);
|
||||
mSummaryProvider.setListening(true);
|
||||
verify(mSummaryLoader).setSummary(mSummaryProvider, null);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setListening_shouldSetSummaryWithSim() {
|
||||
when(mTelephonyManager.getSimState()).thenReturn(TelephonyManager.SIM_STATE_READY);
|
||||
mSummaryProvider.setListening(true);
|
||||
verify(mSummaryLoader).setSummary(anyObject(), endsWith(" of data used"));
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user