Rematch wifi networks when the avoid bad wifi setting changes.

Currently, when the avoid bad wifi setting changes, we rematch
all networks and requests, but do not update any NetworkFactories
with new scores. This means that if a wifi network's score goes
down as a result of enabling bad wifi avoidance, we will not look
for another network (e.g., cell data) to satisfy its requests.

This makes it so that when the user enables avoiding bad wifi,
we will attempt to bring up cell data will if it is not already

Bug: 31075769
Change-Id: Ie5b685be8676999adea8c9ecbbc1abb92f81a74f
(cherry picked from commit 836d8788a8ed4eb44dbd7e3a24c77c2cc435573e)
diff --git a/services/core/java/com/android/server/ b/services/core/java/com/android/server/
index cea7a4b..9c3c537 100644
--- a/services/core/java/com/android/server/
+++ b/services/core/java/com/android/server/
@@ -2961,6 +2961,12 @@
                     if (updateAvoidBadWifi()) {
                         rematchAllNetworksAndRequests(null, 0);
+                        for (NetworkAgentInfo nai: mNetworkAgentInfos.values()) {
+                            if (nai.networkCapabilities.hasTransport(
+                                    NetworkCapabilities.TRANSPORT_WIFI)) {
+                                sendUpdatedScoreToFactories(nai);
+                            }
+                        }