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

Commit d198ed0a authored by Cody Kesting's avatar Cody Kesting
Browse files

Implement INetworkMonitorCallbacks#notifyNetworkTestedWithExtras.

INetworkMonitorCallbacks defines notifyNetworkTestedWithExtras() for
notifying ConnectivityService of networks being tested along with a
PersistableBundle of extras. A new event is introduced for
NetworkStateTrackerHandler to notify the ConnectivityDiagnosticsHandler
before continuing with the normal processing for "network tested"
notifications. The event is also used in the
ConnectivityDiagnosticsHandler.

Bug: 143187964
Bug: 147391402
Test: compiles.
Test: atest CtsNetTestCases FrameworksNetTests
Change-Id: Iab29da790c0f5faae68227770bc3a84bbc94f124
Merged-In: Iab29da790c0f5faae68227770bc3a84bbc94f124
parent 1fcefb02
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -676,7 +676,8 @@ public class ConnectivityDiagnosticsManager {
        }

        try {
            mService.registerConnectivityDiagnosticsCallback(binder, request);
            mService.registerConnectivityDiagnosticsCallback(
                    binder, request, mContext.getOpPackageName());
        } catch (RemoteException exception) {
            exception.rethrowFromSystemServer();
        }
+1 −1
Original line number Diff line number Diff line
@@ -213,7 +213,7 @@ interface IConnectivityManager
    boolean isCallerCurrentAlwaysOnVpnLockdownApp();

    void registerConnectivityDiagnosticsCallback(in IConnectivityDiagnosticsCallback callback,
            in NetworkRequest request);
            in NetworkRequest request, String callingPackageName);
    void unregisterConnectivityDiagnosticsCallback(in IConnectivityDiagnosticsCallback callback);

    IBinder startOrGetTestNetworkService();
+2 −2
Original line number Diff line number Diff line
@@ -858,8 +858,8 @@ public final class NetworkCapabilities implements Parcelable {
     *
     * <p>In general, user-supplied networks (such as WiFi networks) do not have an administrator.
     *
     * <p>An app is granted owner privileges over Networks that it supplies. Owner privileges
     * implicitly include administrator privileges.
     * <p>An app is granted owner privileges over Networks that it supplies. The owner UID MUST
     * always be included in administratorUids.
     *
     * @param administratorUids the UIDs to be set as administrators of this Network.
     * @hide
+266 −88

File changed.

Preview size limit exceeded, changes collapsed.

+11 −4
Original line number Diff line number Diff line
@@ -38,6 +38,8 @@ import static org.mockito.Mockito.verifyNoMoreInteractions;
import android.content.Context;
import android.os.PersistableBundle;

import androidx.test.InstrumentationRegistry;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -58,21 +60,26 @@ public class ConnectivityDiagnosticsManagerTest {

    private static final Executor INLINE_EXECUTOR = x -> x.run();

    @Mock private Context mContext;
    @Mock private IConnectivityManager mService;
    @Mock private ConnectivityDiagnosticsCallback mCb;

    private Context mContext;
    private ConnectivityDiagnosticsBinder mBinder;
    private ConnectivityDiagnosticsManager mManager;

    private String mPackageName;

    @Before
    public void setUp() {
        mContext = mock(Context.class);
        mContext = InstrumentationRegistry.getContext();

        mService = mock(IConnectivityManager.class);
        mCb = mock(ConnectivityDiagnosticsCallback.class);

        mBinder = new ConnectivityDiagnosticsBinder(mCb, INLINE_EXECUTOR);
        mManager = new ConnectivityDiagnosticsManager(mContext, mService);

        mPackageName = mContext.getOpPackageName();
    }

    @After
@@ -271,7 +278,7 @@ public class ConnectivityDiagnosticsManagerTest {
        mManager.registerConnectivityDiagnosticsCallback(request, INLINE_EXECUTOR, mCb);

        verify(mService).registerConnectivityDiagnosticsCallback(
                any(ConnectivityDiagnosticsBinder.class), eq(request));
                any(ConnectivityDiagnosticsBinder.class), eq(request), eq(mPackageName));
        assertTrue(ConnectivityDiagnosticsManager.sCallbacks.containsKey(mCb));
    }

@@ -302,7 +309,7 @@ public class ConnectivityDiagnosticsManagerTest {
        // verify that re-registering is successful
        mManager.registerConnectivityDiagnosticsCallback(request, INLINE_EXECUTOR, mCb);
        verify(mService, times(2)).registerConnectivityDiagnosticsCallback(
                any(ConnectivityDiagnosticsBinder.class), eq(request));
                any(ConnectivityDiagnosticsBinder.class), eq(request), eq(mPackageName));
        assertTrue(ConnectivityDiagnosticsManager.sCallbacks.containsKey(mCb));
    }

Loading