From 739fa3f4c3c669aef98f14800b5419b53dedd5b2 Mon Sep 17 00:00:00 2001 From: Weng Su Date: Wed, 21 Aug 2024 15:32:14 +0800 Subject: [PATCH] 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 --- .../wifi/details2/WifiPrivacyPageProvider.kt | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/com/android/settings/wifi/details2/WifiPrivacyPageProvider.kt b/src/com/android/settings/wifi/details2/WifiPrivacyPageProvider.kt index e41863cd5b8..7744a73cc17 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 @@ fun WifiPrivacyPage(wifiEntry: WifiEntry) { } }) 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 @@ fun DeviceNameSwitchPreference(wifiConfiguration: WifiConfiguration){ } 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 + } } }) }