Merge "Change hotspot security to WPA3-Transition when switching from 6GHz" into main
diff --git a/src/com/android/settings/wifi/repository/WifiHotspotRepository.java b/src/com/android/settings/wifi/repository/WifiHotspotRepository.java
index e78773e..7a001ca 100644
--- a/src/com/android/settings/wifi/repository/WifiHotspotRepository.java
+++ b/src/com/android/settings/wifi/repository/WifiHotspotRepository.java
@@ -22,6 +22,7 @@
 import static android.net.wifi.SoftApConfiguration.BAND_6GHZ;
 import static android.net.wifi.SoftApConfiguration.SECURITY_TYPE_OPEN;
 import static android.net.wifi.SoftApConfiguration.SECURITY_TYPE_WPA3_SAE;
+import static android.net.wifi.SoftApConfiguration.SECURITY_TYPE_WPA3_SAE_TRANSITION;
 import static android.net.wifi.WifiAvailableChannel.OP_MODE_SAP;
 import static android.net.wifi.WifiManager.WIFI_AP_STATE_DISABLED;
 import static android.net.wifi.WifiManager.WIFI_AP_STATE_ENABLED;
@@ -343,16 +344,23 @@
                 log("setSpeedType(), setPassphrase(SECURITY_TYPE_WPA3_SAE)");
                 configBuilder.setPassphrase(generatePassword(config), SECURITY_TYPE_WPA3_SAE);
             }
-        } else if (speedType == SPEED_5GHZ) {
-            log("setSpeedType(), setBand(BAND_2GHZ_5GHZ)");
-            configBuilder.setBand(BAND_2GHZ_5GHZ);
-        } else if (mIsDualBand) {
-            log("setSpeedType(), setBands(BAND_2GHZ + BAND_2GHZ_5GHZ)");
-            int[] bands = {BAND_2GHZ, BAND_2GHZ_5GHZ};
-            configBuilder.setBands(bands);
         } else {
-            log("setSpeedType(), setBand(BAND_2GHZ)");
-            configBuilder.setBand(BAND_2GHZ);
+            if (speedType == SPEED_5GHZ) {
+                log("setSpeedType(), setBand(BAND_2GHZ_5GHZ)");
+                configBuilder.setBand(BAND_2GHZ_5GHZ);
+            } else if (mIsDualBand) {
+                log("setSpeedType(), setBands(BAND_2GHZ + BAND_2GHZ_5GHZ)");
+                int[] bands = {BAND_2GHZ, BAND_2GHZ_5GHZ};
+                configBuilder.setBands(bands);
+            } else {
+                log("setSpeedType(), setBand(BAND_2GHZ)");
+                configBuilder.setBand(BAND_2GHZ);
+            }
+            // Set the security type back to WPA2/WPA3 if we're moving from 6GHz to something else.
+            if ((config.getBand() & BAND_6GHZ) != 0) {
+                configBuilder.setPassphrase(
+                        generatePassword(config), SECURITY_TYPE_WPA3_SAE_TRANSITION);
+            }
         }
         setSoftApConfiguration(configBuilder.build());
     }
diff --git a/tests/unit/src/com/android/settings/wifi/repository/WifiHotspotRepositoryTest.java b/tests/unit/src/com/android/settings/wifi/repository/WifiHotspotRepositoryTest.java
index 20b3075..a97b1a0 100644
--- a/tests/unit/src/com/android/settings/wifi/repository/WifiHotspotRepositoryTest.java
+++ b/tests/unit/src/com/android/settings/wifi/repository/WifiHotspotRepositoryTest.java
@@ -497,6 +497,8 @@
         SparseIntArray channels = mSoftApConfigCaptor.getValue().getChannels();
         assertThat(channels.get(BAND_2GHZ, CHANNEL_NOT_FOUND)).isNotEqualTo(CHANNEL_NOT_FOUND);
         assertThat(channels.get(BAND_2GHZ_5GHZ, CHANNEL_NOT_FOUND)).isNotEqualTo(CHANNEL_NOT_FOUND);
+        assertThat(mSoftApConfigCaptor.getValue().getSecurityType())
+                .isEqualTo(SECURITY_TYPE_WPA3_SAE_TRANSITION);
     }
 
     @Test