Refine Wi-Fi privacy settings

- When changing two configurations, the configuration must be refreshed before modifying the second configuration to prevent the first configuration from being rolled back by the old configuration.

Fix: 360313149
Flag: EXEMPT bugfix
Test: Manual testing
atest -c WifiPrivacyPageProviderTest

Change-Id: If0e2c2b6a708fa59929b23409aff1254c6566fef
diff --git a/src/com/android/settings/wifi/details2/WifiPrivacyPageProvider.kt b/src/com/android/settings/wifi/details2/WifiPrivacyPageProvider.kt
index e41863c..7744a73 100644
--- a/src/com/android/settings/wifi/details2/WifiPrivacyPageProvider.kt
+++ b/src/com/android/settings/wifi/details2/WifiPrivacyPageProvider.kt
@@ -17,7 +17,6 @@
 package com.android.settings.wifi.details2
 
 import android.content.Context
-import android.net.wifi.WifiConfiguration
 import android.net.wifi.WifiManager
 import android.os.Bundle
 import android.os.Handler
@@ -114,19 +113,19 @@
                 }
             })
             wifiEntry.wifiConfiguration?.let {
-                DeviceNameSwitchPreference(it)
+                DeviceNameSwitchPreference(wifiEntry)
             }
         }
     }
 }
 
 @Composable
-fun DeviceNameSwitchPreference(wifiConfiguration: WifiConfiguration){
+fun DeviceNameSwitchPreference(wifiEntry: WifiEntry) {
     Spacer(modifier = Modifier.width(SettingsDimension.itemDividerHeight))
     CategoryTitle(title = stringResource(R.string.wifi_privacy_device_name_settings))
     Spacer(modifier = Modifier.width(SettingsDimension.itemDividerHeight))
     var checked by remember {
-        mutableStateOf(wifiConfiguration.isSendDhcpHostnameEnabled)
+        mutableStateOf(wifiEntry.wifiConfiguration?.isSendDhcpHostnameEnabled)
     }
     val context = LocalContext.current
     val wifiManager = context.getSystemService(WifiManager::class.java)!!
@@ -143,9 +142,11 @@
             }
         override val checked = { checked }
         override val onCheckedChange: (Boolean) -> Unit = { newChecked ->
-            wifiConfiguration.isSendDhcpHostnameEnabled = newChecked
-            wifiManager.save(wifiConfiguration, null /* listener */)
-            checked = newChecked
+            wifiEntry.wifiConfiguration?.let {
+                it.isSendDhcpHostnameEnabled = newChecked
+                wifiManager.save(it, null /* listener */)
+                checked = newChecked
+            }
         }
     })
 }