Merge "Use new API to build NetworkTemplate" into qt-dev am: c9fbd2ee50 am: 057dc8466a

am: 1fa5118618

Change-Id: Icf8db899a7e0f68082e6eaf61f3f1541d456d880
This commit is contained in:
Lei Yu
2019-06-03 10:15:47 -07:00
committed by android-build-merger
4 changed files with 26 additions and 33 deletions

View File

@@ -58,10 +58,7 @@ public class BillingCyclePreferenceController extends BasePreferenceController {
services.mSubscriptionManager = mContext.getSystemService(SubscriptionManager.class); services.mSubscriptionManager = mContext.getSystemService(SubscriptionManager.class);
services.mUserManager = mContext.getSystemService(UserManager.class); services.mUserManager = mContext.getSystemService(UserManager.class);
NetworkTemplate mobileAll = NetworkTemplate.buildTemplateMobileAll( NetworkTemplate template = DataUsageUtils.getMobileTemplate(mContext, mSubscriptionId);
services.mTelephonyManager.getSubscriberId(mSubscriptionId));
NetworkTemplate template = NetworkTemplate.normalize(mobileAll,
services.mTelephonyManager.getMergedSubscriberIds());
preference.setTemplate(template, mSubscriptionId, services); preference.setTemplate(template, mSubscriptionId, services);
} }

View File

@@ -19,7 +19,6 @@ import android.app.settings.SettingsEnums;
import android.content.Context; import android.content.Context;
import android.net.NetworkTemplate; import android.net.NetworkTemplate;
import android.os.Bundle; import android.os.Bundle;
import android.provider.SearchIndexableResource;
import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager; import android.telephony.SubscriptionManager;
import android.telephony.SubscriptionPlan; import android.telephony.SubscriptionPlan;
@@ -37,12 +36,9 @@ import androidx.preference.PreferenceScreen;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.Utils; import com.android.settings.Utils;
import com.android.settings.dashboard.SummaryLoader; import com.android.settings.dashboard.SummaryLoader;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.search.Indexable;
import com.android.settingslib.NetworkPolicyEditor; import com.android.settingslib.NetworkPolicyEditor;
import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.net.DataUsageController; import com.android.settingslib.net.DataUsageController;
import com.android.settingslib.search.SearchIndexable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@@ -91,7 +87,7 @@ public class DataUsageSummary extends DataUsageBaseFragment implements DataUsage
hasMobileData = false; hasMobileData = false;
} }
mDefaultTemplate = DataUsageUtils.getDefaultTemplate(context, defaultSubId); mDefaultTemplate = DataUsageUtils.getDefaultTemplate(context, defaultSubId);
mSummaryPreference = (DataUsageSummaryPreference) findPreference(KEY_STATUS_HEADER); mSummaryPreference = findPreference(KEY_STATUS_HEADER);
if (!hasMobileData || !isAdmin()) { if (!hasMobileData || !isAdmin()) {
removePreference(KEY_RESTRICT_BACKGROUND); removePreference(KEY_RESTRICT_BACKGROUND);
@@ -155,7 +151,8 @@ public class DataUsageSummary extends DataUsageBaseFragment implements DataUsage
private void addMobileSection(int subId, SubscriptionInfo subInfo) { private void addMobileSection(int subId, SubscriptionInfo subInfo) {
TemplatePreferenceCategory category = (TemplatePreferenceCategory) TemplatePreferenceCategory category = (TemplatePreferenceCategory)
inflatePreferences(R.xml.data_usage_cellular); inflatePreferences(R.xml.data_usage_cellular);
category.setTemplate(getNetworkTemplate(subId), subId, services); category.setTemplate(DataUsageUtils.getMobileTemplate(getContext(), subId),
subId, services);
category.pushTemplates(services); category.pushTemplates(services);
if (subInfo != null && !TextUtils.isEmpty(subInfo.getDisplayName())) { if (subInfo != null && !TextUtils.isEmpty(subInfo.getDisplayName())) {
Preference title = category.findPreference(KEY_MOBILE_USAGE_TITLE); Preference title = category.findPreference(KEY_MOBILE_USAGE_TITLE);
@@ -189,13 +186,6 @@ public class DataUsageSummary extends DataUsageBaseFragment implements DataUsage
return pref; return pref;
} }
private NetworkTemplate getNetworkTemplate(int subscriptionId) {
NetworkTemplate mobileAll = NetworkTemplate.buildTemplateMobileAll(
services.mTelephonyManager.getSubscriberId(subscriptionId));
return NetworkTemplate.normalize(mobileAll,
services.mTelephonyManager.getMergedSubscriberIds());
}
@Override @Override
public void onResume() { public void onResume() {
super.onResume(); super.onResume();

View File

@@ -33,12 +33,13 @@ import android.text.format.Formatter;
import android.text.format.Formatter.BytesResult; import android.text.format.Formatter.BytesResult;
import android.util.Log; import android.util.Log;
import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
* Utility methods for data usage classes. * Utility methods for data usage classes.
*/ */
public final class DataUsageUtils { public final class DataUsageUtils extends com.android.settingslib.net.DataUsageUtils {
static final boolean TEST_RADIOS = false; static final boolean TEST_RADIOS = false;
static final String TEST_RADIOS_PROP = "test.radios"; static final String TEST_RADIOS_PROP = "test.radios";
private static final boolean LOGD = false; private static final boolean LOGD = false;
@@ -71,14 +72,14 @@ public final class DataUsageUtils {
return false; return false;
} }
final TelephonyManager telephonyManager = TelephonyManager.from(context);; final TelephonyManager telephonyManager = TelephonyManager.from(context);
final NetworkStatsManager networkStatsManager = final NetworkStatsManager networkStatsManager =
context.getSystemService(NetworkStatsManager.class); context.getSystemService(NetworkStatsManager.class);
boolean hasEthernetUsage = false; boolean hasEthernetUsage = false;
try { try {
final Bucket bucket = networkStatsManager.querySummaryForUser( final Bucket bucket = networkStatsManager.querySummaryForUser(
ConnectivityManager.TYPE_ETHERNET, telephonyManager.getSubscriberId(), ConnectivityManager.TYPE_ETHERNET, telephonyManager.getSubscriberId(),
0L /* startTime */, System.currentTimeMillis() /* endTime */); 0L /* startTime */, System.currentTimeMillis() /* endTime */);
if (bucket != null) { if (bucket != null) {
hasEthernetUsage = bucket.getRxBytes() > 0 || bucket.getTxBytes() > 0; hasEthernetUsage = bucket.getRxBytes() > 0 || bucket.getTxBytes() > 0;
} }
@@ -106,7 +107,7 @@ public final class DataUsageUtils {
return SystemProperties.get(DataUsageUtils.TEST_RADIOS_PROP).contains("mobile"); return SystemProperties.get(DataUsageUtils.TEST_RADIOS_PROP).contains("mobile");
} }
final List<SubscriptionInfo> subInfoList = final List<SubscriptionInfo> subInfoList =
SubscriptionManager.from(context).getActiveSubscriptionInfoList(true); SubscriptionManager.from(context).getActiveSubscriptionInfoList(true);
// No activated Subscriptions // No activated Subscriptions
if (subInfoList == null) { if (subInfoList == null) {
if (LOGD) { if (LOGD) {
@@ -127,9 +128,9 @@ public final class DataUsageUtils {
final boolean retVal = conn.isNetworkSupported(TYPE_MOBILE) && isReady; final boolean retVal = conn.isNetworkSupported(TYPE_MOBILE) && isReady;
if (LOGD) { if (LOGD) {
Log.d(TAG, "hasReadyMobileRadio:" Log.d(TAG, "hasReadyMobileRadio:"
+ " conn.isNetworkSupported(TYPE_MOBILE)=" + " conn.isNetworkSupported(TYPE_MOBILE)="
+ conn.isNetworkSupported(TYPE_MOBILE) + conn.isNetworkSupported(TYPE_MOBILE)
+ " isReady=" + isReady); + " isReady=" + isReady);
} }
return retVal; return retVal;
} }
@@ -180,16 +181,12 @@ public final class DataUsageUtils {
*/ */
public 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) return getMobileTemplate(context, defaultSubId);
.createForSubscriptionId(defaultSubId);
NetworkTemplate mobileAll = NetworkTemplate.buildTemplateMobileAll(
telephonyManager.getSubscriberId(defaultSubId));
return NetworkTemplate.normalize(mobileAll,
telephonyManager.getMergedSubscriberIds());
} else if (hasWifiRadio(context)) { } else if (hasWifiRadio(context)) {
return NetworkTemplate.buildTemplateWifiWildcard(); return NetworkTemplate.buildTemplateWifiWildcard();
} else { } else {
return NetworkTemplate.buildTemplateEthernet(); return NetworkTemplate.buildTemplateEthernet();
} }
} }
} }

View File

@@ -20,7 +20,9 @@ import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy; import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
import android.app.usage.NetworkStatsManager;
import android.content.Context; import android.content.Context;
import android.telephony.SubscriptionManager; import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager; import android.telephony.TelephonyManager;
@@ -38,6 +40,8 @@ import java.util.List;
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.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner; import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment; import org.robolectric.RuntimeEnvironment;
import org.robolectric.Shadows; import org.robolectric.Shadows;
@@ -50,15 +54,20 @@ public class DataUsageSliceTest {
private static final String DATA_USAGE_TITLE = "Data usage"; private static final String DATA_USAGE_TITLE = "Data usage";
private static final String DATA_USAGE_SUMMARY = "test_summary"; private static final String DATA_USAGE_SUMMARY = "test_summary";
@Mock
private NetworkStatsManager mNetworkStatsManager;
private Context mContext; private Context mContext;
private DataUsageSlice mDataUsageSlice; private DataUsageSlice mDataUsageSlice;
@Before @Before
public void setUp() { public void setUp() {
mContext = RuntimeEnvironment.application; MockitoAnnotations.initMocks(this);
mContext = spy(RuntimeEnvironment.application);
// Set-up specs for SliceMetadata. // Set-up specs for SliceMetadata.
SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS); SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
when(mContext.getSystemService(NetworkStatsManager.class)).thenReturn(mNetworkStatsManager);
mDataUsageSlice = spy(new DataUsageSlice(mContext)); mDataUsageSlice = spy(new DataUsageSlice(mContext));