Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9c2556da authored by Doris Ling's avatar Doris Ling
Browse files

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
parent 1fe41d44
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -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));
+1 −1
Original line number Diff line number Diff line
@@ -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;
        }
+26 −1
Original line number Diff line number Diff line
@@ -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());
    }
}