Merge "In Network & internet screen, hide summary under Data usage when there is No SIM" into pi-dev

This commit is contained in:
Jan Nordqvist
2018-03-19 16:04:23 +00:00
committed by Android (Google) Code Review
2 changed files with 47 additions and 2 deletions

View File

@@ -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) {
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()));
mActivity.getString(R.string.data_usage_summary_format,
formatUsedData()));
}
}
}

View File

@@ -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"));
}
}