Refactor few public static methods.
Move public static methods from DataUsageSummary to DataUsageBase. Bug: 62349208 Test: make RunSettingsRoboTests -j40 Change-Id: I632f75f4c4f370fb225a9787267043fec20994e5
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
/**
|
||||
/*
|
||||
* Copyright (C) 2007 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||
@@ -67,7 +67,6 @@ import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.webkit.IWebViewUpdateService;
|
||||
import android.widget.Button;
|
||||
|
||||
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||
import com.android.internal.os.BatterySipper;
|
||||
import com.android.internal.os.BatteryStatsHelper;
|
||||
@@ -86,6 +85,7 @@ import com.android.settings.datausage.AppDataUsage;
|
||||
import com.android.settings.datausage.DataUsageList;
|
||||
import com.android.settings.datausage.DataUsageSummary;
|
||||
import com.android.settings.development.DevelopmentSettingsEnabler;
|
||||
import com.android.settings.datausage.DataUsageUtils;
|
||||
import com.android.settings.fuelgauge.AdvancedPowerUsageDetail;
|
||||
import com.android.settings.fuelgauge.BatteryEntry;
|
||||
import com.android.settings.fuelgauge.BatteryStatsHelperLoader;
|
||||
@@ -105,7 +105,6 @@ import com.android.settingslib.applications.StorageStatsSource;
|
||||
import com.android.settingslib.applications.StorageStatsSource.AppStorageStats;
|
||||
import com.android.settingslib.net.ChartData;
|
||||
import com.android.settingslib.net.ChartDataLoader;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
@@ -1303,7 +1302,7 @@ public class InstalledAppDetails extends AppInfoBase
|
||||
if (DataUsageList.hasReadyMobileRadio(context)) {
|
||||
return NetworkTemplate.buildTemplateMobileWildcard();
|
||||
}
|
||||
if (DataUsageSummary.hasWifiRadio(context)) {
|
||||
if (DataUsageUtils.hasWifiRadio(context)) {
|
||||
return NetworkTemplate.buildTemplateWifiWildcard();
|
||||
}
|
||||
return NetworkTemplate.buildTemplateEthernet();
|
||||
|
@@ -14,6 +14,8 @@
|
||||
|
||||
package com.android.settings.datausage;
|
||||
|
||||
import static android.net.NetworkPolicyManager.POLICY_REJECT_METERED_BACKGROUND;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.LoaderManager;
|
||||
import android.content.Context;
|
||||
@@ -39,7 +41,6 @@ import android.util.IconDrawableFactory;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
import android.widget.AdapterView;
|
||||
|
||||
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.applications.AppInfoBase;
|
||||
@@ -52,8 +53,6 @@ import com.android.settingslib.net.ChartDataLoader;
|
||||
import com.android.settingslib.net.UidDetail;
|
||||
import com.android.settingslib.net.UidDetailProvider;
|
||||
|
||||
import static android.net.NetworkPolicyManager.POLICY_REJECT_METERED_BACKGROUND;
|
||||
|
||||
public class AppDataUsage extends DataUsageBase implements Preference.OnPreferenceChangeListener,
|
||||
DataSaverBackend.Listener {
|
||||
|
||||
@@ -117,8 +116,8 @@ public class AppDataUsage extends DataUsageBase implements Preference.OnPreferen
|
||||
: null;
|
||||
if (mTemplate == null) {
|
||||
Context context = getContext();
|
||||
mTemplate = DataUsageSummary.getDefaultTemplate(context,
|
||||
DataUsageSummary.getDefaultSubscriptionId(context));
|
||||
mTemplate = DataUsageUtils.getDefaultTemplate(context,
|
||||
DataUsageUtils.getDefaultSubscriptionId(context));
|
||||
}
|
||||
if (mAppItem == null) {
|
||||
int uid = (args != null) ? args.getInt(AppInfoBase.ARG_PACKAGE_UID, -1)
|
||||
|
@@ -14,9 +14,6 @@
|
||||
|
||||
package com.android.settings.datausage;
|
||||
|
||||
import com.android.settings.SettingsPreferenceFragment;
|
||||
import com.android.settingslib.NetworkPolicyEditor;
|
||||
|
||||
import android.content.Context;
|
||||
import android.net.INetworkStatsService;
|
||||
import android.net.NetworkPolicy;
|
||||
@@ -29,9 +26,10 @@ import android.os.UserManager;
|
||||
import android.telephony.SubscriptionManager;
|
||||
import android.telephony.TelephonyManager;
|
||||
import android.util.Log;
|
||||
import com.android.settings.SettingsPreferenceFragment;
|
||||
import com.android.settingslib.NetworkPolicyEditor;
|
||||
|
||||
public abstract class DataUsageBase extends SettingsPreferenceFragment {
|
||||
|
||||
private static final String TAG = "DataUsageBase";
|
||||
|
||||
protected final TemplatePreference.NetworkServices services =
|
||||
|
@@ -14,6 +14,12 @@
|
||||
|
||||
package com.android.settings.datausage;
|
||||
|
||||
import static android.net.ConnectivityManager.TYPE_MOBILE;
|
||||
import static android.net.NetworkPolicyManager.POLICY_REJECT_METERED_BACKGROUND;
|
||||
import static android.net.TrafficStats.UID_REMOVED;
|
||||
import static android.net.TrafficStats.UID_TETHERING;
|
||||
import static android.telephony.TelephonyManager.SIM_STATE_READY;
|
||||
|
||||
import android.app.ActivityManager;
|
||||
import android.app.LoaderManager.LoaderCallbacks;
|
||||
import android.content.Context;
|
||||
@@ -46,7 +52,6 @@ import android.view.View;
|
||||
import android.widget.AdapterView;
|
||||
import android.widget.AdapterView.OnItemSelectedListener;
|
||||
import android.widget.Spinner;
|
||||
|
||||
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.datausage.CycleAdapter.SpinnerInterface;
|
||||
@@ -56,19 +61,10 @@ import com.android.settingslib.net.ChartData;
|
||||
import com.android.settingslib.net.ChartDataLoader;
|
||||
import com.android.settingslib.net.SummaryForAllUidLoader;
|
||||
import com.android.settingslib.net.UidDetailProvider;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import static android.net.ConnectivityManager.TYPE_MOBILE;
|
||||
import static android.net.NetworkPolicyManager.POLICY_REJECT_METERED_BACKGROUND;
|
||||
import static android.net.TrafficStats.UID_REMOVED;
|
||||
import static android.net.TrafficStats.UID_TETHERING;
|
||||
import static android.telephony.TelephonyManager.SIM_STATE_READY;
|
||||
import static com.android.settings.datausage.DataUsageSummary.TEST_RADIOS;
|
||||
import static com.android.settings.datausage.DataUsageSummary.TEST_RADIOS_PROP;
|
||||
|
||||
/**
|
||||
* Panel showing data usage history across various networks, including options
|
||||
* to inspect based on usage cycle and control through {@link NetworkPolicy}.
|
||||
@@ -442,8 +438,8 @@ public class DataUsageList extends DataUsageBase {
|
||||
* Test if device has a mobile data radio with SIM in ready state.
|
||||
*/
|
||||
public static boolean hasReadyMobileRadio(Context context) {
|
||||
if (TEST_RADIOS) {
|
||||
return SystemProperties.get(TEST_RADIOS_PROP).contains("mobile");
|
||||
if (DataUsageUtils.TEST_RADIOS) {
|
||||
return SystemProperties.get(DataUsageUtils.TEST_RADIOS_PROP).contains("mobile");
|
||||
}
|
||||
|
||||
final ConnectivityManager conn = ConnectivityManager.from(context);
|
||||
@@ -476,8 +472,8 @@ public class DataUsageList extends DataUsageBase {
|
||||
* TODO: consider adding to TelephonyManager or SubscriptionManager.
|
||||
*/
|
||||
public static boolean hasReadyMobileRadio(Context context, int subId) {
|
||||
if (TEST_RADIOS) {
|
||||
return SystemProperties.get(TEST_RADIOS_PROP).contains("mobile");
|
||||
if (DataUsageUtils.TEST_RADIOS) {
|
||||
return SystemProperties.get(DataUsageUtils.TEST_RADIOS_PROP).contains("mobile");
|
||||
}
|
||||
|
||||
final ConnectivityManager conn = ConnectivityManager.from(context);
|
||||
|
@@ -16,8 +16,6 @@ package com.android.settings.datausage;
|
||||
|
||||
import static android.net.wifi.WifiInfo.removeDoubleQuotes;
|
||||
|
||||
import static com.android.settings.datausage.DataUsageSummary.hasWifiRadio;
|
||||
|
||||
import android.app.backup.BackupManager;
|
||||
import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
@@ -29,7 +27,6 @@ import android.support.v7.preference.DropDownPreference;
|
||||
import android.support.v7.preference.Preference;
|
||||
import android.support.v7.preference.PreferenceCategory;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.SettingsPreferenceFragment;
|
||||
@@ -37,7 +34,6 @@ import com.android.settings.search.BaseSearchIndexProvider;
|
||||
import com.android.settings.search.Indexable;
|
||||
import com.android.settings.search.SearchIndexableRaw;
|
||||
import com.android.settingslib.NetworkPolicyEditor;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@@ -83,7 +79,7 @@ public class DataUsageMeteredSettings extends SettingsPreferenceFragment impleme
|
||||
getPreferenceScreen().removePreference(mMobileCategory);
|
||||
|
||||
mWifiCategory.removeAll();
|
||||
if (hasWifiRadio(context) && mWifiManager.isWifiEnabled()) {
|
||||
if (DataUsageUtils.hasWifiRadio(context) && mWifiManager.isWifiEnabled()) {
|
||||
for (WifiConfiguration config : mWifiManager.getConfiguredNetworks()) {
|
||||
final Preference pref = new MeteredPreference(getPrefContext(), config);
|
||||
if (!TextUtils.isEmpty(pref.getTitle())) {
|
||||
@@ -162,7 +158,7 @@ public class DataUsageMeteredSettings extends SettingsPreferenceFragment impleme
|
||||
|
||||
final WifiManager wifiManager =
|
||||
(WifiManager) context.getSystemService(Context.WIFI_SERVICE);
|
||||
if (hasWifiRadio(context) && wifiManager.isWifiEnabled()) {
|
||||
if (DataUsageUtils.hasWifiRadio(context) && wifiManager.isWifiEnabled()) {
|
||||
for (WifiConfiguration config : wifiManager.getConfiguredNetworks()) {
|
||||
if (config.SSID != null) {
|
||||
final String networkId = config.SSID;
|
||||
|
@@ -15,7 +15,6 @@
|
||||
package com.android.settings.datausage;
|
||||
|
||||
import static android.net.ConnectivityManager.TYPE_ETHERNET;
|
||||
import static android.net.ConnectivityManager.TYPE_WIFI;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.ComponentName;
|
||||
@@ -38,7 +37,6 @@ import android.support.v7.preference.Preference;
|
||||
import android.support.v7.preference.PreferenceScreen;
|
||||
import android.telephony.SubscriptionInfo;
|
||||
import android.telephony.SubscriptionManager;
|
||||
import android.telephony.TelephonyManager;
|
||||
import android.text.BidiFormatter;
|
||||
import android.text.Spannable;
|
||||
import android.text.SpannableString;
|
||||
@@ -48,7 +46,6 @@ import android.text.style.RelativeSizeSpan;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
|
||||
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.SummaryPreference;
|
||||
@@ -58,7 +55,6 @@ import com.android.settings.search.BaseSearchIndexProvider;
|
||||
import com.android.settings.search.Indexable;
|
||||
import com.android.settingslib.NetworkPolicyEditor;
|
||||
import com.android.settingslib.net.DataUsageController;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@@ -66,9 +62,6 @@ public class DataUsageSummary extends DataUsageBase implements Indexable, DataUs
|
||||
|
||||
static final boolean LOGD = false;
|
||||
|
||||
public static final boolean TEST_RADIOS = false;
|
||||
public static final String TEST_RADIOS_PROP = "test.radios";
|
||||
|
||||
public static final String KEY_RESTRICT_BACKGROUND = "restrict_background";
|
||||
public static final String KEY_NETWORK_RESTRICTIONS = "network_restrictions";
|
||||
|
||||
@@ -101,16 +94,16 @@ public class DataUsageSummary extends DataUsageBase implements Indexable, DataUs
|
||||
mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
|
||||
mPolicyEditor = new NetworkPolicyEditor(policyManager);
|
||||
|
||||
boolean hasMobileData = hasMobileData(context);
|
||||
boolean hasMobileData = DataUsageUtils.hasMobileData(context);
|
||||
mDataUsageController = new DataUsageController(context);
|
||||
mDataInfoController = new DataUsageInfoController();
|
||||
addPreferencesFromResource(R.xml.data_usage);
|
||||
|
||||
int defaultSubId = getDefaultSubscriptionId(context);
|
||||
int defaultSubId = DataUsageUtils.getDefaultSubscriptionId(context);
|
||||
if (defaultSubId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
|
||||
hasMobileData = false;
|
||||
}
|
||||
mDefaultTemplate = getDefaultTemplate(context, defaultSubId);
|
||||
mDefaultTemplate = DataUsageUtils.getDefaultTemplate(context, defaultSubId);
|
||||
mSummaryPreference = (SummaryPreference) findPreference(KEY_STATUS_HEADER);
|
||||
|
||||
if (!hasMobileData || !isAdmin()) {
|
||||
@@ -136,7 +129,7 @@ public class DataUsageSummary extends DataUsageBase implements Indexable, DataUs
|
||||
removePreference(KEY_LIMIT_SUMMARY);
|
||||
mSummaryPreference.setSelectable(false);
|
||||
}
|
||||
boolean hasWifiRadio = hasWifiRadio(context);
|
||||
boolean hasWifiRadio = DataUsageUtils.hasWifiRadio(context);
|
||||
if (hasWifiRadio) {
|
||||
addWifiSection();
|
||||
}
|
||||
@@ -322,8 +315,8 @@ public class DataUsageSummary extends DataUsageBase implements Indexable, DataUs
|
||||
* Test if device has an ethernet network connection.
|
||||
*/
|
||||
public boolean hasEthernet(Context context) {
|
||||
if (TEST_RADIOS) {
|
||||
return SystemProperties.get(TEST_RADIOS_PROP).contains("ethernet");
|
||||
if (DataUsageUtils.TEST_RADIOS) {
|
||||
return SystemProperties.get(DataUsageUtils.TEST_RADIOS_PROP).contains("ethernet");
|
||||
}
|
||||
|
||||
final ConnectivityManager conn = ConnectivityManager.from(context);
|
||||
@@ -348,53 +341,6 @@ public class DataUsageSummary extends DataUsageBase implements Indexable, DataUs
|
||||
return hasEthernet && ethernetBytes > 0;
|
||||
}
|
||||
|
||||
public static boolean hasMobileData(Context context) {
|
||||
return ConnectivityManager.from(context).isNetworkSupported(
|
||||
ConnectivityManager.TYPE_MOBILE);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test if device has a Wi-Fi data radio.
|
||||
*/
|
||||
public static boolean hasWifiRadio(Context context) {
|
||||
if (TEST_RADIOS) {
|
||||
return SystemProperties.get(TEST_RADIOS_PROP).contains("wifi");
|
||||
}
|
||||
|
||||
final ConnectivityManager conn = ConnectivityManager.from(context);
|
||||
return conn.isNetworkSupported(TYPE_WIFI);
|
||||
}
|
||||
|
||||
public static int getDefaultSubscriptionId(Context context) {
|
||||
SubscriptionManager subManager = SubscriptionManager.from(context);
|
||||
if (subManager == null) {
|
||||
return SubscriptionManager.INVALID_SUBSCRIPTION_ID;
|
||||
}
|
||||
SubscriptionInfo subscriptionInfo = subManager.getDefaultDataSubscriptionInfo();
|
||||
if (subscriptionInfo == null) {
|
||||
List<SubscriptionInfo> list = subManager.getAllSubscriptionInfoList();
|
||||
if (list.size() == 0) {
|
||||
return SubscriptionManager.INVALID_SUBSCRIPTION_ID;
|
||||
}
|
||||
subscriptionInfo = list.get(0);
|
||||
}
|
||||
return subscriptionInfo.getSubscriptionId();
|
||||
}
|
||||
|
||||
public static NetworkTemplate getDefaultTemplate(Context context, int defaultSubId) {
|
||||
if (hasMobileData(context) && defaultSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
|
||||
TelephonyManager telephonyManager = TelephonyManager.from(context);
|
||||
NetworkTemplate mobileAll = NetworkTemplate.buildTemplateMobileAll(
|
||||
telephonyManager.getSubscriberId(defaultSubId));
|
||||
return NetworkTemplate.normalize(mobileAll,
|
||||
telephonyManager.getMergedSubscriberIds());
|
||||
} else if (hasWifiRadio(context)) {
|
||||
return NetworkTemplate.buildTemplateWifiWildcard();
|
||||
} else {
|
||||
return NetworkTemplate.buildTemplateEthernet();
|
||||
}
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
void updateNetworkRestrictionSummary(NetworkRestrictionsPreference preference) {
|
||||
if (preference == null) {
|
||||
@@ -459,12 +405,12 @@ public class DataUsageSummary extends DataUsageBase implements Indexable, DataUs
|
||||
resource.xmlResId = R.xml.data_usage;
|
||||
resources.add(resource);
|
||||
|
||||
if (hasMobileData(context)) {
|
||||
if (DataUsageUtils.hasMobileData(context)) {
|
||||
resource = new SearchIndexableResource(context);
|
||||
resource.xmlResId = R.xml.data_usage_cellular;
|
||||
resources.add(resource);
|
||||
}
|
||||
if (hasWifiRadio(context)) {
|
||||
if (DataUsageUtils.hasWifiRadio(context)) {
|
||||
resource = new SearchIndexableResource(context);
|
||||
resource.xmlResId = R.xml.data_usage_wifi;
|
||||
resources.add(resource);
|
||||
@@ -476,10 +422,10 @@ public class DataUsageSummary extends DataUsageBase implements Indexable, DataUs
|
||||
public List<String> getNonIndexableKeys(Context context) {
|
||||
List<String> keys = super.getNonIndexableKeys(context);
|
||||
|
||||
if (hasMobileData(context)) {
|
||||
if (DataUsageUtils.hasMobileData(context)) {
|
||||
keys.add(KEY_RESTRICT_BACKGROUND);
|
||||
}
|
||||
if (hasWifiRadio(context)) {
|
||||
if (DataUsageUtils.hasWifiRadio(context)) {
|
||||
keys.add(KEY_NETWORK_RESTRICTIONS);
|
||||
}
|
||||
keys.add(KEY_WIFI_USAGE_TITLE);
|
||||
|
97
src/com/android/settings/datausage/DataUsageUtils.java
Normal file
97
src/com/android/settings/datausage/DataUsageUtils.java
Normal file
@@ -0,0 +1,97 @@
|
||||
/*
|
||||
* Copyright (C) 2017 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software distributed under the
|
||||
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the specific language governing
|
||||
* permissions and limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.settings.datausage;
|
||||
|
||||
import static android.net.ConnectivityManager.TYPE_WIFI;
|
||||
|
||||
import android.content.Context;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.net.NetworkTemplate;
|
||||
import android.os.SystemProperties;
|
||||
import android.telephony.SubscriptionInfo;
|
||||
import android.telephony.SubscriptionManager;
|
||||
import android.telephony.TelephonyManager;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Utility methods for data usage classes.
|
||||
*/
|
||||
public final class DataUsageUtils {
|
||||
static final boolean TEST_RADIOS = false;
|
||||
static final String TEST_RADIOS_PROP = "test.radios";
|
||||
|
||||
private DataUsageUtils() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether device has mobile data.
|
||||
* TODO: This is the opposite to Utils.isWifiOnly(), it should be refactored into 1 method.
|
||||
*/
|
||||
static boolean hasMobileData(Context context) {
|
||||
ConnectivityManager connectivityManager = ConnectivityManager.from(context);
|
||||
return connectivityManager != null && connectivityManager
|
||||
.isNetworkSupported(ConnectivityManager.TYPE_MOBILE);
|
||||
}
|
||||
|
||||
/**
|
||||
* Whether device has a Wi-Fi data radio.
|
||||
*/
|
||||
public static boolean hasWifiRadio(Context context) {
|
||||
if (TEST_RADIOS) {
|
||||
return SystemProperties.get(TEST_RADIOS_PROP).contains("wifi");
|
||||
}
|
||||
|
||||
ConnectivityManager connectivityManager = ConnectivityManager.from(context);
|
||||
return connectivityManager != null && connectivityManager.isNetworkSupported(TYPE_WIFI);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the default subscription if available else returns
|
||||
* SubscriptionManager#INVALID_SUBSCRIPTION_ID
|
||||
*/
|
||||
public static int getDefaultSubscriptionId(Context context) {
|
||||
SubscriptionManager subManager = SubscriptionManager.from(context);
|
||||
if (subManager == null) {
|
||||
return SubscriptionManager.INVALID_SUBSCRIPTION_ID;
|
||||
}
|
||||
SubscriptionInfo subscriptionInfo = subManager.getDefaultDataSubscriptionInfo();
|
||||
if (subscriptionInfo == null) {
|
||||
List<SubscriptionInfo> list = subManager.getAllSubscriptionInfoList();
|
||||
if (list.size() == 0) {
|
||||
return SubscriptionManager.INVALID_SUBSCRIPTION_ID;
|
||||
}
|
||||
subscriptionInfo = list.get(0);
|
||||
}
|
||||
return subscriptionInfo.getSubscriptionId();
|
||||
}
|
||||
|
||||
/**
|
||||
* 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.
|
||||
*/
|
||||
static NetworkTemplate getDefaultTemplate(Context context, int defaultSubId) {
|
||||
if (hasMobileData(context) && defaultSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
|
||||
TelephonyManager telephonyManager = TelephonyManager.from(context);
|
||||
NetworkTemplate mobileAll = NetworkTemplate.buildTemplateMobileAll(
|
||||
telephonyManager.getSubscriberId(defaultSubId));
|
||||
return NetworkTemplate.normalize(mobileAll,
|
||||
telephonyManager.getMergedSubscriberIds());
|
||||
} else if (hasWifiRadio(context)) {
|
||||
return NetworkTemplate.buildTemplateWifiWildcard();
|
||||
} else {
|
||||
return NetworkTemplate.buildTemplateEthernet();
|
||||
}
|
||||
}
|
||||
}
|
@@ -16,19 +16,26 @@
|
||||
|
||||
package com.android.settings.datausage;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
import static org.mockito.Matchers.anyInt;
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.content.Context;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.net.NetworkPolicy;
|
||||
import android.net.wifi.WifiConfiguration;
|
||||
import android.net.wifi.WifiManager;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||
import com.android.settings.TestConfig;
|
||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||
import com.android.settings.testutils.XmlTestUtils;
|
||||
import com.android.settings.testutils.shadow.ShadowConnectivityManager;
|
||||
import com.android.settingslib.NetworkPolicyEditor;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
@@ -39,18 +46,6 @@ import org.robolectric.annotation.Config;
|
||||
import org.robolectric.shadows.ShadowApplication;
|
||||
import org.robolectric.util.ReflectionHelpers;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
import static org.mockito.Matchers.any;
|
||||
import static org.mockito.Matchers.anyInt;
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
@RunWith(SettingsRobolectricTestRunner.class)
|
||||
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
|
||||
public class DataUsageSummaryTest {
|
||||
@@ -71,12 +66,6 @@ public class DataUsageSummaryTest {
|
||||
when(mManager.isNetworkSupported(anyInt())).thenReturn(true);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMobileDataStatus() {
|
||||
boolean hasMobileData = DataUsageSummary.hasMobileData(mContext);
|
||||
assertThat(hasMobileData).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpdateNetworkRestrictionSummary_shouldSetSummary() {
|
||||
final DataUsageSummary dataUsageSummary = spy(new DataUsageSummary());
|
||||
|
@@ -0,0 +1,62 @@
|
||||
/*
|
||||
* Copyright (C) 2017 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License
|
||||
*/
|
||||
|
||||
package com.android.settings.datausage;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
import static org.mockito.Matchers.anyInt;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.content.Context;
|
||||
import android.net.ConnectivityManager;
|
||||
import com.android.settings.TestConfig;
|
||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.robolectric.annotation.Config;
|
||||
import org.robolectric.shadows.ShadowApplication;
|
||||
|
||||
@RunWith(SettingsRobolectricTestRunner.class)
|
||||
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
|
||||
public final class DataUsageUtilsTest {
|
||||
@Mock private ConnectivityManager mManager;
|
||||
private Context mContext;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
ShadowApplication shadowContext = ShadowApplication.getInstance();
|
||||
mContext = shadowContext.getApplicationContext();
|
||||
shadowContext.setSystemService(Context.CONNECTIVITY_SERVICE, mManager);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void mobileDataStatus_whenNetworkIsSupported() {
|
||||
when(mManager.isNetworkSupported(anyInt())).thenReturn(true);
|
||||
boolean hasMobileData = DataUsageUtils.hasMobileData(mContext);
|
||||
assertThat(hasMobileData).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void mobileDataStatus_whenNetworkIsNotSupported() {
|
||||
when(mManager.isNetworkSupported(anyInt())).thenReturn(false);
|
||||
boolean hasMobileData = DataUsageUtils.hasMobileData(mContext);
|
||||
assertThat(hasMobileData).isFalse();
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user