Query correct subscription id for mobile data.
- On the Data usage settings page, we check for valid subscription id to determine if we should show the mobile section. However, we are querying the default subscription id, which will return the 1st id for any subscription if there's no data subscription. Since this is for mobile section, we should query the default data subscription id explicitly. Change-Id: I08c80639d07477e486a2d9a10761e11df4c73b28 Fixes: 119881046 Test: make RunSettingsRoboTests
This commit is contained in:
@@ -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));
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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());
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user