Merge cherrypicks of ['googleplex-android-review.googlesource.com/21517109', 'googleplex-android-review.googlesource.com/21517110'] into tm-qpr2-release.

Change-Id: I905c1ab74b49d2d92292676df80209e3f4f3e541
diff --git a/rro_overlays/ConnectivityOverlay/res/values-mcc204-mnc04/config.xml b/rro_overlays/ConnectivityOverlay/res/values-mcc204-mnc04/config.xml
new file mode 100644
index 0000000..2a6d2e5
--- /dev/null
+++ b/rro_overlays/ConnectivityOverlay/res/values-mcc204-mnc04/config.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+<resources>
+    <!-- Whether the device should automatically switch away from Wi-Fi networks that lose
+         Internet access. Actual device behaviour is controlled by
+         Settings.Global.NETWORK_AVOID_BAD_WIFI. This is the default value of that setting. -->
+    <integer translatable="false" name="config_networkAvoidBadWifi">0</integer>
+
+    <!-- Whether the device should actively prefer bad wifi to good cell on Android 12/13
+         for configurations where config_avoidBadWifi=0. -->
+    <integer translatable="false" name="config_activelyPreferBadWifi">0</integer>
+</resources>
diff --git a/rro_overlays/ConnectivityOverlay/res/values-mcc310-mnc004/config.xml b/rro_overlays/ConnectivityOverlay/res/values-mcc310-mnc004/config.xml
new file mode 100644
index 0000000..3cc7253
--- /dev/null
+++ b/rro_overlays/ConnectivityOverlay/res/values-mcc310-mnc004/config.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+<resources>
+    <!-- Whether the device should automatically switch away from Wi-Fi networks that lose
+         Internet access. Actual device behaviour is controlled by
+         Settings.Global.NETWORK_AVOID_BAD_WIFI. This is the default value of that setting. -->
+    <integer translatable="false" name="config_networkAvoidBadWifi">0</integer>
+</resources>
diff --git a/rro_overlays/ConnectivityOverlay/res/values-mcc310-mnc590/config.xml b/rro_overlays/ConnectivityOverlay/res/values-mcc310-mnc590/config.xml
new file mode 100644
index 0000000..3cc7253
--- /dev/null
+++ b/rro_overlays/ConnectivityOverlay/res/values-mcc310-mnc590/config.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+<resources>
+    <!-- Whether the device should automatically switch away from Wi-Fi networks that lose
+         Internet access. Actual device behaviour is controlled by
+         Settings.Global.NETWORK_AVOID_BAD_WIFI. This is the default value of that setting. -->
+    <integer translatable="false" name="config_networkAvoidBadWifi">0</integer>
+</resources>
diff --git a/rro_overlays/ConnectivityOverlay/res/values-mcc310-mnc599/config.xml b/rro_overlays/ConnectivityOverlay/res/values-mcc310-mnc599/config.xml
new file mode 100644
index 0000000..3cc7253
--- /dev/null
+++ b/rro_overlays/ConnectivityOverlay/res/values-mcc310-mnc599/config.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+<resources>
+    <!-- Whether the device should automatically switch away from Wi-Fi networks that lose
+         Internet access. Actual device behaviour is controlled by
+         Settings.Global.NETWORK_AVOID_BAD_WIFI. This is the default value of that setting. -->
+    <integer translatable="false" name="config_networkAvoidBadWifi">0</integer>
+</resources>
diff --git a/rro_overlays/ConnectivityOverlay/res/values-mcc311-mnc270/config.xml b/rro_overlays/ConnectivityOverlay/res/values-mcc311-mnc270/config.xml
new file mode 100644
index 0000000..3cc7253
--- /dev/null
+++ b/rro_overlays/ConnectivityOverlay/res/values-mcc311-mnc270/config.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+<resources>
+    <!-- Whether the device should automatically switch away from Wi-Fi networks that lose
+         Internet access. Actual device behaviour is controlled by
+         Settings.Global.NETWORK_AVOID_BAD_WIFI. This is the default value of that setting. -->
+    <integer translatable="false" name="config_networkAvoidBadWifi">0</integer>
+</resources>
diff --git a/rro_overlays/ConnectivityOverlay/res/values-mcc311-mnc280/config.xml b/rro_overlays/ConnectivityOverlay/res/values-mcc311-mnc280/config.xml
new file mode 100644
index 0000000..3cc7253
--- /dev/null
+++ b/rro_overlays/ConnectivityOverlay/res/values-mcc311-mnc280/config.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+<resources>
+    <!-- Whether the device should automatically switch away from Wi-Fi networks that lose
+         Internet access. Actual device behaviour is controlled by
+         Settings.Global.NETWORK_AVOID_BAD_WIFI. This is the default value of that setting. -->
+    <integer translatable="false" name="config_networkAvoidBadWifi">0</integer>
+</resources>
diff --git a/rro_overlays/ConnectivityOverlay/res/values-mcc311-mnc480/config.xml b/rro_overlays/ConnectivityOverlay/res/values-mcc311-mnc480/config.xml
new file mode 100644
index 0000000..3cc7253
--- /dev/null
+++ b/rro_overlays/ConnectivityOverlay/res/values-mcc311-mnc480/config.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+<resources>
+    <!-- Whether the device should automatically switch away from Wi-Fi networks that lose
+         Internet access. Actual device behaviour is controlled by
+         Settings.Global.NETWORK_AVOID_BAD_WIFI. This is the default value of that setting. -->
+    <integer translatable="false" name="config_networkAvoidBadWifi">0</integer>
+</resources>
diff --git a/rro_overlays/ConnectivityOverlay/res/values/config.xml b/rro_overlays/ConnectivityOverlay/res/values/config.xml
index d9a29b0..d9e9b58 100644
--- a/rro_overlays/ConnectivityOverlay/res/values/config.xml
+++ b/rro_overlays/ConnectivityOverlay/res/values/config.xml
@@ -23,4 +23,8 @@
 
     <!-- Mask to use when checking skb mark defined in config_networkWakeupPacketMark above. -->
     <integer translatable="false" name="config_networkWakeupPacketMask">0x80000000</integer>
+
+    <!-- Whether the device should actively prefer bad wifi to good cell on Android 12/13
+         for configurations where config_avoidBadWifi=0. -->
+    <integer translatable="false" name="config_activelyPreferBadWifi">1</integer>
 </resources>