Merge "Declare support for Ethernet if the service is running." am: 21fcca6818 am: 5b906e1d11 am: a6648cc90b
am: d6cc68dab4
Change-Id: I38791cf8b26a49dd8bd210ea3e0284dece9f0719
This commit is contained in:
@@ -19,6 +19,7 @@ package com.android.server;
|
||||
import static android.Manifest.permission.RECEIVE_DATA_ACTIVITY_CHANGE;
|
||||
import static android.net.ConnectivityManager.CONNECTIVITY_ACTION;
|
||||
import static android.net.ConnectivityManager.NETID_UNSET;
|
||||
import static android.net.ConnectivityManager.TYPE_ETHERNET;
|
||||
import static android.net.ConnectivityManager.TYPE_NONE;
|
||||
import static android.net.ConnectivityManager.TYPE_VPN;
|
||||
import static android.net.ConnectivityManager.getNetworkTypeName;
|
||||
@@ -90,6 +91,7 @@ import android.os.PowerManager;
|
||||
import android.os.Process;
|
||||
import android.os.RemoteException;
|
||||
import android.os.ResultReceiver;
|
||||
import android.os.ServiceManager;
|
||||
import android.os.ServiceSpecificException;
|
||||
import android.os.SystemClock;
|
||||
import android.os.UserHandle;
|
||||
@@ -780,6 +782,13 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
mNetworksDefined++; // used only in the log() statement below.
|
||||
}
|
||||
|
||||
// Do the same for Ethernet, since it's often not specified in the configs, although many
|
||||
// devices can use it via USB host adapters.
|
||||
if (mNetConfigs[TYPE_ETHERNET] == null && hasService(Context.ETHERNET_SERVICE)) {
|
||||
mLegacyTypeTracker.addSupportedType(TYPE_ETHERNET);
|
||||
mNetworksDefined++;
|
||||
}
|
||||
|
||||
if (VDBG) log("mNetworksDefined=" + mNetworksDefined);
|
||||
|
||||
mProtectedNetworks = new ArrayList<Integer>();
|
||||
@@ -5540,6 +5549,11 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
return new WakeupMessage(c, h, s, cmd, 0, 0, obj);
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
public boolean hasService(String name) {
|
||||
return ServiceManager.checkService(name) != null;
|
||||
}
|
||||
|
||||
private void logDefaultNetworkEvent(NetworkAgentInfo newNai, NetworkAgentInfo prevNai) {
|
||||
int newNetid = NETID_UNSET;
|
||||
int prevNetid = NETID_UNSET;
|
||||
|
||||
@@ -19,6 +19,8 @@ package com.android.server;
|
||||
import static android.net.ConnectivityManager.CONNECTIVITY_ACTION;
|
||||
import static android.net.ConnectivityManager.TYPE_ETHERNET;
|
||||
import static android.net.ConnectivityManager.TYPE_MOBILE;
|
||||
import static android.net.ConnectivityManager.TYPE_MOBILE_FOTA;
|
||||
import static android.net.ConnectivityManager.TYPE_MOBILE_MMS;
|
||||
import static android.net.ConnectivityManager.TYPE_NONE;
|
||||
import static android.net.ConnectivityManager.TYPE_WIFI;
|
||||
import static android.net.ConnectivityManager.getNetworkTypeName;
|
||||
@@ -782,6 +784,13 @@ public class ConnectivityServiceTest extends AndroidTestCase {
|
||||
return new FakeWakeupMessage(context, handler, cmdName, cmd, 0, 0, obj);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasService(String name) {
|
||||
// Currenty, the only relevant service that ConnectivityService checks for is
|
||||
// ETHERNET_SERVICE.
|
||||
return Context.ETHERNET_SERVICE.equals(name);
|
||||
}
|
||||
|
||||
public WrappedNetworkMonitor getLastCreatedWrappedNetworkMonitor() {
|
||||
return mLastCreatedNetworkMonitor;
|
||||
}
|
||||
@@ -929,6 +938,13 @@ public class ConnectivityServiceTest extends AndroidTestCase {
|
||||
// will fail. Failing here is much easier to debug.
|
||||
assertTrue(mCm.isNetworkSupported(TYPE_WIFI));
|
||||
assertTrue(mCm.isNetworkSupported(TYPE_MOBILE));
|
||||
assertTrue(mCm.isNetworkSupported(TYPE_MOBILE_MMS));
|
||||
assertFalse(mCm.isNetworkSupported(TYPE_MOBILE_FOTA));
|
||||
|
||||
// Check that TYPE_ETHERNET is supported. Unlike the asserts above, which only validate our
|
||||
// mocks, this assert exercises the ConnectivityService code path that ensures that
|
||||
// TYPE_ETHERNET is supported if the ethernet service is running.
|
||||
assertTrue(mCm.isNetworkSupported(TYPE_ETHERNET));
|
||||
}
|
||||
|
||||
@SmallTest
|
||||
|
||||
Reference in New Issue
Block a user