From 1123f5d0677da9fbf15ed7fe2af843f708de1f43 Mon Sep 17 00:00:00 2001 From: Chalard Jean Date: Tue, 19 Nov 2019 22:20:55 +0900 Subject: [PATCH] [NS A21] More cleanup Test: FrameworksNetTests NetworkStackTests Change-Id: I4771f2e9151ff16a7045d9c3025ac686f244b22d --- .../com/android/server/ConnectivityService.java | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index d96362c0f2..692b050f0c 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -6468,8 +6468,9 @@ public class ConnectivityService extends IConnectivityManager.Stub // before LegacyTypeTracker sends legacy broadcasts for (NetworkRequestInfo nri : addedRequests) notifyNetworkAvailable(newNetwork, nri); - // Second pass: process all listens. - if (wasBackgroundNetwork != newNetwork.isBackgroundNetwork()) { + // Maybe the network changed background states. Update its capabilities. + final boolean backgroundChanged = wasBackgroundNetwork != newNetwork.isBackgroundNetwork(); + if (backgroundChanged) { final NetworkCapabilities newNc = mixInCapabilities(newNetwork, newNetwork.networkCapabilities); @@ -6486,13 +6487,10 @@ public class ConnectivityService extends IConnectivityManager.Stub synchronized (newNetwork) { newNetwork.setNetworkCapabilities(newNc); } - - // The requestable capabilities and the score can't have changed, therefore the change - // in background can't affect any requests. Only processing the listens is fine. - processListenRequests(newNetwork, true); - } else { - processListenRequests(newNetwork, false); } + + // Finally, process listen requests. + processListenRequests(newNetwork, backgroundChanged); } /**