Merge "Fix mac randomization value mismatch" into main

This commit is contained in:
Quang Luong
2024-07-25 10:45:54 +00:00
committed by Android (Google) Code Review
4 changed files with 26 additions and 26 deletions

View File

@@ -344,7 +344,7 @@ public class WifiConfigController2 implements TextWatcher,
if (mPrivacySettingsSpinner != null) { if (mPrivacySettingsSpinner != null) {
final int prefMacValue = WifiPrivacyPreferenceController2 final int prefMacValue = WifiPrivacyPreferenceController2
.translateMacRandomizedValueToPrefValue(config.macRandomizationSetting); .translateWifiEntryPrivacyToPrefValue(mWifiEntry.getPrivacy());
mPrivacySettingsSpinner.setSelection(prefMacValue); mPrivacySettingsSpinner.setSelection(prefMacValue);
} }
@@ -863,7 +863,7 @@ public class WifiConfigController2 implements TextWatcher,
if (mPrivacySettingsSpinner != null) { if (mPrivacySettingsSpinner != null) {
config.macRandomizationSetting = WifiPrivacyPreferenceController2 config.macRandomizationSetting = WifiPrivacyPreferenceController2
.translatePrefValueToMacRandomizedValue(mPrivacySettingsSpinner .translatePrefValueToWifiConfigSetting(mPrivacySettingsSpinner
.getSelectedItemPosition()); .getSelectedItemPosition());
} }

View File

@@ -17,6 +17,7 @@
package com.android.settings.wifi.details2; package com.android.settings.wifi.details2;
import android.content.Context; import android.content.Context;
import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiManager; import android.net.wifi.WifiManager;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
@@ -98,30 +99,30 @@ public class WifiPrivacyPreferenceController2 extends BasePreferenceController i
private static final int PREF_RANDOMIZATION_NONE = 1; private static final int PREF_RANDOMIZATION_NONE = 1;
/** /**
* Returns preference index value. * Translates a WifiEntry.Privacy value to the matching preference index value.
* *
* @param macRandomized is mac randomized value * @param privacy WifiEntry.Privacy value
* @return index value of preference * @return index value of preference
*/ */
public static int translateMacRandomizedValueToPrefValue(int macRandomized) { public static int translateWifiEntryPrivacyToPrefValue(@WifiEntry.Privacy int privacy) {
return (macRandomized == WifiEntry.PRIVACY_RANDOMIZED_MAC) return (privacy == WifiEntry.PRIVACY_RANDOMIZED_MAC)
? PREF_RANDOMIZATION_PERSISTENT : PREF_RANDOMIZATION_NONE; ? PREF_RANDOMIZATION_PERSISTENT : PREF_RANDOMIZATION_NONE;
} }
/** /**
* Returns mac randomized value. * Translates the pref value to WifiConfiguration.MacRandomizationSetting value
* *
* @param prefMacRandomized is preference index value * @param prefMacRandomized is preference index value
* @return mac randomized value * @return WifiConfiguration.MacRandomizationSetting value
*/ */
public static int translatePrefValueToMacRandomizedValue(int prefMacRandomized) { public static int translatePrefValueToWifiConfigSetting(int prefMacRandomized) {
return (prefMacRandomized == PREF_RANDOMIZATION_PERSISTENT) return (prefMacRandomized == PREF_RANDOMIZATION_PERSISTENT)
? WifiEntry.PRIVACY_RANDOMIZED_MAC : WifiEntry.PRIVACY_DEVICE_MAC; ? WifiConfiguration.RANDOMIZATION_AUTO : WifiConfiguration.RANDOMIZATION_NONE;
} }
private void updateSummary(ListPreference preference, int macRandomized) { private void updateSummary(ListPreference preference, int macRandomized) {
// Translates value here to set RANDOMIZATION_PERSISTENT as first item in UI for better UX. // Translates value here to set RANDOMIZATION_PERSISTENT as first item in UI for better UX.
final int prefMacRandomized = translateMacRandomizedValueToPrefValue(macRandomized); final int prefMacRandomized = translateWifiEntryPrivacyToPrefValue(macRandomized);
preference.setSummary(preference.getEntries()[prefMacRandomized]); preference.setSummary(preference.getEntries()[prefMacRandomized]);
} }
} }

View File

@@ -459,46 +459,45 @@ public class WifiConfigController2Test {
public void loadMacRandomizedValue_shouldPersistentAsDefault() { public void loadMacRandomizedValue_shouldPersistentAsDefault() {
final Spinner privacySetting = mView.findViewById(R.id.privacy_settings); final Spinner privacySetting = mView.findViewById(R.id.privacy_settings);
final int prefPersist = final int prefPersist =
WifiPrivacyPreferenceController2.translateMacRandomizedValueToPrefValue( WifiPrivacyPreferenceController2.translateWifiEntryPrivacyToPrefValue(
WifiConfiguration.RANDOMIZATION_PERSISTENT); WifiEntry.PRIVACY_RANDOMIZED_MAC);
assertThat(privacySetting.getVisibility()).isEqualTo(View.VISIBLE); assertThat(privacySetting.getVisibility()).isEqualTo(View.VISIBLE);
assertThat(privacySetting.getSelectedItemPosition()).isEqualTo(prefPersist); assertThat(privacySetting.getSelectedItemPosition()).isEqualTo(prefPersist);
} }
@Test @Test
public void loadSavedMacRandomizedPersistentValue_shouldCorrectMacValue() { public void loadSavedPrivacyRandomizedMacValue_shouldCorrectMacValue() {
checkSavedMacRandomizedValue(WifiConfiguration.RANDOMIZATION_PERSISTENT); checkSavedMacRandomizedValue(WifiEntry.PRIVACY_RANDOMIZED_MAC);
} }
@Test @Test
public void loadSavedMacRandomizedNoneValue_shouldCorrectMacValue() { public void loadSavedPrivacyDeviceMacValue_shouldCorrectMacValue() {
checkSavedMacRandomizedValue(WifiConfiguration.RANDOMIZATION_NONE); checkSavedMacRandomizedValue(WifiEntry.PRIVACY_DEVICE_MAC);
} }
private void checkSavedMacRandomizedValue(int macRandomizedValue) { private void checkSavedMacRandomizedValue(@WifiEntry.Privacy int privacy) {
when(mWifiEntry.isSaved()).thenReturn(true); when(mWifiEntry.isSaved()).thenReturn(true);
final WifiConfiguration mockWifiConfig = spy(new WifiConfiguration()); final WifiConfiguration mockWifiConfig = spy(new WifiConfiguration());
when(mockWifiConfig.getIpConfiguration()).thenReturn(mock(IpConfiguration.class)); when(mockWifiConfig.getIpConfiguration()).thenReturn(mock(IpConfiguration.class));
when(mWifiEntry.getWifiConfiguration()).thenReturn(mockWifiConfig); when(mWifiEntry.getWifiConfiguration()).thenReturn(mockWifiConfig);
mockWifiConfig.macRandomizationSetting = macRandomizedValue; when(mWifiEntry.getPrivacy()).thenReturn(privacy);
createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false); createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);
final Spinner privacySetting = mView.findViewById(R.id.privacy_settings); final Spinner privacySetting = mView.findViewById(R.id.privacy_settings);
final int expectedPrefValue = final int expectedPrefValue =
WifiPrivacyPreferenceController2.translateMacRandomizedValueToPrefValue( WifiPrivacyPreferenceController2.translateWifiEntryPrivacyToPrefValue(privacy);
macRandomizedValue);
assertThat(privacySetting.getVisibility()).isEqualTo(View.VISIBLE); assertThat(privacySetting.getVisibility()).isEqualTo(View.VISIBLE);
assertThat(privacySetting.getSelectedItemPosition()).isEqualTo(expectedPrefValue); assertThat(privacySetting.getSelectedItemPosition()).isEqualTo(expectedPrefValue);
} }
@Test @Test
public void saveMacRandomizedValue_noChanged_shouldPersistentAsDefault() { public void saveMacRandomizedValue_noChanged_shouldAutoAsDefault() {
createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false); createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);
WifiConfiguration config = mController.getConfig(); WifiConfiguration config = mController.getConfig();
assertThat(config.macRandomizationSetting).isEqualTo( assertThat(config.macRandomizationSetting).isEqualTo(
WifiConfiguration.RANDOMIZATION_PERSISTENT); WifiConfiguration.RANDOMIZATION_AUTO);
} }
@Test @Test
@@ -506,7 +505,7 @@ public class WifiConfigController2Test {
createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false); createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);
final Spinner privacySetting = mView.findViewById(R.id.privacy_settings); final Spinner privacySetting = mView.findViewById(R.id.privacy_settings);
final int prefMacNone = final int prefMacNone =
WifiPrivacyPreferenceController2.translateMacRandomizedValueToPrefValue( WifiPrivacyPreferenceController2.translateWifiEntryPrivacyToPrefValue(
WifiConfiguration.RANDOMIZATION_NONE); WifiConfiguration.RANDOMIZATION_NONE);
privacySetting.setSelection(prefMacNone); privacySetting.setSelection(prefMacNone);

View File

@@ -59,7 +59,7 @@ class WifiPrivacyPreferenceController2Test {
controller.updateState(preference) controller.updateState(preference)
val prefValue = WifiPrivacyPreferenceController2.translateMacRandomizedValueToPrefValue( val prefValue = WifiPrivacyPreferenceController2.translateWifiEntryPrivacyToPrefValue(
WifiEntry.PRIVACY_DEVICE_MAC WifiEntry.PRIVACY_DEVICE_MAC
) )
assertThat(preference.entry).isEqualTo(preferenceStrings[prefValue]) assertThat(preference.entry).isEqualTo(preferenceStrings[prefValue])
@@ -73,7 +73,7 @@ class WifiPrivacyPreferenceController2Test {
controller.updateState(preference) controller.updateState(preference)
val prefValue = WifiPrivacyPreferenceController2.translateMacRandomizedValueToPrefValue( val prefValue = WifiPrivacyPreferenceController2.translateWifiEntryPrivacyToPrefValue(
WifiEntry.PRIVACY_RANDOMIZED_MAC WifiEntry.PRIVACY_RANDOMIZED_MAC
) )
assertThat(preference.entry).isEqualTo(preferenceStrings[prefValue]) assertThat(preference.entry).isEqualTo(preferenceStrings[prefValue])