Loading src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java +10 −13 Original line number Diff line number Diff line Loading @@ -120,14 +120,14 @@ public class DataUsageSummaryPreferenceController extends TelephonyBasePreferenc mContext.getSystemService(NetworkPolicyManager.class); mPolicyEditor = new NetworkPolicyEditor(policyManager); mHasMobileData = SubscriptionManager.isValidSubscriptionId(mSubId) && DataUsageUtils.hasMobileData(mContext); mHasMobileData = DataUsageUtils.hasMobileData(mContext); mDataUsageController = new DataUsageController(mContext); mDataUsageController.setSubscriptionId(mSubId); mDataInfoController = new DataUsageInfoController(); if (mHasMobileData) { final SubscriptionInfo subInfo = getSubscriptionInfo(mSubId); if (subInfo != null) { mDataUsageTemplate = R.string.cell_data_template; } else if (DataUsageUtils.hasWifiRadio(mContext)) { mDataUsageTemplate = R.string.wifi_data_template; Loading Loading @@ -180,18 +180,16 @@ public class DataUsageSummaryPreferenceController extends TelephonyBasePreferenc @VisibleForTesting SubscriptionInfo getSubscriptionInfo(int subscriptionId) { if (!mHasMobileData) { return null; } return ProxySubscriptionManager.getInstance(mContext) .getAccessibleSubscriptionInfo(subscriptionId); } @VisibleForTesting boolean hasSim() { return DataUsageUtils.hasSim(mContext); } @Override public int getAvailabilityStatus(int subId) { return hasSim() return (getSubscriptionInfo(subId) != null) || DataUsageUtils.hasWifiRadio(mContext) ? AVAILABLE : CONDITIONALLY_UNAVAILABLE; } Loading @@ -199,16 +197,15 @@ public class DataUsageSummaryPreferenceController extends TelephonyBasePreferenc public void updateState(Preference preference) { DataUsageSummaryPreference summaryPreference = (DataUsageSummaryPreference) preference; final boolean isSimCardAdded = hasSim(); if (!isSimCardAdded) { final SubscriptionInfo subInfo = getSubscriptionInfo(mSubId); if (subInfo == null) { mDefaultTemplate = NetworkTemplate.buildTemplateWifiWildcard(); } final DataUsageController.DataUsageInfo info = mDataUsageController.getDataUsageInfo(mDefaultTemplate); final SubscriptionInfo subInfo = getSubscriptionInfo(mSubId); if (isSimCardAdded) { if (subInfo != null) { mDataInfoController.updateDataLimit(info, mPolicyEditor.getPolicy(mDefaultTemplate)); summaryPreference.setWifiMode(/* isWifiMode */ false, /* usagePeriod */ null, /* isSingleWifi */ false); Loading tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceControllerTest.java +0 −43 Original line number Diff line number Diff line Loading @@ -19,7 +19,6 @@ package com.android.settings.datausage; import static android.net.ConnectivityManager.TYPE_WIFI; import static com.android.settings.core.BasePreferenceController.AVAILABLE; import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE; import static com.google.common.truth.Truth.assertThat; Loading Loading @@ -159,8 +158,6 @@ public class DataUsageSummaryPreferenceControllerTest { doReturn(CARRIER_NAME).when(mSubscriptionInfo).getCarrierName(); doReturn(mSubscriptionInfo).when(mController).getSubscriptionInfo(mDefaultSubscriptionId); doReturn(mSubscriptionPlans).when(mController).getSubscriptionPlans(mDefaultSubscriptionId); doReturn(true).when(mController).hasSim(); } @After Loading Loading @@ -355,56 +352,16 @@ public class DataUsageSummaryPreferenceControllerTest { false /* isSingleWifi */); } @Test public void testSummaryUpdate_noSim_shouldSetWifiMode() { mController.init(SubscriptionManager.INVALID_SUBSCRIPTION_ID); mController.mDataUsageController = mDataUsageController; doReturn(TelephonyManager.SIM_STATE_ABSENT).when(mTelephonyManager).getSimState(); doReturn(false).when(mController).hasSim(); final long now = System.currentTimeMillis(); final DataUsageController.DataUsageInfo info = createTestDataUsageInfo(now); info.warningLevel = BillingCycleSettings.MIB_IN_BYTES; info.limitLevel = BillingCycleSettings.MIB_IN_BYTES; final Intent intent = new Intent(); doReturn(info).when(mDataUsageController).getDataUsageInfo(any()); setupTestDataUsage(LIMIT1, USAGE1, now - UPDATE_BACKOFF_MS); mController.updateState(mSummaryPreference); verify(mSummaryPreference).setWifiMode(true /* isWifiMode */, info.period /* usagePeriod */, false /* isSingleWifi */); verify(mSummaryPreference).setLimitInfo(null); verify(mSummaryPreference).setUsageNumbers(info.usageLevel, -1L, true); verify(mSummaryPreference).setChartEnabled(false); verify(mSummaryPreference).setUsageInfo(info.cycleEnd, -1L, null, 0, null); } @Test public void testMobileData_preferenceAvailable() { assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE); } @Test public void testMobileData_noSimNoWifi_preferenceDisabled() { final int subscriptionId = SubscriptionManager.INVALID_SUBSCRIPTION_ID; mController.init(subscriptionId); mController.mDataUsageController = mDataUsageController; doReturn(TelephonyManager.SIM_STATE_ABSENT).when(mTelephonyManager).getSimState(); doReturn(false).when(mController).hasSim(); when(mConnectivityManager.isNetworkSupported(TYPE_WIFI)).thenReturn(false); assertThat(mController.getAvailabilityStatus()) .isEqualTo(CONDITIONALLY_UNAVAILABLE); } @Test public void testMobileData_noSimWifi_preferenceDisabled() { final int subscriptionId = SubscriptionManager.INVALID_SUBSCRIPTION_ID; mController.init(subscriptionId); mController.mDataUsageController = mDataUsageController; doReturn(TelephonyManager.SIM_STATE_ABSENT).when(mTelephonyManager).getSimState(); when(mConnectivityManager.isNetworkSupported(TYPE_WIFI)).thenReturn(true); assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE); } Loading Loading
src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java +10 −13 Original line number Diff line number Diff line Loading @@ -120,14 +120,14 @@ public class DataUsageSummaryPreferenceController extends TelephonyBasePreferenc mContext.getSystemService(NetworkPolicyManager.class); mPolicyEditor = new NetworkPolicyEditor(policyManager); mHasMobileData = SubscriptionManager.isValidSubscriptionId(mSubId) && DataUsageUtils.hasMobileData(mContext); mHasMobileData = DataUsageUtils.hasMobileData(mContext); mDataUsageController = new DataUsageController(mContext); mDataUsageController.setSubscriptionId(mSubId); mDataInfoController = new DataUsageInfoController(); if (mHasMobileData) { final SubscriptionInfo subInfo = getSubscriptionInfo(mSubId); if (subInfo != null) { mDataUsageTemplate = R.string.cell_data_template; } else if (DataUsageUtils.hasWifiRadio(mContext)) { mDataUsageTemplate = R.string.wifi_data_template; Loading Loading @@ -180,18 +180,16 @@ public class DataUsageSummaryPreferenceController extends TelephonyBasePreferenc @VisibleForTesting SubscriptionInfo getSubscriptionInfo(int subscriptionId) { if (!mHasMobileData) { return null; } return ProxySubscriptionManager.getInstance(mContext) .getAccessibleSubscriptionInfo(subscriptionId); } @VisibleForTesting boolean hasSim() { return DataUsageUtils.hasSim(mContext); } @Override public int getAvailabilityStatus(int subId) { return hasSim() return (getSubscriptionInfo(subId) != null) || DataUsageUtils.hasWifiRadio(mContext) ? AVAILABLE : CONDITIONALLY_UNAVAILABLE; } Loading @@ -199,16 +197,15 @@ public class DataUsageSummaryPreferenceController extends TelephonyBasePreferenc public void updateState(Preference preference) { DataUsageSummaryPreference summaryPreference = (DataUsageSummaryPreference) preference; final boolean isSimCardAdded = hasSim(); if (!isSimCardAdded) { final SubscriptionInfo subInfo = getSubscriptionInfo(mSubId); if (subInfo == null) { mDefaultTemplate = NetworkTemplate.buildTemplateWifiWildcard(); } final DataUsageController.DataUsageInfo info = mDataUsageController.getDataUsageInfo(mDefaultTemplate); final SubscriptionInfo subInfo = getSubscriptionInfo(mSubId); if (isSimCardAdded) { if (subInfo != null) { mDataInfoController.updateDataLimit(info, mPolicyEditor.getPolicy(mDefaultTemplate)); summaryPreference.setWifiMode(/* isWifiMode */ false, /* usagePeriod */ null, /* isSingleWifi */ false); Loading
tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceControllerTest.java +0 −43 Original line number Diff line number Diff line Loading @@ -19,7 +19,6 @@ package com.android.settings.datausage; import static android.net.ConnectivityManager.TYPE_WIFI; import static com.android.settings.core.BasePreferenceController.AVAILABLE; import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE; import static com.google.common.truth.Truth.assertThat; Loading Loading @@ -159,8 +158,6 @@ public class DataUsageSummaryPreferenceControllerTest { doReturn(CARRIER_NAME).when(mSubscriptionInfo).getCarrierName(); doReturn(mSubscriptionInfo).when(mController).getSubscriptionInfo(mDefaultSubscriptionId); doReturn(mSubscriptionPlans).when(mController).getSubscriptionPlans(mDefaultSubscriptionId); doReturn(true).when(mController).hasSim(); } @After Loading Loading @@ -355,56 +352,16 @@ public class DataUsageSummaryPreferenceControllerTest { false /* isSingleWifi */); } @Test public void testSummaryUpdate_noSim_shouldSetWifiMode() { mController.init(SubscriptionManager.INVALID_SUBSCRIPTION_ID); mController.mDataUsageController = mDataUsageController; doReturn(TelephonyManager.SIM_STATE_ABSENT).when(mTelephonyManager).getSimState(); doReturn(false).when(mController).hasSim(); final long now = System.currentTimeMillis(); final DataUsageController.DataUsageInfo info = createTestDataUsageInfo(now); info.warningLevel = BillingCycleSettings.MIB_IN_BYTES; info.limitLevel = BillingCycleSettings.MIB_IN_BYTES; final Intent intent = new Intent(); doReturn(info).when(mDataUsageController).getDataUsageInfo(any()); setupTestDataUsage(LIMIT1, USAGE1, now - UPDATE_BACKOFF_MS); mController.updateState(mSummaryPreference); verify(mSummaryPreference).setWifiMode(true /* isWifiMode */, info.period /* usagePeriod */, false /* isSingleWifi */); verify(mSummaryPreference).setLimitInfo(null); verify(mSummaryPreference).setUsageNumbers(info.usageLevel, -1L, true); verify(mSummaryPreference).setChartEnabled(false); verify(mSummaryPreference).setUsageInfo(info.cycleEnd, -1L, null, 0, null); } @Test public void testMobileData_preferenceAvailable() { assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE); } @Test public void testMobileData_noSimNoWifi_preferenceDisabled() { final int subscriptionId = SubscriptionManager.INVALID_SUBSCRIPTION_ID; mController.init(subscriptionId); mController.mDataUsageController = mDataUsageController; doReturn(TelephonyManager.SIM_STATE_ABSENT).when(mTelephonyManager).getSimState(); doReturn(false).when(mController).hasSim(); when(mConnectivityManager.isNetworkSupported(TYPE_WIFI)).thenReturn(false); assertThat(mController.getAvailabilityStatus()) .isEqualTo(CONDITIONALLY_UNAVAILABLE); } @Test public void testMobileData_noSimWifi_preferenceDisabled() { final int subscriptionId = SubscriptionManager.INVALID_SUBSCRIPTION_ID; mController.init(subscriptionId); mController.mDataUsageController = mDataUsageController; doReturn(TelephonyManager.SIM_STATE_ABSENT).when(mTelephonyManager).getSimState(); when(mConnectivityManager.isNetworkSupported(TYPE_WIFI)).thenReturn(true); assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE); } Loading