Merge "Replace hidden CM#isNetworkSupported() usage" am: 959325e88a

Original change: https://android-review.googlesource.com/c/platform/packages/apps/Settings/+/1639940

Change-Id: I7aa0702f04c1f876851661ea54ba289b5eb9234d
This commit is contained in:
Treehugger Robot
2021-03-18 03:25:20 +00:00
committed by Automerger Merge Worker
8 changed files with 45 additions and 61 deletions

View File

@@ -14,13 +14,15 @@
package com.android.settings;
import static android.content.pm.PackageManager.FEATURE_ETHERNET;
import static android.content.pm.PackageManager.FEATURE_WIFI;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.net.ConnectivityManager;
import android.net.NetworkTemplate;
import android.net.Uri;
import android.os.IBinder;
@@ -101,10 +103,10 @@ public class SettingsDumpService extends Service {
private JSONObject dumpDataUsage() throws JSONException {
JSONObject obj = new JSONObject();
DataUsageController controller = new DataUsageController(this);
ConnectivityManager connectivityManager = getSystemService(ConnectivityManager.class);
SubscriptionManager manager = this.getSystemService(SubscriptionManager.class);
TelephonyManager telephonyManager = this.getSystemService(TelephonyManager.class);
if (connectivityManager.isNetworkSupported(ConnectivityManager.TYPE_MOBILE)) {
final PackageManager packageManager = this.getPackageManager();
if (telephonyManager.isDataCapable()) {
JSONArray array = new JSONArray();
for (SubscriptionInfo info : manager.getAvailableSubscriptionInfoList()) {
telephonyManager = telephonyManager
@@ -117,10 +119,11 @@ public class SettingsDumpService extends Service {
}
obj.put("cell", array);
}
if (connectivityManager.isNetworkSupported(ConnectivityManager.TYPE_WIFI)) {
if (packageManager.hasSystemFeature(FEATURE_WIFI)) {
obj.put("wifi", dumpDataUsage(NetworkTemplate.buildTemplateWifiWildcard(), controller));
}
if (connectivityManager.isNetworkSupported(ConnectivityManager.TYPE_ETHERNET)) {
if (packageManager.hasSystemFeature(FEATURE_ETHERNET)) {
obj.put("ethernet", dumpDataUsage(NetworkTemplate.buildTemplateEthernet(), controller));
}
return obj;

View File

@@ -14,13 +14,14 @@
package com.android.settings.datausage;
import static android.net.ConnectivityManager.TYPE_MOBILE;
import static android.net.ConnectivityManager.TYPE_WIFI;
import static android.content.pm.PackageManager.FEATURE_ETHERNET;
import static android.content.pm.PackageManager.FEATURE_WIFI;
import static android.telephony.TelephonyManager.SIM_STATE_READY;
import android.app.usage.NetworkStats.Bucket;
import android.app.usage.NetworkStatsManager;
import android.content.Context;
import android.content.pm.PackageManager;
import android.net.ConnectivityManager;
import android.net.NetworkTemplate;
import android.os.RemoteException;
@@ -69,8 +70,7 @@ public final class DataUsageUtils extends com.android.settingslib.net.DataUsageU
return SystemProperties.get(DataUsageUtils.TEST_RADIOS_PROP).contains(ETHERNET);
}
final ConnectivityManager conn = context.getSystemService(ConnectivityManager.class);
if (!conn.isNetworkSupported(ConnectivityManager.TYPE_ETHERNET)) {
if (!context.getPackageManager().hasSystemFeature(FEATURE_ETHERNET)) {
return false;
}
@@ -96,10 +96,8 @@ public final class DataUsageUtils extends com.android.settingslib.net.DataUsageU
* TODO: This is the opposite to Utils.isWifiOnly(), it should be refactored into 1 method.
*/
public static boolean hasMobileData(Context context) {
final ConnectivityManager connectivityManager =
context.getSystemService(ConnectivityManager.class);
return connectivityManager != null && connectivityManager
.isNetworkSupported(ConnectivityManager.TYPE_MOBILE);
final TelephonyManager tele = context.getSystemService(TelephonyManager.class);
return tele.isDataCapable();
}
/**
@@ -128,12 +126,13 @@ public final class DataUsageUtils extends com.android.settingslib.net.DataUsageU
Log.d(TAG, "hasReadyMobileRadio: subInfo=" + subInfo);
}
}
final ConnectivityManager conn = context.getSystemService(ConnectivityManager.class);
final boolean retVal = conn.isNetworkSupported(TYPE_MOBILE) && isReady;
final boolean isDataCapable = tele.isDataCapable();
final boolean retVal = isDataCapable && isReady;
if (LOGD) {
Log.d(TAG, "hasReadyMobileRadio:"
+ " conn.isNetworkSupported(TYPE_MOBILE)="
+ conn.isNetworkSupported(TYPE_MOBILE)
+ " telephonManager.isDataCapable()="
+ isDataCapable
+ " isReady=" + isReady);
}
return retVal;
@@ -147,9 +146,8 @@ public final class DataUsageUtils extends com.android.settingslib.net.DataUsageU
return SystemProperties.get(TEST_RADIOS_PROP).contains("wifi");
}
final ConnectivityManager connectivityManager =
context.getSystemService(ConnectivityManager.class);
return connectivityManager != null && connectivityManager.isNetworkSupported(TYPE_WIFI);
final PackageManager packageManager = context.getPackageManager();
return packageManager != null && packageManager.hasSystemFeature(FEATURE_WIFI);
}
/**

View File

@@ -19,7 +19,6 @@ package com.android.settings.homepage.contextualcards.conditional;
import android.app.settings.SettingsEnums;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.telephony.PhoneStateListener;
import android.telephony.PreciseDataConnectionState;
import android.telephony.SubscriptionManager;
@@ -39,7 +38,6 @@ public class CellularDataConditionController implements ConditionalCardControlle
private final Context mAppContext;
private final ConditionManager mConditionManager;
private final GlobalSettingsChangeListener mDefaultDataSubscriptionIdListener;
private final ConnectivityManager mConnectivityManager;
private int mSubId;
private TelephonyManager mTelephonyManager;
@@ -63,8 +61,6 @@ public class CellularDataConditionController implements ConditionalCardControlle
}
}
};
mConnectivityManager = appContext.getSystemService(
ConnectivityManager.class);
}
@Override
@@ -74,7 +70,7 @@ public class CellularDataConditionController implements ConditionalCardControlle
@Override
public boolean isDisplayable() {
if (!mConnectivityManager.isNetworkSupported(ConnectivityManager.TYPE_MOBILE)
if (!mTelephonyManager.isDataCapable()
|| mTelephonyManager.getSimState() != TelephonyManager.SIM_STATE_READY) {
return false;
}

View File

@@ -36,8 +36,8 @@ import static org.mockito.Mockito.when;
import android.content.Context;
import android.content.DialogInterface;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.content.res.Resources;
import android.net.ConnectivityManager;
import android.net.NetworkPolicyManager;
import android.os.Bundle;
@@ -72,9 +72,9 @@ public class BillingCycleSettingsTest {
@Mock
private NetworkPolicyEditor mNetworkPolicyEditor;
@Mock
private ConnectivityManager mConnectivityManager;
@Mock
private NetworkPolicyManager mNetworkPolicyManager;
@Mock
private PackageManager mMockPackageManager;
private Context mContext;
@Mock
@@ -157,9 +157,8 @@ public class BillingCycleSettingsTest {
.onCreatePreferences(any(Bundle.class), nullable(String.class));
when(mContext.getSystemService(Context.NETWORK_POLICY_SERVICE))
.thenReturn(mNetworkPolicyManager);
when(mContext.getSystemService(Context.CONNECTIVITY_SERVICE))
.thenReturn(mConnectivityManager);
when(mConnectivityManager.isNetworkSupported(anyInt())).thenReturn(true);
when(mContext.getPackageManager()).thenReturn(mMockPackageManager);
when(mMockPackageManager.hasSystemFeature(any())).thenReturn(true);
final SwitchPreference preference = mock(SwitchPreference.class);
when(billingCycleSettings.findPreference(anyString())).thenReturn(preference);

View File

@@ -16,13 +16,14 @@
package com.android.settings.datausage;
import static android.net.ConnectivityManager.TYPE_WIFI;
import static android.content.pm.PackageManager.FEATURE_WIFI;
import static com.android.settings.core.BasePreferenceController.AVAILABLE;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
@@ -31,7 +32,7 @@ import static org.mockito.Mockito.when;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.content.pm.PackageManager;
import android.net.NetworkTemplate;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
@@ -104,7 +105,7 @@ public class DataUsageSummaryPreferenceControllerTest {
@Mock
private TelephonyManager mTelephonyManager;
@Mock
private ConnectivityManager mConnectivityManager;
private PackageManager mPm;
private DataUsageInfoController mDataInfoController;
@@ -138,10 +139,9 @@ public class DataUsageSummaryPreferenceControllerTest {
doReturn(mTelephonyManager).when(mActivity).getSystemService(TelephonyManager.class);
doReturn(mTelephonyManager).when(mTelephonyManager)
.createForSubscriptionId(mDefaultSubscriptionId);
when(mActivity.getSystemService(Context.CONNECTIVITY_SERVICE))
.thenReturn(mConnectivityManager);
doReturn(mPm).when(mActivity).getPackageManager();
doReturn(false).when(mPm).hasSystemFeature(eq(FEATURE_WIFI));
doReturn(TelephonyManager.SIM_STATE_READY).when(mTelephonyManager).getSimState();
when(mConnectivityManager.isNetworkSupported(TYPE_WIFI)).thenReturn(false);
mController = spy(new DataUsageSummaryPreferenceController(
mDataUsageController,
@@ -363,7 +363,7 @@ public class DataUsageSummaryPreferenceControllerTest {
final int subscriptionId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
mController.init(subscriptionId);
mController.mDataUsageController = mDataUsageController;
when(mConnectivityManager.isNetworkSupported(TYPE_WIFI)).thenReturn(true);
doReturn(true).when(mPm).hasSystemFeature(eq(FEATURE_WIFI));
assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
}

View File

@@ -18,14 +18,15 @@ package com.android.settings.datausage;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.anyLong;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import static org.robolectric.Shadows.shadowOf;
import android.app.usage.NetworkStatsManager;
import android.content.Context;
import android.content.pm.PackageManager;
import android.net.ConnectivityManager;
import android.telephony.TelephonyManager;
import android.util.DataUnit;
@@ -38,12 +39,11 @@ import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.shadows.ShadowApplication;
import org.robolectric.shadows.ShadowPackageManager;
@RunWith(RobolectricTestRunner.class)
public final class DataUsageUtilsTest {
@Mock
private ConnectivityManager mManager;
@Mock
private TelephonyManager mTelephonyManager;
@Mock
@@ -56,21 +56,20 @@ public final class DataUsageUtilsTest {
MockitoAnnotations.initMocks(this);
final ShadowApplication shadowContext = ShadowApplication.getInstance();
mContext = RuntimeEnvironment.application;
shadowContext.setSystemService(Context.CONNECTIVITY_SERVICE, mManager);
shadowContext.setSystemService(Context.TELEPHONY_SERVICE, mTelephonyManager);
shadowContext.setSystemService(Context.NETWORK_STATS_SERVICE, mNetworkStatsManager);
}
@Test
public void mobileDataStatus_whenNetworkIsSupported() {
when(mManager.isNetworkSupported(anyInt())).thenReturn(true);
when(mTelephonyManager.isDataCapable()).thenReturn(true);
final boolean hasMobileData = DataUsageUtils.hasMobileData(mContext);
assertThat(hasMobileData).isTrue();
}
@Test
public void mobileDataStatus_whenNetworkIsNotSupported() {
when(mManager.isNetworkSupported(anyInt())).thenReturn(false);
when(mTelephonyManager.isDataCapable()).thenReturn(false);
final boolean hasMobileData = DataUsageUtils.hasMobileData(mContext);
assertThat(hasMobileData).isFalse();
}
@@ -85,7 +84,8 @@ public final class DataUsageUtilsTest {
@Test
public void hasEthernet_shouldQueryEthernetSummaryForUser() throws Exception {
when(mManager.isNetworkSupported(anyInt())).thenReturn(true);
ShadowPackageManager pm = shadowOf(RuntimeEnvironment.application.getPackageManager());
pm.setSystemFeature(PackageManager.FEATURE_ETHERNET, true);
final String subscriber = "TestSub";
when(mTelephonyManager.getSubscriberId()).thenReturn(subscriber);

View File

@@ -28,7 +28,6 @@ import static org.mockito.Mockito.when;
import static org.robolectric.shadow.api.Shadow.extract;
import android.content.Context;
import android.net.ConnectivityManager;
import android.os.UserManager;
import android.provider.Settings;
import android.provider.Settings.Global;
@@ -88,9 +87,7 @@ public class MobileNetworkPreferenceControllerTest {
public void secondaryUser_prefIsNotAvailable() {
ShadowUserManager userManager = extract(mContext.getSystemService(UserManager.class));
userManager.setIsAdminUser(false);
ShadowConnectivityManager connectivityManager =
extract(mContext.getSystemService(ConnectivityManager.class));
connectivityManager.setNetworkSupported(ConnectivityManager.TYPE_MOBILE, true);
when(mTelephonyManager.isDataCapable()).thenReturn(true);
mController = new MobileNetworkPreferenceController(mContext);
assertThat(mController.isAvailable()).isFalse();
@@ -100,10 +97,7 @@ public class MobileNetworkPreferenceControllerTest {
public void wifiOnly_prefIsNotAvailable() {
ShadowUserManager userManager = extract(mContext.getSystemService(UserManager.class));
userManager.setIsAdminUser(true);
ShadowConnectivityManager connectivityManager =
extract(mContext.getSystemService(ConnectivityManager.class));
connectivityManager.setNetworkSupported(ConnectivityManager.TYPE_MOBILE, false);
when(mTelephonyManager.isDataCapable()).thenReturn(false);
mController = new MobileNetworkPreferenceController(mContext);
assertThat(mController.isAvailable()).isFalse();
}

View File

@@ -31,7 +31,6 @@ import static org.mockito.Mockito.when;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.os.UserManager;
import android.provider.Settings;
import android.telephony.SubscriptionInfo;
@@ -107,9 +106,7 @@ public class MobileNetworkSummaryControllerTest {
@Test
public void isAvailable_wifiOnlyMode_notAvailable() {
final ConnectivityManager cm = mock(ConnectivityManager.class);
when(cm.isNetworkSupported(ConnectivityManager.TYPE_MOBILE)).thenReturn(false);
when(mContext.getSystemService(ConnectivityManager.class)).thenReturn(cm);
when(mTelephonyManager.isDataCapable()).thenReturn(false);
when(mUserManager.isAdminUser()).thenReturn(true);
assertThat(mController.isAvailable()).isFalse();
@@ -117,11 +114,8 @@ public class MobileNetworkSummaryControllerTest {
@Test
public void isAvailable_secondaryUser_notAvailable() {
final ConnectivityManager cm = mock(ConnectivityManager.class);
when(cm.isNetworkSupported(ConnectivityManager.TYPE_MOBILE)).thenReturn(true);
when(mContext.getSystemService(ConnectivityManager.class)).thenReturn(cm);
when(mTelephonyManager.isDataCapable()).thenReturn(true);
when(mUserManager.isAdminUser()).thenReturn(false);
assertThat(mController.isAvailable()).isFalse();
}