Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5ada8e56 authored by Lorenzo Colitti's avatar Lorenzo Colitti Committed by android-build-merger
Browse files

Merge "Declare support for Ethernet if the service is running."

am: 0d3d35b3

Change-Id: Ie0a0190da53571c6f4b466840b7878eb54b5e136
parents 602aa57c 0d3d35b3
Loading
Loading
Loading
Loading
+14 −0
Original line number Original line Diff line number Diff line
@@ -19,6 +19,7 @@ package com.android.server;
import static android.Manifest.permission.RECEIVE_DATA_ACTIVITY_CHANGE;
import static android.Manifest.permission.RECEIVE_DATA_ACTIVITY_CHANGE;
import static android.net.ConnectivityManager.CONNECTIVITY_ACTION;
import static android.net.ConnectivityManager.CONNECTIVITY_ACTION;
import static android.net.ConnectivityManager.NETID_UNSET;
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_NONE;
import static android.net.ConnectivityManager.TYPE_VPN;
import static android.net.ConnectivityManager.TYPE_VPN;
import static android.net.ConnectivityManager.getNetworkTypeName;
import static android.net.ConnectivityManager.getNetworkTypeName;
@@ -91,6 +92,7 @@ import android.os.PowerManager;
import android.os.Process;
import android.os.Process;
import android.os.RemoteException;
import android.os.RemoteException;
import android.os.ResultReceiver;
import android.os.ResultReceiver;
import android.os.ServiceManager;
import android.os.ServiceSpecificException;
import android.os.ServiceSpecificException;
import android.os.SystemClock;
import android.os.SystemClock;
import android.os.UserHandle;
import android.os.UserHandle;
@@ -782,6 +784,13 @@ public class ConnectivityService extends IConnectivityManager.Stub
            mNetworksDefined++;  // used only in the log() statement below.
            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);
        if (VDBG) log("mNetworksDefined=" + mNetworksDefined);


        mProtectedNetworks = new ArrayList<Integer>();
        mProtectedNetworks = new ArrayList<Integer>();
@@ -5552,6 +5561,11 @@ public class ConnectivityService extends IConnectivityManager.Stub
        return new WakeupMessage(c, h, s, cmd, 0, 0, obj);
        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) {
    private void logDefaultNetworkEvent(NetworkAgentInfo newNai, NetworkAgentInfo prevNai) {
        int newNetid = NETID_UNSET;
        int newNetid = NETID_UNSET;
        int prevNetid = NETID_UNSET;
        int prevNetid = NETID_UNSET;
+16 −0
Original line number Original line Diff line number Diff line
@@ -19,6 +19,8 @@ package com.android.server;
import static android.net.ConnectivityManager.CONNECTIVITY_ACTION;
import static android.net.ConnectivityManager.CONNECTIVITY_ACTION;
import static android.net.ConnectivityManager.TYPE_ETHERNET;
import static android.net.ConnectivityManager.TYPE_ETHERNET;
import static android.net.ConnectivityManager.TYPE_MOBILE;
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_NONE;
import static android.net.ConnectivityManager.TYPE_WIFI;
import static android.net.ConnectivityManager.TYPE_WIFI;
import static android.net.ConnectivityManager.getNetworkTypeName;
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);
            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() {
        public WrappedNetworkMonitor getLastCreatedWrappedNetworkMonitor() {
            return mLastCreatedNetworkMonitor;
            return mLastCreatedNetworkMonitor;
        }
        }
@@ -929,6 +938,13 @@ public class ConnectivityServiceTest extends AndroidTestCase {
        // will fail. Failing here is much easier to debug.
        // will fail. Failing here is much easier to debug.
        assertTrue(mCm.isNetworkSupported(TYPE_WIFI));
        assertTrue(mCm.isNetworkSupported(TYPE_WIFI));
        assertTrue(mCm.isNetworkSupported(TYPE_MOBILE));
        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
    @SmallTest