Merge "Update datausage for DataUsagePreferenceController" into qt-dev

This commit is contained in:
TreeHugger Robot
2019-05-08 19:20:13 +00:00
committed by Android (Google) Code Review
3 changed files with 13 additions and 14 deletions

View File

@@ -178,9 +178,10 @@ public final class DataUsageUtils {
* Returns the default network template based on the availability of mobile data, Wifi. Returns * Returns the default network template based on the availability of mobile data, Wifi. Returns
* ethernet template if both mobile data and Wifi are not available. * ethernet template if both mobile data and Wifi are not available.
*/ */
static NetworkTemplate getDefaultTemplate(Context context, int defaultSubId) { public static NetworkTemplate getDefaultTemplate(Context context, int defaultSubId) {
if (hasMobileData(context) && defaultSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) { if (hasMobileData(context) && defaultSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
TelephonyManager telephonyManager = TelephonyManager.from(context); TelephonyManager telephonyManager = TelephonyManager.from(context)
.createForSubscriptionId(defaultSubId);
NetworkTemplate mobileAll = NetworkTemplate.buildTemplateMobileAll( NetworkTemplate mobileAll = NetworkTemplate.buildTemplateMobileAll(
telephonyManager.getSubscriberId(defaultSubId)); telephonyManager.getSubscriberId(defaultSubId));
return NetworkTemplate.normalize(mobileAll, return NetworkTemplate.normalize(mobileAll,

View File

@@ -21,9 +21,7 @@ import android.content.Intent;
import android.net.NetworkTemplate; import android.net.NetworkTemplate;
import android.provider.Settings; import android.provider.Settings;
import android.telephony.SubscriptionManager; import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import android.text.TextUtils; import android.text.TextUtils;
import android.text.format.Formatter;
import androidx.preference.Preference; import androidx.preference.Preference;
@@ -87,9 +85,10 @@ public class DataUsagePreferenceController extends TelephonyBasePreferenceContro
mSubId = subId; mSubId = subId;
if (mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) { if (mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
mTemplate = getNetworkTemplate(mContext, subId); mTemplate = DataUsageUtils.getDefaultTemplate(mContext, mSubId);
final DataUsageController controller = new DataUsageController(mContext); final DataUsageController controller = new DataUsageController(mContext);
controller.setSubscriptionId(mSubId);
mDataUsageInfo = controller.getDataUsageInfo(mTemplate); mDataUsageInfo = controller.getDataUsageInfo(mTemplate);
mIntent = new Intent(Settings.ACTION_MOBILE_DATA_USAGE); mIntent = new Intent(Settings.ACTION_MOBILE_DATA_USAGE);
@@ -97,12 +96,4 @@ public class DataUsagePreferenceController extends TelephonyBasePreferenceContro
mIntent.putExtra(Settings.EXTRA_SUB_ID, mSubId); mIntent.putExtra(Settings.EXTRA_SUB_ID, mSubId);
} }
} }
private NetworkTemplate getNetworkTemplate(Context context, int subId) {
final TelephonyManager tm = TelephonyManager.from(context).createForSubscriptionId(subId);
NetworkTemplate mobileAll = NetworkTemplate.buildTemplateMobileAll(tm.getSubscriberId());
return NetworkTemplate.normalize(mobileAll, tm.getMergedSubscriberIds());
}
} }

View File

@@ -27,11 +27,13 @@ import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.never; import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy; import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.app.usage.NetworkStatsManager; import android.app.usage.NetworkStatsManager;
import android.content.Context; import android.content.Context;
import android.net.NetworkPolicyManager; import android.net.NetworkPolicyManager;
import android.telephony.SubscriptionManager; import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentActivity;
@@ -44,6 +46,7 @@ import com.android.settings.testutils.shadow.ShadowUtils;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.mockito.Answers;
import org.mockito.Mock; import org.mockito.Mock;
import org.mockito.MockitoAnnotations; import org.mockito.MockitoAnnotations;
import org.robolectric.Robolectric; import org.robolectric.Robolectric;
@@ -68,6 +71,8 @@ public class DataUsageSummaryTest {
private NetworkPolicyManager mNetworkPolicyManager; private NetworkPolicyManager mNetworkPolicyManager;
@Mock @Mock
private NetworkStatsManager mNetworkStatsManager; private NetworkStatsManager mNetworkStatsManager;
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
private TelephonyManager mTelephonyManager;
private Context mContext; private Context mContext;
private FragmentActivity mActivity; private FragmentActivity mActivity;
private SummaryLoader.SummaryProvider mSummaryProvider; private SummaryLoader.SummaryProvider mSummaryProvider;
@@ -84,7 +89,9 @@ public class DataUsageSummaryTest {
ShadowUserManager.getShadow().setIsAdminUser(true); ShadowUserManager.getShadow().setIsAdminUser(true);
shadowContext.setSystemService(Context.NETWORK_POLICY_SERVICE, mNetworkPolicyManager); shadowContext.setSystemService(Context.NETWORK_POLICY_SERVICE, mNetworkPolicyManager);
mContext = RuntimeEnvironment.application; mContext = spy(RuntimeEnvironment.application);
when(mContext.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mTelephonyManager);
when(mTelephonyManager.createForSubscriptionId(anyInt())).thenReturn(mTelephonyManager);
mActivity = spy(Robolectric.buildActivity(FragmentActivity.class).get()); mActivity = spy(Robolectric.buildActivity(FragmentActivity.class).get());
doReturn(mNetworkStatsManager).when(mActivity).getSystemService(NetworkStatsManager.class); doReturn(mNetworkStatsManager).when(mActivity).getSystemService(NetworkStatsManager.class);