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

Commit 7c49d9b3 authored by Etan Cohen's avatar Etan Cohen Committed by android-build-merger
Browse files

Merge "[CS] Unregister callback as part of onUnavailable dispatch"

am: 6b88a919

Change-Id: I14d3c0f6c606020bd1d1e756174a66ee933cb15f
parents bbd62aff 6b88a919
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -3449,6 +3449,10 @@ public class ConnectivityManager {
            final NetworkCallback callback;
            synchronized (sCallbacks) {
                callback = sCallbacks.get(request);
                if (message.what == CALLBACK_UNAVAIL) {
                    sCallbacks.remove(request);
                    callback.networkRequest = ALREADY_UNREGISTERED;
                }
            }
            if (DBG) {
                Log.d(TAG, getCallbackName(message.what) + " for network " + network);
@@ -3995,8 +3999,10 @@ public class ConnectivityManager {
        synchronized (sCallbacks) {
            Preconditions.checkArgument(networkCallback.networkRequest != null,
                    "NetworkCallback was not registered");
            Preconditions.checkArgument(networkCallback.networkRequest != ALREADY_UNREGISTERED,
                    "NetworkCallback was already unregistered");
            if (networkCallback.networkRequest == ALREADY_UNREGISTERED) {
                Log.d(TAG, "NetworkCallback was already unregistered");
                return;
            }
            for (Map.Entry<NetworkRequest, NetworkCallback> e : sCallbacks.entrySet()) {
                if (e.getValue() == networkCallback) {
                    reqs.add(e.getKey());
+3 −0
Original line number Diff line number Diff line
@@ -3854,6 +3854,9 @@ public class ConnectivityServiceTest {
        networkCallback.expectCallback(CallbackState.UNAVAILABLE, null);
        testFactory.waitForRequests();

        // unregister network callback - a no-op, but should not fail
        mCm.unregisterNetworkCallback(networkCallback);

        testFactory.unregister();
        handlerThread.quit();
    }