Merge "Query correct subscription id for mobile data."

This commit is contained in:
TreeHugger Robot
2019-01-25 01:43:06 +00:00
committed by Android (Google) Code Review
3 changed files with 30 additions and 5 deletions

View File

@@ -135,8 +135,8 @@ public class DataUsageList extends DataUsageBaseFragment {
mUidDetailProvider = new UidDetailProvider(activity);
mTelephonyManager = activity.getSystemService(TelephonyManager.class);
mUsageAmount = findPreference(KEY_USAGE_AMOUNT);
mChart = (ChartDataUsagePreference) findPreference(KEY_CHART_DATA);
mApps = (PreferenceGroup) findPreference(KEY_APPS_GROUP);
mChart = findPreference(KEY_CHART_DATA);
mApps = findPreference(KEY_APPS_GROUP);
processArgument();
}
@@ -306,7 +306,7 @@ public class DataUsageList extends DataUsageBaseFragment {
getLoaderManager().restartLoader(LOADER_SUMMARY, null /* args */,
mNetworkStatsDetailCallbacks);
final long totalBytes = mCycleData != null
final long totalBytes = mCycleData != null && !mCycleData.isEmpty()
? mCycleData.get(mCycleSpinner.getSelectedItemPosition()).getTotalUsage() : 0;
final CharSequence totalPhrase = DataUsageUtils.formatDataUsage(getActivity(), totalBytes);
mUsageAmount.setTitle(getString(R.string.data_used_template, totalPhrase));

View File

@@ -87,7 +87,7 @@ public class DataUsageSummary extends DataUsageBaseFragment implements DataUsage
boolean hasMobileData = DataUsageUtils.hasMobileData(context);
int defaultSubId = DataUsageUtils.getDefaultSubscriptionId(context);
final int defaultSubId = SubscriptionManager.getDefaultDataSubscriptionId();
if (defaultSubId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
hasMobileData = false;
}

View File

@@ -31,6 +31,7 @@ import static org.mockito.Mockito.verify;
import android.app.usage.NetworkStatsManager;
import android.content.Context;
import android.net.NetworkPolicyManager;
import android.telephony.SubscriptionManager;
import androidx.fragment.app.FragmentActivity;
@@ -50,6 +51,7 @@ import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowApplication;
import org.robolectric.shadows.ShadowSubscriptionManager;
@Config(shadows = {
ShadowUtils.class,
@@ -114,10 +116,11 @@ public class DataUsageSummaryTest {
}
@Test
@Config(shadows = ShadowSubscriptionManager.class)
public void configuration_withSim_shouldShowMobileAndWifi() {
ShadowDataUsageUtils.IS_MOBILE_DATA_SUPPORTED = true;
ShadowDataUsageUtils.IS_WIFI_SUPPORTED = true;
ShadowDataUsageUtils.DEFAULT_SUBSCRIPTION_ID = 1;
ShadowSubscriptionManager.setDefaultDataSubscriptionId(1);
ShadowDataUsageUtils.HAS_SIM = true;
final DataUsageSummary dataUsageSummary = spy(new DataUsageSummary());
@@ -170,4 +173,26 @@ public class DataUsageSummaryTest {
verify(dataUsageSummary).addWifiSection();
verify(dataUsageSummary, never()).addMobileSection(anyInt());
}
@Test
@Config(shadows = ShadowSubscriptionManager.class)
public void configuration_invalidDataSusbscription_shouldShowWifiSectionOnly() {
ShadowDataUsageUtils.IS_MOBILE_DATA_SUPPORTED = true;
ShadowDataUsageUtils.IS_WIFI_SUPPORTED = true;
ShadowDataUsageUtils.HAS_SIM = false;
ShadowSubscriptionManager.setDefaultDataSubscriptionId(
SubscriptionManager.INVALID_SUBSCRIPTION_ID);
final DataUsageSummary dataUsageSummary = spy(new DataUsageSummary());
doReturn(mContext).when(dataUsageSummary).getContext();
doReturn(true).when(dataUsageSummary).removePreference(anyString());
doNothing().when(dataUsageSummary).addWifiSection();
doNothing().when(dataUsageSummary).addMobileSection(1);
dataUsageSummary.onCreate(null);
verify(dataUsageSummary).addWifiSection();
verify(dataUsageSummary, never()).addMobileSection(anyInt());
}
}