[NS A21] More cleanup

Test: FrameworksNetTests NetworkStackTests
Change-Id: I4771f2e9151ff16a7045d9c3025ac686f244b22d
diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java
index d96362c..692b050 100644
--- a/services/core/java/com/android/server/ConnectivityService.java
+++ b/services/core/java/com/android/server/ConnectivityService.java
@@ -6468,8 +6468,9 @@
         // 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 @@
             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);
     }
 
     /**