Loading core/java/android/net/ConnectivityManager.java +8 −2 Original line number Diff line number Diff line Loading @@ -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); Loading Loading @@ -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()); Loading tests/net/java/com/android/server/ConnectivityServiceTest.java +3 −0 Original line number Diff line number Diff line Loading @@ -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(); } Loading Loading
core/java/android/net/ConnectivityManager.java +8 −2 Original line number Diff line number Diff line Loading @@ -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); Loading Loading @@ -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()); Loading
tests/net/java/com/android/server/ConnectivityServiceTest.java +3 −0 Original line number Diff line number Diff line Loading @@ -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(); } Loading